blob: 991f4690dd95defc6fc2a8c18bf816e8332c99fe [file] [log] [blame]
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001#line 2 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003#line 4 "Lexer.cpp"
4
5#define YY_INT_ALIGNED short int
6
Reid Spencer41dff5e2007-01-26 08:05:27 +00007/* A lexical scanner generated by flex */
Reid Spencer68a24bd2005-08-27 18:50:39 +00008
Reid Spencer68a24bd2005-08-27 18:50:39 +00009#define FLEX_SCANNER
10#define YY_FLEX_MAJOR_VERSION 2
11#define YY_FLEX_MINOR_VERSION 5
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000012#define YY_FLEX_SUBMINOR_VERSION 33
13#if YY_FLEX_SUBMINOR_VERSION > 0
14#define FLEX_BETA
15#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +000016
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000017/* First, we deal with platform-specific or compiler-specific issues. */
18
19/* begin standard C headers. */
Reid Spencer68a24bd2005-08-27 18:50:39 +000020#include <stdio.h>
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000021#include <string.h>
22#include <errno.h>
23#include <stdlib.h>
Owen Anderson1dc69692006-10-18 02:21:48 +000024
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000025/* end standard C headers. */
Anton Korobeynikov178a3522007-01-12 19:22:51 +000026
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000027/* flex integer type definitions */
28
29#ifndef FLEXINT_H
30#define FLEXINT_H
31
32/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
34#if __STDC_VERSION__ >= 199901L
35
36/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37 * if you want the limit (max/min) macros for int types.
38 */
39#ifndef __STDC_LIMIT_MACROS
40#define __STDC_LIMIT_MACROS 1
Anton Korobeynikov178a3522007-01-12 19:22:51 +000041#endif
42
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +000043#include <inttypes.h>
44typedef int8_t flex_int8_t;
45typedef uint8_t flex_uint8_t;
46typedef int16_t flex_int16_t;
47typedef uint16_t flex_uint16_t;
48typedef int32_t flex_int32_t;
49typedef uint32_t flex_uint32_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t;
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57#endif /* ! C99 */
58
59/* Limits of integral types. */
60#ifndef INT8_MIN
61#define INT8_MIN (-128)
62#endif
63#ifndef INT16_MIN
64#define INT16_MIN (-32767-1)
65#endif
66#ifndef INT32_MIN
67#define INT32_MIN (-2147483647-1)
68#endif
69#ifndef INT8_MAX
70#define INT8_MAX (127)
71#endif
72#ifndef INT16_MAX
73#define INT16_MAX (32767)
74#endif
75#ifndef INT32_MAX
76#define INT32_MAX (2147483647)
77#endif
78#ifndef UINT8_MAX
79#define UINT8_MAX (255U)
80#endif
81#ifndef UINT16_MAX
82#define UINT16_MAX (65535U)
83#endif
84#ifndef UINT32_MAX
85#define UINT32_MAX (4294967295U)
86#endif
87
88#endif /* ! FLEXINT_H */
Anton Korobeynikov178a3522007-01-12 19:22:51 +000089
90#ifdef __cplusplus
Owen Anderson1dc69692006-10-18 02:21:48 +000091
Reid Spencer68a24bd2005-08-27 18:50:39 +000092/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else /* ! __cplusplus */
96
97#if __STDC__
98
Reid Spencer68a24bd2005-08-27 18:50:39 +000099#define YY_USE_CONST
100
101#endif /* __STDC__ */
102#endif /* ! __cplusplus */
103
Reid Spencer68a24bd2005-08-27 18:50:39 +0000104#ifdef YY_USE_CONST
105#define yyconst const
106#else
107#define yyconst
108#endif
109
Reid Spencer68a24bd2005-08-27 18:50:39 +0000110/* Returned upon end-of-file. */
111#define YY_NULL 0
112
113/* Promotes a possibly negative, possibly signed char to an unsigned
114 * integer for use as an array index. If the signed char is negative,
115 * we want to instead treat it as an 8-bit unsigned char, hence the
116 * double cast.
117 */
118#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119
120/* Enter a start condition. This macro really ought to take a parameter,
121 * but we do it the disgusting crufty way forced on us by the ()-less
122 * definition of BEGIN.
123 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000124#define BEGIN (yy_start) = 1 + 2 *
Reid Spencer68a24bd2005-08-27 18:50:39 +0000125
126/* Translate the current start state into a value that can be later handed
127 * to BEGIN to return to the state. The YYSTATE alias is for lex
128 * compatibility.
129 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000130#define YY_START (((yy_start) - 1) / 2)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000131#define YYSTATE YY_START
132
133/* Action number for EOF rule of a given start state. */
134#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136/* Special action meaning "start processing a new file". */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000137#define YY_NEW_FILE llvmAsmrestart(llvmAsmin )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000138
139#define YY_END_OF_BUFFER_CHAR 0
140
141/* Size of default input buffer. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000142#ifndef YY_BUF_SIZE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000143#define YY_BUF_SIZE (16384*64)
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000144#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000145
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000146/* The state buf must be large enough to hold one state per character in the main buffer.
147 */
148#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149
150#ifndef YY_TYPEDEF_YY_BUFFER_STATE
151#define YY_TYPEDEF_YY_BUFFER_STATE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000152typedef struct yy_buffer_state *YY_BUFFER_STATE;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000153#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000154
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000155extern int llvmAsmleng;
156
157extern FILE *llvmAsmin, *llvmAsmout;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000158
159#define EOB_ACT_CONTINUE_SCAN 0
160#define EOB_ACT_END_OF_FILE 1
161#define EOB_ACT_LAST_MATCH 2
162
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000163 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
164 * access to the local variable yy_act. Since yyless() is a macro, it would break
165 * existing scanners that call yyless() from OUTSIDE llvmAsmlex.
166 * One obvious solution it to make yy_act a global. I tried that, and saw
167 * a 5% performance hit in a non-llvmAsmlineno scanner, because yy_act is
168 * normally declared as a register variable-- so it is not worth it.
169 */
170 #define YY_LESS_LINENO(n) \
171 do { \
172 int yyl;\
173 for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
174 if ( llvmAsmtext[yyl] == '\n' )\
175 --llvmAsmlineno;\
176 }while(0)
177
178/* Return all but the first "n" matched characters back to the input stream. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000179#define yyless(n) \
180 do \
181 { \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000182 /* Undo effects of setting up llvmAsmtext. */ \
183 int yyless_macro_arg = (n); \
184 YY_LESS_LINENO(yyless_macro_arg);\
185 *yy_cp = (yy_hold_char); \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000186 YY_RESTORE_YY_MORE_OFFSET \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000187 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
188 YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000189 } \
190 while ( 0 )
191
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000192#define unput(c) yyunput( c, (yytext_ptr) )
Reid Spencer6f407902007-01-13 05:00:46 +0000193
Reid Spencer68a24bd2005-08-27 18:50:39 +0000194/* The following is because we cannot portably get our hands on size_t
195 * (without autoconf's help, which isn't available because we want
196 * flex-generated scanners to compile on their own).
197 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000198
199#ifndef YY_TYPEDEF_YY_SIZE_T
200#define YY_TYPEDEF_YY_SIZE_T
Reid Spencer68a24bd2005-08-27 18:50:39 +0000201typedef unsigned int yy_size_t;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000202#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000203
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000204#ifndef YY_STRUCT_YY_BUFFER_STATE
205#define YY_STRUCT_YY_BUFFER_STATE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000206struct yy_buffer_state
207 {
208 FILE *yy_input_file;
209
210 char *yy_ch_buf; /* input buffer */
211 char *yy_buf_pos; /* current position in input buffer */
212
213 /* Size of input buffer in bytes, not including room for EOB
214 * characters.
215 */
216 yy_size_t yy_buf_size;
217
218 /* Number of characters read into yy_ch_buf, not including EOB
219 * characters.
220 */
221 int yy_n_chars;
222
223 /* Whether we "own" the buffer - i.e., we know we created it,
224 * and can realloc() it to grow it, and should free() it to
225 * delete it.
226 */
227 int yy_is_our_buffer;
228
229 /* Whether this is an "interactive" input source; if so, and
230 * if we're using stdio for input, then we want to use getc()
231 * instead of fread(), to make sure we stop fetching input after
232 * each newline.
233 */
234 int yy_is_interactive;
235
236 /* Whether we're considered to be at the beginning of a line.
237 * If so, '^' rules will be active on the next match, otherwise
238 * not.
239 */
240 int yy_at_bol;
241
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000242 int yy_bs_lineno; /**< The line count. */
243 int yy_bs_column; /**< The column count. */
244
Reid Spencer68a24bd2005-08-27 18:50:39 +0000245 /* Whether to try to fill the input buffer when we reach the
246 * end of it.
247 */
248 int yy_fill_buffer;
249
250 int yy_buffer_status;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000251
Reid Spencer68a24bd2005-08-27 18:50:39 +0000252#define YY_BUFFER_NEW 0
253#define YY_BUFFER_NORMAL 1
254 /* When an EOF's been seen but there's still some text to process
255 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
256 * shouldn't try reading from the input source any more. We might
257 * still have a bunch of tokens to match, though, because of
258 * possible backing-up.
259 *
260 * When we actually see the EOF, we change the status to "new"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000261 * (via llvmAsmrestart()), so that the user can continue scanning by
262 * just pointing llvmAsmin at a new input file.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000263 */
264#define YY_BUFFER_EOF_PENDING 2
Anton Korobeynikov178a3522007-01-12 19:22:51 +0000265
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000266 };
267#endif /* !YY_STRUCT_YY_BUFFER_STATE */
268
269/* Stack of input buffers. */
270static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
271static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
272static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000273
274/* We provide macros for accessing buffer states in case in the
275 * future we want to put the buffer states in a more general
276 * "scanner state".
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000277 *
278 * Returns the top of the stack, or NULL.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000279 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000280#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
281 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
282 : NULL)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000283
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000284/* Same as previous macro, but useful when we know that the buffer stack is not
285 * NULL or when we need an lvalue. For internal use only.
286 */
287#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
Reid Spencer68a24bd2005-08-27 18:50:39 +0000288
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000289/* yy_hold_char holds the character lost when llvmAsmtext is formed. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000290static char yy_hold_char;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000291static int yy_n_chars; /* number of characters read into yy_ch_buf */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000292int llvmAsmleng;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000293
294/* Points to current character in buffer. */
295static char *yy_c_buf_p = (char *) 0;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000296static int yy_init = 0; /* whether we need to initialize */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000297static int yy_start = 0; /* start state number */
298
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000299/* Flag which is used to allow llvmAsmwrap()'s to do buffer switches
300 * instead of setting up a fresh llvmAsmin. A bit of a hack ...
Reid Spencer68a24bd2005-08-27 18:50:39 +0000301 */
302static int yy_did_buffer_switch_on_eof;
303
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000304void llvmAsmrestart (FILE *input_file );
305void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer );
306YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file,int size );
307void llvmAsm_delete_buffer (YY_BUFFER_STATE b );
308void llvmAsm_flush_buffer (YY_BUFFER_STATE b );
309void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer );
310void llvmAsmpop_buffer_state (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000311
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000312static void llvmAsmensure_buffer_stack (void );
313static void llvmAsm_load_buffer_state (void );
314static void llvmAsm_init_buffer (YY_BUFFER_STATE b,FILE *file );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000315
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000316#define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000317
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000318YY_BUFFER_STATE llvmAsm_scan_buffer (char *base,yy_size_t size );
319YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str );
320YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes,int len );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000321
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000322void *llvmAsmalloc (yy_size_t );
323void *llvmAsmrealloc (void *,yy_size_t );
324void llvmAsmfree (void * );
325
326#define yy_new_buffer llvmAsm_create_buffer
Reid Spencer68a24bd2005-08-27 18:50:39 +0000327
328#define yy_set_interactive(is_interactive) \
329 { \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000330 if ( ! YY_CURRENT_BUFFER ){ \
331 llvmAsmensure_buffer_stack (); \
332 YY_CURRENT_BUFFER_LVALUE = \
333 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
334 } \
335 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000336 }
337
338#define yy_set_bol(at_bol) \
339 { \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000340 if ( ! YY_CURRENT_BUFFER ){\
341 llvmAsmensure_buffer_stack (); \
342 YY_CURRENT_BUFFER_LVALUE = \
343 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
344 } \
345 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000346 }
347
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000348#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000349
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000350/* Begin user sect3 */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000351
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000352#define llvmAsmwrap(n) 1
Reid Spencer68a24bd2005-08-27 18:50:39 +0000353#define YY_SKIP_YYWRAP
Anton Korobeynikov178a3522007-01-12 19:22:51 +0000354
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000355typedef unsigned char YY_CHAR;
356
357FILE *llvmAsmin = (FILE *) 0, *llvmAsmout = (FILE *) 0;
358
359typedef int yy_state_type;
360
361extern int llvmAsmlineno;
362
363int llvmAsmlineno = 1;
364
365extern char *llvmAsmtext;
366#define yytext_ptr llvmAsmtext
367
368static yy_state_type yy_get_previous_state (void );
369static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
370static int yy_get_next_buffer (void );
371static void yy_fatal_error (yyconst char msg[] );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000372
373/* Done after the current pattern has been matched and before the
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000374 * corresponding action - sets up llvmAsmtext.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000375 */
376#define YY_DO_BEFORE_ACTION \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000377 (yytext_ptr) = yy_bp; \
378 llvmAsmleng = (size_t) (yy_cp - yy_bp); \
379 (yy_hold_char) = *yy_cp; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000380 *yy_cp = '\0'; \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000381 (yy_c_buf_p) = yy_cp;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000383#define YY_NUM_RULES 134
384#define YY_END_OF_BUFFER 135
385/* This struct is not used in this scanner,
386 but its presence is necessary. */
387struct yy_trans_info
388 {
389 flex_int32_t yy_verify;
390 flex_int32_t yy_nxt;
391 };
392static yyconst flex_int16_t yy_accept[539] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000393 { 0,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000394 0, 0, 135, 133, 132, 132, 133, 133, 133, 133,
395 133, 133, 125, 125, 1, 133, 133, 133, 133, 133,
396 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
397 133, 133, 133, 133, 133, 133, 133, 133, 0, 123,
398 0, 121, 119, 128, 0, 126, 0, 130, 125, 0,
399 1, 0, 120, 129, 0, 0, 0, 0, 0, 0,
400 0, 105, 0, 36, 0, 0, 0, 0, 0, 0,
401 63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 0, 64, 0, 0, 0, 0, 0, 0, 59,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000404
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 123, 119, 130, 21, 130, 0, 131, 0, 124,
409 120, 49, 0, 0, 58, 0, 0, 34, 0, 0,
410 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
411 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413 0, 0, 0, 0, 0, 51, 0, 73, 78, 76,
414 77, 75, 74, 0, 79, 83, 0, 104, 0, 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000415
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000416 0, 0, 0, 68, 66, 100, 0, 0, 0, 67,
417 65, 0, 0, 50, 0, 0, 0, 0, 0, 0,
418 0, 81, 72, 70, 0, 71, 69, 0, 82, 80,
419 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
420 0, 122, 130, 0, 0, 0, 130, 0, 0, 0,
421 102, 0, 0, 84, 0, 0, 0, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 62, 54, 0,
423 0, 0, 0, 112, 57, 0, 0, 0, 61, 0,
424 0, 0, 0, 0, 0, 0, 0, 113, 101, 0,
425 0, 23, 0, 0, 127, 53, 0, 0, 87, 0,
426
427 0, 0, 56, 89, 0, 0, 25, 0, 0, 4,
428 0, 46, 52, 0, 0, 0, 0, 55, 0, 42,
429 0, 12, 0, 0, 86, 130, 31, 0, 0, 2,
430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
431 0, 0, 5, 0, 43, 91, 0, 0, 0, 0,
432 0, 0, 0, 88, 0, 0, 0, 0, 45, 0,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
434 0, 0, 0, 85, 0, 22, 0, 0, 0, 0,
435 0, 0, 0, 111, 0, 0, 39, 0, 0, 0,
436 7, 0, 0, 0, 44, 0, 0, 38, 95, 94,
437
438 0, 0, 8, 16, 0, 0, 0, 0, 107, 0,
439 110, 33, 47, 0, 0, 99, 0, 0, 93, 106,
440 26, 27, 92, 0, 108, 103, 0, 0, 0, 0,
441 0, 98, 0, 0, 6, 28, 0, 0, 0, 0,
442 0, 90, 0, 0, 0, 0, 0, 0, 0, 32,
443 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
444 0, 0, 0, 18, 0, 0, 0, 0, 10, 96,
445 11, 97, 0, 0, 0, 30, 0, 0, 0, 13,
446 0, 15, 14, 0, 0, 0, 0, 0, 0, 0,
447 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
448
449 0, 35, 0, 0, 0, 0, 17, 0, 0, 0,
450 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
451 0, 0, 0, 0, 0, 115, 0, 117, 118, 0,
452 40, 0, 116, 19, 41, 0, 20, 0
Reid Spencer68a24bd2005-08-27 18:50:39 +0000453 } ;
454
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000455static yyconst flex_int32_t yy_ec[256] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000456 { 0,
457 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
458 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
Reid Spencera54b7cb2007-01-12 07:05:14 +0000461 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
462 11, 11, 11, 12, 11, 13, 11, 14, 15, 1,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000463 1, 1, 1, 16, 17, 17, 17, 17, 18, 17,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000464 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
465 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000466 1, 1, 1, 1, 19, 1, 20, 21, 22, 23,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000467
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000468 24, 25, 26, 27, 28, 5, 29, 30, 31, 32,
469 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
470 43, 44, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478
479 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
480 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
482 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
484 1, 1, 1, 1, 1
485 } ;
486
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000487static yyconst flex_int32_t yy_meta[45] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000488 { 0,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000489 1, 1, 2, 3, 4, 1, 1, 4, 4, 4,
490 4, 4, 4, 5, 1, 1, 4, 4, 4, 4,
491 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
492 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
493 4, 4, 4, 4
Reid Spencer68a24bd2005-08-27 18:50:39 +0000494 } ;
495
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000496static yyconst flex_int16_t yy_base[547] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000497 { 0,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000498 0, 0, 1173, 1174, 1174, 1174, 1168, 1157, 35, 39,
499 43, 49, 55, 61, 0, 72, 64, 67, 66, 86,
500 76, 106, 91, 65, 133, 121, 117, 78, 152, 95,
501 90, 179, 137, 211, 139, 99, 148, 110, 1166, 1174,
502 1155, 1174, 0, 49, 185, 217, 98, 238, 254, 259,
503 0, 1164, 0, 200, 116, 149, 146, 118, 160, 63,
504 154, 1153, 153, 186, 208, 161, 264, 171, 205, 200,
505 1152, 219, 260, 222, 176, 228, 261, 124, 273, 274,
506 231, 269, 278, 279, 280, 281, 282, 290, 232, 202,
507 289, 291, 1151, 292, 294, 301, 309, 310, 312, 305,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000508
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000509 313, 316, 317, 321, 322, 323, 324, 328, 326, 330,
510 332, 337, 345, 329, 346, 1150, 347, 355, 357, 358,
511 359, 362, 363, 380, 364, 241, 377, 370, 113, 366,
512 378, 1149, 0, 399, 1148, 414, 432, 0, 1157, 1174,
513 0, 1146, 382, 365, 1145, 405, 401, 1144, 367, 408,
514 404, 1143, 427, 417, 433, 419, 434, 421, 441, 385,
515 1142, 442, 422, 438, 443, 444, 447, 446, 449, 450,
516 456, 454, 469, 457, 459, 472, 473, 476, 465, 479,
517 480, 481, 485, 487, 488, 1141, 492, 1140, 1139, 1138,
518 1137, 1136, 1135, 491, 1134, 1133, 493, 1132, 522, 496,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000519
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000520 499, 494, 510, 1131, 1130, 1129, 498, 501, 497, 1128,
521 1127, 524, 505, 1126, 514, 535, 537, 536, 540, 542,
522 539, 1125, 1124, 1123, 543, 1122, 1121, 544, 1120, 1119,
523 545, 546, 547, 553, 506, 557, 561, 566, 1118, 567,
524 568, 1174, 581, 576, 585, 597, 602, 587, 603, 588,
525 1117, 589, 604, 1116, 608, 590, 609, 612, 613, 615,
526 617, 619, 621, 620, 622, 623, 624, 1115, 1114, 626,
527 627, 630, 634, 1113, 1112, 638, 635, 639, 1111, 646,
528 640, 643, 644, 648, 647, 657, 658, 1110, 1109, 660,
529 664, 1108, 661, 663, 0, 1107, 669, 668, 1106, 670,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000530
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000531 674, 678, 1105, 1104, 675, 687, 1103, 688, 690, 1102,
532 691, 1101, 1100, 692, 693, 694, 696, 1099, 697, 1098,
533 701, 1097, 705, 707, 1096, 712, 1095, 712, 713, 1094,
534 715, 723, 720, 724, 717, 727, 729, 732, 733, 734,
535 740, 735, 1093, 741, 1092, 1091, 742, 745, 746, 747,
536 750, 751, 748, 1090, 754, 755, 760, 761, 1089, 763,
537 762, 767, 772, 774, 768, 775, 776, 779, 783, 1088,
538 784, 785, 786, 1087, 791, 1086, 793, 789, 794, 800,
539 802, 795, 804, 1085, 807, 805, 1084, 810, 812, 813,
540 1083, 815, 816, 817, 1082, 820, 818, 1081, 1080, 1079,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000541
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000542 824, 827, 1078, 1077, 830, 833, 831, 834, 1076, 839,
543 1075, 1074, 1073, 845, 846, 1072, 849, 850, 1071, 1070,
544 1069, 1068, 1067, 852, 1066, 1065, 851, 848, 853, 854,
545 855, 1064, 856, 857, 1063, 1062, 860, 866, 869, 870,
546 874, 1061, 875, 872, 877, 878, 879, 881, 883, 1060,
547 887, 889, 892, 895, 897, 900, 902, 903, 1059, 904,
548 906, 909, 910, 1058, 911, 914, 912, 918, 1057, 1056,
549 1055, 1054, 924, 917, 916, 1053, 931, 935, 937, 1042,
550 919, 1032, 1031, 938, 940, 922, 942, 945, 947, 949,
551 952, 953, 954, 957, 1030, 956, 958, 960, 961, 964,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000552
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000553 965, 1028, 966, 967, 972, 977, 1027, 969, 978, 981,
554 982, 984, 1025, 990, 986, 987, 991, 992, 996, 997,
555 998, 999, 1004, 672, 1005, 1024, 1008, 1022, 1019, 1010,
556 1017, 1013, 1016, 671, 502, 1011, 458, 1174, 1047, 1049,
557 254, 1054, 1057, 220, 1061, 167
Reid Spencer68a24bd2005-08-27 18:50:39 +0000558 } ;
559
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000560static yyconst flex_int16_t yy_def[547] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000561 { 0,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000562 538, 1, 538, 538, 538, 538, 539, 540, 541, 538,
563 540, 540, 540, 540, 542, 543, 540, 540, 540, 540,
564 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
565 540, 540, 540, 540, 540, 540, 540, 540, 539, 538,
566 540, 538, 544, 538, 538, 540, 540, 540, 540, 540,
567 542, 545, 546, 538, 540, 540, 540, 540, 540, 540,
568 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
569 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
570 540, 25, 540, 540, 540, 540, 540, 540, 540, 540,
571 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000572
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000573 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
574 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
575 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
576 540, 538, 544, 538, 540, 540, 540, 50, 545, 538,
577 546, 540, 540, 540, 540, 540, 540, 540, 540, 540,
578 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
579 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
580 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
581 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
582 540, 540, 540, 540, 540, 540, 540, 540, 50, 540,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000583
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000584 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
585 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
586 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
587 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
588 540, 538, 538, 538, 538, 540, 540, 540, 540, 540,
589 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
590 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
591 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
592 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
593 540, 540, 540, 540, 199, 540, 540, 540, 540, 540,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000594
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000595 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
596 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
597 540, 540, 540, 540, 540, 538, 540, 540, 540, 540,
598 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
599 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
600 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
601 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
602 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
603 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
604 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000605
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000606 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
607 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
608 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
609 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
610 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
611 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
612 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
613 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
614 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
615 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000616
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000617 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
618 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
619 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
620 540, 540, 540, 540, 540, 540, 540, 0, 538, 538,
621 538, 538, 538, 538, 538, 538
Reid Spencer68a24bd2005-08-27 18:50:39 +0000622 } ;
623
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000624static yyconst flex_int16_t yy_nxt[1219] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000625 { 0,
626 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000627 14, 14, 14, 4, 15, 16, 8, 8, 8, 17,
628 18, 19, 20, 21, 22, 23, 24, 25, 8, 26,
629 27, 28, 29, 30, 8, 31, 32, 33, 34, 35,
630 36, 37, 8, 38, 44, 44, 44, 44, 45, 45,
631 45, 45, 46, 46, 46, 46, 42, 47, 44, 44,
632 44, 44, 42, 48, 49, 49, 49, 49, 42, 48,
633 49, 49, 49, 49, 42, 52, 42, 42, 42, 42,
634 42, 54, 54, 54, 54, 63, 55, 64, 149, 42,
635 60, 42, 81, 56, 61, 57, 50, 58, 65, 42,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000636
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000637 59, 93, 62, 42, 42, 66, 135, 70, 42, 67,
638 71, 42, 42, 103, 79, 68, 94, 72, 69, 42,
639 80, 101, 128, 42, 238, 73, 42, 74, 75, 42,
640 42, 42, 102, 131, 42, 76, 90, 42, 142, 77,
641 86, 78, 82, 82, 82, 82, 42, 170, 87, 91,
642 42, 146, 42, 88, 83, 92, 115, 89, 126, 42,
643 129, 42, 42, 84, 85, 42, 42, 42, 145, 116,
644 141, 127, 117, 42, 42, 95, 143, 96, 144, 118,
645 130, 97, 151, 98, 42, 99, 147, 100, 104, 42,
646 148, 150, 42, 134, 45, 45, 45, 45, 155, 42,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000647
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000648 159, 105, 106, 166, 107, 108, 109, 152, 110, 54,
649 54, 54, 54, 42, 111, 42, 112, 113, 42, 114,
650 104, 42, 161, 133, 42, 48, 46, 46, 46, 46,
651 42, 184, 42, 119, 120, 42, 121, 153, 122, 154,
652 123, 42, 124, 160, 42, 42, 125, 136, 136, 136,
653 136, 42, 165, 173, 42, 137, 162, 43, 183, 234,
654 167, 137, 48, 49, 49, 49, 49, 42, 138, 138,
655 138, 138, 42, 42, 42, 138, 138, 42, 138, 138,
656 138, 138, 138, 138, 168, 156, 42, 42, 157, 163,
657 41, 42, 42, 42, 42, 42, 164, 158, 169, 41,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000658
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000659 41, 180, 42, 42, 42, 42, 172, 42, 174, 182,
660 171, 185, 175, 181, 42, 176, 177, 178, 42, 179,
661 186, 187, 42, 42, 189, 42, 42, 195, 188, 42,
662 42, 194, 191, 193, 42, 42, 42, 42, 190, 42,
663 196, 42, 42, 42, 201, 42, 192, 204, 208, 200,
664 42, 197, 202, 210, 198, 212, 215, 206, 42, 42,
665 42, 205, 199, 209, 203, 214, 207, 211, 42, 213,
666 42, 42, 42, 216, 218, 42, 42, 42, 42, 42,
667 42, 217, 223, 42, 221, 219, 226, 233, 220, 237,
668 42, 42, 222, 42, 252, 42, 224, 249, 42, 225,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000669
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000670 227, 239, 228, 229, 235, 263, 236, 248, 243, 243,
671 243, 243, 230, 240, 42, 231, 244, 42, 42, 241,
672 232, 42, 244, 136, 136, 136, 136, 42, 250, 253,
673 42, 137, 42, 254, 42, 42, 251, 137, 245, 246,
674 42, 247, 247, 247, 247, 42, 42, 42, 258, 255,
675 260, 42, 257, 256, 42, 42, 42, 42, 266, 42,
676 42, 259, 42, 42, 261, 264, 270, 42, 262, 42,
677 42, 42, 42, 274, 277, 267, 268, 265, 42, 276,
678 275, 272, 42, 269, 273, 42, 42, 271, 280, 42,
679 279, 278, 42, 42, 42, 281, 282, 285, 42, 283,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000680
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000681 42, 42, 286, 288, 42, 42, 42, 42, 287, 42,
682 42, 42, 42, 284, 42, 42, 290, 298, 42, 42,
683 289, 292, 300, 42, 301, 293, 291, 42, 320, 302,
684 294, 295, 295, 295, 295, 296, 297, 42, 295, 295,
685 305, 295, 295, 295, 295, 295, 295, 299, 42, 42,
686 42, 306, 42, 42, 303, 42, 42, 42, 42, 42,
687 42, 304, 308, 310, 307, 312, 42, 315, 316, 309,
688 42, 311, 319, 317, 42, 314, 321, 318, 313, 42,
689 42, 42, 245, 245, 323, 326, 326, 326, 326, 322,
690 243, 243, 243, 243, 326, 326, 326, 326, 244, 324,
Reid Spencer14310612006-12-31 05:40:51 +0000691
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000692 42, 42, 42, 42, 244, 325, 247, 247, 247, 247,
693 42, 247, 247, 247, 247, 42, 42, 42, 327, 329,
694 330, 42, 42, 331, 328, 42, 42, 333, 42, 332,
695 42, 335, 42, 42, 42, 42, 42, 42, 334, 42,
696 42, 342, 337, 42, 336, 344, 343, 42, 42, 339,
697 340, 42, 42, 42, 351, 341, 42, 42, 338, 42,
698 42, 42, 352, 345, 346, 354, 347, 350, 348, 353,
699 42, 42, 349, 42, 42, 358, 42, 42, 355, 356,
700 357, 42, 42, 42, 42, 42, 359, 42, 42, 366,
701 360, 42, 361, 362, 367, 364, 365, 368, 370, 363,
Reid Spencer14310612006-12-31 05:40:51 +0000702
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000703 42, 42, 369, 42, 42, 42, 42, 42, 371, 42,
704 42, 372, 374, 377, 42, 532, 375, 376, 42, 373,
705 42, 326, 326, 326, 326, 42, 42, 378, 42, 381,
706 42, 384, 379, 42, 383, 385, 42, 42, 380, 388,
707 42, 382, 42, 389, 387, 42, 42, 42, 42, 392,
708 391, 386, 390, 42, 42, 42, 397, 395, 42, 42,
709 42, 42, 398, 42, 42, 393, 394, 42, 42, 399,
710 402, 396, 400, 42, 42, 42, 42, 401, 405, 403,
711 42, 42, 404, 411, 409, 42, 407, 42, 42, 42,
712 412, 406, 42, 408, 410, 413, 42, 42, 42, 42,
Reid Spencer14310612006-12-31 05:40:51 +0000713
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000714 415, 414, 42, 418, 42, 417, 42, 42, 42, 422,
715 420, 425, 416, 42, 424, 42, 419, 42, 42, 426,
716 42, 428, 421, 42, 423, 42, 42, 427, 42, 42,
717 42, 42, 429, 42, 431, 430, 435, 42, 439, 440,
718 42, 433, 432, 42, 42, 442, 42, 42, 437, 438,
719 446, 436, 42, 444, 434, 441, 445, 443, 42, 42,
720 448, 42, 42, 42, 42, 42, 42, 42, 42, 42,
721 42, 447, 451, 42, 452, 456, 449, 450, 453, 42,
722 454, 457, 42, 42, 455, 42, 458, 42, 42, 460,
723 42, 42, 42, 459, 42, 461, 42, 465, 466, 464,
Reid Spencer14310612006-12-31 05:40:51 +0000724
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000725 42, 462, 42, 467, 471, 42, 468, 469, 42, 463,
726 42, 475, 474, 42, 470, 42, 42, 42, 476, 42,
727 472, 478, 42, 42, 42, 42, 473, 42, 480, 42,
728 42, 42, 42, 484, 477, 42, 491, 42, 490, 479,
729 485, 488, 481, 482, 42, 486, 483, 489, 42, 487,
730 42, 42, 492, 42, 493, 42, 495, 496, 42, 498,
731 42, 499, 42, 497, 494, 42, 42, 42, 501, 42,
732 42, 42, 504, 42, 42, 500, 506, 42, 42, 42,
733 42, 503, 42, 505, 507, 42, 502, 511, 508, 513,
734 42, 42, 517, 509, 42, 42, 514, 42, 510, 42,
Reid Spencer14310612006-12-31 05:40:51 +0000735
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000736 42, 515, 512, 42, 42, 42, 516, 523, 519, 42,
737 42, 42, 42, 520, 524, 518, 521, 42, 42, 522,
738 530, 42, 525, 42, 42, 531, 42, 526, 527, 42,
739 42, 535, 42, 529, 528, 42, 536, 42, 42, 534,
740 42, 42, 533, 42, 42, 42, 537, 39, 39, 39,
741 39, 39, 41, 41, 51, 42, 51, 51, 51, 53,
742 53, 139, 139, 139, 139, 139, 42, 42, 42, 42,
743 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
744 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
745 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
Reid Spencer14310612006-12-31 05:40:51 +0000746
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000747 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
748 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
749 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
750 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
751 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
752 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
753 140, 42, 242, 42, 42, 42, 42, 140, 42, 132,
754 42, 40, 538, 3, 538, 538, 538, 538, 538, 538,
755 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
756 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
Chris Lattner75466192006-05-19 21:28:53 +0000757
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000758 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
759 538, 538, 538, 538, 538, 538, 538, 538
Reid Spencer68a24bd2005-08-27 18:50:39 +0000760 } ;
761
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000762static yyconst flex_int16_t yy_chk[1219] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000763 { 0,
764 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000768 1, 1, 1, 1, 9, 9, 9, 9, 10, 10,
769 10, 10, 11, 11, 11, 11, 11, 12, 44, 44,
770 44, 44, 12, 13, 13, 13, 13, 13, 13, 14,
771 14, 14, 14, 14, 14, 16, 60, 17, 24, 19,
772 18, 16, 16, 16, 16, 19, 17, 19, 60, 21,
773 18, 28, 24, 17, 18, 17, 13, 17, 19, 20,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000774
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000775 17, 28, 18, 31, 23, 20, 47, 21, 30, 20,
776 21, 47, 36, 31, 23, 20, 28, 21, 20, 22,
777 23, 30, 36, 38, 129, 22, 129, 22, 22, 55,
778 27, 58, 30, 38, 26, 22, 27, 78, 55, 22,
779 26, 22, 25, 25, 25, 25, 25, 78, 26, 27,
780 33, 58, 35, 26, 25, 27, 33, 26, 35, 57,
781 37, 37, 56, 25, 25, 29, 63, 61, 57, 33,
782 546, 35, 33, 59, 66, 29, 56, 29, 56, 33,
783 37, 29, 63, 29, 68, 29, 59, 29, 32, 75,
784 59, 61, 32, 45, 45, 45, 45, 45, 66, 64,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000785
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000786 68, 32, 32, 75, 32, 32, 32, 64, 32, 54,
787 54, 54, 54, 70, 32, 90, 32, 32, 69, 32,
788 34, 65, 70, 544, 34, 46, 46, 46, 46, 46,
789 46, 90, 72, 34, 34, 74, 34, 65, 34, 65,
790 34, 76, 34, 69, 81, 89, 34, 48, 48, 48,
791 48, 48, 74, 81, 126, 48, 72, 541, 89, 126,
792 76, 48, 49, 49, 49, 49, 49, 49, 50, 50,
793 50, 50, 50, 73, 77, 50, 50, 67, 50, 50,
794 50, 50, 50, 50, 77, 67, 79, 80, 67, 73,
795 82, 83, 84, 85, 86, 87, 73, 67, 77, 82,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000796
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000797 82, 86, 91, 88, 92, 94, 80, 95, 83, 88,
798 79, 91, 84, 87, 96, 85, 85, 85, 100, 85,
799 92, 94, 97, 98, 96, 99, 101, 100, 95, 102,
800 103, 99, 97, 98, 104, 105, 106, 107, 96, 109,
801 101, 108, 114, 110, 106, 111, 97, 107, 109, 105,
802 112, 102, 106, 110, 103, 111, 114, 108, 113, 115,
803 117, 107, 104, 109, 106, 113, 108, 110, 118, 112,
804 119, 120, 121, 115, 117, 122, 123, 125, 144, 130,
805 149, 115, 121, 128, 119, 117, 123, 125, 118, 128,
806 127, 131, 120, 124, 149, 143, 121, 144, 160, 122,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000807
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000808 123, 130, 124, 124, 127, 160, 127, 143, 134, 134,
809 134, 134, 124, 131, 147, 124, 134, 151, 146, 131,
810 124, 150, 134, 136, 136, 136, 136, 136, 146, 150,
811 154, 136, 156, 151, 158, 163, 147, 136, 137, 137,
812 153, 137, 137, 137, 137, 137, 155, 157, 156, 153,
813 158, 164, 155, 154, 159, 162, 165, 166, 163, 168,
814 167, 157, 169, 170, 159, 162, 167, 172, 159, 171,
815 174, 537, 175, 170, 172, 164, 165, 162, 179, 171,
816 170, 169, 173, 166, 169, 176, 177, 168, 175, 178,
817 174, 173, 180, 181, 182, 176, 177, 179, 183, 178,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000818
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000819 184, 185, 180, 182, 194, 187, 197, 202, 181, 200,
820 209, 207, 201, 178, 208, 535, 184, 202, 213, 235,
821 183, 187, 207, 203, 208, 194, 185, 215, 235, 209,
822 197, 199, 199, 199, 199, 200, 201, 212, 199, 199,
823 213, 199, 199, 199, 199, 199, 199, 203, 216, 218,
824 217, 215, 221, 219, 212, 220, 225, 228, 231, 232,
825 233, 212, 217, 219, 216, 220, 234, 228, 231, 218,
826 236, 219, 234, 232, 237, 225, 236, 233, 221, 238,
827 240, 241, 244, 244, 238, 244, 244, 244, 244, 237,
828 243, 243, 243, 243, 245, 245, 245, 245, 243, 240,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000829
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000830 248, 250, 252, 256, 243, 241, 246, 246, 246, 246,
831 246, 247, 247, 247, 247, 247, 249, 253, 248, 250,
832 252, 255, 257, 253, 249, 258, 259, 256, 260, 255,
833 261, 258, 262, 264, 263, 265, 266, 267, 257, 270,
834 271, 265, 260, 272, 259, 267, 266, 273, 277, 262,
835 263, 276, 278, 281, 277, 264, 282, 283, 261, 280,
836 285, 284, 278, 270, 271, 281, 272, 276, 272, 280,
837 286, 287, 273, 290, 293, 285, 294, 291, 282, 283,
838 284, 298, 297, 300, 534, 524, 286, 301, 305, 298,
839 287, 302, 290, 291, 300, 294, 297, 301, 305, 293,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000840
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000841 306, 308, 302, 309, 311, 314, 315, 316, 306, 317,
842 319, 308, 311, 316, 321, 524, 314, 315, 323, 309,
843 324, 326, 326, 326, 326, 328, 329, 317, 331, 323,
844 335, 328, 319, 333, 324, 329, 332, 334, 321, 333,
845 336, 323, 337, 334, 332, 338, 339, 340, 342, 337,
846 336, 331, 335, 341, 344, 347, 342, 340, 348, 349,
847 350, 353, 344, 351, 352, 338, 339, 355, 356, 347,
848 350, 341, 348, 357, 358, 361, 360, 349, 353, 351,
849 362, 365, 352, 361, 358, 363, 356, 364, 366, 367,
850 362, 355, 368, 357, 360, 363, 369, 371, 372, 373,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000851
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000852 365, 364, 378, 368, 375, 367, 377, 379, 382, 373,
853 371, 378, 366, 380, 377, 381, 369, 383, 386, 379,
854 385, 381, 372, 388, 375, 389, 390, 380, 392, 393,
855 394, 397, 382, 396, 385, 383, 390, 401, 396, 396,
856 402, 388, 386, 405, 407, 401, 406, 408, 393, 394,
857 407, 392, 410, 405, 389, 397, 406, 402, 414, 415,
858 410, 428, 417, 418, 427, 424, 429, 430, 431, 433,
859 434, 408, 417, 437, 418, 429, 414, 415, 424, 438,
860 427, 430, 439, 440, 428, 444, 431, 441, 443, 434,
861 445, 446, 447, 433, 448, 437, 449, 441, 443, 440,
Chris Lattnere869eef2005-11-12 00:11:49 +0000862
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000863 451, 438, 452, 444, 448, 453, 445, 446, 454, 439,
864 455, 453, 452, 456, 447, 457, 458, 460, 454, 461,
865 449, 456, 462, 463, 465, 467, 451, 466, 458, 475,
866 474, 468, 481, 463, 455, 486, 475, 473, 474, 457,
867 465, 468, 460, 461, 477, 466, 462, 473, 478, 467,
868 479, 484, 477, 485, 478, 487, 481, 484, 488, 486,
869 489, 487, 490, 485, 479, 491, 492, 493, 489, 496,
870 494, 497, 492, 498, 499, 488, 494, 500, 501, 503,
871 504, 491, 508, 493, 496, 505, 490, 500, 497, 503,
872 506, 509, 508, 498, 510, 511, 504, 512, 499, 515,
Chris Lattner75466192006-05-19 21:28:53 +0000873
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000874 516, 505, 501, 514, 517, 518, 506, 515, 510, 519,
875 520, 521, 522, 511, 516, 509, 512, 523, 525, 514,
876 522, 527, 517, 530, 536, 523, 532, 518, 519, 533,
877 531, 530, 529, 521, 520, 528, 532, 526, 513, 527,
878 507, 502, 525, 495, 483, 482, 536, 539, 539, 539,
879 539, 539, 540, 540, 542, 480, 542, 542, 542, 543,
880 543, 545, 545, 545, 545, 545, 476, 472, 471, 470,
881 469, 464, 459, 450, 442, 436, 435, 432, 426, 425,
882 423, 422, 421, 420, 419, 416, 413, 412, 411, 409,
883 404, 403, 400, 399, 398, 395, 391, 387, 384, 376,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000884
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000885 374, 370, 359, 354, 346, 345, 343, 330, 327, 325,
886 322, 320, 318, 313, 312, 310, 307, 304, 303, 299,
887 296, 292, 289, 288, 279, 275, 274, 269, 268, 254,
888 251, 239, 230, 229, 227, 226, 224, 223, 222, 214,
889 211, 210, 206, 205, 204, 198, 196, 195, 193, 192,
890 191, 190, 189, 188, 186, 161, 152, 148, 145, 142,
891 139, 135, 132, 116, 93, 71, 62, 52, 41, 39,
892 8, 7, 3, 538, 538, 538, 538, 538, 538, 538,
893 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
894 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
Reid Spencer3da59db2006-11-27 01:05:10 +0000895
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000896 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
897 538, 538, 538, 538, 538, 538, 538, 538
Reid Spencer68a24bd2005-08-27 18:50:39 +0000898 } ;
899
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000900/* Table of booleans, true if rule could match eol. */
901static yyconst flex_int32_t yy_rule_can_match_eol[135] =
902 { 0,
9030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
910
911static yy_state_type yy_last_accepting_state;
912static char *yy_last_accepting_cpos;
913
914extern int llvmAsm_flex_debug;
915int llvmAsm_flex_debug = 0;
916
917/* The intent behind this definition is that it'll catch
918 * any uses of REJECT which flex missed.
919 */
920#define REJECT reject_used_but_not_detected
Reid Spencer68a24bd2005-08-27 18:50:39 +0000921#define yymore() yymore_used_but_not_detected
922#define YY_MORE_ADJ 0
923#define YY_RESTORE_YY_MORE_OFFSET
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000924char *llvmAsmtext;
925#line 1 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000926/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
927//
928// The LLVM Compiler Infrastructure
929//
930// This file was developed by the LLVM research group and is distributed under
931// the University of Illinois Open Source License. See LICENSE.TXT for details.
932//
933//===----------------------------------------------------------------------===//
934//
935// This file implements the flex scanner for LLVM assembly languages files.
936//
937//===----------------------------------------------------------------------===*/
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000938#line 28 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000939#include "ParserInternals.h"
940#include "llvm/Module.h"
941#include <list>
942#include "llvmAsmParser.h"
943#include <cctype>
944#include <cstdlib>
945
946void set_scan_file(FILE * F){
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000947 llvmAsm_switch_to_buffer(llvmAsm_create_buffer(F,YY_BUF_SIZE ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000948}
949void set_scan_string (const char * str) {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000950 llvmAsm_scan_string (str);
Reid Spencer68a24bd2005-08-27 18:50:39 +0000951}
952
Reid Spencer3ed469c2006-11-02 20:25:50 +0000953// Construct a token value for a non-obsolete token
Reid Spencer68a24bd2005-08-27 18:50:39 +0000954#define RET_TOK(type, Enum, sym) \
Reid Spencera132e042006-12-03 05:46:11 +0000955 llvmAsmlval.type = Instruction::Enum; \
956 return sym
957
Reid Spencer3ed469c2006-11-02 20:25:50 +0000958// Construct a token value for an obsolete token
Reid Spencera132e042006-12-03 05:46:11 +0000959#define RET_TY(CTYPE, SYM) \
960 llvmAsmlval.PrimType = CTYPE;\
Reid Spencer481169e2006-12-01 00:33:46 +0000961 return SYM
Reid Spencer68a24bd2005-08-27 18:50:39 +0000962
963namespace llvm {
964
965// TODO: All of the static identifiers are figured out by the lexer,
966// these should be hashed to reduce the lexer size
967
968
969// atoull - Convert an ascii string of decimal digits into the unsigned long
970// long representation... this does not have to do input error checking,
971// because we know that the input will be matched by a suitable regex...
972//
973static uint64_t atoull(const char *Buffer) {
974 uint64_t Result = 0;
975 for (; *Buffer; Buffer++) {
976 uint64_t OldRes = Result;
977 Result *= 10;
978 Result += *Buffer-'0';
979 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +0000980 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +0000981 }
982 return Result;
983}
984
985static uint64_t HexIntToVal(const char *Buffer) {
986 uint64_t Result = 0;
987 for (; *Buffer; ++Buffer) {
988 uint64_t OldRes = Result;
989 Result *= 16;
990 char C = *Buffer;
991 if (C >= '0' && C <= '9')
992 Result += C-'0';
993 else if (C >= 'A' && C <= 'F')
994 Result += C-'A'+10;
995 else if (C >= 'a' && C <= 'f')
996 Result += C-'a'+10;
997
998 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +0000999 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001000 }
1001 return Result;
1002}
1003
1004
1005// HexToFP - Convert the ascii string in hexidecimal format to the floating
1006// point representation of it.
1007//
1008static double HexToFP(const char *Buffer) {
1009 // Behave nicely in the face of C TBAA rules... see:
1010 // http://www.nullstone.com/htmls/category/aliastyp.htm
1011 union {
1012 uint64_t UI;
1013 double FP;
1014 } UIntToFP;
1015 UIntToFP.UI = HexIntToVal(Buffer);
1016
1017 assert(sizeof(double) == sizeof(uint64_t) &&
1018 "Data sizes incompatible on this target!");
1019 return UIntToFP.FP; // Cast Hex constant to double
1020}
1021
1022
1023// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
1024// appropriate character. If AllowNull is set to false, a \00 value will cause
1025// an exception to be thrown.
1026//
1027// If AllowNull is set to true, the return value of the function points to the
1028// last character of the string in memory.
1029//
1030char *UnEscapeLexed(char *Buffer, bool AllowNull) {
1031 char *BOut = Buffer;
1032 for (char *BIn = Buffer; *BIn; ) {
1033 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
1034 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
1035 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
1036 if (!AllowNull && !*BOut)
Reid Spencer61c83e02006-08-18 08:43:06 +00001037 GenerateError("String literal cannot accept \\00 escape!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001038
1039 BIn[3] = Tmp; // Restore character
1040 BIn += 3; // Skip over handled chars
1041 ++BOut;
1042 } else {
1043 *BOut++ = *BIn++;
1044 }
1045 }
1046
1047 return BOut;
1048}
1049
1050} // End llvm namespace
1051
1052using namespace llvm;
1053
1054#define YY_NEVER_INTERACTIVE 1
1055/* Comments start with a ; and go till end of line */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001056/* Local Values and Type identifiers start with a % sign */
1057/* Global Value identifiers start with an @ sign */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001058/* Label identifiers end with a colon */
1059/* Quoted names can contain any character except " and \ */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001060/* LocalVarID/GlobalVarID: match an unnamed local variable slot ID. */
1061/* Integer types are specified with i and a bitwidth */
1062/* E[PN]Integer: match positive and negative literal integer values. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001063/* FPConstant - A Floating point constant.
1064 */
1065/* HexFPConstant - Floating point constant represented in IEEE format as a
1066 * hexadecimal number for when exponential notation is not precise enough.
1067 */
1068/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
1069 * it to deal with 64 bit numbers.
1070 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001071#line 1072 "Lexer.cpp"
1072
1073#define INITIAL 0
1074
1075#ifndef YY_NO_UNISTD_H
1076/* Special case for "unistd.h", since it is non-ANSI. We include it way
1077 * down here because we want the user's section 1 to have been scanned first.
1078 * The user has a chance to override it with an option.
1079 */
1080#include <unistd.h>
1081#endif
1082
1083#ifndef YY_EXTRA_TYPE
1084#define YY_EXTRA_TYPE void *
1085#endif
1086
1087static int yy_init_globals (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001088
1089/* Macros after this point can all be overridden by user definitions in
1090 * section 1.
1091 */
1092
1093#ifndef YY_SKIP_YYWRAP
1094#ifdef __cplusplus
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001095extern "C" int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001096#else
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001097extern int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001098#endif
1099#endif
1100
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001101 static inline void yyunput (int c,char *buf_ptr );
1102
Reid Spencer68a24bd2005-08-27 18:50:39 +00001103#ifndef yytext_ptr
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001104static void yy_flex_strncpy (char *,yyconst char *,int );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001105#endif
1106
1107#ifdef YY_NEED_STRLEN
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001108static int yy_flex_strlen (yyconst char * );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001109#endif
1110
1111#ifndef YY_NO_INPUT
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001112
Reid Spencer68a24bd2005-08-27 18:50:39 +00001113#ifdef __cplusplus
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001114static int yyinput (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001115#else
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001116static int input (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001117#endif
1118
Reid Spencer68a24bd2005-08-27 18:50:39 +00001119#endif
1120
1121/* Amount of stuff to slurp up with each read. */
1122#ifndef YY_READ_BUF_SIZE
1123#define YY_READ_BUF_SIZE 8192
1124#endif
1125
1126/* Copy whatever the last rule matched to the standard output. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001127#ifndef ECHO
1128/* This used to be an fputs(), but since the string might contain NUL's,
1129 * we now use fwrite().
1130 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001131#define ECHO (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001132#endif
1133
1134/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1135 * is returned in "result".
1136 */
1137#ifndef YY_INPUT
1138#define YY_INPUT(buf,result,max_size) \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001139 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001140 { \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001141 int c = '*'; \
1142 size_t n; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001143 for ( n = 0; n < max_size && \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001144 (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001145 buf[n] = (char) c; \
1146 if ( c == '\n' ) \
1147 buf[n++] = (char) c; \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001148 if ( c == EOF && ferror( llvmAsmin ) ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001149 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1150 result = n; \
1151 } \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001152 else \
1153 { \
1154 errno=0; \
1155 while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
1156 { \
1157 if( errno != EINTR) \
1158 { \
1159 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1160 break; \
1161 } \
1162 errno=0; \
1163 clearerr(llvmAsmin); \
1164 } \
1165 }\
1166\
1167
Reid Spencer68a24bd2005-08-27 18:50:39 +00001168#endif
1169
1170/* No semi-colon after return; correct usage is to write "yyterminate();" -
1171 * we don't want an extra ';' after the "return" because that will cause
1172 * some compilers to complain about unreachable statements.
1173 */
1174#ifndef yyterminate
1175#define yyterminate() return YY_NULL
1176#endif
1177
1178/* Number of entries by which start-condition stack grows. */
1179#ifndef YY_START_STACK_INCR
1180#define YY_START_STACK_INCR 25
1181#endif
1182
1183/* Report a fatal error. */
1184#ifndef YY_FATAL_ERROR
1185#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1186#endif
1187
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001188/* end tables serialization structures and prototypes */
1189
Reid Spencer68a24bd2005-08-27 18:50:39 +00001190/* Default declaration of generated scanner - a define so the user can
1191 * easily add parameters.
1192 */
1193#ifndef YY_DECL
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001194#define YY_DECL_IS_OURS 1
Reid Spencer68a24bd2005-08-27 18:50:39 +00001195
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001196extern int llvmAsmlex (void);
1197
1198#define YY_DECL int llvmAsmlex (void)
1199#endif /* !YY_DECL */
1200
1201/* Code executed at the beginning of each rule, after llvmAsmtext and llvmAsmleng
Reid Spencer68a24bd2005-08-27 18:50:39 +00001202 * have been set up.
1203 */
1204#ifndef YY_USER_ACTION
1205#define YY_USER_ACTION
1206#endif
1207
1208/* Code executed at the end of each rule. */
1209#ifndef YY_BREAK
1210#define YY_BREAK break;
1211#endif
1212
1213#define YY_RULE_SETUP \
1214 YY_USER_ACTION
1215
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001216/** The main scanner function which does all the work.
1217 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001218YY_DECL
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001219{
Reid Spencer68a24bd2005-08-27 18:50:39 +00001220 register yy_state_type yy_current_state;
Reid Spencer41dff5e2007-01-26 08:05:27 +00001221 register char *yy_cp, *yy_bp;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001222 register int yy_act;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001223
1224#line 189 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001225
1226
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001227#line 1228 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001228
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001229 if ( !(yy_init) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001230 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001231 (yy_init) = 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001232
1233#ifdef YY_USER_INIT
1234 YY_USER_INIT;
1235#endif
1236
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001237 if ( ! (yy_start) )
1238 (yy_start) = 1; /* first start state */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001239
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001240 if ( ! llvmAsmin )
1241 llvmAsmin = stdin;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001242
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001243 if ( ! llvmAsmout )
1244 llvmAsmout = stdout;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001245
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001246 if ( ! YY_CURRENT_BUFFER ) {
1247 llvmAsmensure_buffer_stack ();
1248 YY_CURRENT_BUFFER_LVALUE =
1249 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
1250 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001251
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001252 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001253 }
1254
1255 while ( 1 ) /* loops until end-of-file is reached */
1256 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001257 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001258
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001259 /* Support of llvmAsmtext. */
1260 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001261
1262 /* yy_bp points to the position in yy_ch_buf of the start of
1263 * the current run.
1264 */
1265 yy_bp = yy_cp;
1266
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001267 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001268yy_match:
1269 do
1270 {
1271 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001272 if ( yy_accept[yy_current_state] )
1273 {
1274 (yy_last_accepting_state) = yy_current_state;
1275 (yy_last_accepting_cpos) = yy_cp;
1276 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001277 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1278 {
1279 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001280 if ( yy_current_state >= 539 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001281 yy_c = yy_meta[(unsigned int) yy_c];
1282 }
1283 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001284 ++yy_cp;
1285 }
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001286 while ( yy_current_state != 538 );
1287 yy_cp = (yy_last_accepting_cpos);
1288 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001289
1290yy_find_action:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001291 yy_act = yy_accept[yy_current_state];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001292
1293 YY_DO_BEFORE_ACTION;
1294
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001295 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001296 {
1297 int yyl;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001298 for ( yyl = 0; yyl < llvmAsmleng; ++yyl )
1299 if ( llvmAsmtext[yyl] == '\n' )
1300
1301 llvmAsmlineno++;
1302;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001303 }
1304
1305do_action: /* This label is used only to access EOF actions. */
1306
Reid Spencer68a24bd2005-08-27 18:50:39 +00001307 switch ( yy_act )
1308 { /* beginning of action switch */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001309 case 0: /* must back up */
1310 /* undo the effects of YY_DO_BEFORE_ACTION */
1311 *yy_cp = (yy_hold_char);
1312 yy_cp = (yy_last_accepting_cpos);
1313 yy_current_state = (yy_last_accepting_state);
1314 goto yy_find_action;
1315
Reid Spencer68a24bd2005-08-27 18:50:39 +00001316case 1:
1317YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001318#line 191 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001319{ /* Ignore comments for now */ }
1320 YY_BREAK
1321case 2:
1322YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001323#line 193 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001324{ return BEGINTOK; }
1325 YY_BREAK
1326case 3:
1327YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001328#line 194 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001329{ return ENDTOK; }
1330 YY_BREAK
1331case 4:
1332YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001333#line 195 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001334{ return TRUETOK; }
1335 YY_BREAK
1336case 5:
1337YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001338#line 196 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001339{ return FALSETOK; }
1340 YY_BREAK
1341case 6:
1342YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001343#line 197 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001344{ return DECLARE; }
1345 YY_BREAK
1346case 7:
1347YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001348#line 198 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001349{ return DEFINE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001350 YY_BREAK
1351case 8:
1352YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001353#line 199 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001354{ return GLOBAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001355 YY_BREAK
1356case 9:
1357YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001358#line 200 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001359{ return CONSTANT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001360 YY_BREAK
1361case 10:
1362YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001363#line 201 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001364{ return INTERNAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001365 YY_BREAK
1366case 11:
1367YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001368#line 202 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001369{ return LINKONCE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001370 YY_BREAK
1371case 12:
1372YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001373#line 203 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001374{ return WEAK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001375 YY_BREAK
1376case 13:
1377YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001378#line 204 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001379{ return APPENDING; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001380 YY_BREAK
1381case 14:
1382YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001383#line 205 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001384{ return DLLIMPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001385 YY_BREAK
1386case 15:
1387YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001388#line 206 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001389{ return DLLEXPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001390 YY_BREAK
1391case 16:
1392YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001393#line 207 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001394{ return HIDDEN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001395 YY_BREAK
1396case 17:
1397YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001398#line 208 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001399{ return EXTERN_WEAK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001400 YY_BREAK
1401case 18:
1402YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001403#line 209 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001404{ return EXTERNAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001405 YY_BREAK
1406case 19:
1407YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001408#line 210 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001409{ return IMPLEMENTATION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001410 YY_BREAK
1411case 20:
1412YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001413#line 211 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001414{ return ZEROINITIALIZER; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001415 YY_BREAK
1416case 21:
1417YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001418#line 212 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001419{ return DOTDOTDOT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001420 YY_BREAK
1421case 22:
1422YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001423#line 213 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001424{ return UNDEF; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001425 YY_BREAK
1426case 23:
1427YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001428#line 214 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001429{ return NULL_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001430 YY_BREAK
1431case 24:
1432YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001433#line 215 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001434{ return TO; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001435 YY_BREAK
1436case 25:
1437YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001438#line 216 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001439{ return TAIL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001440 YY_BREAK
1441case 26:
1442YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001443#line 217 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001444{ return TARGET; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001445 YY_BREAK
1446case 27:
1447YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001448#line 218 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001449{ return TRIPLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001450 YY_BREAK
1451case 28:
1452YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001453#line 219 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001454{ return DEPLIBS; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001455 YY_BREAK
1456case 29:
1457YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001458#line 220 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001459{ return DATALAYOUT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001460 YY_BREAK
1461case 30:
1462YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001463#line 221 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001464{ return VOLATILE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001465 YY_BREAK
1466case 31:
1467YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001468#line 222 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001469{ return ALIGN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001470 YY_BREAK
1471case 32:
1472YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001473#line 223 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001474{ return SECTION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001475 YY_BREAK
1476case 33:
1477YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001478#line 224 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001479{ return MODULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001480 YY_BREAK
1481case 34:
1482YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001483#line 225 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001484{ return ASM_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001485 YY_BREAK
1486case 35:
1487YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001488#line 226 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001489{ return SIDEEFFECT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001490 YY_BREAK
1491case 36:
1492YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001493#line 228 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001494{ return CC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001495 YY_BREAK
1496case 37:
1497YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001498#line 229 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer41dff5e2007-01-26 08:05:27 +00001499{ return CCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001500 YY_BREAK
1501case 38:
1502YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001503#line 230 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1504{ return FASTCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001505 YY_BREAK
1506case 39:
1507YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001508#line 231 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1509{ return COLDCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001510 YY_BREAK
1511case 40:
1512YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001513#line 232 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1514{ return X86_STDCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001515 YY_BREAK
1516case 41:
1517YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001518#line 233 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1519{ return X86_FASTCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001520 YY_BREAK
1521case 42:
1522YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001523#line 235 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1524{ RET_TY(Type::VoidTy, VOID); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001525 YY_BREAK
1526case 43:
1527YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001528#line 236 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1529{ RET_TY(Type::FloatTy, FLOAT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001530 YY_BREAK
1531case 44:
1532YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001533#line 237 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1534{ RET_TY(Type::DoubleTy,DOUBLE);}
Reid Spencer68a24bd2005-08-27 18:50:39 +00001535 YY_BREAK
1536case 45:
1537YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001538#line 238 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1539{ RET_TY(Type::LabelTy, LABEL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001540 YY_BREAK
1541case 46:
1542YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001543#line 239 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1544{ return TYPE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001545 YY_BREAK
1546case 47:
1547YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001548#line 240 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1549{ return OPAQUE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001550 YY_BREAK
1551case 48:
1552YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001553#line 241 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1554{ uint64_t NumBits = atoull(llvmAsmtext+1);
Reid Spencera54b7cb2007-01-12 07:05:14 +00001555 if (NumBits < IntegerType::MIN_INT_BITS ||
1556 NumBits > IntegerType::MAX_INT_BITS)
1557 GenerateError("Bitwidth for integer type out of range!");
1558 const Type* Ty = IntegerType::get(NumBits);
1559 RET_TY(Ty, INTTYPE);
1560 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001561 YY_BREAK
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001562case 49:
1563YY_RULE_SETUP
1564#line 249 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1565{ RET_TOK(BinaryOpVal, Add, ADD); }
1566 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001567case 50:
1568YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001569#line 250 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1570{ RET_TOK(BinaryOpVal, Sub, SUB); }
Reid Spencer41dff5e2007-01-26 08:05:27 +00001571 YY_BREAK
1572case 51:
1573YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001574#line 251 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1575{ RET_TOK(BinaryOpVal, Mul, MUL); }
Reid Spencer41dff5e2007-01-26 08:05:27 +00001576 YY_BREAK
1577case 52:
1578YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001579#line 252 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1580{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
Reid Spencer41dff5e2007-01-26 08:05:27 +00001581 YY_BREAK
1582case 53:
1583YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001584#line 253 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1585{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
Reid Spencer41dff5e2007-01-26 08:05:27 +00001586 YY_BREAK
Reid Spencer6f407902007-01-13 05:00:46 +00001587case 54:
1588YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001589#line 254 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1590{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
Reid Spencer6f407902007-01-13 05:00:46 +00001591 YY_BREAK
Reid Spencer68a24bd2005-08-27 18:50:39 +00001592case 55:
1593YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001594#line 255 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1595{ RET_TOK(BinaryOpVal, URem, UREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001596 YY_BREAK
1597case 56:
1598YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001599#line 256 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1600{ RET_TOK(BinaryOpVal, SRem, SREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001601 YY_BREAK
1602case 57:
1603YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001604#line 257 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1605{ RET_TOK(BinaryOpVal, FRem, FREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001606 YY_BREAK
1607case 58:
1608YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001609#line 258 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1610{ RET_TOK(BinaryOpVal, And, AND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001611 YY_BREAK
1612case 59:
1613YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001614#line 259 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1615{ RET_TOK(BinaryOpVal, Or , OR ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001616 YY_BREAK
1617case 60:
1618YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001619#line 260 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1620{ RET_TOK(BinaryOpVal, Xor, XOR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001621 YY_BREAK
1622case 61:
1623YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001624#line 261 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1625{ RET_TOK(OtherOpVal, ICmp, ICMP); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001626 YY_BREAK
1627case 62:
1628YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001629#line 262 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1630{ RET_TOK(OtherOpVal, FCmp, FCMP); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001631 YY_BREAK
1632case 63:
1633YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001634#line 263 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1635{ return EQ; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001636 YY_BREAK
1637case 64:
1638YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001639#line 264 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1640{ return NE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001641 YY_BREAK
1642case 65:
1643YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001644#line 265 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1645{ return SLT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001646 YY_BREAK
1647case 66:
1648YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001649#line 266 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1650{ return SGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001651 YY_BREAK
1652case 67:
1653YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001654#line 267 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1655{ return SLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001656 YY_BREAK
1657case 68:
1658YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001659#line 268 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1660{ return SGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001661 YY_BREAK
1662case 69:
1663YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001664#line 269 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1665{ return ULT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001666 YY_BREAK
1667case 70:
1668YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001669#line 270 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1670{ return UGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001671 YY_BREAK
1672case 71:
1673YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001674#line 271 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1675{ return ULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001676 YY_BREAK
1677case 72:
1678YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001679#line 272 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1680{ return UGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001681 YY_BREAK
1682case 73:
1683YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001684#line 273 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1685{ return OEQ; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001686 YY_BREAK
1687case 74:
1688YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001689#line 274 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1690{ return ONE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001691 YY_BREAK
1692case 75:
1693YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001694#line 275 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1695{ return OLT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001696 YY_BREAK
1697case 76:
1698YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001699#line 276 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1700{ return OGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001701 YY_BREAK
1702case 77:
1703YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001704#line 277 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1705{ return OLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001706 YY_BREAK
1707case 78:
1708YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001709#line 278 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1710{ return OGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001711 YY_BREAK
1712case 79:
1713YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001714#line 279 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1715{ return ORD; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001716 YY_BREAK
1717case 80:
1718YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001719#line 280 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1720{ return UNO; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001721 YY_BREAK
1722case 81:
1723YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001724#line 281 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1725{ return UEQ; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001726 YY_BREAK
1727case 82:
1728YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001729#line 282 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1730{ return UNE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001731 YY_BREAK
1732case 83:
1733YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001734#line 284 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1735{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001736 YY_BREAK
1737case 84:
1738YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001739#line 285 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1740{ RET_TOK(OtherOpVal, Call, CALL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001741 YY_BREAK
1742case 85:
1743YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001744#line 286 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1745{ RET_TOK(CastOpVal, Trunc, TRUNC); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001746 YY_BREAK
1747case 86:
1748YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001749#line 287 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1750{ RET_TOK(CastOpVal, ZExt, ZEXT); }
Nate Begeman14b05292005-11-05 09:21:28 +00001751 YY_BREAK
1752case 87:
1753YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001754#line 288 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1755{ RET_TOK(CastOpVal, SExt, SEXT); }
Chris Lattnere869eef2005-11-12 00:11:49 +00001756 YY_BREAK
1757case 88:
1758YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001759#line 289 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1760{ return INREG; }
Robert Bocchino9c62b562006-01-10 19:04:32 +00001761 YY_BREAK
1762case 89:
1763YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001764#line 290 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1765{ return SRET; }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001766 YY_BREAK
1767case 90:
1768YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001769#line 291 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1770{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
Chris Lattner8335e842006-01-23 23:05:42 +00001771 YY_BREAK
1772case 91:
1773YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001774#line 292 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1775{ RET_TOK(CastOpVal, FPExt, FPEXT); }
Chris Lattner66316012006-01-24 04:14:29 +00001776 YY_BREAK
1777case 92:
1778YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001779#line 293 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1780{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
Chris Lattner0e9c3762006-01-25 22:27:16 +00001781 YY_BREAK
1782case 93:
1783YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001784#line 294 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1785{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
Chris Lattnerd5efe842006-04-08 01:18:56 +00001786 YY_BREAK
1787case 94:
1788YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001789#line 295 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1790{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
Chris Lattner75466192006-05-19 21:28:53 +00001791 YY_BREAK
1792case 95:
1793YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001794#line 296 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1795{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001796 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001797case 96:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001798YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001799#line 297 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1800{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001801 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001802case 97:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001803YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001804#line 298 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1805{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001806 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001807case 98:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001808YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001809#line 299 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1810{ RET_TOK(CastOpVal, BitCast, BITCAST); }
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001811 YY_BREAK
1812case 99:
1813YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001814#line 300 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1815{ RET_TOK(OtherOpVal, Select, SELECT); }
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001816 YY_BREAK
1817case 100:
1818YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001819#line 301 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1820{ RET_TOK(OtherOpVal, Shl, SHL); }
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001821 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001822case 101:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001823YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001824#line 302 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1825{ RET_TOK(OtherOpVal, LShr, LSHR); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001826 YY_BREAK
1827case 102:
1828YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001829#line 303 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1830{ RET_TOK(OtherOpVal, AShr, ASHR); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001831 YY_BREAK
1832case 103:
1833YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001834#line 304 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1835{ RET_TOK(OtherOpVal, VAArg , VAARG); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001836 YY_BREAK
1837case 104:
1838YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001839#line 305 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1840{ RET_TOK(TermOpVal, Ret, RET); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001841 YY_BREAK
1842case 105:
1843YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001844#line 306 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1845{ RET_TOK(TermOpVal, Br, BR); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001846 YY_BREAK
1847case 106:
1848YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001849#line 307 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1850{ RET_TOK(TermOpVal, Switch, SWITCH); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001851 YY_BREAK
1852case 107:
1853YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001854#line 308 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1855{ RET_TOK(TermOpVal, Invoke, INVOKE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001856 YY_BREAK
1857case 108:
1858YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001859#line 309 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1860{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001861 YY_BREAK
1862case 109:
1863YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001864#line 310 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1865{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001866 YY_BREAK
1867case 110:
1868YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001869#line 312 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1870{ RET_TOK(MemOpVal, Malloc, MALLOC); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001871 YY_BREAK
1872case 111:
1873YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001874#line 313 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1875{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001876 YY_BREAK
1877case 112:
1878YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001879#line 314 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1880{ RET_TOK(MemOpVal, Free, FREE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001881 YY_BREAK
1882case 113:
1883YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001884#line 315 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1885{ RET_TOK(MemOpVal, Load, LOAD); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001886 YY_BREAK
1887case 114:
1888YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001889#line 316 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1890{ RET_TOK(MemOpVal, Store, STORE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001891 YY_BREAK
1892case 115:
1893YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001894#line 317 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1895{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001896 YY_BREAK
1897case 116:
1898YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001899#line 319 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1900{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001901 YY_BREAK
1902case 117:
1903YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001904#line 320 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1905{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001906 YY_BREAK
1907case 118:
1908YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001909#line 321 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1910{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001911 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001912case 119:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001913YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001914#line 324 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001915{
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001916 UnEscapeLexed(llvmAsmtext+1);
1917 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Skip %
1918 return LOCALVAR;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001919 }
1920 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001921case 120:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001922YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001923#line 329 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Owen Anderson1dc69692006-10-18 02:21:48 +00001924{
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001925 UnEscapeLexed(llvmAsmtext+1);
1926 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Skip @
1927 return GLOBALVAR;
Owen Anderson1dc69692006-10-18 02:21:48 +00001928 }
1929 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001930case 121:
Owen Anderson1dc69692006-10-18 02:21:48 +00001931YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001932#line 334 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1933{
1934 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke colon
1935 UnEscapeLexed(llvmAsmtext);
1936 llvmAsmlval.StrVal = strdup(llvmAsmtext);
1937 return LABELSTR;
1938 }
1939 YY_BREAK
1940case 122:
1941/* rule 122 can match eol */
1942YY_RULE_SETUP
1943#line 340 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1944{
1945 llvmAsmtext[strlen(llvmAsmtext)-2] = 0; // nuke colon, end quote
1946 UnEscapeLexed(llvmAsmtext+1);
1947 llvmAsmlval.StrVal = strdup(llvmAsmtext+1);
1948 return LABELSTR;
1949 }
1950 YY_BREAK
1951case 123:
1952/* rule 123 can match eol */
1953YY_RULE_SETUP
1954#line 347 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001955{ // Note that we cannot unescape a string constant here! The
1956 // string constant might contain a \00 which would not be
1957 // understood by the string stuff. It is valid to make a
1958 // [sbyte] c"Hello World\00" constant, for example.
1959 //
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001960 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke end quote
1961 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Nuke start quote
Reid Spencer68a24bd2005-08-27 18:50:39 +00001962 return STRINGCONSTANT;
1963 }
1964 YY_BREAK
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001965case 124:
1966/* rule 124 can match eol */
Reid Spencer6f407902007-01-13 05:00:46 +00001967YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001968#line 356 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001969{
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001970 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke end quote
1971 llvmAsmlval.StrVal = strdup(llvmAsmtext+2); // Nuke @, quote
1972 return ATSTRINGCONSTANT;
1973 }
1974 YY_BREAK
1975case 125:
1976YY_RULE_SETUP
1977#line 364 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1978{ llvmAsmlval.UInt64Val = atoull(llvmAsmtext); return EUINT64VAL; }
1979 YY_BREAK
1980case 126:
1981YY_RULE_SETUP
1982#line 365 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1983{
1984 uint64_t Val = atoull(llvmAsmtext+1);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001985 // +1: we have bigger negative range
1986 if (Val > (uint64_t)INT64_MAX+1)
Reid Spencer61c83e02006-08-18 08:43:06 +00001987 GenerateError("Constant too large for signed 64 bits!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001988 llvmAsmlval.SInt64Val = -Val;
1989 return ESINT64VAL;
1990 }
1991 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001992case 127:
Reid Spencer6f407902007-01-13 05:00:46 +00001993YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001994#line 373 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1995{
1996 llvmAsmlval.UInt64Val = HexIntToVal(llvmAsmtext+3);
1997 return llvmAsmtext[0] == 's' ? ESINT64VAL : EUINT64VAL;
1998 }
Reid Spencer6f407902007-01-13 05:00:46 +00001999 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00002000case 128:
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002001YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002002#line 378 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002003{
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002004 uint64_t Val = atoull(llvmAsmtext+1);
2005 if ((unsigned)Val != Val)
2006 GenerateError("Invalid value number (too large)!");
2007 llvmAsmlval.UIntVal = unsigned(Val);
2008 return LOCALVAL_ID;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002009 }
2010 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00002011case 129:
Owen Anderson1dc69692006-10-18 02:21:48 +00002012YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002013#line 385 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2014{
2015 uint64_t Val = atoull(llvmAsmtext+1);
2016 if ((unsigned)Val != Val)
2017 GenerateError("Invalid value number (too large)!");
2018 llvmAsmlval.UIntVal = unsigned(Val);
2019 return GLOBALVAL_ID;
2020 }
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002021 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00002022case 130:
Reid Spencer6f407902007-01-13 05:00:46 +00002023YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002024#line 393 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2025{ llvmAsmlval.FPVal = atof(llvmAsmtext); return FPVAL; }
Reid Spencer6f407902007-01-13 05:00:46 +00002026 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00002027case 131:
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002028YY_RULE_SETUP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002029#line 394 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2030{ llvmAsmlval.FPVal = HexToFP(llvmAsmtext); return FPVAL; }
2031 YY_BREAK
2032case YY_STATE_EOF(INITIAL):
2033#line 396 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2034{
2035 /* Make sure to free the internal buffers for flex when we are
2036 * done reading our input!
2037 */
2038 llvmAsm_delete_buffer(YY_CURRENT_BUFFER);
2039 return EOF;
2040 }
2041 YY_BREAK
2042case 132:
2043/* rule 132 can match eol */
2044YY_RULE_SETUP
2045#line 404 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2046{ /* Ignore whitespace */ }
2047 YY_BREAK
2048case 133:
2049YY_RULE_SETUP
2050#line 405 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
2051{ return llvmAsmtext[0]; }
2052 YY_BREAK
2053case 134:
2054YY_RULE_SETUP
2055#line 407 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002056YY_FATAL_ERROR( "flex scanner jammed" );
2057 YY_BREAK
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002058#line 2059 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002059
2060 case YY_END_OF_BUFFER:
2061 {
2062 /* Amount of text matched not including the EOB char. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002063 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002064
2065 /* Undo the effects of YY_DO_BEFORE_ACTION. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002066 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002067 YY_RESTORE_YY_MORE_OFFSET
2068
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002069 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002070 {
2071 /* We're scanning a new file or input source. It's
2072 * possible that this happened because the user
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002073 * just pointed llvmAsmin at a new source and called
2074 * llvmAsmlex(). If so, then we have to assure
2075 * consistency between YY_CURRENT_BUFFER and our
Reid Spencer68a24bd2005-08-27 18:50:39 +00002076 * globals. Here is the right place to do so, because
2077 * this is the first action (other than possibly a
2078 * back-up) that will match for the new input source.
2079 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002080 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2081 YY_CURRENT_BUFFER_LVALUE->yy_input_file = llvmAsmin;
2082 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002083 }
2084
2085 /* Note that here we test for yy_c_buf_p "<=" to the position
2086 * of the first EOB in the buffer, since yy_c_buf_p will
2087 * already have been incremented past the NUL character
2088 * (since all states make transitions on EOB to the
2089 * end-of-buffer state). Contrast this with the test
2090 * in input().
2091 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002092 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002093 { /* This was really a NUL. */
2094 yy_state_type yy_next_state;
2095
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002096 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002097
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002098 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002099
2100 /* Okay, we're now positioned to make the NUL
2101 * transition. We couldn't have
2102 * yy_get_previous_state() go ahead and do it
2103 * for us because it doesn't know how to deal
2104 * with the possibility of jamming (and we don't
2105 * want to build jamming into it because then it
2106 * will run more slowly).
2107 */
2108
2109 yy_next_state = yy_try_NUL_trans( yy_current_state );
2110
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002111 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002112
2113 if ( yy_next_state )
2114 {
2115 /* Consume the NUL. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002116 yy_cp = ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002117 yy_current_state = yy_next_state;
2118 goto yy_match;
2119 }
2120
2121 else
2122 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002123 yy_cp = (yy_last_accepting_cpos);
2124 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002125 goto yy_find_action;
2126 }
2127 }
2128
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002129 else switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002130 {
2131 case EOB_ACT_END_OF_FILE:
2132 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002133 (yy_did_buffer_switch_on_eof) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002134
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002135 if ( llvmAsmwrap( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002136 {
2137 /* Note: because we've taken care in
2138 * yy_get_next_buffer() to have set up
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002139 * llvmAsmtext, we can now set up
Reid Spencer68a24bd2005-08-27 18:50:39 +00002140 * yy_c_buf_p so that if some total
2141 * hoser (like flex itself) wants to
2142 * call the scanner after we return the
2143 * YY_NULL, it'll still work - another
2144 * YY_NULL will get returned.
2145 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002146 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002147
2148 yy_act = YY_STATE_EOF(YY_START);
2149 goto do_action;
2150 }
2151
2152 else
2153 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002154 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002155 YY_NEW_FILE;
2156 }
2157 break;
2158 }
2159
2160 case EOB_ACT_CONTINUE_SCAN:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002161 (yy_c_buf_p) =
2162 (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002163
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002164 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002165
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002166 yy_cp = (yy_c_buf_p);
2167 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002168 goto yy_match;
2169
2170 case EOB_ACT_LAST_MATCH:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002171 (yy_c_buf_p) =
2172 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002173
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002174 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002175
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002176 yy_cp = (yy_c_buf_p);
2177 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002178 goto yy_find_action;
2179 }
2180 break;
2181 }
2182
2183 default:
2184 YY_FATAL_ERROR(
2185 "fatal flex scanner internal error--no action found" );
2186 } /* end of action switch */
2187 } /* end of scanning one token */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002188} /* end of llvmAsmlex */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002189
2190/* yy_get_next_buffer - try to read in a new buffer
2191 *
2192 * Returns a code representing an action:
2193 * EOB_ACT_LAST_MATCH -
2194 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2195 * EOB_ACT_END_OF_FILE - end of file
2196 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002197static int yy_get_next_buffer (void)
2198{
2199 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2200 register char *source = (yytext_ptr);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002201 register int number_to_move, i;
2202 int ret_val;
2203
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002204 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002205 YY_FATAL_ERROR(
2206 "fatal flex scanner internal error--end of buffer missed" );
2207
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002208 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002209 { /* Don't try to fill the buffer, so this is an EOF. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002210 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002211 {
2212 /* We matched a single character, the EOB, so
2213 * treat this as a final EOF.
2214 */
2215 return EOB_ACT_END_OF_FILE;
2216 }
2217
2218 else
2219 {
2220 /* We matched some text prior to the EOB, first
2221 * process it.
2222 */
2223 return EOB_ACT_LAST_MATCH;
2224 }
2225 }
2226
2227 /* Try to read more data. */
2228
2229 /* First move last chars to start of buffer. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002230 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002231
2232 for ( i = 0; i < number_to_move; ++i )
2233 *(dest++) = *(source++);
2234
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002235 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002236 /* don't do the read, it's not guaranteed to return an EOF,
2237 * just force an EOF
2238 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002239 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002240
2241 else
2242 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002243 int num_to_read =
2244 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002245
2246 while ( num_to_read <= 0 )
2247 { /* Not enough room in the buffer - grow it. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002248
2249 /* just a shorter name for the current buffer */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002250 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002251
2252 int yy_c_buf_p_offset =
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002253 (int) ((yy_c_buf_p) - b->yy_ch_buf);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002254
2255 if ( b->yy_is_our_buffer )
2256 {
2257 int new_size = b->yy_buf_size * 2;
2258
2259 if ( new_size <= 0 )
2260 b->yy_buf_size += b->yy_buf_size / 8;
2261 else
2262 b->yy_buf_size *= 2;
2263
2264 b->yy_ch_buf = (char *)
2265 /* Include room in for 2 EOB chars. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002266 llvmAsmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002267 }
2268 else
2269 /* Can't grow it, we don't own it. */
2270 b->yy_ch_buf = 0;
2271
2272 if ( ! b->yy_ch_buf )
2273 YY_FATAL_ERROR(
2274 "fatal error - scanner input buffer overflow" );
2275
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002276 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002277
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002278 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
Reid Spencer68a24bd2005-08-27 18:50:39 +00002279 number_to_move - 1;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002280
Reid Spencer68a24bd2005-08-27 18:50:39 +00002281 }
2282
2283 if ( num_to_read > YY_READ_BUF_SIZE )
2284 num_to_read = YY_READ_BUF_SIZE;
2285
2286 /* Read in more data. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002287 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2288 (yy_n_chars), num_to_read );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002289
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002290 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002291 }
2292
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002293 if ( (yy_n_chars) == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002294 {
2295 if ( number_to_move == YY_MORE_ADJ )
2296 {
2297 ret_val = EOB_ACT_END_OF_FILE;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002298 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002299 }
2300
2301 else
2302 {
2303 ret_val = EOB_ACT_LAST_MATCH;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002304 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
Reid Spencer68a24bd2005-08-27 18:50:39 +00002305 YY_BUFFER_EOF_PENDING;
2306 }
2307 }
2308
2309 else
2310 ret_val = EOB_ACT_CONTINUE_SCAN;
2311
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002312 (yy_n_chars) += number_to_move;
2313 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2314 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002315
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002316 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002317
2318 return ret_val;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002319}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002320
2321/* yy_get_previous_state - get the state just before the EOB char was reached */
2322
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002323 static yy_state_type yy_get_previous_state (void)
2324{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002325 register yy_state_type yy_current_state;
2326 register char *yy_cp;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002327
2328 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002329
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002330 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002331 {
2332 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002333 if ( yy_accept[yy_current_state] )
2334 {
2335 (yy_last_accepting_state) = yy_current_state;
2336 (yy_last_accepting_cpos) = yy_cp;
2337 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002338 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2339 {
2340 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002341 if ( yy_current_state >= 539 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002342 yy_c = yy_meta[(unsigned int) yy_c];
2343 }
2344 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002345 }
2346
2347 return yy_current_state;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002348}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002349
2350/* yy_try_NUL_trans - try to make a transition on the NUL character
2351 *
2352 * synopsis
2353 * next_state = yy_try_NUL_trans( current_state );
2354 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002355 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2356{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002357 register int yy_is_jam;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002358 register char *yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002359
2360 register YY_CHAR yy_c = 1;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002361 if ( yy_accept[yy_current_state] )
2362 {
2363 (yy_last_accepting_state) = yy_current_state;
2364 (yy_last_accepting_cpos) = yy_cp;
2365 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002366 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2367 {
2368 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002369 if ( yy_current_state >= 539 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002370 yy_c = yy_meta[(unsigned int) yy_c];
2371 }
2372 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002373 yy_is_jam = (yy_current_state == 538);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002374
2375 return yy_is_jam ? 0 : yy_current_state;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002376}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002377
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002378 static inline void yyunput (int c, register char * yy_bp )
2379{
2380 register char *yy_cp;
2381
2382 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002383
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002384 /* undo effects of setting up llvmAsmtext */
2385 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002386
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002387 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002388 { /* need to shift things up to make room */
2389 /* +2 for EOB chars. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002390 register int number_to_move = (yy_n_chars) + 2;
2391 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2392 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002393 register char *source =
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002394 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002395
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002396 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002397 *--dest = *--source;
2398
2399 yy_cp += (int) (dest - source);
2400 yy_bp += (int) (dest - source);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002401 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2402 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002403
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002404 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002405 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2406 }
2407
2408 *--yy_cp = (char) c;
2409
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002410 if ( c == '\n' ){
2411 --llvmAsmlineno;
2412 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002413
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002414 (yytext_ptr) = yy_bp;
2415 (yy_hold_char) = *yy_cp;
2416 (yy_c_buf_p) = yy_cp;
2417}
Reid Spencer6f407902007-01-13 05:00:46 +00002418
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002419#ifndef YY_NO_INPUT
Reid Spencer68a24bd2005-08-27 18:50:39 +00002420#ifdef __cplusplus
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002421 static int yyinput (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002422#else
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002423 static int input (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002424#endif
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002425
2426{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002427 int c;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002428
2429 *(yy_c_buf_p) = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002430
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002431 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002432 {
2433 /* yy_c_buf_p now points to the character we want to return.
2434 * If this occurs *before* the EOB characters, then it's a
2435 * valid NUL; if not, then we've hit the end of the buffer.
2436 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002437 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002438 /* This was really a NUL. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002439 *(yy_c_buf_p) = '\0';
Reid Spencer68a24bd2005-08-27 18:50:39 +00002440
2441 else
2442 { /* need more input */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002443 int offset = (yy_c_buf_p) - (yytext_ptr);
2444 ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002445
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002446 switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002447 {
2448 case EOB_ACT_LAST_MATCH:
2449 /* This happens because yy_g_n_b()
2450 * sees that we've accumulated a
2451 * token and flags that we need to
2452 * try matching the token before
2453 * proceeding. But for input(),
2454 * there's no matching to consider.
2455 * So convert the EOB_ACT_LAST_MATCH
2456 * to EOB_ACT_END_OF_FILE.
2457 */
2458
2459 /* Reset buffer status. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002460 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002461
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002462 /*FALLTHROUGH*/
Reid Spencer68a24bd2005-08-27 18:50:39 +00002463
2464 case EOB_ACT_END_OF_FILE:
2465 {
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002466 if ( llvmAsmwrap( ) )
Reid Spencer61c83e02006-08-18 08:43:06 +00002467 return EOF;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002468
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002469 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002470 YY_NEW_FILE;
2471#ifdef __cplusplus
2472 return yyinput();
2473#else
2474 return input();
2475#endif
2476 }
2477
2478 case EOB_ACT_CONTINUE_SCAN:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002479 (yy_c_buf_p) = (yytext_ptr) + offset;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002480 break;
2481 }
2482 }
2483 }
2484
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002485 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2486 *(yy_c_buf_p) = '\0'; /* preserve llvmAsmtext */
2487 (yy_hold_char) = *++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002488
2489 if ( c == '\n' )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002490
2491 llvmAsmlineno++;
2492;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002493
2494 return c;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002495}
2496#endif /* ifndef YY_NO_INPUT */
2497
2498/** Immediately switch to a different input stream.
2499 * @param input_file A readable stream.
2500 *
2501 * @note This function does not reset the start condition to @c INITIAL .
2502 */
2503 void llvmAsmrestart (FILE * input_file )
2504{
2505
2506 if ( ! YY_CURRENT_BUFFER ){
2507 llvmAsmensure_buffer_stack ();
2508 YY_CURRENT_BUFFER_LVALUE =
2509 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
Reid Spencer6f407902007-01-13 05:00:46 +00002510 }
Reid Spencer41dff5e2007-01-26 08:05:27 +00002511
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002512 llvmAsm_init_buffer(YY_CURRENT_BUFFER,input_file );
2513 llvmAsm_load_buffer_state( );
2514}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002515
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002516/** Switch to a different input buffer.
2517 * @param new_buffer The new input buffer.
2518 *
2519 */
2520 void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2521{
2522
2523 /* TODO. We should be able to replace this entire function body
2524 * with
2525 * llvmAsmpop_buffer_state();
2526 * llvmAsmpush_buffer_state(new_buffer);
2527 */
2528 llvmAsmensure_buffer_stack ();
2529 if ( YY_CURRENT_BUFFER == new_buffer )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002530 return;
2531
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002532 if ( YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002533 {
2534 /* Flush out information for old buffer. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002535 *(yy_c_buf_p) = (yy_hold_char);
2536 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2537 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002538 }
2539
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002540 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2541 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002542
2543 /* We don't actually know whether we did this switch during
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002544 * EOF (llvmAsmwrap()) processing, but the only time this flag
2545 * is looked at is after llvmAsmwrap() is called, so it's safe
Reid Spencer68a24bd2005-08-27 18:50:39 +00002546 * to go ahead and always set it.
2547 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002548 (yy_did_buffer_switch_on_eof) = 1;
2549}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002550
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002551static void llvmAsm_load_buffer_state (void)
2552{
2553 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2554 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2555 llvmAsmin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2556 (yy_hold_char) = *(yy_c_buf_p);
2557}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002558
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002559/** Allocate and initialize an input buffer state.
2560 * @param file A readable stream.
2561 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2562 *
2563 * @return the allocated buffer state.
2564 */
2565 YY_BUFFER_STATE llvmAsm_create_buffer (FILE * file, int size )
2566{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002567 YY_BUFFER_STATE b;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002568
2569 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002570 if ( ! b )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002571 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002572
2573 b->yy_buf_size = size;
2574
2575 /* yy_ch_buf has to be 2 characters longer than the size given because
2576 * we need to put in 2 end-of-buffer characters.
2577 */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002578 b->yy_ch_buf = (char *) llvmAsmalloc(b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002579 if ( ! b->yy_ch_buf )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002580 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002581
2582 b->yy_is_our_buffer = 1;
2583
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002584 llvmAsm_init_buffer(b,file );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002585
2586 return b;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002587}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002588
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002589/** Destroy the buffer.
2590 * @param b a buffer created with llvmAsm_create_buffer()
2591 *
2592 */
2593 void llvmAsm_delete_buffer (YY_BUFFER_STATE b )
2594{
2595
Reid Spencer68a24bd2005-08-27 18:50:39 +00002596 if ( ! b )
2597 return;
2598
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002599 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2600 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002601
2602 if ( b->yy_is_our_buffer )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002603 llvmAsmfree((void *) b->yy_ch_buf );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002604
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002605 llvmAsmfree((void *) b );
2606}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002607
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002608/* Initializes or reinitializes a buffer.
2609 * This function is sometimes called more than once on the same buffer,
2610 * such as during a llvmAsmrestart() or at EOF.
2611 */
2612 static void llvmAsm_init_buffer (YY_BUFFER_STATE b, FILE * file )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002613
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002614{
2615 int oerrno = errno;
2616
2617 llvmAsm_flush_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002618
2619 b->yy_input_file = file;
2620 b->yy_fill_buffer = 1;
2621
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002622 /* If b is the current buffer, then llvmAsm_init_buffer was _probably_
2623 * called from llvmAsmrestart() or through yy_get_next_buffer.
2624 * In that case, we don't want to reset the lineno or column.
2625 */
2626 if (b != YY_CURRENT_BUFFER){
2627 b->yy_bs_lineno = 1;
2628 b->yy_bs_column = 0;
2629 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002630
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002631 b->yy_is_interactive = 0;
2632
2633 errno = oerrno;
2634}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002635
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002636/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2637 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2638 *
2639 */
2640 void llvmAsm_flush_buffer (YY_BUFFER_STATE b )
2641{
2642 if ( ! b )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002643 return;
2644
2645 b->yy_n_chars = 0;
2646
2647 /* We always need two end-of-buffer characters. The first causes
2648 * a transition to the end-of-buffer state. The second causes
2649 * a jam in that state.
2650 */
2651 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2652 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2653
2654 b->yy_buf_pos = &b->yy_ch_buf[0];
2655
2656 b->yy_at_bol = 1;
2657 b->yy_buffer_status = YY_BUFFER_NEW;
2658
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002659 if ( b == YY_CURRENT_BUFFER )
2660 llvmAsm_load_buffer_state( );
2661}
2662
2663/** Pushes the new state onto the stack. The new state becomes
2664 * the current state. This function will allocate the stack
2665 * if necessary.
2666 * @param new_buffer The new state.
2667 *
2668 */
2669void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer )
2670{
2671 if (new_buffer == NULL)
2672 return;
2673
2674 llvmAsmensure_buffer_stack();
2675
2676 /* This block is copied from llvmAsm_switch_to_buffer. */
2677 if ( YY_CURRENT_BUFFER )
2678 {
2679 /* Flush out information for old buffer. */
2680 *(yy_c_buf_p) = (yy_hold_char);
2681 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2682 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2683 }
2684
2685 /* Only push if top exists. Otherwise, replace top. */
2686 if (YY_CURRENT_BUFFER)
2687 (yy_buffer_stack_top)++;
2688 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2689
2690 /* copied from llvmAsm_switch_to_buffer. */
2691 llvmAsm_load_buffer_state( );
2692 (yy_did_buffer_switch_on_eof) = 1;
2693}
2694
2695/** Removes and deletes the top of the stack, if present.
2696 * The next element becomes the new top.
2697 *
2698 */
2699void llvmAsmpop_buffer_state (void)
2700{
2701 if (!YY_CURRENT_BUFFER)
2702 return;
2703
2704 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
2705 YY_CURRENT_BUFFER_LVALUE = NULL;
2706 if ((yy_buffer_stack_top) > 0)
2707 --(yy_buffer_stack_top);
2708
2709 if (YY_CURRENT_BUFFER) {
2710 llvmAsm_load_buffer_state( );
2711 (yy_did_buffer_switch_on_eof) = 1;
2712 }
2713}
2714
2715/* Allocates the stack if it does not exist.
2716 * Guarantees space for at least one push.
2717 */
2718static void llvmAsmensure_buffer_stack (void)
2719{
2720 int num_to_alloc;
2721
2722 if (!(yy_buffer_stack)) {
2723
2724 /* First allocation is just for 2 elements, since we don't know if this
2725 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2726 * immediate realloc on the next call.
2727 */
2728 num_to_alloc = 1;
2729 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmalloc
2730 (num_to_alloc * sizeof(struct yy_buffer_state*)
2731 );
2732
2733 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2734
2735 (yy_buffer_stack_max) = num_to_alloc;
2736 (yy_buffer_stack_top) = 0;
2737 return;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002738 }
2739
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002740 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
Reid Spencer68a24bd2005-08-27 18:50:39 +00002741
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002742 /* Increase the buffer to prepare for a possible push. */
2743 int grow_size = 8 /* arbitrary grow size */;
2744
2745 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2746 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmrealloc
2747 ((yy_buffer_stack),
2748 num_to_alloc * sizeof(struct yy_buffer_state*)
2749 );
2750
2751 /* zero only the new slots.*/
2752 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2753 (yy_buffer_stack_max) = num_to_alloc;
2754 }
2755}
2756
2757/** Setup the input buffer state to scan directly from a user-specified character buffer.
2758 * @param base the character buffer
2759 * @param size the size in bytes of the character buffer
2760 *
2761 * @return the newly allocated buffer state object.
2762 */
2763YY_BUFFER_STATE llvmAsm_scan_buffer (char * base, yy_size_t size )
2764{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002765 YY_BUFFER_STATE b;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002766
Reid Spencer68a24bd2005-08-27 18:50:39 +00002767 if ( size < 2 ||
2768 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2769 base[size-1] != YY_END_OF_BUFFER_CHAR )
2770 /* They forgot to leave room for the EOB's. */
2771 return 0;
2772
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002773 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002774 if ( ! b )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002775 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002776
2777 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2778 b->yy_buf_pos = b->yy_ch_buf = base;
2779 b->yy_is_our_buffer = 0;
2780 b->yy_input_file = 0;
2781 b->yy_n_chars = b->yy_buf_size;
2782 b->yy_is_interactive = 0;
2783 b->yy_at_bol = 1;
2784 b->yy_fill_buffer = 0;
2785 b->yy_buffer_status = YY_BUFFER_NEW;
2786
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002787 llvmAsm_switch_to_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002788
2789 return b;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002790}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002791
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002792/** Setup the input buffer state to scan a string. The next call to llvmAsmlex() will
2793 * scan from a @e copy of @a str.
2794 * @param str a NUL-terminated string to scan
2795 *
2796 * @return the newly allocated buffer state object.
2797 * @note If you want to scan bytes that may contain NUL values, then use
2798 * llvmAsm_scan_bytes() instead.
2799 */
2800YY_BUFFER_STATE llvmAsm_scan_string (yyconst char * yystr )
2801{
2802
2803 return llvmAsm_scan_bytes(yystr,strlen(yystr) );
2804}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002805
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002806/** Setup the input buffer state to scan the given bytes. The next call to llvmAsmlex() will
2807 * scan from a @e copy of @a bytes.
2808 * @param bytes the byte buffer to scan
2809 * @param len the number of bytes in the buffer pointed to by @a bytes.
2810 *
2811 * @return the newly allocated buffer state object.
2812 */
2813YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2814{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002815 YY_BUFFER_STATE b;
2816 char *buf;
2817 yy_size_t n;
2818 int i;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002819
Reid Spencer68a24bd2005-08-27 18:50:39 +00002820 /* Get memory for full buffer, including space for trailing EOB's. */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002821 n = _yybytes_len + 2;
2822 buf = (char *) llvmAsmalloc(n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002823 if ( ! buf )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002824 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002825
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002826 for ( i = 0; i < _yybytes_len; ++i )
2827 buf[i] = yybytes[i];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002828
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002829 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002830
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002831 b = llvmAsm_scan_buffer(buf,n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002832 if ( ! b )
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002833 YY_FATAL_ERROR( "bad buffer in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002834
2835 /* It's okay to grow etc. this buffer, and we should throw it
2836 * away when we're done.
2837 */
2838 b->yy_is_our_buffer = 1;
2839
2840 return b;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002841}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002842
2843#ifndef YY_EXIT_FAILURE
2844#define YY_EXIT_FAILURE 2
2845#endif
2846
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002847static void yy_fatal_error (yyconst char* msg )
2848{
2849 (void) fprintf( stderr, "%s\n", msg );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002850 exit( YY_EXIT_FAILURE );
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002851}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002852
2853/* Redefine yyless() so it works in section 3 code. */
2854
2855#undef yyless
2856#define yyless(n) \
2857 do \
2858 { \
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002859 /* Undo effects of setting up llvmAsmtext. */ \
2860 int yyless_macro_arg = (n); \
2861 YY_LESS_LINENO(yyless_macro_arg);\
2862 llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
2863 (yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
2864 (yy_hold_char) = *(yy_c_buf_p); \
2865 *(yy_c_buf_p) = '\0'; \
2866 llvmAsmleng = yyless_macro_arg; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00002867 } \
2868 while ( 0 )
2869
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002870/* Accessor methods (get/set functions) to struct members. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002871
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002872/** Get the current line number.
2873 *
2874 */
2875int llvmAsmget_lineno (void)
2876{
2877
2878 return llvmAsmlineno;
2879}
2880
2881/** Get the input stream.
2882 *
2883 */
2884FILE *llvmAsmget_in (void)
2885{
2886 return llvmAsmin;
2887}
2888
2889/** Get the output stream.
2890 *
2891 */
2892FILE *llvmAsmget_out (void)
2893{
2894 return llvmAsmout;
2895}
2896
2897/** Get the length of the current token.
2898 *
2899 */
2900int llvmAsmget_leng (void)
2901{
2902 return llvmAsmleng;
2903}
2904
2905/** Get the current token.
2906 *
2907 */
2908
2909char *llvmAsmget_text (void)
2910{
2911 return llvmAsmtext;
2912}
2913
2914/** Set the current line number.
2915 * @param line_number
2916 *
2917 */
2918void llvmAsmset_lineno (int line_number )
2919{
2920
2921 llvmAsmlineno = line_number;
2922}
2923
2924/** Set the input stream. This does not discard the current
2925 * input buffer.
2926 * @param in_str A readable stream.
2927 *
2928 * @see llvmAsm_switch_to_buffer
2929 */
2930void llvmAsmset_in (FILE * in_str )
2931{
2932 llvmAsmin = in_str ;
2933}
2934
2935void llvmAsmset_out (FILE * out_str )
2936{
2937 llvmAsmout = out_str ;
2938}
2939
2940int llvmAsmget_debug (void)
2941{
2942 return llvmAsm_flex_debug;
2943}
2944
2945void llvmAsmset_debug (int bdebug )
2946{
2947 llvmAsm_flex_debug = bdebug ;
2948}
2949
2950static int yy_init_globals (void)
2951{
2952 /* Initialization is the same as for the non-reentrant scanner.
2953 * This function is called from llvmAsmlex_destroy(), so don't allocate here.
2954 */
2955
2956 /* We do not touch llvmAsmlineno unless the option is enabled. */
2957 llvmAsmlineno = 1;
2958
2959 (yy_buffer_stack) = 0;
2960 (yy_buffer_stack_top) = 0;
2961 (yy_buffer_stack_max) = 0;
2962 (yy_c_buf_p) = (char *) 0;
2963 (yy_init) = 0;
2964 (yy_start) = 0;
2965
2966/* Defined in main.c */
2967#ifdef YY_STDINIT
2968 llvmAsmin = stdin;
2969 llvmAsmout = stdout;
2970#else
2971 llvmAsmin = (FILE *) 0;
2972 llvmAsmout = (FILE *) 0;
2973#endif
2974
2975 /* For future reference: Set errno on error, since we are called by
2976 * llvmAsmlex_init()
2977 */
2978 return 0;
2979}
2980
2981/* llvmAsmlex_destroy is for both reentrant and non-reentrant scanners. */
2982int llvmAsmlex_destroy (void)
2983{
2984
2985 /* Pop the buffer stack, destroying each element. */
2986 while(YY_CURRENT_BUFFER){
2987 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
2988 YY_CURRENT_BUFFER_LVALUE = NULL;
2989 llvmAsmpop_buffer_state();
2990 }
2991
2992 /* Destroy the stack itself. */
2993 llvmAsmfree((yy_buffer_stack) );
2994 (yy_buffer_stack) = NULL;
2995
2996 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2997 * llvmAsmlex() is called, initialization will occur. */
2998 yy_init_globals( );
2999
3000 return 0;
3001}
3002
3003/*
3004 * Internal utility routines.
3005 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00003006
3007#ifndef yytext_ptr
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003008static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3009{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003010 register int i;
3011 for ( i = 0; i < n; ++i )
3012 s1[i] = s2[i];
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003013}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003014#endif
3015
3016#ifdef YY_NEED_STRLEN
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003017static int yy_flex_strlen (yyconst char * s )
3018{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003019 register int n;
3020 for ( n = 0; s[n]; ++n )
3021 ;
3022
3023 return n;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003024}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003025#endif
3026
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003027void *llvmAsmalloc (yy_size_t size )
3028{
Reid Spencer6f407902007-01-13 05:00:46 +00003029 return (void *) malloc( size );
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003030}
Reid Spencer6f407902007-01-13 05:00:46 +00003031
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003032void *llvmAsmrealloc (void * ptr, yy_size_t size )
3033{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003034 /* The cast to (char *) in the following accommodates both
3035 * implementations that use char* generic pointers, and those
3036 * that use void* generic pointers. It works with the latter
3037 * because both ANSI C and C++ allow castless assignment from
3038 * any pointer type to void*, and deal with argument conversions
3039 * as though doing an assignment.
3040 */
3041 return (void *) realloc( (char *) ptr, size );
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003042}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003043
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003044void llvmAsmfree (void * ptr )
3045{
3046 free( (char *) ptr ); /* see llvmAsmrealloc() for (char *) cast */
3047}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003048
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00003049#define YYTABLES_NAME "yytables"
3050
3051#line 407 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
3052
3053
Chris Lattner2fecc0f2006-02-15 07:02:59 +00003054