blob: 43b8d1098ed676e0f0709ed2dbd0855c64af99a5 [file] [log] [blame]
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001#line 2 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00003#line 4 "Lexer.cpp"
4
5#define YY_INT_ALIGNED short int
6
Chris Lattner224f84f2006-08-18 17:34:45 +00007/* A lexical scanner generated by flex */
Reid Spencer68a24bd2005-08-27 18:50:39 +00008
Reid Spencer68a24bd2005-08-27 18:50:39 +00009#define FLEX_SCANNER
10#define YY_FLEX_MAJOR_VERSION 2
11#define YY_FLEX_MINOR_VERSION 5
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000012#define YY_FLEX_SUBMINOR_VERSION 33
13#if YY_FLEX_SUBMINOR_VERSION > 0
14#define FLEX_BETA
15#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +000016
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000017/* First, we deal with platform-specific or compiler-specific issues. */
18
19/* begin standard C headers. */
Reid Spencer68a24bd2005-08-27 18:50:39 +000020#include <stdio.h>
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000021#include <string.h>
22#include <errno.h>
23#include <stdlib.h>
Reid Spencer68a24bd2005-08-27 18:50:39 +000024
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000025/* end standard C headers. */
Reid Spencer68a24bd2005-08-27 18:50:39 +000026
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000027/* flex integer type definitions */
28
29#ifndef FLEXINT_H
30#define FLEXINT_H
31
32/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
34#if __STDC_VERSION__ >= 199901L
35
36/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37 * if you want the limit (max/min) macros for int types.
38 */
39#ifndef __STDC_LIMIT_MACROS
40#define __STDC_LIMIT_MACROS 1
Reid Spencer68a24bd2005-08-27 18:50:39 +000041#endif
42
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +000043#include <inttypes.h>
44typedef int8_t flex_int8_t;
45typedef uint8_t flex_uint8_t;
46typedef int16_t flex_int16_t;
47typedef uint16_t flex_uint16_t;
48typedef int32_t flex_int32_t;
49typedef uint32_t flex_uint32_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t;
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57#endif /* ! C99 */
58
59/* Limits of integral types. */
60#ifndef INT8_MIN
61#define INT8_MIN (-128)
62#endif
63#ifndef INT16_MIN
64#define INT16_MIN (-32767-1)
65#endif
66#ifndef INT32_MIN
67#define INT32_MIN (-2147483647-1)
68#endif
69#ifndef INT8_MAX
70#define INT8_MAX (127)
71#endif
72#ifndef INT16_MAX
73#define INT16_MAX (32767)
74#endif
75#ifndef INT32_MAX
76#define INT32_MAX (2147483647)
77#endif
78#ifndef UINT8_MAX
79#define UINT8_MAX (255U)
80#endif
81#ifndef UINT16_MAX
82#define UINT16_MAX (65535U)
83#endif
84#ifndef UINT32_MAX
85#define UINT32_MAX (4294967295U)
86#endif
87
88#endif /* ! FLEXINT_H */
Reid Spencer68a24bd2005-08-27 18:50:39 +000089
90#ifdef __cplusplus
91
Reid Spencer68a24bd2005-08-27 18:50:39 +000092/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else /* ! __cplusplus */
96
97#if __STDC__
98
Reid Spencer68a24bd2005-08-27 18:50:39 +000099#define YY_USE_CONST
100
101#endif /* __STDC__ */
102#endif /* ! __cplusplus */
103
Reid Spencer68a24bd2005-08-27 18:50:39 +0000104#ifdef YY_USE_CONST
105#define yyconst const
106#else
107#define yyconst
108#endif
109
Reid Spencer68a24bd2005-08-27 18:50:39 +0000110/* Returned upon end-of-file. */
111#define YY_NULL 0
112
113/* Promotes a possibly negative, possibly signed char to an unsigned
114 * integer for use as an array index. If the signed char is negative,
115 * we want to instead treat it as an 8-bit unsigned char, hence the
116 * double cast.
117 */
118#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119
120/* Enter a start condition. This macro really ought to take a parameter,
121 * but we do it the disgusting crufty way forced on us by the ()-less
122 * definition of BEGIN.
123 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000124#define BEGIN (yy_start) = 1 + 2 *
Reid Spencer68a24bd2005-08-27 18:50:39 +0000125
126/* Translate the current start state into a value that can be later handed
127 * to BEGIN to return to the state. The YYSTATE alias is for lex
128 * compatibility.
129 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000130#define YY_START (((yy_start) - 1) / 2)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000131#define YYSTATE YY_START
132
133/* Action number for EOF rule of a given start state. */
134#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136/* Special action meaning "start processing a new file". */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000137#define YY_NEW_FILE llvmAsmrestart(llvmAsmin )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000138
139#define YY_END_OF_BUFFER_CHAR 0
140
141/* Size of default input buffer. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000142#ifndef YY_BUF_SIZE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000143#define YY_BUF_SIZE (16384*64)
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000144#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000145
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000146/* The state buf must be large enough to hold one state per character in the main buffer.
147 */
148#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149
150#ifndef YY_TYPEDEF_YY_BUFFER_STATE
151#define YY_TYPEDEF_YY_BUFFER_STATE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000152typedef struct yy_buffer_state *YY_BUFFER_STATE;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000153#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000154
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000155extern int llvmAsmleng;
156
157extern FILE *llvmAsmin, *llvmAsmout;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000158
159#define EOB_ACT_CONTINUE_SCAN 0
160#define EOB_ACT_END_OF_FILE 1
161#define EOB_ACT_LAST_MATCH 2
162
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000163 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
164 * access to the local variable yy_act. Since yyless() is a macro, it would break
165 * existing scanners that call yyless() from OUTSIDE llvmAsmlex.
166 * One obvious solution it to make yy_act a global. I tried that, and saw
167 * a 5% performance hit in a non-llvmAsmlineno scanner, because yy_act is
168 * normally declared as a register variable-- so it is not worth it.
169 */
170 #define YY_LESS_LINENO(n) \
171 do { \
172 int yyl;\
173 for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
174 if ( llvmAsmtext[yyl] == '\n' )\
175 --llvmAsmlineno;\
176 }while(0)
177
178/* Return all but the first "n" matched characters back to the input stream. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000179#define yyless(n) \
180 do \
181 { \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000182 /* Undo effects of setting up llvmAsmtext. */ \
183 int yyless_macro_arg = (n); \
184 YY_LESS_LINENO(yyless_macro_arg);\
185 *yy_cp = (yy_hold_char); \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000186 YY_RESTORE_YY_MORE_OFFSET \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000187 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
188 YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000189 } \
190 while ( 0 )
191
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000192#define unput(c) yyunput( c, (yytext_ptr) )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000193
194/* The following is because we cannot portably get our hands on size_t
195 * (without autoconf's help, which isn't available because we want
196 * flex-generated scanners to compile on their own).
197 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000198
199#ifndef YY_TYPEDEF_YY_SIZE_T
200#define YY_TYPEDEF_YY_SIZE_T
Reid Spencer68a24bd2005-08-27 18:50:39 +0000201typedef unsigned int yy_size_t;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000202#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000203
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000204#ifndef YY_STRUCT_YY_BUFFER_STATE
205#define YY_STRUCT_YY_BUFFER_STATE
Reid Spencer68a24bd2005-08-27 18:50:39 +0000206struct yy_buffer_state
207 {
208 FILE *yy_input_file;
209
210 char *yy_ch_buf; /* input buffer */
211 char *yy_buf_pos; /* current position in input buffer */
212
213 /* Size of input buffer in bytes, not including room for EOB
214 * characters.
215 */
216 yy_size_t yy_buf_size;
217
218 /* Number of characters read into yy_ch_buf, not including EOB
219 * characters.
220 */
221 int yy_n_chars;
222
223 /* Whether we "own" the buffer - i.e., we know we created it,
224 * and can realloc() it to grow it, and should free() it to
225 * delete it.
226 */
227 int yy_is_our_buffer;
228
229 /* Whether this is an "interactive" input source; if so, and
230 * if we're using stdio for input, then we want to use getc()
231 * instead of fread(), to make sure we stop fetching input after
232 * each newline.
233 */
234 int yy_is_interactive;
235
236 /* Whether we're considered to be at the beginning of a line.
237 * If so, '^' rules will be active on the next match, otherwise
238 * not.
239 */
240 int yy_at_bol;
241
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000242 int yy_bs_lineno; /**< The line count. */
243 int yy_bs_column; /**< The column count. */
244
Reid Spencer68a24bd2005-08-27 18:50:39 +0000245 /* Whether to try to fill the input buffer when we reach the
246 * end of it.
247 */
248 int yy_fill_buffer;
249
250 int yy_buffer_status;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000251
Reid Spencer68a24bd2005-08-27 18:50:39 +0000252#define YY_BUFFER_NEW 0
253#define YY_BUFFER_NORMAL 1
254 /* When an EOF's been seen but there's still some text to process
255 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
256 * shouldn't try reading from the input source any more. We might
257 * still have a bunch of tokens to match, though, because of
258 * possible backing-up.
259 *
260 * When we actually see the EOF, we change the status to "new"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +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
Reid Spencer68a24bd2005-08-27 18:50:39 +0000265
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000266 };
267#endif /* !YY_STRUCT_YY_BUFFER_STATE */
268
269/* Stack of input buffers. */
270static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
271static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
272static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000273
274/* We provide macros for accessing buffer states in case in the
275 * future we want to put the buffer states in a more general
276 * "scanner state".
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000277 *
278 * Returns the top of the stack, or NULL.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000279 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000280#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
281 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
282 : NULL)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000283
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000284/* Same as previous macro, but useful when we know that the buffer stack is not
285 * NULL or when we need an lvalue. For internal use only.
286 */
287#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
Reid Spencer68a24bd2005-08-27 18:50:39 +0000288
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000289/* yy_hold_char holds the character lost when llvmAsmtext is formed. */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000290static char yy_hold_char;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000291static int yy_n_chars; /* number of characters read into yy_ch_buf */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000292int llvmAsmleng;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000293
294/* Points to current character in buffer. */
295static char *yy_c_buf_p = (char *) 0;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000296static int yy_init = 0; /* whether we need to initialize */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000297static int yy_start = 0; /* start state number */
298
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000299/* Flag which is used to allow llvmAsmwrap()'s to do buffer switches
300 * instead of setting up a fresh llvmAsmin. A bit of a hack ...
Reid Spencer68a24bd2005-08-27 18:50:39 +0000301 */
302static int yy_did_buffer_switch_on_eof;
303
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000304void llvmAsmrestart (FILE *input_file );
305void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer );
306YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file,int size );
307void llvmAsm_delete_buffer (YY_BUFFER_STATE b );
308void llvmAsm_flush_buffer (YY_BUFFER_STATE b );
309void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer );
310void llvmAsmpop_buffer_state (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000311
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000312static void llvmAsmensure_buffer_stack (void );
313static void llvmAsm_load_buffer_state (void );
314static void llvmAsm_init_buffer (YY_BUFFER_STATE b,FILE *file );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000315
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000316#define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +0000317
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000318YY_BUFFER_STATE llvmAsm_scan_buffer (char *base,yy_size_t size );
319YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str );
320YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes,int len );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000321
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000322void *llvmAsmalloc (yy_size_t );
323void *llvmAsmrealloc (void *,yy_size_t );
324void llvmAsmfree (void * );
325
326#define yy_new_buffer llvmAsm_create_buffer
Reid Spencer68a24bd2005-08-27 18:50:39 +0000327
328#define yy_set_interactive(is_interactive) \
329 { \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000330 if ( ! YY_CURRENT_BUFFER ){ \
331 llvmAsmensure_buffer_stack (); \
332 YY_CURRENT_BUFFER_LVALUE = \
333 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
334 } \
335 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000336 }
337
338#define yy_set_bol(at_bol) \
339 { \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000340 if ( ! YY_CURRENT_BUFFER ){\
341 llvmAsmensure_buffer_stack (); \
342 YY_CURRENT_BUFFER_LVALUE = \
343 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
344 } \
345 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000346 }
347
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000348#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
Reid Spencer68a24bd2005-08-27 18:50:39 +0000349
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000350/* Begin user sect3 */
Reid Spencer68a24bd2005-08-27 18:50:39 +0000351
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000352#define llvmAsmwrap(n) 1
Reid Spencer68a24bd2005-08-27 18:50:39 +0000353#define YY_SKIP_YYWRAP
Reid Spencer68a24bd2005-08-27 18:50:39 +0000354
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000355typedef unsigned char YY_CHAR;
356
357FILE *llvmAsmin = (FILE *) 0, *llvmAsmout = (FILE *) 0;
358
359typedef int yy_state_type;
360
361extern int llvmAsmlineno;
362
363int llvmAsmlineno = 1;
364
365extern char *llvmAsmtext;
366#define yytext_ptr llvmAsmtext
367
368static yy_state_type yy_get_previous_state (void );
369static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
370static int yy_get_next_buffer (void );
371static void yy_fatal_error (yyconst char msg[] );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000372
373/* Done after the current pattern has been matched and before the
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000374 * corresponding action - sets up llvmAsmtext.
Reid Spencer68a24bd2005-08-27 18:50:39 +0000375 */
376#define YY_DO_BEFORE_ACTION \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000377 (yytext_ptr) = yy_bp; \
378 llvmAsmleng = (size_t) (yy_cp - yy_bp); \
379 (yy_hold_char) = *yy_cp; \
Reid Spencer68a24bd2005-08-27 18:50:39 +0000380 *yy_cp = '\0'; \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000381 (yy_c_buf_p) = yy_cp;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000383#define YY_NUM_RULES 113
384#define YY_END_OF_BUFFER 114
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000385/* 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 };
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000392static yyconst flex_int16_t yy_accept[501] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000393 { 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000394 0, 0, 114, 112, 111, 111, 112, 112, 112, 112,
395 112, 112, 104, 104, 1, 112, 112, 112, 112, 112,
396 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
397 112, 112, 112, 112, 112, 112, 0, 103, 0, 101,
398 100, 100, 107, 0, 105, 0, 109, 104, 0, 1,
399 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000400 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000402 0, 0, 0, 0, 0, 68, 0, 0, 0, 0,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000403 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000404
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000406 0, 0, 103, 100, 100, 109, 20, 109, 0, 110,
407 62, 0, 0, 67, 0, 38, 0, 33, 0, 0,
408 0, 41, 0, 0, 0, 0, 0, 65, 0, 0,
409 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 53, 0, 0, 0, 0, 0, 0, 0, 0,
411 64, 25, 0, 0, 76, 0, 66, 85, 0, 0,
412 0, 0, 0, 80, 0, 81, 0, 0, 0, 63,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000415
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000416 0, 69, 0, 102, 109, 0, 0, 0, 109, 0,
417 0, 0, 0, 48, 77, 78, 0, 0, 0, 0,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000419 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
420 0, 94, 55, 0, 0, 22, 0, 0, 106, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 0, 26, 0, 0, 4, 60, 0, 54, 0, 0,
423 0, 0, 0, 0, 0, 0, 0, 47, 0, 11,
424 0, 0, 109, 35, 0, 0, 2, 0, 0, 0,
425 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
426
427 0, 57, 0, 0, 0, 0, 0, 0, 59, 0,
428 0, 0, 0, 0, 0, 49, 0, 0, 71, 75,
429 73, 74, 72, 70, 51, 0, 0, 95, 0, 0,
430 0, 50, 56, 21, 0, 0, 0, 0, 0, 83,
431 0, 0, 0, 0, 0, 92, 0, 44, 0, 0,
432 0, 0, 0, 0, 58, 30, 24, 0, 0, 43,
433 0, 7, 0, 0, 0, 88, 0, 32, 91, 37,
434 61, 0, 0, 79, 0, 0, 87, 27, 28, 0,
435 0, 89, 52, 84, 82, 0, 0, 0, 0, 0,
436 0, 42, 6, 29, 0, 0, 0, 0, 0, 0,
437
438 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
439 0, 0, 0, 0, 0, 8, 0, 0, 0, 17,
440 0, 0, 0, 0, 9, 10, 0, 0, 0, 0,
441 0, 34, 0, 0, 0, 12, 14, 13, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 0, 0, 0, 39, 0,
444 0, 0, 0, 0, 15, 0, 0, 0, 0, 31,
445 0, 0, 90, 0, 0, 0, 0, 0, 0, 0,
446 0, 0, 0, 0, 0, 0, 96, 0, 98, 99,
447 16, 0, 45, 0, 97, 18, 46, 0, 19, 0
448
Reid Spencer68a24bd2005-08-27 18:50:39 +0000449 } ;
450
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000451static yyconst flex_int32_t yy_ec[256] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000452 { 0,
453 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
454 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
457 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000458 11, 11, 11, 12, 11, 13, 11, 14, 15, 1,
459 1, 1, 1, 1, 16, 16, 16, 16, 17, 16,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000460 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
461 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000462 1, 1, 1, 1, 18, 1, 19, 20, 21, 22,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000463
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000464 23, 24, 25, 26, 27, 5, 28, 29, 30, 31,
465 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
466 42, 43, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000467 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474
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 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
480 1, 1, 1, 1, 1
481 } ;
482
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000483static yyconst flex_int32_t yy_meta[44] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000484 { 0,
485 1, 1, 2, 1, 3, 1, 1, 3, 3, 3,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000486 3, 3, 3, 4, 1, 3, 3, 3, 3, 3,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000487 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
488 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000489 3, 3, 3
Reid Spencer68a24bd2005-08-27 18:50:39 +0000490 } ;
491
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000492static yyconst flex_int16_t yy_base[506] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000493 { 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000494 0, 0, 1090, 1091, 1091, 1091, 1085, 1074, 36, 40,
495 44, 50, 56, 62, 0, 63, 66, 81, 89, 47,
496 90, 91, 76, 96, 108, 49, 97, 110, 68, 137,
497 120, 168, 112, 115, 135, 127, 1083, 1091, 1072, 1091,
498 0, 158, 173, 180, 196, 70, 201, 216, 221, 0,
499 121, 152, 123, 139, 166, 140, 162, 184, 1071, 222,
500 180, 31, 186, 232, 69, 144, 209, 234, 236, 225,
501 188, 241, 119, 235, 189, 238, 246, 245, 249, 255,
502 248, 257, 258, 264, 269, 1070, 265, 267, 271, 273,
503 275, 276, 277, 282, 284, 304, 293, 296, 1069, 305,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000504
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000505 288, 285, 297, 308, 311, 315, 316, 323, 325, 147,
506 322, 328, 1068, 0, 343, 348, 1067, 362, 379, 0,
507 1066, 352, 335, 1065, 355, 1064, 354, 1063, 366, 368,
508 289, 1062, 348, 369, 380, 370, 382, 1061, 386, 384,
509 374, 392, 393, 388, 394, 398, 396, 400, 406, 404,
510 407, 411, 408, 413, 415, 418, 423, 421, 424, 425,
511 1060, 1059, 427, 428, 1058, 430, 1057, 1056, 454, 435,
512 443, 436, 465, 1055, 433, 1054, 434, 437, 467, 1053,
513 455, 468, 470, 331, 475, 477, 469, 471, 472, 487,
514 473, 491, 485, 479, 499, 493, 501, 495, 502, 505,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000515
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000516 508, 1052, 506, 1091, 519, 533, 537, 541, 546, 547,
517 513, 548, 549, 1051, 1050, 1049, 550, 551, 552, 553,
518 554, 555, 509, 556, 563, 559, 560, 572, 561, 562,
519 573, 1048, 576, 579, 580, 583, 585, 586, 587, 590,
520 588, 1047, 1046, 592, 594, 1045, 593, 595, 0, 598,
521 599, 613, 601, 605, 615, 616, 611, 511, 622, 623,
522 619, 1044, 627, 629, 1043, 1042, 630, 1041, 635, 633,
523 637, 640, 641, 642, 647, 648, 649, 1040, 651, 1039,
524 655, 653, 673, 1038, 652, 654, 1037, 660, 656, 673,
525 664, 675, 678, 679, 682, 683, 684, 686, 687, 1036,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000526
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000527 688, 1035, 690, 689, 692, 693, 696, 701, 1034, 702,
528 705, 711, 706, 712, 717, 1033, 709, 720, 1032, 1031,
529 1030, 1029, 1028, 1027, 1026, 722, 723, 1025, 724, 725,
530 729, 1024, 1023, 1022, 728, 732, 734, 730, 735, 1021,
531 731, 744, 740, 741, 749, 1020, 747, 1019, 750, 752,
532 756, 755, 758, 761, 1018, 1017, 1016, 768, 762, 1015,
533 770, 1014, 769, 771, 782, 1013, 774, 1012, 1011, 1010,
534 1009, 763, 775, 1008, 788, 783, 1007, 1006, 1005, 789,
535 791, 1004, 1003, 1002, 1001, 790, 794, 796, 795, 798,
536 799, 1000, 999, 998, 800, 806, 807, 809, 801, 811,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000537
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000538 812, 813, 817, 814, 818, 995, 819, 825, 826, 830,
539 836, 837, 839, 838, 841, 986, 842, 843, 847, 984,
540 848, 850, 849, 853, 983, 982, 851, 859, 869, 855,
541 871, 981, 873, 874, 875, 979, 978, 977, 878, 881,
542 882, 884, 885, 857, 887, 891, 893, 892, 895, 896,
543 897, 898, 899, 903, 904, 908, 909, 910, 975, 913,
544 916, 919, 920, 921, 971, 923, 924, 926, 928, 969,
545 930, 929, 968, 931, 937, 940, 941, 943, 949, 950,
546 951, 952, 954, 955, 956, 957, 858, 959, 854, 597,
547 523, 963, 440, 965, 438, 334, 286, 966, 205, 1091,
548
549 1001, 1003, 214, 1007, 83
Reid Spencer68a24bd2005-08-27 18:50:39 +0000550 } ;
551
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000552static yyconst flex_int16_t yy_def[506] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000553 { 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000554 500, 1, 500, 500, 500, 500, 501, 502, 503, 500,
555 502, 502, 502, 502, 504, 502, 502, 502, 502, 502,
556 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
557 502, 502, 502, 502, 502, 502, 501, 500, 502, 500,
558 505, 505, 500, 500, 502, 502, 502, 502, 502, 504,
559 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
560 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
561 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
562 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
563 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000564
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000565 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
566 502, 502, 500, 505, 505, 500, 502, 502, 502, 49,
567 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
568 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
569 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
570 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
571 502, 502, 502, 502, 502, 502, 502, 502, 49, 502,
572 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
573 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
574 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000575
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000576 502, 502, 502, 500, 500, 500, 500, 502, 502, 502,
577 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
578 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
579 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
580 502, 502, 502, 502, 502, 502, 502, 502, 169, 502,
581 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
582 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
583 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
584 502, 502, 500, 502, 502, 502, 502, 502, 502, 502,
585 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000586
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000587 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
588 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
589 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
590 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
591 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
592 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
593 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
594 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
595 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
596 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000597
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000598 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
599 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
600 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
601 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
602 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
603 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
604 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
605 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
606 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
607 502, 502, 502, 502, 502, 502, 502, 502, 502, 0,
608
609 500, 500, 500, 500, 500
Reid Spencer68a24bd2005-08-27 18:50:39 +0000610 } ;
611
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000612static yyconst flex_int16_t yy_nxt[1135] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000613 { 0,
614 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000615 14, 14, 14, 4, 15, 8, 8, 8, 16, 17,
616 18, 19, 20, 21, 22, 8, 23, 8, 24, 25,
617 26, 27, 28, 8, 29, 30, 31, 32, 33, 34,
618 35, 8, 36, 42, 40, 43, 43, 43, 43, 44,
619 44, 44, 44, 45, 45, 45, 45, 40, 46, 133,
620 40, 134, 40, 40, 47, 48, 48, 48, 48, 40,
621 47, 48, 48, 48, 48, 40, 40, 68, 117, 40,
622 83, 40, 40, 40, 51, 114, 84, 69, 56, 40,
623 89, 52, 57, 53, 40, 54, 49, 58, 55, 60,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000624
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000625 59, 61, 40, 40, 40, 75, 76, 138, 70, 40,
626 40, 64, 62, 73, 77, 65, 63, 66, 71, 74,
627 67, 40, 78, 40, 72, 40, 80, 79, 40, 85,
628 107, 86, 40, 40, 40, 87, 40, 109, 98, 81,
629 40, 88, 121, 108, 124, 82, 90, 110, 40, 112,
630 40, 99, 40, 40, 100, 148, 91, 40, 201, 92,
631 40, 101, 93, 94, 127, 40, 111, 115, 115, 115,
632 115, 125, 139, 95, 96, 40, 97, 90, 122, 40,
633 123, 40, 43, 43, 43, 43, 128, 102, 116, 44,
634 44, 44, 44, 40, 103, 126, 104, 40, 105, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000635
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000636 132, 40, 40, 106, 47, 45, 45, 45, 45, 40,
637 118, 118, 118, 118, 40, 129, 41, 119, 40, 146,
638 135, 150, 40, 119, 47, 48, 48, 48, 48, 40,
639 120, 120, 120, 120, 40, 40, 120, 120, 40, 120,
640 120, 120, 120, 120, 120, 40, 140, 40, 40, 40,
641 130, 40, 136, 144, 40, 141, 142, 131, 40, 40,
642 145, 40, 40, 147, 137, 154, 149, 157, 40, 160,
643 40, 40, 143, 151, 152, 155, 153, 40, 40, 158,
644 40, 156, 40, 159, 40, 161, 40, 164, 40, 40,
645 40, 165, 163, 166, 162, 40, 171, 40, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000646
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000647 167, 40, 40, 178, 172, 174, 40, 168, 175, 40,
648 40, 176, 173, 169, 177, 179, 170, 40, 40, 181,
649 186, 40, 182, 180, 40, 216, 187, 188, 40, 40,
650 183, 184, 190, 195, 196, 40, 40, 191, 40, 189,
651 194, 40, 185, 200, 40, 192, 197, 40, 40, 198,
652 193, 199, 115, 115, 115, 115, 202, 205, 205, 205,
653 205, 40, 203, 264, 206, 40, 211, 40, 40, 217,
654 206, 118, 118, 118, 118, 40, 210, 212, 119, 40,
655 213, 40, 40, 40, 119, 207, 208, 40, 209, 209,
656 209, 209, 40, 40, 214, 40, 215, 40, 220, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000657
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000658 225, 40, 219, 224, 218, 40, 40, 40, 222, 40,
659 221, 40, 223, 40, 226, 227, 231, 40, 232, 40,
660 40, 40, 233, 229, 40, 234, 40, 228, 40, 236,
661 230, 40, 235, 237, 40, 239, 40, 40, 40, 238,
662 40, 40, 240, 40, 242, 243, 40, 40, 40, 40,
663 40, 40, 244, 40, 241, 246, 40, 258, 252, 259,
664 248, 247, 245, 249, 249, 249, 249, 257, 40, 249,
665 249, 250, 249, 249, 249, 249, 249, 249, 40, 251,
666 40, 40, 40, 40, 40, 40, 40, 253, 40, 254,
667 40, 261, 40, 255, 263, 256, 262, 265, 40, 266,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000668
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000669 40, 260, 269, 271, 40, 267, 40, 268, 40, 270,
670 274, 273, 40, 272, 40, 40, 278, 275, 40, 40,
671 279, 40, 40, 277, 40, 281, 40, 276, 205, 205,
672 205, 205, 280, 285, 326, 206, 40, 282, 294, 207,
673 207, 206, 283, 283, 283, 283, 283, 283, 283, 283,
674 209, 209, 209, 209, 40, 209, 209, 209, 209, 40,
675 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
676 288, 291, 40, 40, 40, 40, 40, 284, 286, 287,
677 292, 296, 301, 300, 295, 40, 40, 289, 290, 40,
678 299, 297, 40, 40, 298, 293, 40, 304, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000679
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000680 40, 40, 305, 40, 303, 40, 40, 40, 40, 302,
681 40, 40, 40, 308, 40, 309, 311, 306, 40, 307,
682 316, 310, 313, 312, 40, 317, 40, 320, 40, 40,
683 314, 315, 40, 318, 319, 40, 40, 322, 324, 329,
684 40, 321, 40, 40, 327, 328, 40, 325, 40, 330,
685 40, 323, 332, 40, 40, 40, 334, 331, 336, 333,
686 40, 40, 40, 335, 40, 40, 40, 40, 40, 40,
687 346, 337, 340, 40, 349, 347, 338, 40, 343, 345,
688 348, 339, 283, 283, 283, 283, 40, 342, 40, 341,
689 344, 40, 40, 350, 352, 40, 40, 40, 351, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000690
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000691 40, 40, 40, 40, 355, 40, 40, 359, 360, 40,
692 353, 354, 361, 356, 40, 40, 358, 362, 40, 40,
693 357, 363, 40, 366, 40, 40, 365, 368, 370, 364,
694 40, 369, 367, 40, 371, 40, 40, 40, 40, 372,
695 373, 40, 40, 40, 40, 40, 376, 40, 40, 377,
696 375, 379, 381, 40, 40, 382, 374, 40, 387, 384,
697 40, 378, 40, 40, 380, 40, 383, 385, 40, 40,
698 386, 40, 392, 390, 40, 40, 40, 388, 393, 389,
699 391, 40, 40, 40, 40, 397, 398, 40, 40, 395,
700 394, 401, 396, 402, 404, 40, 40, 405, 399, 400,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000701
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000702 403, 40, 40, 40, 40, 406, 408, 40, 40, 40,
703 407, 40, 40, 40, 40, 409, 410, 413, 411, 40,
704 40, 414, 40, 421, 40, 40, 40, 40, 415, 412,
705 40, 40, 40, 422, 417, 416, 426, 420, 40, 40,
706 418, 424, 423, 40, 430, 425, 419, 429, 431, 40,
707 40, 40, 40, 427, 40, 40, 40, 428, 432, 434,
708 40, 40, 40, 40, 40, 436, 40, 40, 40, 439,
709 40, 40, 40, 433, 435, 443, 440, 444, 437, 438,
710 441, 445, 40, 447, 40, 442, 40, 40, 40, 446,
711 448, 40, 450, 449, 40, 40, 452, 40, 40, 457,
Chris Lattnere869eef2005-11-12 00:11:49 +0000712
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000713 40, 451, 455, 453, 40, 40, 40, 458, 40, 40,
714 40, 40, 40, 462, 456, 464, 40, 40, 454, 460,
715 461, 40, 40, 40, 463, 465, 40, 459, 466, 40,
716 469, 470, 40, 40, 40, 467, 40, 40, 473, 40,
717 468, 40, 40, 40, 40, 477, 471, 474, 475, 476,
718 40, 482, 479, 40, 40, 472, 40, 484, 480, 483,
719 478, 481, 40, 40, 40, 40, 485, 40, 40, 40,
720 40, 486, 40, 491, 492, 493, 40, 487, 40, 40,
721 488, 40, 40, 497, 40, 490, 489, 498, 40, 496,
722 40, 40, 40, 495, 40, 40, 40, 40, 494, 40,
723
724 499, 37, 37, 37, 37, 39, 39, 50, 40, 50,
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000725 50, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000726 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000727 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
728 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattner75466192006-05-19 21:28:53 +0000729 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
730 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000731 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
732 40, 204, 40, 40, 40, 40, 113, 40, 38, 500,
733 3, 500, 500, 500, 500, 500, 500, 500, 500, 500,
Chris Lattner75466192006-05-19 21:28:53 +0000734
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000735 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
736 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
737 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
738 500, 500, 500, 500
Reid Spencer68a24bd2005-08-27 18:50:39 +0000739 } ;
740
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000741static yyconst flex_int16_t yy_chk[1135] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000742 { 0,
743 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
744 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000747 1, 1, 1, 9, 62, 9, 9, 9, 9, 10,
748 10, 10, 10, 11, 11, 11, 11, 11, 12, 62,
749 20, 62, 26, 12, 13, 13, 13, 13, 13, 13,
750 14, 14, 14, 14, 14, 14, 16, 20, 46, 17,
751 26, 29, 65, 46, 16, 505, 26, 20, 17, 23,
752 29, 16, 17, 16, 18, 16, 13, 17, 16, 18,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000753
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000754 17, 18, 19, 21, 22, 23, 23, 65, 21, 24,
755 27, 19, 18, 22, 24, 19, 18, 19, 21, 22,
756 19, 25, 24, 28, 21, 33, 25, 24, 34, 27,
757 33, 27, 73, 31, 51, 28, 53, 34, 31, 25,
758 36, 28, 51, 33, 53, 25, 30, 35, 35, 36,
759 30, 31, 54, 56, 31, 73, 30, 66, 110, 30,
760 110, 31, 30, 30, 56, 52, 35, 42, 42, 42,
761 42, 54, 66, 30, 30, 57, 30, 32, 52, 55,
762 52, 32, 43, 43, 43, 43, 57, 32, 44, 44,
763 44, 44, 44, 61, 32, 55, 32, 58, 32, 63,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000764
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000765 61, 71, 75, 32, 45, 45, 45, 45, 45, 45,
766 47, 47, 47, 47, 47, 58, 503, 47, 499, 71,
767 63, 75, 67, 47, 48, 48, 48, 48, 48, 48,
768 49, 49, 49, 49, 49, 60, 49, 49, 70, 49,
769 49, 49, 49, 49, 49, 64, 67, 68, 74, 69,
770 60, 76, 64, 70, 72, 68, 69, 60, 78, 77,
771 70, 81, 79, 72, 64, 77, 74, 79, 80, 81,
772 82, 83, 69, 76, 76, 78, 76, 84, 87, 79,
773 88, 78, 85, 80, 89, 82, 90, 85, 91, 92,
774 93, 87, 84, 88, 83, 94, 92, 95, 102, 497,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000775
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000776 89, 101, 131, 94, 92, 93, 97, 89, 93, 98,
777 103, 93, 92, 90, 93, 95, 91, 96, 100, 97,
778 101, 104, 98, 96, 105, 131, 102, 103, 106, 107,
779 98, 100, 105, 107, 107, 111, 108, 105, 109, 104,
780 106, 112, 100, 109, 184, 105, 107, 496, 123, 108,
781 105, 108, 115, 115, 115, 115, 111, 116, 116, 116,
782 116, 133, 112, 184, 116, 122, 123, 127, 125, 133,
783 116, 118, 118, 118, 118, 118, 122, 125, 118, 129,
784 127, 130, 134, 136, 118, 119, 119, 141, 119, 119,
785 119, 119, 119, 135, 129, 137, 130, 140, 136, 139,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000786
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000787 141, 144, 135, 140, 134, 142, 143, 145, 139, 147,
788 137, 146, 139, 148, 142, 143, 146, 150, 147, 149,
789 151, 153, 148, 144, 152, 149, 154, 143, 155, 151,
790 145, 156, 150, 152, 158, 154, 157, 159, 160, 153,
791 163, 164, 155, 166, 157, 158, 175, 177, 170, 172,
792 178, 495, 159, 493, 156, 163, 171, 177, 172, 178,
793 166, 164, 160, 169, 169, 169, 169, 175, 181, 169,
794 169, 170, 169, 169, 169, 169, 169, 169, 173, 171,
795 179, 182, 187, 183, 188, 189, 191, 173, 185, 173,
796 186, 181, 194, 173, 183, 173, 182, 185, 193, 186,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000797
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000798 190, 179, 189, 191, 192, 187, 196, 188, 198, 190,
799 194, 193, 195, 192, 197, 199, 198, 195, 200, 203,
800 199, 201, 223, 197, 258, 201, 211, 196, 205, 205,
801 205, 205, 200, 211, 258, 205, 491, 203, 223, 206,
802 206, 205, 206, 206, 206, 206, 207, 207, 207, 207,
803 208, 208, 208, 208, 208, 209, 209, 209, 209, 209,
804 210, 212, 213, 217, 218, 219, 220, 221, 222, 224,
805 217, 220, 226, 227, 229, 230, 225, 210, 212, 213,
806 221, 225, 230, 229, 224, 228, 231, 218, 219, 233,
807 228, 226, 234, 235, 227, 222, 236, 234, 237, 238,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000808
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000809 239, 241, 235, 240, 233, 244, 247, 245, 248, 231,
810 490, 250, 251, 238, 253, 239, 241, 236, 254, 237,
811 250, 240, 245, 244, 257, 251, 252, 254, 255, 256,
812 247, 248, 261, 252, 253, 259, 260, 255, 256, 261,
813 263, 254, 264, 267, 259, 260, 270, 257, 269, 263,
814 271, 255, 267, 272, 273, 274, 270, 264, 272, 269,
815 275, 276, 277, 271, 279, 285, 282, 286, 281, 289,
816 285, 273, 276, 288, 289, 286, 274, 291, 281, 282,
817 288, 275, 283, 283, 283, 283, 290, 279, 292, 277,
818 281, 293, 294, 290, 292, 295, 296, 297, 291, 298,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000819
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000820 299, 301, 304, 303, 295, 305, 306, 299, 301, 307,
821 293, 294, 303, 296, 308, 310, 298, 304, 311, 313,
822 297, 305, 317, 308, 312, 314, 307, 311, 313, 306,
823 315, 312, 310, 318, 314, 326, 327, 329, 330, 315,
824 317, 335, 331, 338, 341, 336, 327, 337, 339, 329,
825 326, 331, 336, 343, 344, 337, 318, 342, 343, 339,
826 347, 330, 345, 349, 335, 350, 338, 341, 352, 351,
827 342, 353, 350, 347, 354, 359, 372, 344, 351, 345,
828 349, 358, 363, 361, 364, 358, 358, 367, 373, 353,
829 352, 363, 354, 364, 367, 365, 376, 372, 359, 361,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000830
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000831 365, 375, 380, 386, 381, 373, 376, 387, 389, 388,
832 375, 390, 391, 395, 399, 380, 381, 388, 386, 396,
833 397, 389, 398, 399, 400, 401, 402, 404, 390, 387,
834 403, 405, 407, 400, 395, 391, 404, 398, 408, 409,
835 396, 402, 401, 410, 409, 403, 397, 408, 410, 411,
836 412, 414, 413, 405, 415, 417, 418, 407, 411, 413,
837 419, 421, 423, 422, 427, 415, 424, 489, 430, 419,
838 444, 487, 428, 412, 414, 424, 421, 427, 417, 418,
839 422, 428, 429, 430, 431, 423, 433, 434, 435, 429,
840 431, 439, 434, 433, 440, 441, 439, 442, 443, 444,
Chris Lattnere869eef2005-11-12 00:11:49 +0000841
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000842 445, 435, 442, 440, 446, 448, 447, 445, 449, 450,
843 451, 452, 453, 449, 443, 451, 454, 455, 441, 447,
844 448, 456, 457, 458, 450, 452, 460, 446, 453, 461,
845 456, 457, 462, 463, 464, 454, 466, 467, 461, 468,
846 455, 469, 472, 471, 474, 466, 458, 462, 463, 464,
847 475, 472, 468, 476, 477, 460, 478, 475, 469, 474,
848 467, 471, 479, 480, 481, 482, 476, 483, 484, 485,
849 486, 477, 488, 482, 483, 484, 492, 478, 494, 498,
850 479, 473, 470, 492, 465, 481, 480, 494, 459, 488,
851 438, 437, 436, 486, 432, 426, 425, 420, 485, 416,
Chris Lattner75466192006-05-19 21:28:53 +0000852
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000853 498, 501, 501, 501, 501, 502, 502, 504, 406, 504,
854 504, 394, 393, 392, 385, 384, 383, 382, 379, 378,
855 377, 374, 371, 370, 369, 368, 366, 362, 360, 357,
856 356, 355, 348, 346, 340, 334, 333, 332, 328, 325,
857 324, 323, 322, 321, 320, 319, 316, 309, 302, 300,
858 287, 284, 280, 278, 268, 266, 265, 262, 246, 243,
859 242, 232, 216, 215, 214, 202, 180, 176, 174, 168,
860 167, 165, 162, 161, 138, 132, 128, 126, 124, 121,
861 117, 113, 99, 86, 59, 39, 37, 8, 7, 3,
862 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
863
864 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
865 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
866 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
867 500, 500, 500, 500
Reid Spencer68a24bd2005-08-27 18:50:39 +0000868 } ;
869
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000870/* Table of booleans, true if rule could match eol. */
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000871static yyconst flex_int32_t yy_rule_can_match_eol[114] =
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000872 { 0,
8730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Anton Korobeynikovbcb97702006-09-17 20:25:45 +0000878 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000879
880static yy_state_type yy_last_accepting_state;
881static char *yy_last_accepting_cpos;
882
883extern int llvmAsm_flex_debug;
884int llvmAsm_flex_debug = 0;
885
886/* The intent behind this definition is that it'll catch
887 * any uses of REJECT which flex missed.
888 */
889#define REJECT reject_used_but_not_detected
Reid Spencer68a24bd2005-08-27 18:50:39 +0000890#define yymore() yymore_used_but_not_detected
891#define YY_MORE_ADJ 0
892#define YY_RESTORE_YY_MORE_OFFSET
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000893char *llvmAsmtext;
894#line 1 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000895/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
896//
897// The LLVM Compiler Infrastructure
898//
899// This file was developed by the LLVM research group and is distributed under
900// the University of Illinois Open Source License. See LICENSE.TXT for details.
901//
902//===----------------------------------------------------------------------===//
903//
904// This file implements the flex scanner for LLVM assembly languages files.
905//
906//===----------------------------------------------------------------------===*/
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000907#line 28 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000908#include "ParserInternals.h"
909#include "llvm/Module.h"
910#include <list>
911#include "llvmAsmParser.h"
912#include <cctype>
913#include <cstdlib>
914
915void set_scan_file(FILE * F){
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000916 llvmAsm_switch_to_buffer(llvmAsm_create_buffer(F,YY_BUF_SIZE ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +0000917}
918void set_scan_string (const char * str) {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +0000919 llvmAsm_scan_string (str);
Reid Spencer68a24bd2005-08-27 18:50:39 +0000920}
921
922#define RET_TOK(type, Enum, sym) \
923 llvmAsmlval.type = Instruction::Enum; return sym
924
925namespace llvm {
926
927// TODO: All of the static identifiers are figured out by the lexer,
928// these should be hashed to reduce the lexer size
929
930
931// atoull - Convert an ascii string of decimal digits into the unsigned long
932// long representation... this does not have to do input error checking,
933// because we know that the input will be matched by a suitable regex...
934//
935static uint64_t atoull(const char *Buffer) {
936 uint64_t Result = 0;
937 for (; *Buffer; Buffer++) {
938 uint64_t OldRes = Result;
939 Result *= 10;
940 Result += *Buffer-'0';
941 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +0000942 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +0000943 }
944 return Result;
945}
946
947static uint64_t HexIntToVal(const char *Buffer) {
948 uint64_t Result = 0;
949 for (; *Buffer; ++Buffer) {
950 uint64_t OldRes = Result;
951 Result *= 16;
952 char C = *Buffer;
953 if (C >= '0' && C <= '9')
954 Result += C-'0';
955 else if (C >= 'A' && C <= 'F')
956 Result += C-'A'+10;
957 else if (C >= 'a' && C <= 'f')
958 Result += C-'a'+10;
959
960 if (Result < OldRes) // Uh, oh, overflow detected!!!
Reid Spencer61c83e02006-08-18 08:43:06 +0000961 GenerateError("constant bigger than 64 bits detected!");
Reid Spencer68a24bd2005-08-27 18:50:39 +0000962 }
963 return Result;
964}
965
966
967// HexToFP - Convert the ascii string in hexidecimal format to the floating
968// point representation of it.
969//
970static double HexToFP(const char *Buffer) {
971 // Behave nicely in the face of C TBAA rules... see:
972 // http://www.nullstone.com/htmls/category/aliastyp.htm
973 union {
974 uint64_t UI;
975 double FP;
976 } UIntToFP;
977 UIntToFP.UI = HexIntToVal(Buffer);
978
979 assert(sizeof(double) == sizeof(uint64_t) &&
980 "Data sizes incompatible on this target!");
981 return UIntToFP.FP; // Cast Hex constant to double
982}
983
984
985// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
986// appropriate character. If AllowNull is set to false, a \00 value will cause
987// an exception to be thrown.
988//
989// If AllowNull is set to true, the return value of the function points to the
990// last character of the string in memory.
991//
992char *UnEscapeLexed(char *Buffer, bool AllowNull) {
993 char *BOut = Buffer;
994 for (char *BIn = Buffer; *BIn; ) {
995 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
996 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
997 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
998 if (!AllowNull && !*BOut)
Reid Spencer61c83e02006-08-18 08:43:06 +0000999 GenerateError("String literal cannot accept \\00 escape!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001000
1001 BIn[3] = Tmp; // Restore character
1002 BIn += 3; // Skip over handled chars
1003 ++BOut;
1004 } else {
1005 *BOut++ = *BIn++;
1006 }
1007 }
1008
1009 return BOut;
1010}
1011
1012} // End llvm namespace
1013
1014using namespace llvm;
1015
1016#define YY_NEVER_INTERACTIVE 1
1017/* Comments start with a ; and go till end of line */
1018/* Variable(Value) identifiers start with a % sign */
1019/* Label identifiers end with a colon */
1020/* Quoted names can contain any character except " and \ */
1021/* [PN]Integer: match positive and negative literal integer values that
1022 * are preceeded by a '%' character. These represent unnamed variable slots.
1023 */
1024/* E[PN]Integer: match positive and negative literal integer values */
1025/* FPConstant - A Floating point constant.
1026 */
1027/* HexFPConstant - Floating point constant represented in IEEE format as a
1028 * hexadecimal number for when exponential notation is not precise enough.
1029 */
1030/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
1031 * it to deal with 64 bit numbers.
1032 */
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001033#line 1034 "Lexer.cpp"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001034
1035#define INITIAL 0
1036
1037#ifndef YY_NO_UNISTD_H
1038/* Special case for "unistd.h", since it is non-ANSI. We include it way
1039 * down here because we want the user's section 1 to have been scanned first.
1040 * The user has a chance to override it with an option.
1041 */
1042#include <unistd.h>
1043#endif
1044
1045#ifndef YY_EXTRA_TYPE
1046#define YY_EXTRA_TYPE void *
1047#endif
1048
1049static int yy_init_globals (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001050
1051/* Macros after this point can all be overridden by user definitions in
1052 * section 1.
1053 */
1054
1055#ifndef YY_SKIP_YYWRAP
1056#ifdef __cplusplus
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001057extern "C" int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001058#else
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001059extern int llvmAsmwrap (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001060#endif
1061#endif
1062
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001063 static inline void yyunput (int c,char *buf_ptr );
1064
Reid Spencer68a24bd2005-08-27 18:50:39 +00001065#ifndef yytext_ptr
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001066static void yy_flex_strncpy (char *,yyconst char *,int );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001067#endif
1068
1069#ifdef YY_NEED_STRLEN
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001070static int yy_flex_strlen (yyconst char * );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001071#endif
1072
1073#ifndef YY_NO_INPUT
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001074
Reid Spencer68a24bd2005-08-27 18:50:39 +00001075#ifdef __cplusplus
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001076static int yyinput (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001077#else
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001078static int input (void );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001079#endif
1080
Reid Spencer68a24bd2005-08-27 18:50:39 +00001081#endif
1082
1083/* Amount of stuff to slurp up with each read. */
1084#ifndef YY_READ_BUF_SIZE
1085#define YY_READ_BUF_SIZE 8192
1086#endif
1087
1088/* Copy whatever the last rule matched to the standard output. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001089#ifndef ECHO
1090/* This used to be an fputs(), but since the string might contain NUL's,
1091 * we now use fwrite().
1092 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001093#define ECHO (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001094#endif
1095
1096/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1097 * is returned in "result".
1098 */
1099#ifndef YY_INPUT
1100#define YY_INPUT(buf,result,max_size) \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001101 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001102 { \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001103 int c = '*'; \
1104 size_t n; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001105 for ( n = 0; n < max_size && \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001106 (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001107 buf[n] = (char) c; \
1108 if ( c == '\n' ) \
1109 buf[n++] = (char) c; \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001110 if ( c == EOF && ferror( llvmAsmin ) ) \
Reid Spencer68a24bd2005-08-27 18:50:39 +00001111 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1112 result = n; \
1113 } \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001114 else \
1115 { \
1116 errno=0; \
1117 while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
1118 { \
1119 if( errno != EINTR) \
1120 { \
1121 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1122 break; \
1123 } \
1124 errno=0; \
1125 clearerr(llvmAsmin); \
1126 } \
1127 }\
1128\
1129
Reid Spencer68a24bd2005-08-27 18:50:39 +00001130#endif
1131
1132/* No semi-colon after return; correct usage is to write "yyterminate();" -
1133 * we don't want an extra ';' after the "return" because that will cause
1134 * some compilers to complain about unreachable statements.
1135 */
1136#ifndef yyterminate
1137#define yyterminate() return YY_NULL
1138#endif
1139
1140/* Number of entries by which start-condition stack grows. */
1141#ifndef YY_START_STACK_INCR
1142#define YY_START_STACK_INCR 25
1143#endif
1144
1145/* Report a fatal error. */
1146#ifndef YY_FATAL_ERROR
1147#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1148#endif
1149
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001150/* end tables serialization structures and prototypes */
1151
Reid Spencer68a24bd2005-08-27 18:50:39 +00001152/* Default declaration of generated scanner - a define so the user can
1153 * easily add parameters.
1154 */
1155#ifndef YY_DECL
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001156#define YY_DECL_IS_OURS 1
Reid Spencer68a24bd2005-08-27 18:50:39 +00001157
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001158extern int llvmAsmlex (void);
1159
1160#define YY_DECL int llvmAsmlex (void)
1161#endif /* !YY_DECL */
1162
1163/* Code executed at the beginning of each rule, after llvmAsmtext and llvmAsmleng
Reid Spencer68a24bd2005-08-27 18:50:39 +00001164 * have been set up.
1165 */
1166#ifndef YY_USER_ACTION
1167#define YY_USER_ACTION
1168#endif
1169
1170/* Code executed at the end of each rule. */
1171#ifndef YY_BREAK
1172#define YY_BREAK break;
1173#endif
1174
1175#define YY_RULE_SETUP \
1176 YY_USER_ACTION
1177
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001178/** The main scanner function which does all the work.
1179 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001180YY_DECL
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001181{
Reid Spencer68a24bd2005-08-27 18:50:39 +00001182 register yy_state_type yy_current_state;
Chris Lattner224f84f2006-08-18 17:34:45 +00001183 register char *yy_cp, *yy_bp;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001184 register int yy_act;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001185
1186#line 179 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001187
1188
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001189#line 1190 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001190
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001191 if ( !(yy_init) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001192 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001193 (yy_init) = 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001194
1195#ifdef YY_USER_INIT
1196 YY_USER_INIT;
1197#endif
1198
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001199 if ( ! (yy_start) )
1200 (yy_start) = 1; /* first start state */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001201
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001202 if ( ! llvmAsmin )
1203 llvmAsmin = stdin;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001204
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001205 if ( ! llvmAsmout )
1206 llvmAsmout = stdout;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001207
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001208 if ( ! YY_CURRENT_BUFFER ) {
1209 llvmAsmensure_buffer_stack ();
1210 YY_CURRENT_BUFFER_LVALUE =
1211 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
1212 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001213
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001214 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001215 }
1216
1217 while ( 1 ) /* loops until end-of-file is reached */
1218 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001219 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001220
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001221 /* Support of llvmAsmtext. */
1222 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001223
1224 /* yy_bp points to the position in yy_ch_buf of the start of
1225 * the current run.
1226 */
1227 yy_bp = yy_cp;
1228
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001229 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001230yy_match:
1231 do
1232 {
1233 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001234 if ( yy_accept[yy_current_state] )
1235 {
1236 (yy_last_accepting_state) = yy_current_state;
1237 (yy_last_accepting_cpos) = yy_cp;
1238 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001239 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1240 {
1241 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001242 if ( yy_current_state >= 501 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001243 yy_c = yy_meta[(unsigned int) yy_c];
1244 }
1245 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001246 ++yy_cp;
1247 }
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001248 while ( yy_current_state != 500 );
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001249 yy_cp = (yy_last_accepting_cpos);
1250 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001251
1252yy_find_action:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001253 yy_act = yy_accept[yy_current_state];
Reid Spencer68a24bd2005-08-27 18:50:39 +00001254
1255 YY_DO_BEFORE_ACTION;
1256
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001257 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001258 {
1259 int yyl;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001260 for ( yyl = 0; yyl < llvmAsmleng; ++yyl )
1261 if ( llvmAsmtext[yyl] == '\n' )
1262
1263 llvmAsmlineno++;
1264;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001265 }
1266
1267do_action: /* This label is used only to access EOF actions. */
1268
Reid Spencer68a24bd2005-08-27 18:50:39 +00001269 switch ( yy_act )
1270 { /* beginning of action switch */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001271 case 0: /* must back up */
1272 /* undo the effects of YY_DO_BEFORE_ACTION */
1273 *yy_cp = (yy_hold_char);
1274 yy_cp = (yy_last_accepting_cpos);
1275 yy_current_state = (yy_last_accepting_state);
1276 goto yy_find_action;
1277
Reid Spencer68a24bd2005-08-27 18:50:39 +00001278case 1:
1279YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001280#line 181 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001281{ /* Ignore comments for now */ }
1282 YY_BREAK
1283case 2:
1284YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001285#line 183 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001286{ return BEGINTOK; }
1287 YY_BREAK
1288case 3:
1289YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001290#line 184 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001291{ return ENDTOK; }
1292 YY_BREAK
1293case 4:
1294YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001295#line 185 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001296{ return TRUETOK; }
1297 YY_BREAK
1298case 5:
1299YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001300#line 186 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001301{ return FALSETOK; }
1302 YY_BREAK
1303case 6:
1304YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001305#line 187 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001306{ return DECLARE; }
1307 YY_BREAK
1308case 7:
1309YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001310#line 188 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001311{ return GLOBAL; }
1312 YY_BREAK
1313case 8:
1314YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001315#line 189 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001316{ return CONSTANT; }
1317 YY_BREAK
1318case 9:
1319YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001320#line 190 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001321{ return INTERNAL; }
1322 YY_BREAK
1323case 10:
1324YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001325#line 191 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001326{ return LINKONCE; }
1327 YY_BREAK
1328case 11:
1329YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001330#line 192 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001331{ return WEAK; }
1332 YY_BREAK
1333case 12:
1334YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001335#line 193 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001336{ return APPENDING; }
1337 YY_BREAK
1338case 13:
1339YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001340#line 194 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1341{ return DLLIMPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001342 YY_BREAK
1343case 14:
1344YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001345#line 195 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1346{ return DLLEXPORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001347 YY_BREAK
1348case 15:
1349YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001350#line 196 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1351{ return EXTERN_WEAK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001352 YY_BREAK
1353case 16:
1354YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001355#line 197 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1356{ return EXTERNAL; } /* Deprecated, turn into external */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001357 YY_BREAK
1358case 17:
1359YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001360#line 198 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1361{ return EXTERNAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001362 YY_BREAK
1363case 18:
1364YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001365#line 199 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1366{ return IMPLEMENTATION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001367 YY_BREAK
1368case 19:
1369YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001370#line 200 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1371{ return ZEROINITIALIZER; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001372 YY_BREAK
1373case 20:
1374YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001375#line 201 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1376{ return DOTDOTDOT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001377 YY_BREAK
1378case 21:
1379YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001380#line 202 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1381{ return UNDEF; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001382 YY_BREAK
1383case 22:
1384YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001385#line 203 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1386{ return NULL_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001387 YY_BREAK
1388case 23:
1389YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001390#line 204 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1391{ return TO; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001392 YY_BREAK
1393case 24:
1394YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001395#line 205 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1396{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001397 YY_BREAK
1398case 25:
1399YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001400#line 206 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1401{ return NOT; } /* Deprecated, turned into XOR */
Reid Spencer68a24bd2005-08-27 18:50:39 +00001402 YY_BREAK
1403case 26:
1404YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001405#line 207 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1406{ return TAIL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001407 YY_BREAK
1408case 27:
1409YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001410#line 208 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1411{ return TARGET; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001412 YY_BREAK
1413case 28:
1414YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001415#line 209 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1416{ return TRIPLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001417 YY_BREAK
1418case 29:
1419YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001420#line 210 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1421{ return DEPLIBS; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001422 YY_BREAK
1423case 30:
1424YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001425#line 211 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1426{ return ENDIAN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001427 YY_BREAK
1428case 31:
1429YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001430#line 212 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1431{ return POINTERSIZE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001432 YY_BREAK
1433case 32:
1434YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001435#line 213 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1436{ return LITTLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001437 YY_BREAK
1438case 33:
1439YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001440#line 214 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1441{ return BIG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001442 YY_BREAK
1443case 34:
1444YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001445#line 215 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1446{ return VOLATILE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001447 YY_BREAK
1448case 35:
1449YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001450#line 216 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1451{ return ALIGN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001452 YY_BREAK
1453case 36:
1454YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001455#line 217 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1456{ return SECTION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001457 YY_BREAK
1458case 37:
1459YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001460#line 218 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1461{ return MODULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001462 YY_BREAK
1463case 38:
1464YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001465#line 219 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1466{ return ASM_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001467 YY_BREAK
1468case 39:
1469YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001470#line 220 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1471{ return SIDEEFFECT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001472 YY_BREAK
1473case 40:
1474YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001475#line 222 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1476{ return CC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001477 YY_BREAK
1478case 41:
1479YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001480#line 223 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1481{ return CCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001482 YY_BREAK
1483case 42:
1484YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001485#line 224 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1486{ return CSRETCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001487 YY_BREAK
1488case 43:
1489YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001490#line 225 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1491{ return FASTCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001492 YY_BREAK
1493case 44:
1494YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001495#line 226 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1496{ return COLDCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001497 YY_BREAK
1498case 45:
1499YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001500#line 227 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1501{ return X86_STDCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001502 YY_BREAK
1503case 46:
1504YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001505#line 228 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1506{ return X86_FASTCALLCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001507 YY_BREAK
1508case 47:
1509YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001510#line 230 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001511{ llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001512 YY_BREAK
1513case 48:
1514YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001515#line 231 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001516{ llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001517 YY_BREAK
1518case 49:
1519YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001520#line 232 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001521{ llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001522 YY_BREAK
1523case 50:
1524YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001525#line 233 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001526{ llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001527 YY_BREAK
1528case 51:
1529YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001530#line 234 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001531{ llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001532 YY_BREAK
1533case 52:
1534YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001535#line 235 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001536{ llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001537 YY_BREAK
1538case 53:
1539YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001540#line 236 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001541{ llvmAsmlval.PrimType = Type::IntTy ; return INT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001542 YY_BREAK
1543case 54:
1544YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001545#line 237 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001546{ llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001547 YY_BREAK
1548case 55:
1549YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001550#line 238 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001551{ llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001552 YY_BREAK
1553case 56:
1554YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001555#line 239 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001556{ llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001557 YY_BREAK
1558case 57:
1559YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001560#line 240 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001561{ llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001562 YY_BREAK
1563case 58:
1564YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001565#line 241 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001566{ llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001567 YY_BREAK
1568case 59:
1569YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001570#line 242 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001571{ llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001572 YY_BREAK
1573case 60:
1574YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001575#line 243 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1576{ return TYPE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001577 YY_BREAK
1578case 61:
1579YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001580#line 244 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1581{ return OPAQUE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001582 YY_BREAK
1583case 62:
1584YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001585#line 246 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001586{ RET_TOK(BinaryOpVal, Add, ADD); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001587 YY_BREAK
1588case 63:
1589YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001590#line 247 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001591{ RET_TOK(BinaryOpVal, Sub, SUB); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001592 YY_BREAK
1593case 64:
1594YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001595#line 248 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001596{ RET_TOK(BinaryOpVal, Mul, MUL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001597 YY_BREAK
1598case 65:
1599YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001600#line 249 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001601{ RET_TOK(BinaryOpVal, Div, DIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001602 YY_BREAK
1603case 66:
1604YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001605#line 250 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001606{ RET_TOK(BinaryOpVal, Rem, REM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001607 YY_BREAK
1608case 67:
1609YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001610#line 251 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001611{ RET_TOK(BinaryOpVal, And, AND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001612 YY_BREAK
1613case 68:
1614YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001615#line 252 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001616{ RET_TOK(BinaryOpVal, Or , OR ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001617 YY_BREAK
1618case 69:
1619YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001620#line 253 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001621{ RET_TOK(BinaryOpVal, Xor, XOR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001622 YY_BREAK
1623case 70:
1624YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001625#line 254 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001626{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001627 YY_BREAK
1628case 71:
1629YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001630#line 255 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001631{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001632 YY_BREAK
1633case 72:
1634YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001635#line 256 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001636{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001637 YY_BREAK
1638case 73:
1639YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001640#line 257 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001641{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001642 YY_BREAK
1643case 74:
1644YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001645#line 258 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1646{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001647 YY_BREAK
1648case 75:
1649YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001650#line 259 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1651{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001652 YY_BREAK
1653case 76:
1654YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001655#line 261 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001656{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001657 YY_BREAK
1658case 77:
1659YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001660#line 262 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001661{ RET_TOK(OtherOpVal, Call, CALL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001662 YY_BREAK
1663case 78:
1664YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001665#line 263 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001666{ RET_TOK(OtherOpVal, Cast, CAST); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001667 YY_BREAK
1668case 79:
1669YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001670#line 264 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001671{ RET_TOK(OtherOpVal, Select, SELECT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001672 YY_BREAK
1673case 80:
1674YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001675#line 265 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001676{ RET_TOK(OtherOpVal, Shl, SHL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001677 YY_BREAK
1678case 81:
1679YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001680#line 266 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001681{ RET_TOK(OtherOpVal, Shr, SHR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001682 YY_BREAK
1683case 82:
1684YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001685#line 267 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001686{ return VANEXT_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001687 YY_BREAK
1688case 83:
1689YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001690#line 268 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001691{ return VAARG_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001692 YY_BREAK
1693case 84:
1694YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001695#line 269 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001696{ RET_TOK(OtherOpVal, VAArg , VAARG); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001697 YY_BREAK
1698case 85:
1699YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001700#line 270 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001701{ RET_TOK(TermOpVal, Ret, RET); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001702 YY_BREAK
1703case 86:
1704YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001705#line 271 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001706{ RET_TOK(TermOpVal, Br, BR); }
Nate Begeman14b05292005-11-05 09:21:28 +00001707 YY_BREAK
1708case 87:
1709YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001710#line 272 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001711{ RET_TOK(TermOpVal, Switch, SWITCH); }
Chris Lattnere869eef2005-11-12 00:11:49 +00001712 YY_BREAK
1713case 88:
1714YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001715#line 273 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001716{ RET_TOK(TermOpVal, Invoke, INVOKE); }
Robert Bocchino9c62b562006-01-10 19:04:32 +00001717 YY_BREAK
1718case 89:
1719YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001720#line 274 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1721{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001722 YY_BREAK
1723case 90:
1724YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001725#line 275 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1726{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
Chris Lattner8335e842006-01-23 23:05:42 +00001727 YY_BREAK
1728case 91:
1729YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001730#line 277 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001731{ RET_TOK(MemOpVal, Malloc, MALLOC); }
Chris Lattner66316012006-01-24 04:14:29 +00001732 YY_BREAK
1733case 92:
1734YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001735#line 278 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001736{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
Chris Lattner0e9c3762006-01-25 22:27:16 +00001737 YY_BREAK
1738case 93:
1739YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001740#line 279 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001741{ RET_TOK(MemOpVal, Free, FREE); }
Chris Lattnerd5efe842006-04-08 01:18:56 +00001742 YY_BREAK
1743case 94:
1744YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001745#line 280 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001746{ RET_TOK(MemOpVal, Load, LOAD); }
Chris Lattner75466192006-05-19 21:28:53 +00001747 YY_BREAK
1748case 95:
1749YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001750#line 281 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1751{ RET_TOK(MemOpVal, Store, STORE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001752 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001753case 96:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001754YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001755#line 282 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1756{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001757 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001758case 97:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001759YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001760#line 284 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001761{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001762 YY_BREAK
Chris Lattner75466192006-05-19 21:28:53 +00001763case 98:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001764YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001765#line 285 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1766{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1767 YY_BREAK
1768case 99:
1769YY_RULE_SETUP
1770#line 286 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
1771{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
1772 YY_BREAK
1773case 100:
1774YY_RULE_SETUP
1775#line 289 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001776{
1777 UnEscapeLexed(llvmAsmtext+1);
1778 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Skip %
1779 return VAR_ID;
1780 }
1781 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001782case 101:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001783YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001784#line 294 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001785{
1786 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke colon
1787 UnEscapeLexed(llvmAsmtext);
1788 llvmAsmlval.StrVal = strdup(llvmAsmtext);
1789 return LABELSTR;
1790 }
1791 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001792case 102:
1793/* rule 102 can match eol */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001794YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001795#line 300 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001796{
1797 llvmAsmtext[strlen(llvmAsmtext)-2] = 0; // nuke colon, end quote
1798 UnEscapeLexed(llvmAsmtext+1);
1799 llvmAsmlval.StrVal = strdup(llvmAsmtext+1);
1800 return LABELSTR;
1801 }
1802 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001803case 103:
1804/* rule 103 can match eol */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001805YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001806#line 307 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001807{ // Note that we cannot unescape a string constant here! The
1808 // string constant might contain a \00 which would not be
1809 // understood by the string stuff. It is valid to make a
1810 // [sbyte] c"Hello World\00" constant, for example.
1811 //
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001812 llvmAsmtext[strlen(llvmAsmtext)-1] = 0; // nuke end quote
1813 llvmAsmlval.StrVal = strdup(llvmAsmtext+1); // Nuke start quote
Reid Spencer68a24bd2005-08-27 18:50:39 +00001814 return STRINGCONSTANT;
1815 }
1816 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001817case 104:
Chris Lattnerd5efe842006-04-08 01:18:56 +00001818YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001819#line 318 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001820{ llvmAsmlval.UInt64Val = atoull(llvmAsmtext); return EUINT64VAL; }
Chris Lattner75466192006-05-19 21:28:53 +00001821 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001822case 105:
Chris Lattner75466192006-05-19 21:28:53 +00001823YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001824#line 319 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001825{
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001826 uint64_t Val = atoull(llvmAsmtext+1);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001827 // +1: we have bigger negative range
1828 if (Val > (uint64_t)INT64_MAX+1)
Reid Spencer61c83e02006-08-18 08:43:06 +00001829 GenerateError("Constant too large for signed 64 bits!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001830 llvmAsmlval.SInt64Val = -Val;
1831 return ESINT64VAL;
1832 }
1833 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001834case 106:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001835YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001836#line 327 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001837{
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001838 llvmAsmlval.UInt64Val = HexIntToVal(llvmAsmtext+3);
1839 return llvmAsmtext[0] == 's' ? ESINT64VAL : EUINT64VAL;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001840 }
1841 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001842case 107:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001843YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001844#line 332 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001845{
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001846 uint64_t Val = atoull(llvmAsmtext+1);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001847 if ((unsigned)Val != Val)
Reid Spencer61c83e02006-08-18 08:43:06 +00001848 GenerateError("Invalid value number (too large)!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001849 llvmAsmlval.UIntVal = unsigned(Val);
1850 return UINTVAL;
1851 }
1852 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001853case 108:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001854YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001855#line 339 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001856{
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001857 uint64_t Val = atoull(llvmAsmtext+2);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001858 // +1: we have bigger negative range
1859 if (Val > (uint64_t)INT32_MAX+1)
Reid Spencer61c83e02006-08-18 08:43:06 +00001860 GenerateError("Constant too large for signed 32 bits!");
Reid Spencer68a24bd2005-08-27 18:50:39 +00001861 llvmAsmlval.SIntVal = (int)-Val;
1862 return SINTVAL;
1863 }
1864 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001865case 109:
Chris Lattnerd5efe842006-04-08 01:18:56 +00001866YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001867#line 348 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001868{ llvmAsmlval.FPVal = atof(llvmAsmtext); return FPVAL; }
Chris Lattner75466192006-05-19 21:28:53 +00001869 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001870case 110:
Chris Lattner75466192006-05-19 21:28:53 +00001871YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001872#line 349 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001873{ llvmAsmlval.FPVal = HexToFP(llvmAsmtext); return FPVAL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001874 YY_BREAK
1875case YY_STATE_EOF(INITIAL):
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001876#line 351 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001877{
1878 /* Make sure to free the internal buffers for flex when we are
1879 * done reading our input!
1880 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001881 llvmAsm_delete_buffer(YY_CURRENT_BUFFER);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001882 return EOF;
1883 }
1884 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001885case 111:
1886/* rule 111 can match eol */
Chris Lattner0e9c3762006-01-25 22:27:16 +00001887YY_RULE_SETUP
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001888#line 359 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Chris Lattner75466192006-05-19 21:28:53 +00001889{ /* Ignore whitespace */ }
Chris Lattnerd5efe842006-04-08 01:18:56 +00001890 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001891case 112:
Chris Lattner75466192006-05-19 21:28:53 +00001892YY_RULE_SETUP
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001893#line 360 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001894{ return llvmAsmtext[0]; }
1895 YY_BREAK
1896case 113:
1897YY_RULE_SETUP
1898#line 362 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001899YY_FATAL_ERROR( "flex scanner jammed" );
1900 YY_BREAK
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00001901#line 1902 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001902
1903 case YY_END_OF_BUFFER:
1904 {
1905 /* Amount of text matched not including the EOB char. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001906 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001907
1908 /* Undo the effects of YY_DO_BEFORE_ACTION. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001909 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001910 YY_RESTORE_YY_MORE_OFFSET
1911
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001912 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001913 {
1914 /* We're scanning a new file or input source. It's
1915 * possible that this happened because the user
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001916 * just pointed llvmAsmin at a new source and called
1917 * llvmAsmlex(). If so, then we have to assure
1918 * consistency between YY_CURRENT_BUFFER and our
Reid Spencer68a24bd2005-08-27 18:50:39 +00001919 * globals. Here is the right place to do so, because
1920 * this is the first action (other than possibly a
1921 * back-up) that will match for the new input source.
1922 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001923 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1924 YY_CURRENT_BUFFER_LVALUE->yy_input_file = llvmAsmin;
1925 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001926 }
1927
1928 /* Note that here we test for yy_c_buf_p "<=" to the position
1929 * of the first EOB in the buffer, since yy_c_buf_p will
1930 * already have been incremented past the NUL character
1931 * (since all states make transitions on EOB to the
1932 * end-of-buffer state). Contrast this with the test
1933 * in input().
1934 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001935 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001936 { /* This was really a NUL. */
1937 yy_state_type yy_next_state;
1938
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001939 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001940
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001941 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001942
1943 /* Okay, we're now positioned to make the NUL
1944 * transition. We couldn't have
1945 * yy_get_previous_state() go ahead and do it
1946 * for us because it doesn't know how to deal
1947 * with the possibility of jamming (and we don't
1948 * want to build jamming into it because then it
1949 * will run more slowly).
1950 */
1951
1952 yy_next_state = yy_try_NUL_trans( yy_current_state );
1953
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001954 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001955
1956 if ( yy_next_state )
1957 {
1958 /* Consume the NUL. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001959 yy_cp = ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001960 yy_current_state = yy_next_state;
1961 goto yy_match;
1962 }
1963
1964 else
1965 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001966 yy_cp = (yy_last_accepting_cpos);
1967 yy_current_state = (yy_last_accepting_state);
Reid Spencer68a24bd2005-08-27 18:50:39 +00001968 goto yy_find_action;
1969 }
1970 }
1971
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001972 else switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001973 {
1974 case EOB_ACT_END_OF_FILE:
1975 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001976 (yy_did_buffer_switch_on_eof) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001977
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001978 if ( llvmAsmwrap( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001979 {
1980 /* Note: because we've taken care in
1981 * yy_get_next_buffer() to have set up
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001982 * llvmAsmtext, we can now set up
Reid Spencer68a24bd2005-08-27 18:50:39 +00001983 * yy_c_buf_p so that if some total
1984 * hoser (like flex itself) wants to
1985 * call the scanner after we return the
1986 * YY_NULL, it'll still work - another
1987 * YY_NULL will get returned.
1988 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001989 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001990
1991 yy_act = YY_STATE_EOF(YY_START);
1992 goto do_action;
1993 }
1994
1995 else
1996 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00001997 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001998 YY_NEW_FILE;
1999 }
2000 break;
2001 }
2002
2003 case EOB_ACT_CONTINUE_SCAN:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002004 (yy_c_buf_p) =
2005 (yytext_ptr) + yy_amount_of_matched_text;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002006
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002007 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002008
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002009 yy_cp = (yy_c_buf_p);
2010 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002011 goto yy_match;
2012
2013 case EOB_ACT_LAST_MATCH:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002014 (yy_c_buf_p) =
2015 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002016
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002017 yy_current_state = yy_get_previous_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002018
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002019 yy_cp = (yy_c_buf_p);
2020 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002021 goto yy_find_action;
2022 }
2023 break;
2024 }
2025
2026 default:
2027 YY_FATAL_ERROR(
2028 "fatal flex scanner internal error--no action found" );
2029 } /* end of action switch */
2030 } /* end of scanning one token */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002031} /* end of llvmAsmlex */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002032
2033/* yy_get_next_buffer - try to read in a new buffer
2034 *
2035 * Returns a code representing an action:
2036 * EOB_ACT_LAST_MATCH -
2037 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2038 * EOB_ACT_END_OF_FILE - end of file
2039 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002040static int yy_get_next_buffer (void)
2041{
2042 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2043 register char *source = (yytext_ptr);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002044 register int number_to_move, i;
2045 int ret_val;
2046
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002047 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002048 YY_FATAL_ERROR(
2049 "fatal flex scanner internal error--end of buffer missed" );
2050
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002051 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002052 { /* Don't try to fill the buffer, so this is an EOF. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002053 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002054 {
2055 /* We matched a single character, the EOB, so
2056 * treat this as a final EOF.
2057 */
2058 return EOB_ACT_END_OF_FILE;
2059 }
2060
2061 else
2062 {
2063 /* We matched some text prior to the EOB, first
2064 * process it.
2065 */
2066 return EOB_ACT_LAST_MATCH;
2067 }
2068 }
2069
2070 /* Try to read more data. */
2071
2072 /* First move last chars to start of buffer. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002073 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002074
2075 for ( i = 0; i < number_to_move; ++i )
2076 *(dest++) = *(source++);
2077
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002078 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002079 /* don't do the read, it's not guaranteed to return an EOF,
2080 * just force an EOF
2081 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002082 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002083
2084 else
2085 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002086 int num_to_read =
2087 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002088
2089 while ( num_to_read <= 0 )
2090 { /* Not enough room in the buffer - grow it. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002091
2092 /* just a shorter name for the current buffer */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002093 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002094
2095 int yy_c_buf_p_offset =
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002096 (int) ((yy_c_buf_p) - b->yy_ch_buf);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002097
2098 if ( b->yy_is_our_buffer )
2099 {
2100 int new_size = b->yy_buf_size * 2;
2101
2102 if ( new_size <= 0 )
2103 b->yy_buf_size += b->yy_buf_size / 8;
2104 else
2105 b->yy_buf_size *= 2;
2106
2107 b->yy_ch_buf = (char *)
2108 /* Include room in for 2 EOB chars. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002109 llvmAsmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002110 }
2111 else
2112 /* Can't grow it, we don't own it. */
2113 b->yy_ch_buf = 0;
2114
2115 if ( ! b->yy_ch_buf )
2116 YY_FATAL_ERROR(
2117 "fatal error - scanner input buffer overflow" );
2118
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002119 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002120
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002121 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
Reid Spencer68a24bd2005-08-27 18:50:39 +00002122 number_to_move - 1;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002123
Reid Spencer68a24bd2005-08-27 18:50:39 +00002124 }
2125
2126 if ( num_to_read > YY_READ_BUF_SIZE )
2127 num_to_read = YY_READ_BUF_SIZE;
2128
2129 /* Read in more data. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002130 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2131 (yy_n_chars), num_to_read );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002132
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002133 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002134 }
2135
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002136 if ( (yy_n_chars) == 0 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002137 {
2138 if ( number_to_move == YY_MORE_ADJ )
2139 {
2140 ret_val = EOB_ACT_END_OF_FILE;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002141 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002142 }
2143
2144 else
2145 {
2146 ret_val = EOB_ACT_LAST_MATCH;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002147 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
Reid Spencer68a24bd2005-08-27 18:50:39 +00002148 YY_BUFFER_EOF_PENDING;
2149 }
2150 }
2151
2152 else
2153 ret_val = EOB_ACT_CONTINUE_SCAN;
2154
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002155 (yy_n_chars) += number_to_move;
2156 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2157 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002158
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002159 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002160
2161 return ret_val;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002162}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002163
2164/* yy_get_previous_state - get the state just before the EOB char was reached */
2165
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002166 static yy_state_type yy_get_previous_state (void)
2167{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002168 register yy_state_type yy_current_state;
2169 register char *yy_cp;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002170
2171 yy_current_state = (yy_start);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002172
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002173 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002174 {
2175 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002176 if ( yy_accept[yy_current_state] )
2177 {
2178 (yy_last_accepting_state) = yy_current_state;
2179 (yy_last_accepting_cpos) = yy_cp;
2180 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002181 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2182 {
2183 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00002184 if ( yy_current_state >= 501 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002185 yy_c = yy_meta[(unsigned int) yy_c];
2186 }
2187 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002188 }
2189
2190 return yy_current_state;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002191}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002192
2193/* yy_try_NUL_trans - try to make a transition on the NUL character
2194 *
2195 * synopsis
2196 * next_state = yy_try_NUL_trans( current_state );
2197 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002198 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2199{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002200 register int yy_is_jam;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002201 register char *yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002202
2203 register YY_CHAR yy_c = 1;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002204 if ( yy_accept[yy_current_state] )
2205 {
2206 (yy_last_accepting_state) = yy_current_state;
2207 (yy_last_accepting_cpos) = yy_cp;
2208 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002209 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2210 {
2211 yy_current_state = (int) yy_def[yy_current_state];
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00002212 if ( yy_current_state >= 501 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002213 yy_c = yy_meta[(unsigned int) yy_c];
2214 }
2215 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00002216 yy_is_jam = (yy_current_state == 500);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002217
2218 return yy_is_jam ? 0 : yy_current_state;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002219}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002220
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002221 static inline void yyunput (int c, register char * yy_bp )
2222{
2223 register char *yy_cp;
2224
2225 yy_cp = (yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002226
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002227 /* undo effects of setting up llvmAsmtext */
2228 *yy_cp = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002229
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002230 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002231 { /* need to shift things up to make room */
2232 /* +2 for EOB chars. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002233 register int number_to_move = (yy_n_chars) + 2;
2234 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2235 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002236 register char *source =
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002237 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002238
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002239 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002240 *--dest = *--source;
2241
2242 yy_cp += (int) (dest - source);
2243 yy_bp += (int) (dest - source);
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002244 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2245 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002246
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002247 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002248 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2249 }
2250
2251 *--yy_cp = (char) c;
2252
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002253 if ( c == '\n' ){
2254 --llvmAsmlineno;
2255 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002256
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002257 (yytext_ptr) = yy_bp;
2258 (yy_hold_char) = *yy_cp;
2259 (yy_c_buf_p) = yy_cp;
2260}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002261
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002262#ifndef YY_NO_INPUT
Reid Spencer68a24bd2005-08-27 18:50:39 +00002263#ifdef __cplusplus
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002264 static int yyinput (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002265#else
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002266 static int input (void)
Reid Spencer68a24bd2005-08-27 18:50:39 +00002267#endif
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002268
2269{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002270 int c;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002271
2272 *(yy_c_buf_p) = (yy_hold_char);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002273
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002274 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002275 {
2276 /* yy_c_buf_p now points to the character we want to return.
2277 * If this occurs *before* the EOB characters, then it's a
2278 * valid NUL; if not, then we've hit the end of the buffer.
2279 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002280 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002281 /* This was really a NUL. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002282 *(yy_c_buf_p) = '\0';
Reid Spencer68a24bd2005-08-27 18:50:39 +00002283
2284 else
2285 { /* need more input */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002286 int offset = (yy_c_buf_p) - (yytext_ptr);
2287 ++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002288
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002289 switch ( yy_get_next_buffer( ) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002290 {
2291 case EOB_ACT_LAST_MATCH:
2292 /* This happens because yy_g_n_b()
2293 * sees that we've accumulated a
2294 * token and flags that we need to
2295 * try matching the token before
2296 * proceeding. But for input(),
2297 * there's no matching to consider.
2298 * So convert the EOB_ACT_LAST_MATCH
2299 * to EOB_ACT_END_OF_FILE.
2300 */
2301
2302 /* Reset buffer status. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002303 llvmAsmrestart(llvmAsmin );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002304
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002305 /*FALLTHROUGH*/
Reid Spencer68a24bd2005-08-27 18:50:39 +00002306
2307 case EOB_ACT_END_OF_FILE:
2308 {
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002309 if ( llvmAsmwrap( ) )
Reid Spencer61c83e02006-08-18 08:43:06 +00002310 return EOF;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002311
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002312 if ( ! (yy_did_buffer_switch_on_eof) )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002313 YY_NEW_FILE;
2314#ifdef __cplusplus
2315 return yyinput();
2316#else
2317 return input();
2318#endif
2319 }
2320
2321 case EOB_ACT_CONTINUE_SCAN:
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002322 (yy_c_buf_p) = (yytext_ptr) + offset;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002323 break;
2324 }
2325 }
2326 }
2327
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002328 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2329 *(yy_c_buf_p) = '\0'; /* preserve llvmAsmtext */
2330 (yy_hold_char) = *++(yy_c_buf_p);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002331
2332 if ( c == '\n' )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002333
2334 llvmAsmlineno++;
2335;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002336
2337 return c;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002338}
2339#endif /* ifndef YY_NO_INPUT */
2340
2341/** Immediately switch to a different input stream.
2342 * @param input_file A readable stream.
2343 *
2344 * @note This function does not reset the start condition to @c INITIAL .
2345 */
2346 void llvmAsmrestart (FILE * input_file )
2347{
2348
2349 if ( ! YY_CURRENT_BUFFER ){
2350 llvmAsmensure_buffer_stack ();
2351 YY_CURRENT_BUFFER_LVALUE =
2352 llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002353 }
Chris Lattner224f84f2006-08-18 17:34:45 +00002354
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002355 llvmAsm_init_buffer(YY_CURRENT_BUFFER,input_file );
2356 llvmAsm_load_buffer_state( );
2357}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002358
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002359/** Switch to a different input buffer.
2360 * @param new_buffer The new input buffer.
2361 *
2362 */
2363 void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2364{
2365
2366 /* TODO. We should be able to replace this entire function body
2367 * with
2368 * llvmAsmpop_buffer_state();
2369 * llvmAsmpush_buffer_state(new_buffer);
2370 */
2371 llvmAsmensure_buffer_stack ();
2372 if ( YY_CURRENT_BUFFER == new_buffer )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002373 return;
2374
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002375 if ( YY_CURRENT_BUFFER )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002376 {
2377 /* Flush out information for old buffer. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002378 *(yy_c_buf_p) = (yy_hold_char);
2379 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2380 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002381 }
2382
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002383 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2384 llvmAsm_load_buffer_state( );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002385
2386 /* We don't actually know whether we did this switch during
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002387 * EOF (llvmAsmwrap()) processing, but the only time this flag
2388 * is looked at is after llvmAsmwrap() is called, so it's safe
Reid Spencer68a24bd2005-08-27 18:50:39 +00002389 * to go ahead and always set it.
2390 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002391 (yy_did_buffer_switch_on_eof) = 1;
2392}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002393
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002394static void llvmAsm_load_buffer_state (void)
2395{
2396 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2397 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2398 llvmAsmin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2399 (yy_hold_char) = *(yy_c_buf_p);
2400}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002401
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002402/** Allocate and initialize an input buffer state.
2403 * @param file A readable stream.
2404 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2405 *
2406 * @return the allocated buffer state.
2407 */
2408 YY_BUFFER_STATE llvmAsm_create_buffer (FILE * file, int size )
2409{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002410 YY_BUFFER_STATE b;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002411
2412 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002413 if ( ! b )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002414 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002415
2416 b->yy_buf_size = size;
2417
2418 /* yy_ch_buf has to be 2 characters longer than the size given because
2419 * we need to put in 2 end-of-buffer characters.
2420 */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002421 b->yy_ch_buf = (char *) llvmAsmalloc(b->yy_buf_size + 2 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002422 if ( ! b->yy_ch_buf )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002423 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002424
2425 b->yy_is_our_buffer = 1;
2426
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002427 llvmAsm_init_buffer(b,file );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002428
2429 return b;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002430}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002431
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002432/** Destroy the buffer.
2433 * @param b a buffer created with llvmAsm_create_buffer()
2434 *
2435 */
2436 void llvmAsm_delete_buffer (YY_BUFFER_STATE b )
2437{
2438
Reid Spencer68a24bd2005-08-27 18:50:39 +00002439 if ( ! b )
2440 return;
2441
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002442 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2443 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002444
2445 if ( b->yy_is_our_buffer )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002446 llvmAsmfree((void *) b->yy_ch_buf );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002447
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002448 llvmAsmfree((void *) b );
2449}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002450
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002451/* Initializes or reinitializes a buffer.
2452 * This function is sometimes called more than once on the same buffer,
2453 * such as during a llvmAsmrestart() or at EOF.
2454 */
2455 static void llvmAsm_init_buffer (YY_BUFFER_STATE b, FILE * file )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002456
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002457{
2458 int oerrno = errno;
2459
2460 llvmAsm_flush_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002461
2462 b->yy_input_file = file;
2463 b->yy_fill_buffer = 1;
2464
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002465 /* If b is the current buffer, then llvmAsm_init_buffer was _probably_
2466 * called from llvmAsmrestart() or through yy_get_next_buffer.
2467 * In that case, we don't want to reset the lineno or column.
2468 */
2469 if (b != YY_CURRENT_BUFFER){
2470 b->yy_bs_lineno = 1;
2471 b->yy_bs_column = 0;
2472 }
Reid Spencer68a24bd2005-08-27 18:50:39 +00002473
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002474 b->yy_is_interactive = 0;
2475
2476 errno = oerrno;
2477}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002478
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002479/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2480 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2481 *
2482 */
2483 void llvmAsm_flush_buffer (YY_BUFFER_STATE b )
2484{
2485 if ( ! b )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002486 return;
2487
2488 b->yy_n_chars = 0;
2489
2490 /* We always need two end-of-buffer characters. The first causes
2491 * a transition to the end-of-buffer state. The second causes
2492 * a jam in that state.
2493 */
2494 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2495 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2496
2497 b->yy_buf_pos = &b->yy_ch_buf[0];
2498
2499 b->yy_at_bol = 1;
2500 b->yy_buffer_status = YY_BUFFER_NEW;
2501
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002502 if ( b == YY_CURRENT_BUFFER )
2503 llvmAsm_load_buffer_state( );
2504}
2505
2506/** Pushes the new state onto the stack. The new state becomes
2507 * the current state. This function will allocate the stack
2508 * if necessary.
2509 * @param new_buffer The new state.
2510 *
2511 */
2512void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer )
2513{
2514 if (new_buffer == NULL)
2515 return;
2516
2517 llvmAsmensure_buffer_stack();
2518
2519 /* This block is copied from llvmAsm_switch_to_buffer. */
2520 if ( YY_CURRENT_BUFFER )
2521 {
2522 /* Flush out information for old buffer. */
2523 *(yy_c_buf_p) = (yy_hold_char);
2524 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2525 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2526 }
2527
2528 /* Only push if top exists. Otherwise, replace top. */
2529 if (YY_CURRENT_BUFFER)
2530 (yy_buffer_stack_top)++;
2531 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2532
2533 /* copied from llvmAsm_switch_to_buffer. */
2534 llvmAsm_load_buffer_state( );
2535 (yy_did_buffer_switch_on_eof) = 1;
2536}
2537
2538/** Removes and deletes the top of the stack, if present.
2539 * The next element becomes the new top.
2540 *
2541 */
2542void llvmAsmpop_buffer_state (void)
2543{
2544 if (!YY_CURRENT_BUFFER)
2545 return;
2546
2547 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
2548 YY_CURRENT_BUFFER_LVALUE = NULL;
2549 if ((yy_buffer_stack_top) > 0)
2550 --(yy_buffer_stack_top);
2551
2552 if (YY_CURRENT_BUFFER) {
2553 llvmAsm_load_buffer_state( );
2554 (yy_did_buffer_switch_on_eof) = 1;
2555 }
2556}
2557
2558/* Allocates the stack if it does not exist.
2559 * Guarantees space for at least one push.
2560 */
2561static void llvmAsmensure_buffer_stack (void)
2562{
2563 int num_to_alloc;
2564
2565 if (!(yy_buffer_stack)) {
2566
2567 /* First allocation is just for 2 elements, since we don't know if this
2568 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2569 * immediate realloc on the next call.
2570 */
2571 num_to_alloc = 1;
2572 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmalloc
2573 (num_to_alloc * sizeof(struct yy_buffer_state*)
2574 );
2575
2576 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2577
2578 (yy_buffer_stack_max) = num_to_alloc;
2579 (yy_buffer_stack_top) = 0;
2580 return;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002581 }
2582
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002583 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
Reid Spencer68a24bd2005-08-27 18:50:39 +00002584
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002585 /* Increase the buffer to prepare for a possible push. */
2586 int grow_size = 8 /* arbitrary grow size */;
2587
2588 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2589 (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmrealloc
2590 ((yy_buffer_stack),
2591 num_to_alloc * sizeof(struct yy_buffer_state*)
2592 );
2593
2594 /* zero only the new slots.*/
2595 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2596 (yy_buffer_stack_max) = num_to_alloc;
2597 }
2598}
2599
2600/** Setup the input buffer state to scan directly from a user-specified character buffer.
2601 * @param base the character buffer
2602 * @param size the size in bytes of the character buffer
2603 *
2604 * @return the newly allocated buffer state object.
2605 */
2606YY_BUFFER_STATE llvmAsm_scan_buffer (char * base, yy_size_t size )
2607{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002608 YY_BUFFER_STATE b;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002609
Reid Spencer68a24bd2005-08-27 18:50:39 +00002610 if ( size < 2 ||
2611 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2612 base[size-1] != YY_END_OF_BUFFER_CHAR )
2613 /* They forgot to leave room for the EOB's. */
2614 return 0;
2615
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002616 b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state ) );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002617 if ( ! b )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002618 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_buffer()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002619
2620 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2621 b->yy_buf_pos = b->yy_ch_buf = base;
2622 b->yy_is_our_buffer = 0;
2623 b->yy_input_file = 0;
2624 b->yy_n_chars = b->yy_buf_size;
2625 b->yy_is_interactive = 0;
2626 b->yy_at_bol = 1;
2627 b->yy_fill_buffer = 0;
2628 b->yy_buffer_status = YY_BUFFER_NEW;
2629
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002630 llvmAsm_switch_to_buffer(b );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002631
2632 return b;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002633}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002634
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002635/** Setup the input buffer state to scan a string. The next call to llvmAsmlex() will
2636 * scan from a @e copy of @a str.
2637 * @param str a NUL-terminated string to scan
2638 *
2639 * @return the newly allocated buffer state object.
2640 * @note If you want to scan bytes that may contain NUL values, then use
2641 * llvmAsm_scan_bytes() instead.
2642 */
2643YY_BUFFER_STATE llvmAsm_scan_string (yyconst char * yystr )
2644{
2645
2646 return llvmAsm_scan_bytes(yystr,strlen(yystr) );
2647}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002648
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002649/** Setup the input buffer state to scan the given bytes. The next call to llvmAsmlex() will
2650 * scan from a @e copy of @a bytes.
2651 * @param bytes the byte buffer to scan
2652 * @param len the number of bytes in the buffer pointed to by @a bytes.
2653 *
2654 * @return the newly allocated buffer state object.
2655 */
2656YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2657{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002658 YY_BUFFER_STATE b;
2659 char *buf;
2660 yy_size_t n;
2661 int i;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002662
Reid Spencer68a24bd2005-08-27 18:50:39 +00002663 /* Get memory for full buffer, including space for trailing EOB's. */
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002664 n = _yybytes_len + 2;
2665 buf = (char *) llvmAsmalloc(n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002666 if ( ! buf )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002667 YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002668
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002669 for ( i = 0; i < _yybytes_len; ++i )
2670 buf[i] = yybytes[i];
Reid Spencer68a24bd2005-08-27 18:50:39 +00002671
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002672 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
Reid Spencer68a24bd2005-08-27 18:50:39 +00002673
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002674 b = llvmAsm_scan_buffer(buf,n );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002675 if ( ! b )
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002676 YY_FATAL_ERROR( "bad buffer in llvmAsm_scan_bytes()" );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002677
2678 /* It's okay to grow etc. this buffer, and we should throw it
2679 * away when we're done.
2680 */
2681 b->yy_is_our_buffer = 1;
2682
2683 return b;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002684}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002685
2686#ifndef YY_EXIT_FAILURE
2687#define YY_EXIT_FAILURE 2
2688#endif
2689
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002690static void yy_fatal_error (yyconst char* msg )
2691{
2692 (void) fprintf( stderr, "%s\n", msg );
Reid Spencer68a24bd2005-08-27 18:50:39 +00002693 exit( YY_EXIT_FAILURE );
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002694}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002695
2696/* Redefine yyless() so it works in section 3 code. */
2697
2698#undef yyless
2699#define yyless(n) \
2700 do \
2701 { \
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002702 /* Undo effects of setting up llvmAsmtext. */ \
2703 int yyless_macro_arg = (n); \
2704 YY_LESS_LINENO(yyless_macro_arg);\
2705 llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
2706 (yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
2707 (yy_hold_char) = *(yy_c_buf_p); \
2708 *(yy_c_buf_p) = '\0'; \
2709 llvmAsmleng = yyless_macro_arg; \
Reid Spencer68a24bd2005-08-27 18:50:39 +00002710 } \
2711 while ( 0 )
2712
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002713/* Accessor methods (get/set functions) to struct members. */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002714
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002715/** Get the current line number.
2716 *
2717 */
2718int llvmAsmget_lineno (void)
2719{
2720
2721 return llvmAsmlineno;
2722}
2723
2724/** Get the input stream.
2725 *
2726 */
2727FILE *llvmAsmget_in (void)
2728{
2729 return llvmAsmin;
2730}
2731
2732/** Get the output stream.
2733 *
2734 */
2735FILE *llvmAsmget_out (void)
2736{
2737 return llvmAsmout;
2738}
2739
2740/** Get the length of the current token.
2741 *
2742 */
2743int llvmAsmget_leng (void)
2744{
2745 return llvmAsmleng;
2746}
2747
2748/** Get the current token.
2749 *
2750 */
2751
2752char *llvmAsmget_text (void)
2753{
2754 return llvmAsmtext;
2755}
2756
2757/** Set the current line number.
2758 * @param line_number
2759 *
2760 */
2761void llvmAsmset_lineno (int line_number )
2762{
2763
2764 llvmAsmlineno = line_number;
2765}
2766
2767/** Set the input stream. This does not discard the current
2768 * input buffer.
2769 * @param in_str A readable stream.
2770 *
2771 * @see llvmAsm_switch_to_buffer
2772 */
2773void llvmAsmset_in (FILE * in_str )
2774{
2775 llvmAsmin = in_str ;
2776}
2777
2778void llvmAsmset_out (FILE * out_str )
2779{
2780 llvmAsmout = out_str ;
2781}
2782
2783int llvmAsmget_debug (void)
2784{
2785 return llvmAsm_flex_debug;
2786}
2787
2788void llvmAsmset_debug (int bdebug )
2789{
2790 llvmAsm_flex_debug = bdebug ;
2791}
2792
2793static int yy_init_globals (void)
2794{
2795 /* Initialization is the same as for the non-reentrant scanner.
2796 * This function is called from llvmAsmlex_destroy(), so don't allocate here.
2797 */
2798
2799 /* We do not touch llvmAsmlineno unless the option is enabled. */
2800 llvmAsmlineno = 1;
2801
2802 (yy_buffer_stack) = 0;
2803 (yy_buffer_stack_top) = 0;
2804 (yy_buffer_stack_max) = 0;
2805 (yy_c_buf_p) = (char *) 0;
2806 (yy_init) = 0;
2807 (yy_start) = 0;
2808
2809/* Defined in main.c */
2810#ifdef YY_STDINIT
2811 llvmAsmin = stdin;
2812 llvmAsmout = stdout;
2813#else
2814 llvmAsmin = (FILE *) 0;
2815 llvmAsmout = (FILE *) 0;
2816#endif
2817
2818 /* For future reference: Set errno on error, since we are called by
2819 * llvmAsmlex_init()
2820 */
2821 return 0;
2822}
2823
2824/* llvmAsmlex_destroy is for both reentrant and non-reentrant scanners. */
2825int llvmAsmlex_destroy (void)
2826{
2827
2828 /* Pop the buffer stack, destroying each element. */
2829 while(YY_CURRENT_BUFFER){
2830 llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
2831 YY_CURRENT_BUFFER_LVALUE = NULL;
2832 llvmAsmpop_buffer_state();
2833 }
2834
2835 /* Destroy the stack itself. */
2836 llvmAsmfree((yy_buffer_stack) );
2837 (yy_buffer_stack) = NULL;
2838
2839 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2840 * llvmAsmlex() is called, initialization will occur. */
2841 yy_init_globals( );
2842
2843 return 0;
2844}
2845
2846/*
2847 * Internal utility routines.
2848 */
Reid Spencer68a24bd2005-08-27 18:50:39 +00002849
2850#ifndef yytext_ptr
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002851static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2852{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002853 register int i;
2854 for ( i = 0; i < n; ++i )
2855 s1[i] = s2[i];
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002856}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002857#endif
2858
2859#ifdef YY_NEED_STRLEN
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002860static int yy_flex_strlen (yyconst char * s )
2861{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002862 register int n;
2863 for ( n = 0; s[n]; ++n )
2864 ;
2865
2866 return n;
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002867}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002868#endif
2869
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002870void *llvmAsmalloc (yy_size_t size )
2871{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002872 return (void *) malloc( size );
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002873}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002874
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002875void *llvmAsmrealloc (void * ptr, yy_size_t size )
2876{
Reid Spencer68a24bd2005-08-27 18:50:39 +00002877 /* The cast to (char *) in the following accommodates both
2878 * implementations that use char* generic pointers, and those
2879 * that use void* generic pointers. It works with the latter
2880 * because both ANSI C and C++ allow castless assignment from
2881 * any pointer type to void*, and deal with argument conversions
2882 * as though doing an assignment.
2883 */
2884 return (void *) realloc( (char *) ptr, size );
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002885}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002886
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002887void llvmAsmfree (void * ptr )
2888{
2889 free( (char *) ptr ); /* see llvmAsmrealloc() for (char *) cast */
2890}
Reid Spencer68a24bd2005-08-27 18:50:39 +00002891
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002892#define YYTABLES_NAME "yytables"
2893
Anton Korobeynikovbcb97702006-09-17 20:25:45 +00002894#line 362 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
Anton Korobeynikov43e3aad2006-09-14 18:25:26 +00002895
2896
Chris Lattner2fecc0f2006-02-15 07:02:59 +00002897