blob: dae64faad054d19792a1ebc94f288dcaae261beb [file] [log] [blame]
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001#line 2 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003#line 4 "Lexer.cpp"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00004
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00005#define YY_INT_ALIGNED short int
6
7/* 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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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>
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +000021#include <string.h>
22#include <errno.h>
Reid Spencer832254e2007-02-02 02:16:23 +000023#include <stdlib.h>
24
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +000025/* end standard C headers. */
26
27/* 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
41#endif
42
43#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 */
89
90#ifdef __cplusplus
Reid Spencer832254e2007-02-02 02:16:23 +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 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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". */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000142#ifndef YY_BUF_SIZE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000143#define YY_BUF_SIZE (16384*64)
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000144#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000145
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000153#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000154
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 { \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000202#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000203
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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"
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 Korobeynikov9adeaa22007-01-28 13:37:39 +0000265
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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".
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000277 *
278 * Returns the top of the stack, or NULL.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000279 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000316#define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000317
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 { \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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 { \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000348#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000349
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000350/* Begin user sect3 */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000351
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000352#define llvmAsmwrap() 1
Reid Spencer68a24bd2005-08-27 18:50:39 +0000353#define YY_SKIP_YYWRAP
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000354
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000374 * corresponding action - sets up llvmAsmtext.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000375 */
376#define YY_DO_BEFORE_ACTION \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +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'; \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000381 (yy_c_buf_p) = yy_cp;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000383#define YY_NUM_RULES 136
384#define YY_END_OF_BUFFER 137
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[550] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000393 { 0,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000394 0, 0, 137, 135, 134, 134, 135, 135, 135, 135,
395 135, 135, 127, 127, 1, 135, 135, 135, 135, 135,
396 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
397 135, 135, 135, 135, 135, 135, 135, 135, 0, 125,
398 0, 123, 121, 130, 0, 128, 0, 132, 127, 0,
399 1, 0, 122, 131, 0, 0, 0, 0, 0, 0,
400 0, 107, 0, 36, 0, 0, 0, 0, 0, 0,
401 70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 52, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 71, 0, 0, 0, 0, 0, 0, 0, 66,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000404
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 125, 121, 132, 21, 132, 0, 133, 0,
409 126, 122, 53, 0, 0, 65, 0, 0, 34, 0,
410 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
411 0, 3, 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, 55, 0, 0, 0, 80,
414 85, 83, 84, 82, 81, 0, 86, 90, 0, 106,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000415
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000416 0, 0, 0, 0, 0, 75, 73, 62, 0, 0,
417 0, 74, 72, 0, 0, 54, 0, 0, 0, 0,
418 0, 0, 0, 0, 88, 79, 77, 0, 78, 76,
419 0, 89, 87, 0, 0, 0, 0, 0, 0, 0,
420 0, 67, 0, 0, 124, 132, 0, 0, 0, 132,
421 0, 0, 0, 64, 0, 0, 91, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423 69, 58, 0, 0, 0, 0, 114, 61, 0, 0,
424 0, 68, 0, 0, 0, 0, 0, 0, 0, 115,
425 63, 0, 0, 0, 0, 23, 0, 0, 129, 57,
426
427 0, 0, 94, 0, 0, 0, 60, 43, 0, 0,
428 25, 0, 0, 0, 4, 0, 50, 56, 0, 0,
429 0, 0, 59, 0, 46, 0, 12, 0, 0, 93,
430 132, 31, 0, 0, 2, 0, 0, 0, 0, 0,
431 0, 0, 0, 0, 0, 0, 0, 5, 0, 47,
432 96, 0, 0, 0, 0, 0, 0, 42, 0, 0,
433 0, 0, 49, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
435 92, 0, 22, 0, 0, 0, 0, 0, 0, 0,
436 113, 0, 0, 39, 0, 0, 0, 7, 0, 0,
437
438 0, 48, 0, 0, 38, 100, 99, 0, 0, 8,
439 16, 0, 0, 0, 109, 0, 112, 33, 0, 0,
440 51, 0, 0, 104, 0, 0, 98, 108, 26, 0,
441 27, 97, 0, 110, 105, 0, 0, 0, 0, 0,
442 103, 0, 0, 6, 28, 0, 0, 0, 0, 0,
443 95, 0, 0, 0, 0, 0, 0, 0, 0, 32,
444 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
445 0, 0, 0, 0, 18, 0, 0, 0, 10, 101,
446 11, 45, 44, 102, 0, 0, 0, 0, 30, 0,
447 0, 0, 13, 0, 15, 14, 0, 0, 0, 0,
448
449 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
450 0, 0, 0, 35, 0, 0, 0, 0, 0, 17,
451 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
452 0, 0, 0, 19, 0, 0, 0, 0, 117, 119,
453 120, 0, 40, 0, 118, 41, 0, 20, 0
Reid Spencer68a24bd2005-08-27 18:50:39 +0000454 } ;
455
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000456static yyconst flex_int32_t yy_ec[256] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000457 { 0,
458 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
459 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
Reid Spencera54b7cb2007-01-12 07:05:14 +0000462 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
463 11, 11, 11, 12, 11, 13, 11, 14, 15, 1,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000464 1, 1, 1, 16, 17, 17, 17, 17, 18, 17,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000465 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
466 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000467 1, 1, 1, 1, 19, 1, 20, 21, 22, 23,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000468
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000469 24, 25, 26, 27, 28, 5, 29, 30, 31, 32,
470 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
471 43, 44, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000472 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 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
479
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, 1, 1, 1, 1, 1,
485 1, 1, 1, 1, 1
486 } ;
487
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000488static yyconst flex_int32_t yy_meta[45] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000489 { 0,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000490 1, 1, 2, 3, 4, 1, 1, 4, 4, 4,
491 4, 4, 4, 5, 1, 1, 4, 4, 4, 4,
492 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
493 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
494 4, 4, 4, 4
Reid Spencer68a24bd2005-08-27 18:50:39 +0000495 } ;
496
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000497static yyconst flex_int16_t yy_base[558] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000498 { 0,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000499 0, 0, 1197, 1198, 1198, 1198, 1192, 1181, 35, 39,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000500 43, 49, 55, 61, 0, 72, 64, 67, 66, 86,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000501 76, 106, 91, 65, 133, 121, 117, 99, 152, 95,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000502 78, 179, 137, 211, 139, 90, 148, 93, 1190, 1198,
503 1179, 1198, 0, 49, 185, 217, 116, 238, 254, 259,
504 0, 1188, 0, 200, 125, 149, 146, 153, 177, 63,
505 154, 1177, 160, 161, 208, 185, 264, 171, 113, 210,
506 1176, 222, 260, 228, 186, 261, 271, 110, 273, 274,
507 230, 289, 277, 278, 240, 290, 292, 205, 291, 232,
508 296, 1175, 299, 303, 305, 306, 310, 313, 309, 318,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000509
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000510 311, 314, 317, 322, 328, 329, 338, 331, 335, 339,
511 333, 332, 346, 340, 352, 355, 1174, 358, 360, 361,
512 364, 368, 365, 369, 381, 376, 382, 388, 367, 396,
513 384, 395, 1173, 0, 414, 1172, 429, 447, 0, 1181,
514 1198, 0, 1170, 231, 397, 1169, 399, 398, 1168, 401,
515 414, 405, 1167, 442, 407, 431, 419, 434, 436, 449,
516 450, 1166, 454, 432, 438, 453, 456, 460, 458, 461,
517 467, 465, 471, 470, 468, 481, 485, 487, 474, 489,
518 490, 492, 472, 496, 498, 1165, 500, 502, 503, 1164,
519 1163, 1162, 1161, 1160, 1159, 504, 1158, 1157, 506, 1156,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000520
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000521 535, 509, 513, 507, 516, 1155, 1154, 1153, 515, 508,
522 528, 1152, 1151, 536, 527, 1150, 524, 550, 551, 552,
523 554, 555, 557, 556, 1149, 1148, 1147, 558, 1146, 1145,
524 559, 1144, 1143, 561, 564, 568, 570, 572, 580, 514,
525 579, 1142, 575, 583, 1198, 591, 606, 612, 616, 621,
526 606, 622, 623, 1141, 625, 591, 1140, 626, 627, 628,
527 592, 629, 631, 632, 633, 636, 635, 640, 638, 653,
528 1139, 1138, 639, 642, 649, 637, 1137, 1136, 654, 658,
529 655, 1135, 656, 659, 667, 669, 671, 675, 673, 1134,
530 1133, 676, 677, 678, 679, 1132, 680, 682, 0, 1131,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000531
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000532 683, 690, 1130, 685, 684, 699, 1129, 1128, 703, 700,
533 1127, 704, 709, 707, 1126, 711, 1125, 1124, 716, 717,
534 712, 720, 1123, 721, 1122, 722, 1121, 724, 725, 1120,
535 733, 1119, 734, 733, 1118, 726, 736, 745, 748, 737,
536 750, 755, 741, 752, 753, 756, 757, 1117, 758, 1116,
537 1115, 764, 767, 768, 769, 771, 770, 1114, 773, 775,
538 776, 780, 1113, 777, 783, 782, 784, 785, 794, 789,
539 798, 800, 802, 801, 805, 1112, 806, 807, 811, 813,
540 1111, 808, 1110, 814, 821, 815, 826, 810, 829, 832,
541 1109, 833, 834, 1108, 836, 835, 838, 1107, 837, 842,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000542
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000543 843, 1106, 839, 841, 1105, 1104, 1103, 849, 846, 1102,
544 1101, 856, 867, 851, 1100, 868, 1099, 1098, 852, 859,
545 1097, 869, 870, 1096, 871, 872, 1095, 1094, 1093, 879,
546 1092, 1091, 878, 1090, 1089, 880, 882, 885, 886, 889,
547 1088, 890, 892, 1087, 1076, 893, 895, 897, 902, 898,
548 1066, 899, 903, 904, 901, 906, 910, 912, 913, 1065,
549 922, 925, 926, 927, 929, 930, 932, 931, 934, 1064,
550 936, 938, 941, 943, 1061, 944, 945, 947, 1060, 1059,
551 1058, 1057, 1056, 1055, 949, 950, 951, 964, 1054, 966,
552 967, 968, 1048, 952, 1047, 1046, 969, 977, 956, 972,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000553
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000554 978, 979, 983, 981, 984, 985, 988, 855, 992, 993,
555 995, 996, 998, 687, 999, 1002, 1000, 1004, 1008, 596,
556 1009, 1011, 1013, 1014, 1018, 593, 1021, 1017, 1026, 1023,
557 1027, 1028, 1029, 522, 1030, 1036, 1032, 1039, 521, 469,
558 371, 1042, 370, 1043, 282, 279, 1045, 244, 1198, 1081,
559 1083, 212, 1088, 1091, 167, 1095, 108
Reid Spencer68a24bd2005-08-27 18:50:39 +0000560 } ;
561
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000562static yyconst flex_int16_t yy_def[558] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000563 { 0,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000564 549, 1, 549, 549, 549, 549, 550, 551, 552, 549,
565 551, 551, 551, 551, 553, 554, 551, 551, 551, 551,
566 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
567 551, 551, 551, 551, 551, 551, 551, 551, 550, 549,
568 551, 549, 555, 549, 549, 551, 551, 551, 551, 551,
569 553, 556, 557, 549, 551, 551, 551, 551, 551, 551,
570 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
571 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
572 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
573 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000574
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000575 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
576 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
577 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
578 551, 551, 549, 555, 549, 551, 551, 551, 50, 556,
579 549, 557, 551, 551, 551, 551, 551, 551, 551, 551,
580 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
581 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
582 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
583 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
584 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000585
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000586 50, 551, 551, 551, 551, 551, 551, 551, 551, 551,
587 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
588 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
589 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
590 551, 551, 551, 551, 549, 549, 549, 549, 551, 551,
591 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
592 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
593 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
594 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
595 551, 551, 551, 551, 551, 551, 551, 551, 201, 551,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000596
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000597 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
598 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
599 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
600 549, 551, 551, 551, 551, 551, 551, 551, 551, 551,
601 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
602 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
603 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
604 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
605 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
606 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000607
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000608 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
609 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
610 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
611 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
612 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
613 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
614 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
615 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
616 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
617 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000618
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000619 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
620 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
621 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
622 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
623 551, 551, 551, 551, 551, 551, 551, 551, 0, 549,
624 549, 549, 549, 549, 549, 549, 549
Reid Spencer68a24bd2005-08-27 18:50:39 +0000625 } ;
626
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000627static yyconst flex_int16_t yy_nxt[1243] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000628 { 0,
629 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000630 14, 14, 14, 4, 15, 16, 8, 8, 8, 17,
631 18, 19, 20, 21, 22, 23, 24, 25, 8, 26,
632 27, 28, 29, 30, 8, 31, 32, 33, 34, 35,
633 36, 37, 8, 38, 44, 44, 44, 44, 45, 45,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000634 45, 45, 46, 46, 46, 46, 42, 47, 44, 44,
635 44, 44, 42, 48, 49, 49, 49, 49, 42, 48,
636 49, 49, 49, 49, 42, 52, 42, 42, 42, 42,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000637 42, 54, 54, 54, 54, 63, 55, 64, 150, 42,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000638 60, 42, 81, 56, 61, 57, 50, 58, 65, 42,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000639
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000640 59, 103, 62, 42, 42, 66, 42, 70, 42, 67,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000641 71, 142, 42, 129, 79, 68, 132, 72, 69, 42,
642 80, 101, 92, 42, 136, 73, 42, 74, 75, 42,
643 42, 93, 102, 171, 42, 76, 89, 94, 42, 77,
644 85, 78, 82, 82, 82, 82, 42, 143, 86, 90,
645 42, 161, 42, 87, 83, 91, 115, 88, 127, 42,
646 130, 42, 42, 116, 84, 42, 42, 42, 146, 117,
647 134, 128, 118, 42, 42, 95, 144, 96, 145, 119,
648 131, 97, 153, 98, 42, 99, 147, 100, 104, 152,
649 42, 151, 42, 135, 45, 45, 45, 45, 42, 42,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000650
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000651 160, 105, 106, 148, 107, 108, 109, 149, 110, 54,
652 54, 54, 54, 167, 111, 43, 112, 113, 42, 114,
653 104, 42, 156, 42, 42, 48, 46, 46, 46, 46,
654 42, 183, 162, 120, 121, 42, 122, 154, 123, 155,
655 124, 42, 125, 42, 42, 42, 126, 137, 137, 137,
656 137, 42, 174, 42, 185, 138, 251, 42, 166, 163,
657 180, 138, 48, 49, 49, 49, 49, 42, 139, 139,
658 139, 139, 42, 42, 42, 139, 139, 42, 139, 139,
659 139, 139, 139, 139, 42, 157, 42, 42, 158, 164,
660 42, 42, 42, 168, 169, 42, 165, 159, 82, 82,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000661
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000662 82, 82, 42, 42, 42, 42, 173, 175, 170, 42,
663 172, 182, 42, 176, 177, 178, 42, 179, 42, 42,
664 184, 181, 42, 42, 42, 186, 42, 42, 196, 191,
665 42, 42, 189, 193, 187, 42, 195, 188, 198, 190,
666 197, 42, 42, 192, 42, 42, 42, 194, 42, 199,
667 203, 42, 42, 42, 200, 202, 214, 210, 204, 42,
668 208, 206, 212, 201, 215, 42, 216, 217, 42, 209,
669 205, 42, 211, 42, 42, 207, 213, 42, 42, 218,
670 42, 42, 42, 42, 42, 221, 240, 219, 224, 42,
671 220, 226, 229, 223, 42, 42, 222, 42, 225, 236,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000672
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000673 237, 42, 228, 231, 232, 227, 230, 241, 42, 42,
674 42, 42, 42, 233, 42, 238, 234, 239, 42, 242,
675 42, 235, 253, 246, 246, 246, 246, 42, 255, 252,
676 243, 247, 42, 254, 257, 256, 244, 247, 137, 137,
677 137, 137, 42, 259, 42, 42, 138, 42, 261, 42,
678 260, 42, 138, 248, 249, 42, 250, 250, 250, 250,
679 42, 262, 42, 42, 258, 263, 42, 42, 269, 42,
680 266, 42, 264, 42, 42, 270, 265, 267, 42, 273,
681 42, 42, 42, 42, 42, 42, 271, 42, 279, 268,
682 277, 280, 281, 275, 42, 272, 276, 278, 42, 274,
Reid Spencer6fd36ab2006-12-29 20:35:03 +0000683
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000684 42, 282, 42, 42, 283, 42, 287, 291, 284, 42,
685 285, 42, 288, 42, 290, 42, 42, 42, 289, 42,
686 42, 42, 42, 294, 286, 292, 42, 42, 42, 42,
687 302, 305, 296, 295, 42, 42, 293, 42, 297, 304,
688 42, 42, 327, 298, 299, 299, 299, 299, 300, 42,
689 301, 299, 299, 303, 299, 299, 299, 299, 299, 299,
690 306, 310, 309, 42, 42, 42, 307, 42, 42, 42,
691 42, 42, 42, 308, 42, 313, 312, 42, 315, 311,
692 317, 42, 320, 42, 321, 42, 316, 314, 42, 324,
693 319, 322, 42, 42, 325, 318, 42, 328, 323, 326,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000694
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000695 246, 246, 246, 246, 42, 42, 42, 329, 247, 42,
696 336, 340, 248, 248, 247, 331, 331, 331, 331, 42,
697 330, 331, 331, 331, 331, 250, 250, 250, 250, 42,
698 250, 250, 250, 250, 42, 42, 42, 332, 42, 42,
699 42, 42, 42, 333, 42, 42, 42, 337, 42, 42,
700 42, 42, 42, 42, 334, 42, 335, 339, 342, 347,
701 341, 348, 42, 344, 338, 345, 42, 42, 42, 42,
702 346, 42, 42, 343, 349, 354, 350, 356, 357, 351,
703 42, 358, 42, 355, 42, 352, 42, 353, 42, 42,
704 42, 42, 42, 42, 359, 42, 42, 42, 42, 362,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000705
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000706 42, 361, 360, 42, 363, 364, 366, 374, 365, 373,
707 371, 372, 42, 42, 370, 367, 42, 42, 369, 368,
708 42, 377, 42, 375, 42, 42, 376, 378, 379, 42,
709 42, 384, 381, 42, 42, 42, 380, 42, 42, 42,
710 382, 383, 331, 331, 331, 331, 42, 42, 388, 42,
711 42, 385, 390, 391, 42, 392, 386, 394, 42, 387,
712 389, 42, 393, 42, 395, 42, 42, 396, 42, 42,
713 42, 42, 397, 398, 400, 399, 402, 42, 404, 405,
714 42, 42, 42, 42, 42, 401, 42, 403, 42, 42,
715 42, 406, 409, 42, 407, 42, 42, 42, 42, 408,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000716
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000717 410, 411, 42, 415, 417, 418, 413, 42, 416, 414,
718 412, 42, 420, 42, 42, 42, 422, 421, 42, 42,
719 42, 42, 419, 42, 42, 426, 42, 42, 42, 437,
720 423, 425, 428, 430, 42, 433, 431, 424, 427, 42,
721 435, 432, 42, 434, 429, 42, 42, 42, 42, 42,
722 42, 42, 42, 436, 42, 42, 42, 448, 449, 42,
723 440, 444, 42, 439, 42, 42, 438, 442, 42, 42,
724 451, 441, 42, 445, 446, 447, 452, 443, 450, 453,
725 42, 42, 42, 42, 42, 42, 454, 457, 455, 456,
726 458, 42, 42, 42, 461, 42, 462, 463, 42, 42,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000727
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000728 459, 460, 42, 42, 464, 42, 42, 467, 42, 465,
729 42, 42, 42, 468, 42, 42, 42, 42, 466, 42,
730 469, 476, 477, 42, 471, 42, 42, 470, 472, 481,
731 473, 475, 478, 479, 483, 42, 480, 474, 42, 42,
732 42, 482, 42, 42, 42, 42, 488, 42, 486, 42,
733 484, 42, 489, 491, 42, 487, 42, 42, 42, 493,
734 42, 485, 42, 42, 42, 42, 497, 490, 492, 42,
735 500, 502, 501, 498, 494, 495, 499, 42, 496, 42,
736 42, 42, 42, 503, 504, 42, 506, 505, 509, 508,
737 42, 42, 42, 511, 42, 507, 42, 42, 42, 513,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000738
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000739 510, 42, 512, 517, 515, 42, 42, 519, 42, 42,
740 516, 42, 42, 42, 518, 42, 514, 42, 525, 523,
741 520, 42, 42, 521, 42, 526, 42, 42, 522, 527,
742 42, 42, 530, 528, 42, 524, 42, 529, 536, 42,
743 42, 42, 42, 42, 532, 42, 533, 534, 531, 42,
744 535, 542, 42, 537, 538, 42, 42, 543, 42, 42,
745 42, 42, 539, 546, 541, 540, 547, 42, 42, 42,
746 42, 42, 42, 42, 42, 544, 545, 42, 42, 42,
747 548, 39, 39, 39, 39, 39, 41, 41, 51, 42,
748 51, 51, 51, 53, 53, 140, 140, 140, 140, 140,
Reid Spencer14310612006-12-31 05:40:51 +0000749
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000750 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 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
754 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
755 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000756 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
757 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
758 42, 42, 42, 42, 141, 42, 245, 42, 42, 42,
759 42, 141, 42, 133, 42, 40, 549, 3, 549, 549,
Chris Lattner75466192006-05-19 21:28:53 +0000760
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000761 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
762 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
763 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
764 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
765 549, 549
Reid Spencer68a24bd2005-08-27 18:50:39 +0000766 } ;
767
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000768static yyconst flex_int16_t yy_chk[1243] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000769 { 0,
770 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
771 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
772 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
773 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +0000774 1, 1, 1, 1, 9, 9, 9, 9, 10, 10,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000775 10, 10, 11, 11, 11, 11, 11, 12, 44, 44,
776 44, 44, 12, 13, 13, 13, 13, 13, 13, 14,
777 14, 14, 14, 14, 14, 16, 60, 17, 24, 19,
778 18, 16, 16, 16, 16, 19, 17, 19, 60, 21,
779 18, 31, 24, 17, 18, 17, 13, 17, 19, 20,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000780
Reid Spencer3025dfd2007-03-29 18:50:01 +0000781 17, 31, 18, 36, 23, 20, 38, 21, 30, 20,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000782 21, 557, 28, 36, 23, 20, 38, 21, 20, 22,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000783 23, 30, 28, 78, 47, 22, 69, 22, 22, 47,
784 27, 28, 30, 78, 26, 22, 27, 28, 55, 22,
785 26, 22, 25, 25, 25, 25, 25, 55, 26, 27,
786 33, 69, 35, 26, 25, 27, 33, 26, 35, 57,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000787 37, 37, 56, 33, 25, 29, 58, 61, 57, 33,
788 555, 35, 33, 63, 64, 29, 56, 29, 56, 33,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000789 37, 29, 64, 29, 68, 29, 58, 29, 32, 63,
790 59, 61, 32, 45, 45, 45, 45, 45, 66, 75,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000791
Reid Spencer3025dfd2007-03-29 18:50:01 +0000792 68, 32, 32, 59, 32, 32, 32, 59, 32, 54,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000793 54, 54, 54, 75, 32, 552, 32, 32, 88, 32,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000794 34, 65, 66, 70, 34, 46, 46, 46, 46, 46,
Reid Spencer3d6b71e2007-04-09 01:56:05 +0000795 46, 88, 70, 34, 34, 72, 34, 65, 34, 65,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000796 34, 74, 34, 81, 144, 90, 34, 48, 48, 48,
797 48, 48, 81, 85, 90, 48, 144, 548, 74, 72,
798 85, 48, 49, 49, 49, 49, 49, 49, 50, 50,
Reid Spencer3025dfd2007-03-29 18:50:01 +0000799 50, 50, 50, 73, 76, 50, 50, 67, 50, 50,
800 50, 50, 50, 50, 77, 67, 79, 80, 67, 73,
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000801 83, 84, 546, 76, 77, 545, 73, 67, 82, 82,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000802
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000803 82, 82, 82, 86, 89, 87, 80, 83, 77, 91,
804 79, 87, 93, 84, 84, 84, 94, 84, 95, 96,
805 89, 86, 99, 97, 101, 91, 98, 102, 99, 96,
806 103, 100, 94, 97, 93, 104, 98, 93, 101, 95,
807 100, 105, 106, 96, 108, 112, 111, 97, 109, 102,
808 106, 107, 110, 114, 103, 105, 111, 109, 106, 113,
809 108, 107, 110, 104, 112, 115, 113, 114, 116, 108,
810 106, 118, 109, 119, 120, 107, 110, 121, 123, 115,
811 129, 122, 124, 543, 541, 118, 129, 115, 120, 126,
812 116, 122, 124, 119, 125, 127, 118, 131, 121, 126,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000813
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000814 127, 128, 123, 125, 125, 122, 124, 130, 132, 130,
815 145, 148, 147, 125, 150, 128, 125, 128, 152, 131,
816 155, 125, 147, 135, 135, 135, 135, 151, 150, 145,
817 132, 135, 157, 148, 152, 151, 132, 135, 137, 137,
818 137, 137, 137, 155, 156, 164, 137, 158, 157, 159,
819 156, 165, 137, 138, 138, 154, 138, 138, 138, 138,
820 138, 158, 160, 161, 154, 159, 166, 163, 164, 167,
821 161, 169, 160, 168, 170, 165, 160, 163, 172, 168,
822 171, 175, 540, 174, 173, 183, 166, 179, 172, 163,
823 171, 173, 174, 170, 176, 167, 170, 171, 177, 169,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000824
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000825 178, 175, 180, 181, 176, 182, 179, 183, 177, 184,
826 178, 185, 180, 187, 182, 188, 189, 196, 181, 199,
827 204, 210, 202, 187, 178, 184, 203, 240, 209, 205,
828 204, 210, 189, 188, 539, 534, 185, 217, 196, 209,
829 215, 211, 240, 199, 201, 201, 201, 201, 202, 214,
830 203, 201, 201, 205, 201, 201, 201, 201, 201, 201,
831 211, 217, 215, 218, 219, 220, 214, 221, 222, 224,
832 223, 228, 231, 214, 234, 220, 219, 235, 222, 218,
833 223, 236, 231, 237, 234, 238, 222, 221, 243, 237,
834 228, 235, 241, 239, 238, 224, 244, 241, 236, 239,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000835
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000836 246, 246, 246, 246, 256, 261, 526, 243, 246, 520,
837 256, 261, 247, 247, 246, 247, 247, 247, 247, 251,
838 244, 248, 248, 248, 248, 249, 249, 249, 249, 249,
839 250, 250, 250, 250, 250, 252, 253, 251, 255, 258,
840 259, 260, 262, 252, 263, 264, 265, 258, 267, 266,
841 276, 269, 273, 268, 253, 274, 255, 260, 263, 268,
842 262, 269, 275, 265, 259, 266, 270, 279, 281, 283,
843 267, 280, 284, 264, 270, 276, 273, 280, 281, 274,
844 285, 283, 286, 279, 287, 275, 289, 275, 288, 292,
845 293, 294, 295, 297, 284, 298, 301, 305, 304, 287,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000846
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000847 514, 286, 285, 302, 288, 289, 293, 305, 292, 304,
848 301, 302, 306, 310, 298, 294, 309, 312, 297, 295,
849 314, 310, 313, 306, 316, 321, 309, 312, 313, 319,
850 320, 321, 316, 322, 324, 326, 314, 328, 329, 336,
851 319, 320, 331, 331, 331, 331, 334, 333, 328, 337,
852 340, 322, 329, 333, 343, 334, 324, 337, 338, 326,
853 328, 339, 336, 341, 338, 344, 345, 339, 342, 346,
854 347, 349, 340, 341, 343, 342, 345, 352, 347, 349,
855 353, 354, 355, 357, 356, 344, 359, 346, 360, 361,
856 364, 352, 355, 362, 353, 366, 365, 367, 368, 354,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000857
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000858 356, 357, 370, 362, 365, 366, 360, 369, 364, 361,
859 359, 371, 368, 372, 374, 373, 370, 369, 375, 377,
860 378, 382, 367, 388, 379, 374, 380, 384, 386, 388,
861 371, 373, 377, 379, 385, 384, 380, 372, 375, 387,
862 386, 382, 389, 385, 378, 390, 392, 393, 396, 395,
863 399, 397, 403, 387, 404, 400, 401, 403, 403, 409,
864 392, 397, 408, 390, 414, 419, 389, 395, 508, 412,
865 408, 393, 420, 399, 400, 401, 409, 396, 404, 412,
866 413, 416, 422, 423, 425, 426, 413, 419, 414, 416,
867 420, 433, 430, 436, 425, 437, 426, 430, 438, 439,
Chris Lattnere869eef2005-11-12 00:11:49 +0000868
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000869 422, 423, 440, 442, 433, 443, 446, 438, 447, 436,
870 448, 450, 452, 439, 455, 449, 453, 454, 437, 456,
871 440, 450, 452, 457, 443, 458, 459, 442, 446, 456,
872 447, 449, 453, 454, 458, 461, 455, 448, 462, 463,
873 464, 457, 465, 466, 468, 467, 464, 469, 462, 471,
874 459, 472, 465, 467, 473, 463, 474, 476, 477, 469,
875 478, 461, 485, 486, 487, 494, 474, 466, 468, 499,
876 478, 486, 485, 476, 471, 472, 477, 488, 473, 490,
877 491, 492, 497, 487, 488, 500, 491, 490, 497, 494,
878 498, 501, 502, 499, 504, 492, 503, 505, 506, 501,
Chris Lattner75466192006-05-19 21:28:53 +0000879
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000880 498, 507, 500, 505, 503, 509, 510, 507, 511, 512,
881 504, 513, 515, 517, 506, 516, 502, 518, 515, 512,
882 509, 519, 521, 510, 522, 516, 523, 524, 511, 517,
883 528, 525, 521, 518, 527, 513, 530, 519, 528, 529,
884 531, 532, 533, 535, 523, 537, 524, 525, 522, 536,
885 527, 535, 538, 529, 530, 542, 544, 536, 547, 496,
886 495, 493, 531, 542, 533, 532, 544, 489, 484, 483,
887 482, 481, 480, 479, 475, 537, 538, 470, 460, 451,
888 547, 550, 550, 550, 550, 550, 551, 551, 553, 445,
889 553, 553, 553, 554, 554, 556, 556, 556, 556, 556,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000890
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000891 444, 441, 435, 434, 432, 431, 429, 428, 427, 424,
892 421, 418, 417, 415, 411, 410, 407, 406, 405, 402,
893 398, 394, 391, 383, 381, 376, 363, 358, 351, 350,
894 348, 335, 332, 330, 327, 325, 323, 318, 317, 315,
895 311, 308, 307, 303, 300, 296, 291, 290, 282, 278,
896 277, 272, 271, 257, 254, 242, 233, 232, 230, 229,
897 227, 226, 225, 216, 213, 212, 208, 207, 206, 200,
898 198, 197, 195, 194, 193, 192, 191, 190, 186, 162,
899 153, 149, 146, 143, 140, 136, 133, 117, 92, 71,
900 62, 52, 41, 39, 8, 7, 3, 549, 549, 549,
Reid Spencer3da59db2006-11-27 01:05:10 +0000901
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000902 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
903 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
904 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
905 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
906 549, 549
Reid Spencer68a24bd2005-08-27 18:50:39 +0000907 } ;
908
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000909/* Table of booleans, true if rule could match eol. */
910static yyconst flex_int32_t yy_rule_can_match_eol[137] =
911 { 0,
9120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
919
920static yy_state_type yy_last_accepting_state;
921static char *yy_last_accepting_cpos;
922
923extern int llvmAsm_flex_debug;
924int llvmAsm_flex_debug = 0;
925
926/* The intent behind this definition is that it'll catch
927 * any uses of REJECT which flex missed.
928 */
929#define REJECT reject_used_but_not_detected
Reid Spencer68a24bd2005-08-27 18:50:39 +0000930#define yymore() yymore_used_but_not_detected
931#define YY_MORE_ADJ 0
932#define YY_RESTORE_YY_MORE_OFFSET
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000933char *llvmAsmtext;
934#line 1 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000935/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
936//
937// The LLVM Compiler Infrastructure
938//
939// This file was developed by the LLVM research group and is distributed under
940// the University of Illinois Open Source License. See LICENSE.TXT for details.
941//
942//===----------------------------------------------------------------------===//
943//
944// This file implements the flex scanner for LLVM assembly languages files.
945//
946//===----------------------------------------------------------------------===*/
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000947#line 28 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000948#include "ParserInternals.h"
949#include "llvm/Module.h"
950#include <list>
951#include "llvmAsmParser.h"
952#include <cctype>
953#include <cstdlib>
954
955void set_scan_file(FILE * F){
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000956 llvmAsm_switch_to_buffer(llvmAsm_create_buffer(F,YY_BUF_SIZE ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000957}
958void set_scan_string (const char * str) {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +0000959 llvmAsm_scan_string (str);
Reid Spencer68a24bd2005-08-27 18:50:39 +0000960}
961
Reid Spencer3ed469c2006-11-02 20:25:50 +0000962// Construct a token value for a non-obsolete token
Reid Spencer68a24bd2005-08-27 18:50:39 +0000963#define RET_TOK(type, Enum, sym) \
Reid Spencera132e042006-12-03 05:46:11 +0000964 llvmAsmlval.type = Instruction::Enum; \
965 return sym
966
Reid Spencer3ed469c2006-11-02 20:25:50 +0000967// Construct a token value for an obsolete token
Reid Spencera132e042006-12-03 05:46:11 +0000968#define RET_TY(CTYPE, SYM) \
969 llvmAsmlval.PrimType = CTYPE;\
Reid Spencer481169e2006-12-01 00:33:46 +0000970 return SYM
Reid Spencer68a24bd2005-08-27 18:50:39 +0000971
972namespace llvm {
973
974// TODO: All of the static identifiers are figured out by the lexer,
975// these should be hashed to reduce the lexer size
976
977
978// atoull - Convert an ascii string of decimal digits into the unsigned long
979// long representation... this does not have to do input error checking,
980// because we know that the input will be matched by a suitable regex...
981//
982static uint64_t atoull(const char *Buffer) {
983 uint64_t Result = 0;
984 for (; *Buffer; Buffer++) {
985 uint64_t OldRes = Result;
986 Result *= 10;
987 Result += *Buffer-'0';
988 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +0000989 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +0000990 }
991 return Result;
992}
993
994static uint64_t HexIntToVal(const char *Buffer) {
995 uint64_t Result = 0;
996 for (; *Buffer; ++Buffer) {
997 uint64_t OldRes = Result;
998 Result *= 16;
999 char C = *Buffer;
1000 if (C >= '0' && C <= '9')
1001 Result += C-'0';
1002 else if (C >= 'A' && C <= 'F')
1003 Result += C-'A'+10;
1004 else if (C >= 'a' && C <= 'f')
1005 Result += C-'a'+10;
1006
1007 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +00001008 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001009 }
1010 return Result;
1011}
1012
1013
1014// HexToFP - Convert the ascii string in hexidecimal format to the floating
1015// point representation of it.
1016//
1017static double HexToFP(const char *Buffer) {
1018 // Behave nicely in the face of C TBAA rules... see:
1019 // http://www.nullstone.com/htmls/category/aliastyp.htm
1020 union {
1021 uint64_t UI;
1022 double FP;
1023 } UIntToFP;
1024 UIntToFP.UI = HexIntToVal(Buffer);
1025
1026 assert(sizeof(double) == sizeof(uint64_t) &&
1027 "Data sizes incompatible on this target!");
1028 return UIntToFP.FP; // Cast Hex constant to double
1029}
1030
1031
1032// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
1033// appropriate character. If AllowNull is set to false, a \00 value will cause
1034// an exception to be thrown.
1035//
1036// If AllowNull is set to true, the return value of the function points to the
1037// last character of the string in memory.
1038//
1039char *UnEscapeLexed(char *Buffer, bool AllowNull) {
1040 char *BOut = Buffer;
1041 for (char *BIn = Buffer; *BIn; ) {
1042 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
1043 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
1044 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
1045 if (!AllowNull && !*BOut)
Reid Spencer61c83e02006-08-18 08:43:06 +00001046 GenerateError("String literal cannot accept \\00 escape!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001047
1048 BIn[3] = Tmp; // Restore character
1049 BIn += 3; // Skip over handled chars
1050 ++BOut;
1051 } else {
1052 *BOut++ = *BIn++;
1053 }
1054 }
1055
1056 return BOut;
1057}
1058
1059} // End llvm namespace
1060
1061using namespace llvm;
1062
1063#define YY_NEVER_INTERACTIVE 1
1064/* Comments start with a ; and go till end of line */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001065/* Local Values and Type identifiers start with a % sign */
1066/* Global Value identifiers start with an @ sign */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001067/* Label identifiers end with a colon */
1068/* Quoted names can contain any character except " and \ */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001069/* LocalVarID/GlobalVarID: match an unnamed local variable slot ID. */
1070/* Integer types are specified with i and a bitwidth */
1071/* E[PN]Integer: match positive and negative literal integer values. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001072/* FPConstant - A Floating point constant.
1073 */
1074/* HexFPConstant - Floating point constant represented in IEEE format as a
1075 * hexadecimal number for when exponential notation is not precise enough.
1076 */
1077/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
1078 * it to deal with 64 bit numbers.
1079 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001080#line 1081 "Lexer.cpp"
1081
1082#define INITIAL 0
1083
1084#ifndef YY_NO_UNISTD_H
1085/* Special case for "unistd.h", since it is non-ANSI. We include it way
1086 * down here because we want the user's section 1 to have been scanned first.
1087 * The user has a chance to override it with an option.
1088 */
1089#include <unistd.h>
1090#endif
1091
1092#ifndef YY_EXTRA_TYPE
1093#define YY_EXTRA_TYPE void *
1094#endif
1095
1096static int yy_init_globals (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001097
1098/* Macros after this point can all be overridden by user definitions in
1099 * section 1.
1100 */
1101
1102#ifndef YY_SKIP_YYWRAP
1103#ifdef __cplusplus
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001104extern "C" int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001105#else
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001106extern int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001107#endif
1108#endif
1109
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001110 static inline void yyunput (int c,char *buf_ptr );
1111
Reid Spencer68a24bd2005-08-27 18:50:39 +00001112#ifndef yytext_ptr
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001113static void yy_flex_strncpy (char *,yyconst char *,int );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001114#endif
1115
1116#ifdef YY_NEED_STRLEN
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001117static int yy_flex_strlen (yyconst char * );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001118#endif
1119
1120#ifndef YY_NO_INPUT
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001121
Reid Spencer68a24bd2005-08-27 18:50:39 +00001122#ifdef __cplusplus
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001123static int yyinput (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001124#else
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001125static int input (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001126#endif
1127
Reid Spencer68a24bd2005-08-27 18:50:39 +00001128#endif
1129
1130/* Amount of stuff to slurp up with each read. */
1131#ifndef YY_READ_BUF_SIZE
1132#define YY_READ_BUF_SIZE 8192
1133#endif
1134
1135/* Copy whatever the last rule matched to the standard output. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001136#ifndef ECHO
1137/* This used to be an fputs(), but since the string might contain NUL's,
1138 * we now use fwrite().
1139 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001140#define ECHO (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001141#endif
1142
1143/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1144 * is returned in "result".
1145 */
1146#ifndef YY_INPUT
1147#define YY_INPUT(buf,result,max_size) \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001148 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001149 { \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001150 int c = '*'; \
1151 size_t n; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001152 for ( n = 0; n < max_size && \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001153 (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001154 buf[n] = (char) c; \
1155 if ( c == '\n' ) \
1156 buf[n++] = (char) c; \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001157 if ( c == EOF && ferror( llvmAsmin ) ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001158 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1159 result = n; \
1160 } \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001161 else \
1162 { \
1163 errno=0; \
1164 while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
1165 { \
1166 if( errno != EINTR) \
1167 { \
1168 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1169 break; \
1170 } \
1171 errno=0; \
1172 clearerr(llvmAsmin); \
1173 } \
1174 }\
1175\
1176
Reid Spencer68a24bd2005-08-27 18:50:39 +00001177#endif
1178
1179/* No semi-colon after return; correct usage is to write "yyterminate();" -
1180 * we don't want an extra ';' after the "return" because that will cause
1181 * some compilers to complain about unreachable statements.
1182 */
1183#ifndef yyterminate
1184#define yyterminate() return YY_NULL
1185#endif
1186
1187/* Number of entries by which start-condition stack grows. */
1188#ifndef YY_START_STACK_INCR
1189#define YY_START_STACK_INCR 25
1190#endif
1191
1192/* Report a fatal error. */
1193#ifndef YY_FATAL_ERROR
1194#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1195#endif
1196
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001197/* end tables serialization structures and prototypes */
1198
Reid Spencer68a24bd2005-08-27 18:50:39 +00001199/* Default declaration of generated scanner - a define so the user can
1200 * easily add parameters.
1201 */
1202#ifndef YY_DECL
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001203#define YY_DECL_IS_OURS 1
Reid Spencer68a24bd2005-08-27 18:50:39 +00001204
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001205extern int llvmAsmlex (void);
1206
1207#define YY_DECL int llvmAsmlex (void)
1208#endif /* !YY_DECL */
1209
1210/* Code executed at the beginning of each rule, after llvmAsmtext and llvmAsmleng
Reid Spencer68a24bd2005-08-27 18:50:39 +00001211 * have been set up.
1212 */
1213#ifndef YY_USER_ACTION
1214#define YY_USER_ACTION
1215#endif
1216
1217/* Code executed at the end of each rule. */
1218#ifndef YY_BREAK
1219#define YY_BREAK break;
1220#endif
1221
1222#define YY_RULE_SETUP \
1223 YY_USER_ACTION
1224
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001225/** The main scanner function which does all the work.
1226 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001227YY_DECL
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001228{
Reid Spencer68a24bd2005-08-27 18:50:39 +00001229 register yy_state_type yy_current_state;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001230 register char *yy_cp, *yy_bp;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001231 register int yy_act;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001232
1233#line 190 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001234
1235
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001236#line 1237 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001237
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001238 if ( !(yy_init) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001239 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001240 (yy_init) = 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001241
1242#ifdef YY_USER_INIT
1243 YY_USER_INIT;
1244#endif
1245
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001246 if ( ! (yy_start) )
1247 (yy_start) = 1; /* first start state */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001248
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001249 if ( ! llvmAsmin )
1250 llvmAsmin = stdin;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001251
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001252 if ( ! llvmAsmout )
1253 llvmAsmout = stdout;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001254
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001255 if ( ! YY_CURRENT_BUFFER ) {
1256 llvmAsmensure_buffer_stack ();
1257 YY_CURRENT_BUFFER_LVALUE =
1258 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
1259 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001260
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001261 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001262 }
1263
1264 while ( 1 ) /* loops until end-of-file is reached */
1265 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001266 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001267
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001268 /* Support of llvmAsmtext. */
1269 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001270
1271 /* yy_bp points to the position in yy_ch_buf of the start of
1272 * the current run.
1273 */
1274 yy_bp = yy_cp;
1275
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001276 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001277yy_match:
1278 do
1279 {
1280 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001281 if ( yy_accept[yy_current_state] )
1282 {
1283 (yy_last_accepting_state) = yy_current_state;
1284 (yy_last_accepting_cpos) = yy_cp;
1285 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001286 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1287 {
1288 yy_current_state = (int) yy_def[yy_current_state];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001289 if ( yy_current_state >= 550 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001290 yy_c = yy_meta[(unsigned int) yy_c];
1291 }
1292 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001293 ++yy_cp;
1294 }
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001295 while ( yy_current_state != 549 );
1296 yy_cp = (yy_last_accepting_cpos);
1297 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001298
1299yy_find_action:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001300 yy_act = yy_accept[yy_current_state];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001301
1302 YY_DO_BEFORE_ACTION;
1303
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001304 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001305 {
1306 int yyl;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001307 for ( yyl = 0; yyl < llvmAsmleng; ++yyl )
1308 if ( llvmAsmtext[yyl] == '\n' )
1309
1310 llvmAsmlineno++;
1311;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001312 }
1313
1314do_action: /* This label is used only to access EOF actions. */
1315
Reid Spencer68a24bd2005-08-27 18:50:39 +00001316 switch ( yy_act )
1317 { /* beginning of action switch */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001318 case 0: /* must back up */
1319 /* undo the effects of YY_DO_BEFORE_ACTION */
1320 *yy_cp = (yy_hold_char);
1321 yy_cp = (yy_last_accepting_cpos);
1322 yy_current_state = (yy_last_accepting_state);
1323 goto yy_find_action;
1324
Reid Spencer68a24bd2005-08-27 18:50:39 +00001325case 1:
1326YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001327#line 192 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001328{ /* Ignore comments for now */ }
1329 YY_BREAK
1330case 2:
1331YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001332#line 194 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001333{ return BEGINTOK; }
1334 YY_BREAK
1335case 3:
1336YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001337#line 195 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001338{ return ENDTOK; }
1339 YY_BREAK
1340case 4:
1341YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001342#line 196 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001343{ return TRUETOK; }
1344 YY_BREAK
1345case 5:
1346YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001347#line 197 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001348{ return FALSETOK; }
1349 YY_BREAK
1350case 6:
1351YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001352#line 198 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001353{ return DECLARE; }
1354 YY_BREAK
1355case 7:
1356YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001357#line 199 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001358{ return DEFINE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001359 YY_BREAK
1360case 8:
1361YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001362#line 200 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001363{ return GLOBAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001364 YY_BREAK
1365case 9:
1366YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001367#line 201 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001368{ return CONSTANT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001369 YY_BREAK
1370case 10:
1371YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001372#line 202 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001373{ return INTERNAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001374 YY_BREAK
1375case 11:
1376YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001377#line 203 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001378{ return LINKONCE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001379 YY_BREAK
1380case 12:
1381YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001382#line 204 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001383{ return WEAK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001384 YY_BREAK
1385case 13:
1386YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001387#line 205 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001388{ return APPENDING; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001389 YY_BREAK
1390case 14:
1391YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001392#line 206 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001393{ return DLLIMPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001394 YY_BREAK
1395case 15:
1396YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001397#line 207 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer6fd36ab2006-12-29 20:35:03 +00001398{ return DLLEXPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001399 YY_BREAK
1400case 16:
1401YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001402#line 208 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001403{ return HIDDEN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001404 YY_BREAK
1405case 17:
1406YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001407#line 209 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001408{ return EXTERN_WEAK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001409 YY_BREAK
1410case 18:
1411YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001412#line 210 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov178a3522007-01-12 19:22:51 +00001413{ return EXTERNAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001414 YY_BREAK
1415case 19:
1416YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001417#line 211 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1418{ return THREAD_LOCAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001419 YY_BREAK
1420case 20:
1421YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001422#line 212 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1423{ return ZEROINITIALIZER; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001424 YY_BREAK
1425case 21:
1426YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001427#line 213 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1428{ return DOTDOTDOT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001429 YY_BREAK
1430case 22:
1431YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001432#line 214 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1433{ return UNDEF; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001434 YY_BREAK
1435case 23:
1436YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001437#line 215 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1438{ return NULL_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001439 YY_BREAK
1440case 24:
1441YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001442#line 216 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1443{ return TO; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001444 YY_BREAK
1445case 25:
1446YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001447#line 217 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1448{ return TAIL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001449 YY_BREAK
1450case 26:
1451YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001452#line 218 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1453{ return TARGET; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001454 YY_BREAK
1455case 27:
1456YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001457#line 219 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1458{ return TRIPLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001459 YY_BREAK
1460case 28:
1461YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001462#line 220 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1463{ return DEPLIBS; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001464 YY_BREAK
1465case 29:
1466YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001467#line 221 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1468{ return DATALAYOUT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001469 YY_BREAK
1470case 30:
1471YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001472#line 222 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1473{ return VOLATILE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001474 YY_BREAK
1475case 31:
1476YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001477#line 223 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1478{ return ALIGN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001479 YY_BREAK
1480case 32:
1481YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001482#line 224 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1483{ return SECTION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001484 YY_BREAK
1485case 33:
1486YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001487#line 225 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1488{ return MODULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001489 YY_BREAK
1490case 34:
1491YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001492#line 226 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1493{ return ASM_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001494 YY_BREAK
1495case 35:
1496YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001497#line 227 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1498{ return SIDEEFFECT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001499 YY_BREAK
1500case 36:
1501YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001502#line 229 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1503{ return CC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001504 YY_BREAK
1505case 37:
1506YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001507#line 230 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1508{ return CCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001509 YY_BREAK
1510case 38:
1511YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001512#line 231 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1513{ return FASTCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001514 YY_BREAK
1515case 39:
1516YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001517#line 232 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1518{ return COLDCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001519 YY_BREAK
1520case 40:
1521YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001522#line 233 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1523{ return X86_STDCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001524 YY_BREAK
1525case 41:
1526YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001527#line 234 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1528{ return X86_FASTCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001529 YY_BREAK
1530case 42:
1531YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001532#line 236 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1533{ return INREG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001534 YY_BREAK
1535case 43:
1536YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001537#line 237 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1538{ return SRET; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001539 YY_BREAK
1540case 44:
1541YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001542#line 238 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1543{ return NOUNWIND; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001544 YY_BREAK
1545case 45:
1546YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001547#line 239 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1548{ return NORETURN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001549 YY_BREAK
1550case 46:
1551YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001552#line 241 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1553{ RET_TY(Type::VoidTy, VOID); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001554 YY_BREAK
1555case 47:
1556YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001557#line 242 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1558{ RET_TY(Type::FloatTy, FLOAT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001559 YY_BREAK
1560case 48:
1561YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001562#line 243 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1563{ RET_TY(Type::DoubleTy,DOUBLE);}
Reid Spencer832254e2007-02-02 02:16:23 +00001564 YY_BREAK
1565case 49:
1566YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001567#line 244 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1568{ RET_TY(Type::LabelTy, LABEL); }
Reid Spencer832254e2007-02-02 02:16:23 +00001569 YY_BREAK
1570case 50:
1571YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001572#line 245 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1573{ return TYPE; }
Reid Spencer67d8ed92007-03-22 02:14:08 +00001574 YY_BREAK
1575case 51:
1576YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001577#line 246 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1578{ return OPAQUE; }
1579 YY_BREAK
1580case 52:
1581YY_RULE_SETUP
1582#line 247 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1583{ uint64_t NumBits = atoull(llvmAsmtext+1);
Reid Spencera54b7cb2007-01-12 07:05:14 +00001584 if (NumBits < IntegerType::MIN_INT_BITS ||
1585 NumBits > IntegerType::MAX_INT_BITS)
1586 GenerateError("Bitwidth for integer type out of range!");
1587 const Type* Ty = IntegerType::get(NumBits);
1588 RET_TY(Ty, INTTYPE);
1589 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001590 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001591case 53:
1592YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001593#line 255 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1594{ RET_TOK(BinaryOpVal, Add, ADD); }
Reid Spencer41dff5e2007-01-26 08:05:27 +00001595 YY_BREAK
Reid Spencer6f407902007-01-13 05:00:46 +00001596case 54:
1597YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001598#line 256 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1599{ RET_TOK(BinaryOpVal, Sub, SUB); }
Reid Spencer6f407902007-01-13 05:00:46 +00001600 YY_BREAK
Reid Spencer68a24bd2005-08-27 18:50:39 +00001601case 55:
1602YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001603#line 257 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1604{ RET_TOK(BinaryOpVal, Mul, MUL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001605 YY_BREAK
1606case 56:
1607YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001608#line 258 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1609{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001610 YY_BREAK
1611case 57:
1612YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001613#line 259 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1614{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001615 YY_BREAK
1616case 58:
1617YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001618#line 260 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1619{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001620 YY_BREAK
1621case 59:
1622YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001623#line 261 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1624{ RET_TOK(BinaryOpVal, URem, UREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001625 YY_BREAK
1626case 60:
1627YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001628#line 262 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1629{ RET_TOK(BinaryOpVal, SRem, SREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001630 YY_BREAK
1631case 61:
1632YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001633#line 263 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1634{ RET_TOK(BinaryOpVal, FRem, FREM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001635 YY_BREAK
1636case 62:
1637YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001638#line 264 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1639{ RET_TOK(BinaryOpVal, Shl, SHL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001640 YY_BREAK
1641case 63:
1642YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001643#line 265 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1644{ RET_TOK(BinaryOpVal, LShr, LSHR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001645 YY_BREAK
1646case 64:
1647YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001648#line 266 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1649{ RET_TOK(BinaryOpVal, AShr, ASHR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001650 YY_BREAK
1651case 65:
1652YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001653#line 267 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1654{ RET_TOK(BinaryOpVal, And, AND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001655 YY_BREAK
1656case 66:
1657YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001658#line 268 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1659{ RET_TOK(BinaryOpVal, Or , OR ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001660 YY_BREAK
1661case 67:
1662YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001663#line 269 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1664{ RET_TOK(BinaryOpVal, Xor, XOR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001665 YY_BREAK
1666case 68:
1667YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001668#line 270 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1669{ RET_TOK(OtherOpVal, ICmp, ICMP); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001670 YY_BREAK
1671case 69:
1672YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001673#line 271 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1674{ RET_TOK(OtherOpVal, FCmp, FCMP); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001675 YY_BREAK
1676case 70:
1677YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001678#line 273 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1679{ return EQ; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001680 YY_BREAK
1681case 71:
1682YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001683#line 274 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1684{ return NE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001685 YY_BREAK
1686case 72:
1687YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001688#line 275 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1689{ return SLT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001690 YY_BREAK
1691case 73:
1692YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001693#line 276 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1694{ return SGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001695 YY_BREAK
1696case 74:
1697YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001698#line 277 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1699{ return SLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001700 YY_BREAK
1701case 75:
1702YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001703#line 278 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1704{ return SGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001705 YY_BREAK
1706case 76:
1707YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001708#line 279 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1709{ return ULT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001710 YY_BREAK
1711case 77:
1712YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001713#line 280 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1714{ return UGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001715 YY_BREAK
1716case 78:
1717YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001718#line 281 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1719{ return ULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001720 YY_BREAK
1721case 79:
1722YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001723#line 282 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1724{ return UGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001725 YY_BREAK
1726case 80:
1727YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001728#line 283 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1729{ return OEQ; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001730 YY_BREAK
1731case 81:
1732YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001733#line 284 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1734{ return ONE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001735 YY_BREAK
1736case 82:
1737YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001738#line 285 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1739{ return OLT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001740 YY_BREAK
1741case 83:
1742YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001743#line 286 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1744{ return OGT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001745 YY_BREAK
1746case 84:
1747YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001748#line 287 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1749{ return OLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001750 YY_BREAK
1751case 85:
1752YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001753#line 288 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1754{ return OGE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001755 YY_BREAK
1756case 86:
1757YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001758#line 289 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1759{ return ORD; }
Nate Begeman14b05292005-11-05 09:21:28 +00001760 YY_BREAK
1761case 87:
1762YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001763#line 290 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1764{ return UNO; }
Chris Lattnere869eef2005-11-12 00:11:49 +00001765 YY_BREAK
1766case 88:
1767YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001768#line 291 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1769{ return UEQ; }
Robert Bocchino9c62b562006-01-10 19:04:32 +00001770 YY_BREAK
1771case 89:
1772YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001773#line 292 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1774{ return UNE; }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001775 YY_BREAK
1776case 90:
1777YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001778#line 294 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1779{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
Chris Lattner8335e842006-01-23 23:05:42 +00001780 YY_BREAK
1781case 91:
1782YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001783#line 295 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1784{ RET_TOK(OtherOpVal, Call, CALL); }
Chris Lattner66316012006-01-24 04:14:29 +00001785 YY_BREAK
1786case 92:
1787YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001788#line 296 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1789{ RET_TOK(CastOpVal, Trunc, TRUNC); }
Chris Lattner0e9c3762006-01-25 22:27:16 +00001790 YY_BREAK
1791case 93:
1792YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001793#line 297 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1794{ RET_TOK(CastOpVal, ZExt, ZEXT); }
Chris Lattnerd5efe842006-04-08 01:18:56 +00001795 YY_BREAK
1796case 94:
1797YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001798#line 298 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1799{ RET_TOK(CastOpVal, SExt, SEXT); }
Chris Lattner75466192006-05-19 21:28:53 +00001800 YY_BREAK
1801case 95:
1802YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001803#line 299 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1804{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001805 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001806case 96:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001807YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001808#line 300 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1809{ RET_TOK(CastOpVal, FPExt, FPEXT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001810 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001811case 97:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001812YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001813#line 301 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1814{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001815 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001816case 98:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001817YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001818#line 302 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1819{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001820 YY_BREAK
1821case 99:
1822YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001823#line 303 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1824{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001825 YY_BREAK
1826case 100:
1827YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001828#line 304 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1829{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001830 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001831case 101:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001832YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001833#line 305 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1834{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001835 YY_BREAK
1836case 102:
1837YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001838#line 306 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1839{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001840 YY_BREAK
1841case 103:
1842YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001843#line 307 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1844{ RET_TOK(CastOpVal, BitCast, BITCAST); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001845 YY_BREAK
1846case 104:
1847YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001848#line 308 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1849{ RET_TOK(OtherOpVal, Select, SELECT); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001850 YY_BREAK
1851case 105:
1852YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001853#line 309 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1854{ RET_TOK(OtherOpVal, VAArg , VAARG); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001855 YY_BREAK
1856case 106:
1857YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001858#line 310 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1859{ RET_TOK(TermOpVal, Ret, RET); }
Reid Spencer3ed469c2006-11-02 20:25:50 +00001860 YY_BREAK
1861case 107:
1862YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001863#line 311 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1864{ RET_TOK(TermOpVal, Br, BR); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001865 YY_BREAK
1866case 108:
1867YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001868#line 312 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1869{ RET_TOK(TermOpVal, Switch, SWITCH); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001870 YY_BREAK
1871case 109:
1872YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001873#line 313 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1874{ RET_TOK(TermOpVal, Invoke, INVOKE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001875 YY_BREAK
1876case 110:
1877YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001878#line 314 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1879{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001880 YY_BREAK
1881case 111:
1882YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001883#line 315 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1884{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001885 YY_BREAK
1886case 112:
1887YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001888#line 317 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1889{ RET_TOK(MemOpVal, Malloc, MALLOC); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001890 YY_BREAK
1891case 113:
1892YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001893#line 318 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1894{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001895 YY_BREAK
1896case 114:
1897YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001898#line 319 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1899{ RET_TOK(MemOpVal, Free, FREE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001900 YY_BREAK
1901case 115:
1902YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001903#line 320 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1904{ RET_TOK(MemOpVal, Load, LOAD); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001905 YY_BREAK
1906case 116:
1907YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001908#line 321 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1909{ RET_TOK(MemOpVal, Store, STORE); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001910 YY_BREAK
1911case 117:
1912YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001913#line 322 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1914{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
Reid Spencer3da59db2006-11-27 01:05:10 +00001915 YY_BREAK
1916case 118:
1917YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001918#line 324 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1919{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001920 YY_BREAK
Reid Spencer41dff5e2007-01-26 08:05:27 +00001921case 119:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001922YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001923#line 325 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1924{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
Reid Spencer67d8ed92007-03-22 02:14:08 +00001925 YY_BREAK
1926case 120:
1927YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001928#line 326 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1929{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001930 YY_BREAK
Reid Spencer3d6b71e2007-04-09 01:56:05 +00001931case 121:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001932YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001933#line 329 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Owen Anderson1dc69692006-10-18 02:21:48 +00001934{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001935 UnEscapeLexed(llvmAsmtext+1);
1936 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Skip %
1937 return LOCALVAR;
Owen Anderson1dc69692006-10-18 02:21:48 +00001938 }
1939 YY_BREAK
Reid Spencer3d6b71e2007-04-09 01:56:05 +00001940case 122:
Owen Anderson1dc69692006-10-18 02:21:48 +00001941YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001942#line 334 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001943{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001944 UnEscapeLexed(llvmAsmtext+1);
1945 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Skip @
1946 return GLOBALVAR;
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001947 }
1948 YY_BREAK
Reid Spencer3d6b71e2007-04-09 01:56:05 +00001949case 123:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001950YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001951#line 339 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001952{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001953 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke colon
1954 UnEscapeLexed(llvmAsmtext);
1955 llvmAsmlval.StrVal = strdup(llvmAsmtext);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001956 return LABELSTR;
1957 }
1958 YY_BREAK
Reid Spencer3d6b71e2007-04-09 01:56:05 +00001959case 124:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001960/* rule 124 can match eol */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001961YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001962#line 345 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1963{
1964 llvmAsmtext[strlen(llvmAsmtext)-2] = 0; // nuke colon, end quote
1965 UnEscapeLexed(llvmAsmtext+1);
1966 llvmAsmlval.StrVal = strdup(llvmAsmtext+1);
1967 return LABELSTR;
1968 }
1969 YY_BREAK
1970case 125:
1971/* rule 125 can match eol */
1972YY_RULE_SETUP
1973#line 352 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001974{ // Note that we cannot unescape a string constant here! The
1975 // string constant might contain a \00 which would not be
1976 // understood by the string stuff. It is valid to make a
1977 // [sbyte] c"Hello World\00" constant, for example.
1978 //
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001979 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke end quote
1980 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Nuke start quote
Reid Spencer68a24bd2005-08-27 18:50:39 +00001981 return STRINGCONSTANT;
1982 }
1983 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001984case 126:
1985/* rule 126 can match eol */
Reid Spencer6f407902007-01-13 05:00:46 +00001986YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001987#line 361 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001988{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001989 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke end quote
1990 llvmAsmlval.StrVal = strdup(llvmAsmtext+2); // Nuke @, quote
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001991 return ATSTRINGCONSTANT;
1992 }
1993 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001994case 127:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00001995YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001996#line 367 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
1997{ int len = strlen(llvmAsmtext);
Reid Spencer38c91a92007-02-28 02:24:54 +00001998 uint32_t numBits = ((len * 64) / 19) + 1;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00001999 APInt Tmp(numBits, llvmAsmtext, len, 10);
Reid Spencer38c91a92007-02-28 02:24:54 +00002000 uint32_t activeBits = Tmp.getActiveBits();
2001 if (activeBits > 0 && activeBits < numBits)
2002 Tmp.trunc(activeBits);
2003 if (Tmp.getBitWidth() > 64) {
2004 llvmAsmlval.APIntVal = new APInt(Tmp);
2005 return EUAPINTVAL;
2006 } else {
2007 llvmAsmlval.UInt64Val = Tmp.getZExtValue();
2008 return EUINT64VAL;
2009 }
2010 }
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002011 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002012case 128:
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002013YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002014#line 381 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2015{ int len = strlen(llvmAsmtext);
Reid Spencerafc37822007-03-09 21:19:09 +00002016 uint32_t numBits = (((len-1) * 64) / 19) + 2;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002017 APInt Tmp(numBits, llvmAsmtext, len, 10);
Reid Spencer38c91a92007-02-28 02:24:54 +00002018 uint32_t minBits = Tmp.getMinSignedBits();
2019 if (minBits > 0 && minBits < numBits)
2020 Tmp.trunc(minBits);
2021 if (Tmp.getBitWidth() > 64) {
2022 llvmAsmlval.APIntVal = new APInt(Tmp);
2023 return ESAPINTVAL;
2024 } else {
2025 llvmAsmlval.SInt64Val = Tmp.getSExtValue();
2026 return ESINT64VAL;
2027 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002028 }
2029 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002030case 129:
Reid Spencer6f407902007-01-13 05:00:46 +00002031YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002032#line 396 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2033{ int len = strlen(llvmAsmtext+3) - 3;
Reid Spencer38c91a92007-02-28 02:24:54 +00002034 uint32_t bits = len * 4;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002035 APInt Tmp(bits, llvmAsmtext+3, len, 16);
Reid Spencer38c91a92007-02-28 02:24:54 +00002036 uint32_t activeBits = Tmp.getActiveBits();
2037 if (activeBits > 0 && activeBits < bits)
2038 Tmp.trunc(activeBits);
2039 if (Tmp.getBitWidth() > 64) {
2040 llvmAsmlval.APIntVal = new APInt(Tmp);
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002041 return llvmAsmtext[0] == 's' ? ESAPINTVAL : EUAPINTVAL;
2042 } else if (llvmAsmtext[0] == 's') {
Reid Spencer38c91a92007-02-28 02:24:54 +00002043 llvmAsmlval.SInt64Val = Tmp.getSExtValue();
2044 return ESINT64VAL;
2045 } else {
2046 llvmAsmlval.UInt64Val = Tmp.getZExtValue();
2047 return EUINT64VAL;
2048 }
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002049 }
Reid Spencer6f407902007-01-13 05:00:46 +00002050 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002051case 130:
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002052YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002053#line 414 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002054{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002055 uint64_t Val = atoull(llvmAsmtext+1);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002056 if ((unsigned)Val != Val)
2057 GenerateError("Invalid value number (too large)!");
2058 llvmAsmlval.UIntVal = unsigned(Val);
2059 return LOCALVAL_ID;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002060 }
2061 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002062case 131:
Owen Anderson1dc69692006-10-18 02:21:48 +00002063YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002064#line 421 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002065{
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002066 uint64_t Val = atoull(llvmAsmtext+1);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002067 if ((unsigned)Val != Val)
2068 GenerateError("Invalid value number (too large)!");
2069 llvmAsmlval.UIntVal = unsigned(Val);
2070 return GLOBALVAL_ID;
2071 }
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002072 YY_BREAK
Reid Spencer3d6b71e2007-04-09 01:56:05 +00002073case 132:
Reid Spencer6fd36ab2006-12-29 20:35:03 +00002074YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002075#line 429 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2076{ llvmAsmlval.FPVal = atof(llvmAsmtext); return FPVAL; }
2077 YY_BREAK
2078case 133:
2079YY_RULE_SETUP
2080#line 430 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2081{ llvmAsmlval.FPVal = HexToFP(llvmAsmtext); return FPVAL; }
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002082 YY_BREAK
2083case YY_STATE_EOF(INITIAL):
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002084#line 432 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002085{
2086 /* Make sure to free the internal buffers for flex when we are
2087 * done reading our input!
2088 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002089 llvmAsm_delete_buffer(YY_CURRENT_BUFFER);
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002090 return EOF;
2091 }
2092 YY_BREAK
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002093case 134:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002094/* rule 134 can match eol */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002095YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002096#line 440 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2097{ /* Ignore whitespace */ }
Reid Spencer67d8ed92007-03-22 02:14:08 +00002098 YY_BREAK
2099case 135:
2100YY_RULE_SETUP
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002101#line 441 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
2102{ return llvmAsmtext[0]; }
2103 YY_BREAK
2104case 136:
2105YY_RULE_SETUP
2106#line 443 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002107YY_FATAL_ERROR( "flex scanner jammed" );
2108 YY_BREAK
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002109#line 2110 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002110
2111 case YY_END_OF_BUFFER:
2112 {
2113 /* Amount of text matched not including the EOB char. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002114 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002115
2116 /* Undo the effects of YY_DO_BEFORE_ACTION. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002117 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002118 YY_RESTORE_YY_MORE_OFFSET
2119
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002120 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002121 {
2122 /* We're scanning a new file or input source. It's
2123 * possible that this happened because the user
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002124 * just pointed llvmAsmin at a new source and called
2125 * llvmAsmlex(). If so, then we have to assure
2126 * consistency between YY_CURRENT_BUFFER and our
Reid Spencer68a24bd2005-08-27 18:50:39 +00002127 * globals. Here is the right place to do so, because
2128 * this is the first action (other than possibly a
2129 * back-up) that will match for the new input source.
2130 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002131 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2132 YY_CURRENT_BUFFER_LVALUE->yy_input_file = llvmAsmin;
2133 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002134 }
2135
2136 /* Note that here we test for yy_c_buf_p "<=" to the position
2137 * of the first EOB in the buffer, since yy_c_buf_p will
2138 * already have been incremented past the NUL character
2139 * (since all states make transitions on EOB to the
2140 * end-of-buffer state). Contrast this with the test
2141 * in input().
2142 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002143 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002144 { /* This was really a NUL. */
2145 yy_state_type yy_next_state;
2146
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002147 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002148
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002149 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002150
2151 /* Okay, we're now positioned to make the NUL
2152 * transition. We couldn't have
2153 * yy_get_previous_state() go ahead and do it
2154 * for us because it doesn't know how to deal
2155 * with the possibility of jamming (and we don't
2156 * want to build jamming into it because then it
2157 * will run more slowly).
2158 */
2159
2160 yy_next_state = yy_try_NUL_trans( yy_current_state );
2161
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002162 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002163
2164 if ( yy_next_state )
2165 {
2166 /* Consume the NUL. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002167 yy_cp = ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002168 yy_current_state = yy_next_state;
2169 goto yy_match;
2170 }
2171
2172 else
2173 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002174 yy_cp = (yy_last_accepting_cpos);
2175 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002176 goto yy_find_action;
2177 }
2178 }
2179
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002180 else switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002181 {
2182 case EOB_ACT_END_OF_FILE:
2183 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002184 (yy_did_buffer_switch_on_eof) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002185
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002186 if ( llvmAsmwrap( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002187 {
2188 /* Note: because we've taken care in
2189 * yy_get_next_buffer() to have set up
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002190 * llvmAsmtext, we can now set up
Reid Spencer68a24bd2005-08-27 18:50:39 +00002191 * yy_c_buf_p so that if some total
2192 * hoser (like flex itself) wants to
2193 * call the scanner after we return the
2194 * YY_NULL, it'll still work - another
2195 * YY_NULL will get returned.
2196 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002197 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002198
2199 yy_act = YY_STATE_EOF(YY_START);
2200 goto do_action;
2201 }
2202
2203 else
2204 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002205 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002206 YY_NEW_FILE;
2207 }
2208 break;
2209 }
2210
2211 case EOB_ACT_CONTINUE_SCAN:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002212 (yy_c_buf_p) =
2213 (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002214
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002215 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002216
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002217 yy_cp = (yy_c_buf_p);
2218 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002219 goto yy_match;
2220
2221 case EOB_ACT_LAST_MATCH:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002222 (yy_c_buf_p) =
2223 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002224
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002225 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002226
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002227 yy_cp = (yy_c_buf_p);
2228 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002229 goto yy_find_action;
2230 }
2231 break;
2232 }
2233
2234 default:
2235 YY_FATAL_ERROR(
2236 "fatal flex scanner internal error--no action found" );
2237 } /* end of action switch */
2238 } /* end of scanning one token */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002239} /* end of llvmAsmlex */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002240
2241/* yy_get_next_buffer - try to read in a new buffer
2242 *
2243 * Returns a code representing an action:
2244 * EOB_ACT_LAST_MATCH -
2245 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2246 * EOB_ACT_END_OF_FILE - end of file
2247 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002248static int yy_get_next_buffer (void)
2249{
2250 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2251 register char *source = (yytext_ptr);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002252 register int number_to_move, i;
2253 int ret_val;
2254
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002255 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002256 YY_FATAL_ERROR(
2257 "fatal flex scanner internal error--end of buffer missed" );
2258
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002259 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002260 { /* Don't try to fill the buffer, so this is an EOF. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002261 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002262 {
2263 /* We matched a single character, the EOB, so
2264 * treat this as a final EOF.
2265 */
2266 return EOB_ACT_END_OF_FILE;
2267 }
2268
2269 else
2270 {
2271 /* We matched some text prior to the EOB, first
2272 * process it.
2273 */
2274 return EOB_ACT_LAST_MATCH;
2275 }
2276 }
2277
2278 /* Try to read more data. */
2279
2280 /* First move last chars to start of buffer. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002281 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002282
2283 for ( i = 0; i < number_to_move; ++i )
2284 *(dest++) = *(source++);
2285
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002286 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002287 /* don't do the read, it's not guaranteed to return an EOF,
2288 * just force an EOF
2289 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002290 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002291
2292 else
2293 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002294 int num_to_read =
2295 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002296
2297 while ( num_to_read <= 0 )
2298 { /* Not enough room in the buffer - grow it. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002299
2300 /* just a shorter name for the current buffer */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002301 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002302
2303 int yy_c_buf_p_offset =
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002304 (int) ((yy_c_buf_p) - b->yy_ch_buf);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002305
2306 if ( b->yy_is_our_buffer )
2307 {
2308 int new_size = b->yy_buf_size * 2;
2309
2310 if ( new_size <= 0 )
2311 b->yy_buf_size += b->yy_buf_size / 8;
2312 else
2313 b->yy_buf_size *= 2;
2314
2315 b->yy_ch_buf = (char *)
2316 /* Include room in for 2 EOB chars. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002317 llvmAsmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002318 }
2319 else
2320 /* Can't grow it, we don't own it. */
2321 b->yy_ch_buf = 0;
2322
2323 if ( ! b->yy_ch_buf )
2324 YY_FATAL_ERROR(
2325 "fatal error - scanner input buffer overflow" );
2326
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002327 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002328
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002329 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
Reid Spencer68a24bd2005-08-27 18:50:39 +00002330 number_to_move - 1;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002331
Reid Spencer68a24bd2005-08-27 18:50:39 +00002332 }
2333
2334 if ( num_to_read > YY_READ_BUF_SIZE )
2335 num_to_read = YY_READ_BUF_SIZE;
2336
2337 /* Read in more data. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002338 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2339 (yy_n_chars), num_to_read );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002340
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002341 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002342 }
2343
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002344 if ( (yy_n_chars) == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002345 {
2346 if ( number_to_move == YY_MORE_ADJ )
2347 {
2348 ret_val = EOB_ACT_END_OF_FILE;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002349 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002350 }
2351
2352 else
2353 {
2354 ret_val = EOB_ACT_LAST_MATCH;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002355 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
Reid Spencer68a24bd2005-08-27 18:50:39 +00002356 YY_BUFFER_EOF_PENDING;
2357 }
2358 }
2359
2360 else
2361 ret_val = EOB_ACT_CONTINUE_SCAN;
2362
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002363 (yy_n_chars) += number_to_move;
2364 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2365 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002366
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002367 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002368
2369 return ret_val;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002370}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002371
2372/* yy_get_previous_state - get the state just before the EOB char was reached */
2373
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002374 static yy_state_type yy_get_previous_state (void)
2375{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002376 register yy_state_type yy_current_state;
2377 register char *yy_cp;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002378
2379 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002380
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002381 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002382 {
2383 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002384 if ( yy_accept[yy_current_state] )
2385 {
2386 (yy_last_accepting_state) = yy_current_state;
2387 (yy_last_accepting_cpos) = yy_cp;
2388 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002389 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2390 {
2391 yy_current_state = (int) yy_def[yy_current_state];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002392 if ( yy_current_state >= 550 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002393 yy_c = yy_meta[(unsigned int) yy_c];
2394 }
2395 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002396 }
2397
2398 return yy_current_state;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002399}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002400
2401/* yy_try_NUL_trans - try to make a transition on the NUL character
2402 *
2403 * synopsis
2404 * next_state = yy_try_NUL_trans( current_state );
2405 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002406 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2407{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002408 register int yy_is_jam;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002409 register char *yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002410
2411 register YY_CHAR yy_c = 1;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002412 if ( yy_accept[yy_current_state] )
2413 {
2414 (yy_last_accepting_state) = yy_current_state;
2415 (yy_last_accepting_cpos) = yy_cp;
2416 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002417 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2418 {
2419 yy_current_state = (int) yy_def[yy_current_state];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002420 if ( yy_current_state >= 550 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002421 yy_c = yy_meta[(unsigned int) yy_c];
2422 }
2423 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002424 yy_is_jam = (yy_current_state == 549);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002425
2426 return yy_is_jam ? 0 : yy_current_state;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002427}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002428
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002429 static inline void yyunput (int c, register char * yy_bp )
2430{
2431 register char *yy_cp;
2432
2433 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002434
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002435 /* undo effects of setting up llvmAsmtext */
2436 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002437
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002438 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002439 { /* need to shift things up to make room */
2440 /* +2 for EOB chars. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002441 register int number_to_move = (yy_n_chars) + 2;
2442 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2443 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002444 register char *source =
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002445 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002446
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002447 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002448 *--dest = *--source;
2449
2450 yy_cp += (int) (dest - source);
2451 yy_bp += (int) (dest - source);
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002452 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2453 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002454
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002455 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002456 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2457 }
2458
2459 *--yy_cp = (char) c;
2460
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002461 if ( c == '\n' ){
2462 --llvmAsmlineno;
2463 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002464
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002465 (yytext_ptr) = yy_bp;
2466 (yy_hold_char) = *yy_cp;
2467 (yy_c_buf_p) = yy_cp;
2468}
Reid Spencer6f407902007-01-13 05:00:46 +00002469
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002470#ifndef YY_NO_INPUT
Reid Spencer68a24bd2005-08-27 18:50:39 +00002471#ifdef __cplusplus
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002472 static int yyinput (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002473#else
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002474 static int input (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002475#endif
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002476
2477{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002478 int c;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002479
2480 *(yy_c_buf_p) = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002481
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002482 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002483 {
2484 /* yy_c_buf_p now points to the character we want to return.
2485 * If this occurs *before* the EOB characters, then it's a
2486 * valid NUL; if not, then we've hit the end of the buffer.
2487 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002488 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002489 /* This was really a NUL. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002490 *(yy_c_buf_p) = '\0';
Reid Spencer68a24bd2005-08-27 18:50:39 +00002491
2492 else
2493 { /* need more input */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002494 int offset = (yy_c_buf_p) - (yytext_ptr);
2495 ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002496
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002497 switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002498 {
2499 case EOB_ACT_LAST_MATCH:
2500 /* This happens because yy_g_n_b()
2501 * sees that we've accumulated a
2502 * token and flags that we need to
2503 * try matching the token before
2504 * proceeding. But for input(),
2505 * there's no matching to consider.
2506 * So convert the EOB_ACT_LAST_MATCH
2507 * to EOB_ACT_END_OF_FILE.
2508 */
2509
2510 /* Reset buffer status. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002511 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002512
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002513 /*FALLTHROUGH*/
Reid Spencer68a24bd2005-08-27 18:50:39 +00002514
2515 case EOB_ACT_END_OF_FILE:
2516 {
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002517 if ( llvmAsmwrap( ) )
Reid Spencer61c83e02006-08-18 08:43:06 +00002518 return EOF;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002519
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002520 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002521 YY_NEW_FILE;
2522#ifdef __cplusplus
2523 return yyinput();
2524#else
2525 return input();
2526#endif
2527 }
2528
2529 case EOB_ACT_CONTINUE_SCAN:
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002530 (yy_c_buf_p) = (yytext_ptr) + offset;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002531 break;
2532 }
2533 }
2534 }
2535
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002536 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2537 *(yy_c_buf_p) = '\0'; /* preserve llvmAsmtext */
2538 (yy_hold_char) = *++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002539
2540 if ( c == '\n' )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002541
2542 llvmAsmlineno++;
2543;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002544
2545 return c;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002546}
2547#endif /* ifndef YY_NO_INPUT */
Anton Korobeynikov9adeaa22007-01-28 13:37:39 +00002548
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002549/** Immediately switch to a different input stream.
2550 * @param input_file A readable stream.
2551 *
2552 * @note This function does not reset the start condition to @c INITIAL .
2553 */
2554 void llvmAsmrestart (FILE * input_file )
2555{
2556
2557 if ( ! YY_CURRENT_BUFFER ){
2558 llvmAsmensure_buffer_stack ();
2559 YY_CURRENT_BUFFER_LVALUE =
2560 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
Reid Spencer6f407902007-01-13 05:00:46 +00002561 }
Reid Spencer41dff5e2007-01-26 08:05:27 +00002562
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002563 llvmAsm_init_buffer(YY_CURRENT_BUFFER,input_file );
2564 llvmAsm_load_buffer_state( );
2565}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002566
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002567/** Switch to a different input buffer.
2568 * @param new_buffer The new input buffer.
2569 *
2570 */
2571 void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2572{
2573
2574 /* TODO. We should be able to replace this entire function body
2575 * with
2576 * llvmAsmpop_buffer_state();
2577 * llvmAsmpush_buffer_state(new_buffer);
2578 */
2579 llvmAsmensure_buffer_stack ();
2580 if ( YY_CURRENT_BUFFER == new_buffer )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002581 return;
2582
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002583 if ( YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002584 {
2585 /* Flush out information for old buffer. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002586 *(yy_c_buf_p) = (yy_hold_char);
2587 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2588 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002589 }
2590
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002591 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2592 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002593
2594 /* We don't actually know whether we did this switch during
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002595 * EOF (llvmAsmwrap()) processing, but the only time this flag
2596 * is looked at is after llvmAsmwrap() is called, so it's safe
Reid Spencer68a24bd2005-08-27 18:50:39 +00002597 * to go ahead and always set it.
2598 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002599 (yy_did_buffer_switch_on_eof) = 1;
2600}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002601
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002602static void llvmAsm_load_buffer_state (void)
2603{
2604 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2605 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2606 llvmAsmin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2607 (yy_hold_char) = *(yy_c_buf_p);
2608}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002609
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002610/** Allocate and initialize an input buffer state.
2611 * @param file A readable stream.
2612 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2613 *
2614 * @return the allocated buffer state.
2615 */
2616 YY_BUFFER_STATE llvmAsm_create_buffer (FILE * file, int size )
2617{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002618 YY_BUFFER_STATE b;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002619
2620 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002621 if ( ! b )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002622 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002623
2624 b->yy_buf_size = size;
2625
2626 /* yy_ch_buf has to be 2 characters longer than the size given because
2627 * we need to put in 2 end-of-buffer characters.
2628 */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002629 b->yy_ch_buf = (char *) llvmAsmalloc(b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002630 if ( ! b->yy_ch_buf )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002631 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002632
2633 b->yy_is_our_buffer = 1;
2634
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002635 llvmAsm_init_buffer(b,file );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002636
2637 return b;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002638}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002639
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002640/** Destroy the buffer.
2641 * @param b a buffer created with llvmAsm_create_buffer()
2642 *
2643 */
2644 void llvmAsm_delete_buffer (YY_BUFFER_STATE b )
2645{
2646
Reid Spencer68a24bd2005-08-27 18:50:39 +00002647 if ( ! b )
2648 return;
2649
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002650 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2651 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002652
2653 if ( b->yy_is_our_buffer )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002654 llvmAsmfree((void *) b->yy_ch_buf );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002655
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002656 llvmAsmfree((void *) b );
2657}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002658
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002659/* Initializes or reinitializes a buffer.
2660 * This function is sometimes called more than once on the same buffer,
2661 * such as during a llvmAsmrestart() or at EOF.
2662 */
2663 static void llvmAsm_init_buffer (YY_BUFFER_STATE b, FILE * file )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002664
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002665{
2666 int oerrno = errno;
2667
2668 llvmAsm_flush_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002669
2670 b->yy_input_file = file;
2671 b->yy_fill_buffer = 1;
2672
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002673 /* If b is the current buffer, then llvmAsm_init_buffer was _probably_
2674 * called from llvmAsmrestart() or through yy_get_next_buffer.
2675 * In that case, we don't want to reset the lineno or column.
2676 */
2677 if (b != YY_CURRENT_BUFFER){
2678 b->yy_bs_lineno = 1;
2679 b->yy_bs_column = 0;
2680 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002681
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002682 b->yy_is_interactive = 0;
2683
2684 errno = oerrno;
2685}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002686
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002687/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2688 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2689 *
2690 */
2691 void llvmAsm_flush_buffer (YY_BUFFER_STATE b )
2692{
2693 if ( ! b )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002694 return;
2695
2696 b->yy_n_chars = 0;
2697
2698 /* We always need two end-of-buffer characters. The first causes
2699 * a transition to the end-of-buffer state. The second causes
2700 * a jam in that state.
2701 */
2702 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2703 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2704
2705 b->yy_buf_pos = &b->yy_ch_buf[0];
2706
2707 b->yy_at_bol = 1;
2708 b->yy_buffer_status = YY_BUFFER_NEW;
2709
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002710 if ( b == YY_CURRENT_BUFFER )
2711 llvmAsm_load_buffer_state( );
2712}
2713
2714/** Pushes the new state onto the stack. The new state becomes
2715 * the current state. This function will allocate the stack
2716 * if necessary.
2717 * @param new_buffer The new state.
2718 *
2719 */
2720void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer )
2721{
2722 if (new_buffer == NULL)
2723 return;
2724
2725 llvmAsmensure_buffer_stack();
2726
2727 /* This block is copied from llvmAsm_switch_to_buffer. */
2728 if ( YY_CURRENT_BUFFER )
2729 {
2730 /* Flush out information for old buffer. */
2731 *(yy_c_buf_p) = (yy_hold_char);
2732 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2733 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2734 }
2735
2736 /* Only push if top exists. Otherwise, replace top. */
2737 if (YY_CURRENT_BUFFER)
2738 (yy_buffer_stack_top)++;
2739 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2740
2741 /* copied from llvmAsm_switch_to_buffer. */
2742 llvmAsm_load_buffer_state( );
2743 (yy_did_buffer_switch_on_eof) = 1;
2744}
2745
2746/** Removes and deletes the top of the stack, if present.
2747 * The next element becomes the new top.
2748 *
2749 */
2750void llvmAsmpop_buffer_state (void)
2751{
2752 if (!YY_CURRENT_BUFFER)
2753 return;
2754
2755 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
2756 YY_CURRENT_BUFFER_LVALUE = NULL;
2757 if ((yy_buffer_stack_top) > 0)
2758 --(yy_buffer_stack_top);
2759
2760 if (YY_CURRENT_BUFFER) {
2761 llvmAsm_load_buffer_state( );
2762 (yy_did_buffer_switch_on_eof) = 1;
2763 }
2764}
2765
2766/* Allocates the stack if it does not exist.
2767 * Guarantees space for at least one push.
2768 */
2769static void llvmAsmensure_buffer_stack (void)
2770{
2771 int num_to_alloc;
2772
2773 if (!(yy_buffer_stack)) {
2774
2775 /* First allocation is just for 2 elements, since we don't know if this
2776 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2777 * immediate realloc on the next call.
2778 */
2779 num_to_alloc = 1;
2780 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmalloc
2781 (num_to_alloc * sizeof(struct yy_buffer_state*)
2782 );
2783
2784 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2785
2786 (yy_buffer_stack_max) = num_to_alloc;
2787 (yy_buffer_stack_top) = 0;
2788 return;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002789 }
2790
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002791 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
Reid Spencer68a24bd2005-08-27 18:50:39 +00002792
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002793 /* Increase the buffer to prepare for a possible push. */
2794 int grow_size = 8 /* arbitrary grow size */;
2795
2796 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2797 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmrealloc
2798 ((yy_buffer_stack),
2799 num_to_alloc * sizeof(struct yy_buffer_state*)
2800 );
2801
2802 /* zero only the new slots.*/
2803 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2804 (yy_buffer_stack_max) = num_to_alloc;
2805 }
2806}
2807
2808/** Setup the input buffer state to scan directly from a user-specified character buffer.
2809 * @param base the character buffer
2810 * @param size the size in bytes of the character buffer
2811 *
2812 * @return the newly allocated buffer state object.
2813 */
2814YY_BUFFER_STATE llvmAsm_scan_buffer (char * base, yy_size_t size )
2815{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002816 YY_BUFFER_STATE b;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002817
Reid Spencer68a24bd2005-08-27 18:50:39 +00002818 if ( size < 2 ||
2819 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2820 base[size-1] != YY_END_OF_BUFFER_CHAR )
2821 /* They forgot to leave room for the EOB's. */
2822 return 0;
2823
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002824 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002825 if ( ! b )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002826 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002827
2828 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2829 b->yy_buf_pos = b->yy_ch_buf = base;
2830 b->yy_is_our_buffer = 0;
2831 b->yy_input_file = 0;
2832 b->yy_n_chars = b->yy_buf_size;
2833 b->yy_is_interactive = 0;
2834 b->yy_at_bol = 1;
2835 b->yy_fill_buffer = 0;
2836 b->yy_buffer_status = YY_BUFFER_NEW;
2837
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002838 llvmAsm_switch_to_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002839
2840 return b;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002841}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002842
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002843/** Setup the input buffer state to scan a string. The next call to llvmAsmlex() will
2844 * scan from a @e copy of @a str.
2845 * @param yystr a NUL-terminated string to scan
2846 *
2847 * @return the newly allocated buffer state object.
2848 * @note If you want to scan bytes that may contain NUL values, then use
2849 * llvmAsm_scan_bytes() instead.
2850 */
2851YY_BUFFER_STATE llvmAsm_scan_string (yyconst char * yystr )
2852{
2853
2854 return llvmAsm_scan_bytes(yystr,strlen(yystr) );
2855}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002856
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002857/** Setup the input buffer state to scan the given bytes. The next call to llvmAsmlex() will
2858 * scan from a @e copy of @a bytes.
2859 * @param bytes the byte buffer to scan
2860 * @param len the number of bytes in the buffer pointed to by @a bytes.
2861 *
2862 * @return the newly allocated buffer state object.
2863 */
2864YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2865{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002866 YY_BUFFER_STATE b;
2867 char *buf;
2868 yy_size_t n;
2869 int i;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002870
Reid Spencer68a24bd2005-08-27 18:50:39 +00002871 /* Get memory for full buffer, including space for trailing EOB's. */
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002872 n = _yybytes_len + 2;
2873 buf = (char *) llvmAsmalloc(n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002874 if ( ! buf )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002875 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002876
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002877 for ( i = 0; i < _yybytes_len; ++i )
2878 buf[i] = yybytes[i];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002879
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002880 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002881
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002882 b = llvmAsm_scan_buffer(buf,n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002883 if ( ! b )
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002884 YY_FATAL_ERROR( "bad buffer in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002885
2886 /* It's okay to grow etc. this buffer, and we should throw it
2887 * away when we're done.
2888 */
2889 b->yy_is_our_buffer = 1;
2890
2891 return b;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002892}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002893
2894#ifndef YY_EXIT_FAILURE
2895#define YY_EXIT_FAILURE 2
2896#endif
2897
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002898static void yy_fatal_error (yyconst char* msg )
2899{
2900 (void) fprintf( stderr, "%s\n", msg );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002901 exit( YY_EXIT_FAILURE );
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002902}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002903
2904/* Redefine yyless() so it works in section 3 code. */
2905
2906#undef yyless
2907#define yyless(n) \
2908 do \
2909 { \
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002910 /* Undo effects of setting up llvmAsmtext. */ \
2911 int yyless_macro_arg = (n); \
2912 YY_LESS_LINENO(yyless_macro_arg);\
2913 llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
2914 (yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
2915 (yy_hold_char) = *(yy_c_buf_p); \
2916 *(yy_c_buf_p) = '\0'; \
2917 llvmAsmleng = yyless_macro_arg; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00002918 } \
2919 while ( 0 )
2920
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002921/* Accessor methods (get/set functions) to struct members. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002922
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00002923/** Get the current line number.
2924 *
2925 */
2926int llvmAsmget_lineno (void)
2927{
2928
2929 return llvmAsmlineno;
2930}
2931
2932/** Get the input stream.
2933 *
2934 */
2935FILE *llvmAsmget_in (void)
2936{
2937 return llvmAsmin;
2938}
2939
2940/** Get the output stream.
2941 *
2942 */
2943FILE *llvmAsmget_out (void)
2944{
2945 return llvmAsmout;
2946}
2947
2948/** Get the length of the current token.
2949 *
2950 */
2951int llvmAsmget_leng (void)
2952{
2953 return llvmAsmleng;
2954}
2955
2956/** Get the current token.
2957 *
2958 */
2959
2960char *llvmAsmget_text (void)
2961{
2962 return llvmAsmtext;
2963}
2964
2965/** Set the current line number.
2966 * @param line_number
2967 *
2968 */
2969void llvmAsmset_lineno (int line_number )
2970{
2971
2972 llvmAsmlineno = line_number;
2973}
2974
2975/** Set the input stream. This does not discard the current
2976 * input buffer.
2977 * @param in_str A readable stream.
2978 *
2979 * @see llvmAsm_switch_to_buffer
2980 */
2981void llvmAsmset_in (FILE * in_str )
2982{
2983 llvmAsmin = in_str ;
2984}
2985
2986void llvmAsmset_out (FILE * out_str )
2987{
2988 llvmAsmout = out_str ;
2989}
2990
2991int llvmAsmget_debug (void)
2992{
2993 return llvmAsm_flex_debug;
2994}
2995
2996void llvmAsmset_debug (int bdebug )
2997{
2998 llvmAsm_flex_debug = bdebug ;
2999}
3000
3001static int yy_init_globals (void)
3002{
3003 /* Initialization is the same as for the non-reentrant scanner.
3004 * This function is called from llvmAsmlex_destroy(), so don't allocate here.
3005 */
3006
3007 /* We do not touch llvmAsmlineno unless the option is enabled. */
3008 llvmAsmlineno = 1;
3009
3010 (yy_buffer_stack) = 0;
3011 (yy_buffer_stack_top) = 0;
3012 (yy_buffer_stack_max) = 0;
3013 (yy_c_buf_p) = (char *) 0;
3014 (yy_init) = 0;
3015 (yy_start) = 0;
3016
3017/* Defined in main.c */
3018#ifdef YY_STDINIT
3019 llvmAsmin = stdin;
3020 llvmAsmout = stdout;
3021#else
3022 llvmAsmin = (FILE *) 0;
3023 llvmAsmout = (FILE *) 0;
3024#endif
3025
3026 /* For future reference: Set errno on error, since we are called by
3027 * llvmAsmlex_init()
3028 */
3029 return 0;
3030}
3031
3032/* llvmAsmlex_destroy is for both reentrant and non-reentrant scanners. */
3033int llvmAsmlex_destroy (void)
3034{
3035
3036 /* Pop the buffer stack, destroying each element. */
3037 while(YY_CURRENT_BUFFER){
3038 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
3039 YY_CURRENT_BUFFER_LVALUE = NULL;
3040 llvmAsmpop_buffer_state();
3041 }
3042
3043 /* Destroy the stack itself. */
3044 llvmAsmfree((yy_buffer_stack) );
3045 (yy_buffer_stack) = NULL;
3046
3047 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3048 * llvmAsmlex() is called, initialization will occur. */
3049 yy_init_globals( );
3050
3051 return 0;
3052}
3053
3054/*
3055 * Internal utility routines.
3056 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00003057
3058#ifndef yytext_ptr
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003059static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3060{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003061 register int i;
3062 for ( i = 0; i < n; ++i )
3063 s1[i] = s2[i];
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003064}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003065#endif
3066
3067#ifdef YY_NEED_STRLEN
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003068static int yy_flex_strlen (yyconst char * s )
3069{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003070 register int n;
3071 for ( n = 0; s[n]; ++n )
3072 ;
3073
3074 return n;
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003075}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003076#endif
3077
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003078void *llvmAsmalloc (yy_size_t size )
3079{
Reid Spencer832254e2007-02-02 02:16:23 +00003080 return (void *) malloc( size );
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003081}
Reid Spencer832254e2007-02-02 02:16:23 +00003082
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003083void *llvmAsmrealloc (void * ptr, yy_size_t size )
3084{
Reid Spencer68a24bd2005-08-27 18:50:39 +00003085 /* The cast to (char *) in the following accommodates both
3086 * implementations that use char* generic pointers, and those
3087 * that use void* generic pointers. It works with the latter
3088 * because both ANSI C and C++ allow castless assignment from
3089 * any pointer type to void*, and deal with argument conversions
3090 * as though doing an assignment.
3091 */
3092 return (void *) realloc( (char *) ptr, size );
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003093}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003094
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003095void llvmAsmfree (void * ptr )
3096{
3097 free( (char *) ptr ); /* see llvmAsmrealloc() for (char *) cast */
3098}
Reid Spencer68a24bd2005-08-27 18:50:39 +00003099
Lauro Ramos Venancioc7635522007-04-12 18:32:50 +00003100#define YYTABLES_NAME "yytables"
3101
3102#line 443 "/home/laurov/llvm/llvm/lib/AsmParser/Lexer.l"
3103
3104
Chris Lattner2fecc0f2006-02-15 07:02:59 +00003105