blob: eb20710faa761156b3a1971d26b1af63818f77fd [file] [log] [blame]
Reid Spencer68a24bd2005-08-27 18:50:39 +00001#define yy_create_buffer llvmAsm_create_buffer
2#define yy_delete_buffer llvmAsm_delete_buffer
3#define yy_scan_buffer llvmAsm_scan_buffer
4#define yy_scan_string llvmAsm_scan_string
5#define yy_scan_bytes llvmAsm_scan_bytes
6#define yy_flex_debug llvmAsm_flex_debug
7#define yy_init_buffer llvmAsm_init_buffer
8#define yy_flush_buffer llvmAsm_flush_buffer
9#define yy_load_buffer_state llvmAsm_load_buffer_state
10#define yy_switch_to_buffer llvmAsm_switch_to_buffer
11#define yyin llvmAsmin
12#define yyleng llvmAsmleng
13#define yylex llvmAsmlex
14#define yyout llvmAsmout
15#define yyrestart llvmAsmrestart
16#define yytext llvmAsmtext
17#define yylineno llvmAsmlineno
18
19#line 20 "Lexer.cpp"
20/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header$
24 */
25
26#define FLEX_SCANNER
27#define YY_FLEX_MAJOR_VERSION 2
28#define YY_FLEX_MINOR_VERSION 5
29
30#include <stdio.h>
Reid Spencer68a24bd2005-08-27 18:50:39 +000031
32
33/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34#ifdef c_plusplus
35#ifndef __cplusplus
36#define __cplusplus
37#endif
38#endif
39
40
41#ifdef __cplusplus
42
43#include <stdlib.h>
Nate Begeman14b05292005-11-05 09:21:28 +000044#include <unistd.h>
Reid Spencer68a24bd2005-08-27 18:50:39 +000045
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else /* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif /* __STDC__ */
60#endif /* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE (16384*64)
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
130 *
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144 do \
145 { \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151 } \
152 while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164 {
165 FILE *yy_input_file;
166
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
169
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
172 */
173 yy_size_t yy_buf_size;
174
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
177 */
178 int yy_n_chars;
179
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
183 */
184 int yy_is_our_buffer;
185
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
190 */
191 int yy_is_interactive;
192
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
196 */
197 int yy_at_bol;
198
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
201 */
202 int yy_fill_buffer;
203
204 int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
212 *
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
216 */
217#define YY_BUFFER_EOF_PENDING 2
218 };
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars; /* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1; /* whether we need to initialize */
240static int yy_start = 0; /* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268 { \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
272 }
273
274#define yy_set_bol(at_bol) \
275 { \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
279 }
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define YY_USES_REJECT
285
286#define yywrap() 1
287#define YY_SKIP_YYWRAP
288typedef unsigned char YY_CHAR;
289FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
290typedef int yy_state_type;
291extern int yylineno;
292int yylineno = 1;
293extern char *yytext;
294#define yytext_ptr yytext
295
296static yy_state_type yy_get_previous_state YY_PROTO(( void ));
297static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
298static int yy_get_next_buffer YY_PROTO(( void ));
299static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
300
301/* Done after the current pattern has been matched and before the
302 * corresponding action - sets up yytext.
303 */
304#define YY_DO_BEFORE_ACTION \
305 yytext_ptr = yy_bp; \
306 yyleng = (int) (yy_cp - yy_bp); \
307 yy_hold_char = *yy_cp; \
308 *yy_cp = '\0'; \
309 yy_c_buf_p = yy_cp;
310
Chris Lattnerd5efe842006-04-08 01:18:56 +0000311#define YY_NUM_RULES 107
312#define YY_END_OF_BUFFER 108
313static yyconst short int yy_acclist[185] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000314 { 0,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000315 108, 106, 107, 105, 106, 107, 105, 107, 106, 107,
316 106, 107, 106, 107, 106, 107, 106, 107, 106, 107,
317 98, 106, 107, 98, 106, 107, 1, 106, 107, 106,
318 107, 106, 107, 106, 107, 106, 107, 106, 107, 106,
319 107, 106, 107, 106, 107, 106, 107, 106, 107, 106,
320 107, 106, 107, 106, 107, 106, 107, 106, 107, 106,
321 107, 106, 107, 106, 107, 106, 107, 106, 107, 106,
322 107, 97, 95, 94, 94, 101, 99, 103, 98, 1,
323 80, 37, 62, 20, 97, 94, 94, 102, 103, 17,
324 103, 104, 56, 61, 35, 30, 38, 59, 3, 47,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000325
Chris Lattnerd5efe842006-04-08 01:18:56 +0000326 58, 22, 70, 60, 79, 74, 75, 57, 63, 96,
327 103, 103, 42, 71, 72, 87, 88, 49, 19, 100,
328 23, 4, 54, 48, 41, 11, 103, 32, 2, 5,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000329 51, 53, 43, 65, 69, 67, 68, 66, 64, 45,
330 89, 44, 50, 18, 77, 86, 40, 52, 27, 21,
331 39, 7, 82, 29, 85, 34, 55, 73, 81, 24,
332 25, 83, 46, 78, 76, 6, 26, 33, 8, 14,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000333 9, 10, 31, 12, 36, 28, 84, 90, 92, 93,
334 13, 91, 15, 16
Reid Spencer68a24bd2005-08-27 18:50:39 +0000335 } ;
336
Chris Lattnerd5efe842006-04-08 01:18:56 +0000337static yyconst short int yy_accept[455] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000338 { 0,
339 1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
340 17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
341 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
342 60, 62, 64, 66, 68, 70, 72, 72, 73, 73,
343 74, 75, 76, 77, 77, 78, 78, 79, 80, 80,
Chris Lattner8335e842006-01-23 23:05:42 +0000344 81, 81, 81, 81, 81, 81, 81, 81, 81, 82,
345 82, 83, 83, 83, 83, 83, 83, 83, 83, 83,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000346 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
Chris Lattner66316012006-01-24 04:14:29 +0000347 83, 83, 83, 83, 84, 84, 84, 84, 84, 84,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000348 84, 84, 84, 84, 84, 84, 84, 85, 85, 85,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000349
Chris Lattner0e9c3762006-01-25 22:27:16 +0000350 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
351 86, 87, 89, 90, 91, 92, 92, 93, 94, 94,
352 94, 95, 95, 96, 96, 97, 97, 97, 97, 98,
353 98, 98, 98, 98, 99, 99, 100, 100, 100, 100,
354 100, 100, 100, 100, 100, 100, 100, 101, 101, 101,
355 101, 101, 101, 101, 101, 101, 102, 103, 103, 103,
356 104, 104, 105, 106, 106, 106, 106, 106, 106, 107,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000357 107, 108, 108, 108, 108, 109, 109, 109, 109, 109,
Chris Lattner8335e842006-01-23 23:05:42 +0000358 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000359 109, 109, 109, 109, 109, 109, 110, 110, 111, 112,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000360
Chris Lattnerd5efe842006-04-08 01:18:56 +0000361 112, 112, 112, 113, 113, 113, 113, 113, 114, 115,
Chris Lattner66316012006-01-24 04:14:29 +0000362 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000363 116, 116, 116, 117, 117, 117, 117, 117, 117, 117,
364 117, 117, 117, 118, 119, 119, 119, 120, 120, 120,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000365 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000366 121, 121, 121, 122, 122, 122, 123, 124, 124, 125,
367 125, 125, 125, 125, 125, 125, 125, 125, 125, 126,
368 126, 127, 127, 128, 129, 129, 129, 130, 130, 130,
369 130, 130, 130, 130, 130, 130, 130, 131, 131, 132,
370 132, 132, 132, 132, 132, 132, 133, 133, 133, 133,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000371
Chris Lattnerd5efe842006-04-08 01:18:56 +0000372 133, 133, 133, 134, 134, 134, 135, 136, 137, 138,
373 139, 140, 141, 141, 141, 142, 142, 142, 142, 143,
374 144, 145, 145, 145, 145, 145, 145, 146, 146, 146,
375 146, 147, 147, 148, 148, 148, 148, 149, 150, 151,
376 151, 151, 152, 152, 153, 153, 153, 153, 154, 154,
377 155, 156, 157, 158, 158, 158, 159, 159, 159, 160,
378 161, 162, 162, 162, 163, 164, 165, 166, 166, 166,
379 166, 166, 167, 168, 168, 168, 168, 168, 168, 168,
380 168, 168, 169, 169, 169, 169, 169, 169, 169, 169,
381 170, 171, 171, 171, 171, 171, 172, 173, 173, 173,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
Chris Lattnerd5efe842006-04-08 01:18:56 +0000383 173, 173, 173, 174, 174, 175, 175, 175, 175, 175,
Chris Lattner66316012006-01-24 04:14:29 +0000384 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000385 175, 175, 176, 176, 176, 176, 176, 176, 176, 176,
386 177, 177, 177, 178, 178, 178, 178, 178, 178, 178,
387 178, 178, 178, 179, 179, 180, 181, 182, 182, 183,
388 184, 184, 185, 185
Reid Spencer68a24bd2005-08-27 18:50:39 +0000389 } ;
390
391static yyconst int yy_ec[256] =
392 { 0,
393 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
394 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
397 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
398 11, 11, 11, 11, 11, 11, 11, 12, 13, 1,
399 1, 1, 1, 1, 14, 14, 14, 14, 15, 14,
400 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
401 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
402 1, 1, 1, 1, 16, 1, 17, 18, 19, 20,
403
404 21, 22, 23, 24, 25, 5, 26, 27, 28, 29,
405 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
406 40, 41, 1, 1, 1, 1, 1, 1, 1, 1,
407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
410 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
414
415 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
416 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
417 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
418 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
419 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
420 1, 1, 1, 1, 1
421 } ;
422
423static yyconst int yy_meta[42] =
424 { 0,
425 1, 1, 2, 1, 3, 1, 1, 3, 3, 3,
426 3, 4, 1, 3, 3, 3, 3, 3, 3, 3,
427 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
428 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
429 3
430 } ;
431
Chris Lattnerd5efe842006-04-08 01:18:56 +0000432static yyconst short int yy_base[459] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000433 { 0,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000434 0, 0, 948, 949, 949, 949, 943, 934, 34, 36,
Chris Lattner8335e842006-01-23 23:05:42 +0000435 38, 42, 46, 50, 0, 52, 57, 54, 68, 62,
436 80, 82, 76, 94, 98, 40, 83, 88, 56, 125,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000437 108, 154, 109, 87, 110, 111, 941, 949, 932, 949,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000438 0, 119, 134, 142, 145, 124, 159, 166, 179, 0,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000439 55, 180, 147, 153, 119, 150, 183, 156, 931, 175,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000440 191, 192, 196, 90, 146, 200, 199, 201, 202, 204,
441 205, 211, 212, 210, 218, 217, 221, 227, 236, 230,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000442 214, 239, 241, 930, 243, 247, 248, 225, 249, 250,
443 251, 253, 258, 262, 267, 270, 929, 274, 259, 279,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000444
Chris Lattnerd5efe842006-04-08 01:18:56 +0000445 282, 263, 284, 41, 285, 288, 295, 84, 293, 928,
446 0, 310, 313, 927, 320, 332, 0, 926, 304, 306,
447 925, 317, 924, 321, 923, 325, 333, 313, 922, 286,
448 335, 337, 338, 921, 339, 341, 342, 346, 343, 347,
449 344, 350, 360, 356, 358, 363, 366, 361, 368, 364,
450 371, 374, 376, 380, 381, 920, 919, 383, 31, 918,
451 384, 917, 916, 408, 385, 386, 388, 412, 915, 399,
452 914, 390, 393, 403, 913, 396, 389, 422, 425, 426,
453 428, 430, 431, 432, 434, 438, 436, 439, 440, 441,
454 442, 447, 451, 457, 450, 912, 448, 949, 462, 474,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000455
Chris Lattnerd5efe842006-04-08 01:18:56 +0000456 393, 476, 479, 467, 480, 468, 481, 911, 910, 909,
457 482, 483, 486, 488, 490, 492, 493, 494, 495, 499,
458 496, 502, 908, 504, 509, 507, 510, 511, 513, 518,
459 517, 521, 907, 906, 520, 522, 905, 523, 526, 0,
460 530, 528, 543, 524, 542, 545, 546, 529, 548, 553,
461 557, 556, 904, 560, 559, 903, 902, 561, 901, 564,
462 567, 571, 573, 572, 576, 579, 580, 581, 900, 582,
463 899, 583, 587, 898, 587, 590, 897, 588, 594, 593,
464 534, 601, 602, 603, 604, 606, 896, 609, 895, 611,
465 607, 612, 615, 617, 618, 894, 623, 624, 625, 630,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000466
Chris Lattnerd5efe842006-04-08 01:18:56 +0000467 635, 636, 893, 629, 631, 892, 891, 890, 889, 888,
468 887, 886, 637, 641, 885, 643, 642, 648, 884, 883,
469 882, 646, 649, 650, 653, 659, 881, 660, 661, 662,
470 880, 664, 879, 663, 666, 667, 878, 877, 876, 668,
471 671, 875, 672, 874, 678, 681, 686, 873, 685, 872,
472 871, 870, 869, 682, 684, 868, 693, 695, 867, 866,
473 865, 696, 698, 864, 863, 862, 861, 697, 700, 699,
474 704, 860, 857, 706, 708, 711, 707, 714, 715, 719,
475 718, 848, 722, 723, 726, 733, 725, 735, 737, 847,
476 845, 736, 739, 741, 743, 843, 842, 742, 744, 750,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000477
Chris Lattnerd5efe842006-04-08 01:18:56 +0000478 745, 759, 841, 749, 840, 754, 746, 761, 767, 768,
479 770, 771, 772, 773, 774, 775, 776, 778, 780, 781,
480 782, 838, 784, 787, 792, 793, 786, 798, 799, 835,
481 800, 803, 834, 804, 806, 808, 810, 814, 815, 819,
482 820, 821, 832, 822, 831, 830, 826, 824, 296, 255,
483 825, 219, 949, 861, 863, 182, 867, 139
Reid Spencer68a24bd2005-08-27 18:50:39 +0000484 } ;
485
Chris Lattnerd5efe842006-04-08 01:18:56 +0000486static yyconst short int yy_def[459] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000487 { 0,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000488 453, 1, 453, 453, 453, 453, 454, 455, 456, 453,
489 455, 455, 455, 455, 457, 455, 455, 455, 455, 455,
490 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
491 455, 455, 455, 455, 455, 455, 454, 453, 455, 453,
492 458, 458, 453, 453, 455, 455, 455, 455, 455, 457,
493 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
494 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
495 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
496 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
497 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000498
Chris Lattnerd5efe842006-04-08 01:18:56 +0000499 455, 455, 455, 455, 455, 455, 455, 455, 455, 453,
500 458, 458, 453, 455, 455, 455, 49, 455, 455, 455,
501 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
502 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
503 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
504 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
505 455, 455, 455, 49, 455, 455, 455, 455, 455, 455,
506 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
507 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
508 455, 455, 455, 455, 455, 455, 455, 453, 453, 453,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000509
Chris Lattnerd5efe842006-04-08 01:18:56 +0000510 453, 455, 455, 455, 455, 455, 455, 455, 455, 455,
511 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
512 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
513 455, 455, 455, 455, 455, 455, 455, 455, 455, 164,
514 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
515 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
516 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
517 455, 455, 453, 455, 455, 455, 455, 455, 455, 455,
518 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
519 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000520
Chris Lattnerd5efe842006-04-08 01:18:56 +0000521 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
522 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
523 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
524 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
525 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
526 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
527 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
528 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
529 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
530 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000531
Chris Lattnerd5efe842006-04-08 01:18:56 +0000532 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
533 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
534 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
535 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
536 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
537 455, 455, 0, 453, 453, 453, 453, 453
Reid Spencer68a24bd2005-08-27 18:50:39 +0000538 } ;
539
Chris Lattnerd5efe842006-04-08 01:18:56 +0000540static yyconst short int yy_nxt[991] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000541 { 0,
542 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
543 14, 4, 15, 8, 8, 8, 16, 17, 18, 19,
544 20, 21, 22, 8, 23, 8, 24, 25, 26, 27,
545 28, 8, 29, 30, 31, 32, 33, 34, 35, 8,
546 36, 42, 40, 43, 43, 44, 44, 45, 45, 40,
Chris Lattner8335e842006-01-23 23:05:42 +0000547 46, 40, 40, 40, 47, 48, 48, 40, 47, 48,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000548 48, 40, 238, 40, 189, 40, 40, 40, 40, 81,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000549 60, 51, 61, 40, 118, 82, 87, 56, 52, 40,
Chris Lattner8335e842006-01-23 23:05:42 +0000550 53, 57, 54, 62, 49, 55, 58, 40, 63, 59,
551 66, 40, 64, 40, 40, 40, 68, 65, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000552
Chris Lattner0e9c3762006-01-25 22:27:16 +0000553 67, 40, 71, 73, 74, 40, 69, 107, 72, 40,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000554 75, 85, 70, 83, 78, 84, 196, 86, 76, 40,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000555 40, 40, 40, 77, 96, 105, 134, 79, 112, 112,
556 40, 109, 114, 80, 88, 40, 40, 97, 106, 108,
557 98, 111, 89, 43, 43, 90, 123, 99, 91, 92,
558 113, 44, 44, 47, 45, 45, 40, 40, 40, 93,
559 94, 40, 95, 88, 40, 40, 121, 40, 115, 115,
560 40, 100, 124, 116, 47, 48, 48, 40, 101, 116,
561 102, 135, 103, 122, 41, 126, 40, 104, 117, 117,
562 40, 40, 117, 117, 40, 117, 117, 117, 117, 117,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000563
Chris Lattner0e9c3762006-01-25 22:27:16 +0000564 117, 127, 40, 40, 119, 125, 120, 40, 128, 129,
565 40, 40, 40, 40, 132, 40, 40, 137, 130, 136,
566 131, 40, 40, 40, 142, 40, 133, 139, 40, 40,
567 40, 141, 40, 138, 140, 149, 40, 152, 40, 143,
568 144, 40, 145, 146, 147, 150, 148, 40, 157, 153,
569 40, 151, 40, 154, 40, 155, 156, 159, 40, 40,
570 40, 40, 40, 164, 40, 158, 40, 160, 166, 40,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000571 40, 161, 173, 40, 40, 162, 167, 169, 40, 175,
572 170, 40, 163, 171, 168, 40, 172, 174, 165, 181,
573 40, 176, 184, 40, 177, 40, 40, 40, 179, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000574
Chris Lattnerd5efe842006-04-08 01:18:56 +0000575 190, 191, 178, 185, 40, 211, 40, 40, 186, 180,
576 183, 195, 193, 192, 194, 40, 187, 40, 182, 112,
577 112, 188, 199, 199, 40, 197, 204, 200, 40, 115,
578 115, 40, 40, 200, 116, 205, 40, 206, 201, 202,
579 116, 203, 203, 40, 40, 207, 40, 210, 40, 40,
580 40, 208, 40, 40, 40, 40, 215, 40, 40, 209,
581 222, 40, 217, 213, 214, 216, 218, 40, 212, 40,
582 223, 40, 40, 225, 40, 40, 220, 40, 219, 40,
583 224, 221, 40, 227, 226, 40, 228, 40, 230, 231,
584 229, 40, 40, 233, 40, 40, 40, 40, 234, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000585
Chris Lattnerd5efe842006-04-08 01:18:56 +0000586 40, 40, 273, 273, 40, 232, 235, 40, 243, 237,
587 40, 249, 239, 250, 40, 253, 236, 240, 240, 241,
588 242, 240, 240, 40, 240, 240, 240, 240, 240, 240,
589 252, 248, 244, 40, 245, 251, 40, 40, 246, 40,
590 247, 40, 40, 40, 254, 40, 256, 40, 257, 40,
591 40, 40, 40, 40, 261, 255, 263, 266, 40, 40,
592 260, 40, 40, 264, 258, 259, 262, 268, 40, 265,
593 269, 199, 199, 270, 267, 271, 200, 272, 40, 40,
594 201, 201, 200, 273, 273, 203, 203, 40, 203, 203,
595 40, 40, 40, 40, 40, 274, 276, 40, 275, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000596
Chris Lattnerd5efe842006-04-08 01:18:56 +0000597 278, 40, 280, 40, 40, 40, 40, 40, 283, 277,
598 40, 286, 281, 40, 288, 40, 282, 279, 40, 287,
599 40, 40, 40, 284, 40, 291, 285, 292, 40, 40,
600 290, 40, 40, 40, 40, 40, 289, 40, 295, 40,
601 40, 40, 293, 294, 296, 40, 297, 298, 300, 299,
602 303, 336, 304, 40, 40, 306, 40, 40, 301, 40,
603 302, 305, 307, 312, 40, 309, 311, 40, 40, 313,
604 40, 40, 40, 314, 316, 40, 308, 315, 40, 310,
605 317, 319, 40, 40, 40, 318, 320, 40, 321, 323,
606 40, 40, 40, 40, 40, 322, 273, 273, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000607
Chris Lattnerd5efe842006-04-08 01:18:56 +0000608 324, 40, 327, 331, 40, 40, 333, 330, 325, 332,
609 334, 326, 40, 40, 40, 40, 329, 40, 40, 328,
610 40, 337, 40, 40, 341, 335, 40, 342, 40, 40,
611 338, 343, 340, 344, 40, 40, 40, 339, 348, 345,
612 40, 40, 40, 351, 350, 347, 40, 40, 40, 346,
613 352, 349, 40, 40, 40, 353, 354, 40, 355, 40,
614 40, 40, 358, 357, 40, 356, 359, 363, 361, 364,
615 40, 40, 40, 40, 40, 40, 360, 40, 40, 40,
616 362, 366, 40, 40, 374, 368, 372, 365, 370, 40,
617 369, 371, 40, 40, 367, 40, 40, 40, 377, 376,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000618
Chris Lattnerd5efe842006-04-08 01:18:56 +0000619 373, 378, 379, 380, 40, 375, 40, 40, 40, 40,
620 40, 40, 382, 383, 381, 40, 384, 40, 40, 40,
621 385, 386, 40, 387, 388, 40, 40, 389, 392, 40,
622 40, 393, 391, 40, 40, 394, 40, 40, 390, 397,
623 395, 396, 401, 400, 40, 403, 40, 40, 40, 402,
624 40, 398, 40, 40, 40, 40, 40, 40, 399, 405,
625 40, 40, 406, 409, 411, 40, 410, 407, 412, 404,
626 40, 413, 40, 415, 416, 408, 414, 418, 40, 40,
627 417, 40, 40, 40, 40, 40, 40, 40, 421, 40,
628 425, 40, 40, 40, 419, 40, 423, 40, 40, 424,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000629
Chris Lattnerd5efe842006-04-08 01:18:56 +0000630 429, 430, 426, 40, 40, 422, 427, 433, 420, 40,
631 40, 40, 428, 435, 40, 40, 431, 40, 434, 40,
632 436, 40, 437, 440, 432, 40, 40, 438, 441, 439,
633 40, 40, 40, 40, 442, 40, 40, 40, 447, 444,
634 443, 40, 40, 40, 451, 40, 40, 446, 445, 40,
635 450, 40, 40, 40, 40, 449, 40, 452, 40, 40,
636 448, 37, 37, 37, 37, 39, 39, 50, 40, 50,
637 50, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Nate Begeman14b05292005-11-05 09:21:28 +0000638 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattnere869eef2005-11-12 00:11:49 +0000639 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattnere869eef2005-11-12 00:11:49 +0000640
Chris Lattner0e9c3762006-01-25 22:27:16 +0000641 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000642 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
643 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
644 40, 40, 40, 40, 40, 40, 40, 40, 40, 198,
645 40, 40, 40, 40, 110, 40, 38, 453, 3, 453,
646 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
647 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
648 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
649 453, 453, 453, 453, 453, 453, 453, 453, 453, 453
Reid Spencer68a24bd2005-08-27 18:50:39 +0000650 } ;
651
Chris Lattnerd5efe842006-04-08 01:18:56 +0000652static yyconst short int yy_chk[991] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000653 { 0,
654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000658 1, 9, 159, 9, 9, 10, 10, 11, 11, 11,
659 12, 26, 104, 12, 13, 13, 13, 13, 14, 14,
660 14, 14, 159, 16, 104, 18, 51, 29, 17, 26,
Chris Lattner8335e842006-01-23 23:05:42 +0000661 18, 16, 18, 20, 51, 26, 29, 17, 16, 19,
662 16, 17, 16, 18, 13, 16, 17, 23, 19, 17,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000663 20, 21, 19, 22, 27, 108, 21, 19, 34, 28,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000664
Chris Lattner66316012006-01-24 04:14:29 +0000665 20, 64, 22, 23, 23, 24, 21, 34, 22, 25,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000666 24, 28, 21, 27, 25, 27, 108, 28, 24, 31,
Chris Lattner66316012006-01-24 04:14:29 +0000667 33, 35, 36, 24, 31, 33, 64, 25, 42, 42,
Chris Lattner8335e842006-01-23 23:05:42 +0000668 55, 36, 46, 25, 30, 46, 30, 31, 33, 35,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000669 31, 458, 30, 43, 43, 30, 55, 31, 30, 30,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000670 44, 44, 44, 45, 45, 45, 45, 65, 53, 30,
671 30, 56, 30, 32, 54, 32, 53, 58, 47, 47,
672 47, 32, 56, 47, 48, 48, 48, 48, 32, 47,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000673 32, 65, 32, 54, 456, 58, 60, 32, 49, 49,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000674 49, 52, 49, 49, 57, 49, 49, 49, 49, 49,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000675
Chris Lattner0e9c3762006-01-25 22:27:16 +0000676 49, 60, 61, 62, 52, 57, 52, 63, 60, 61,
677 67, 66, 68, 69, 63, 70, 71, 67, 62, 66,
678 62, 74, 72, 73, 70, 81, 63, 68, 76, 75,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000679 452, 69, 77, 67, 68, 75, 88, 77, 78, 71,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000680 72, 80, 73, 74, 74, 76, 74, 79, 81, 77,
681 82, 76, 83, 78, 85, 79, 80, 83, 86, 87,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000682 89, 90, 91, 88, 92, 82, 450, 85, 90, 93,
Chris Lattner0e9c3762006-01-25 22:27:16 +0000683 99, 86, 92, 94, 102, 87, 90, 91, 95, 94,
Chris Lattnerd5efe842006-04-08 01:18:56 +0000684 91, 96, 87, 91, 90, 98, 91, 93, 89, 99,
685 100, 95, 102, 101, 96, 103, 105, 130, 98, 106,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000686
Chris Lattnerd5efe842006-04-08 01:18:56 +0000687 105, 105, 96, 103, 109, 130, 107, 449, 103, 98,
688 101, 107, 106, 105, 106, 119, 103, 120, 100, 112,
689 112, 103, 113, 113, 128, 109, 119, 113, 122, 115,
690 115, 115, 124, 113, 115, 120, 126, 122, 116, 116,
691 115, 116, 116, 116, 127, 124, 131, 128, 132, 133,
692 135, 126, 136, 137, 139, 141, 135, 138, 140, 127,
693 141, 142, 137, 132, 133, 136, 138, 144, 131, 145,
694 142, 143, 148, 144, 146, 150, 139, 147, 138, 149,
695 143, 140, 151, 146, 145, 152, 147, 153, 149, 150,
696 148, 154, 155, 152, 158, 161, 165, 166, 153, 167,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000697
Chris Lattnerd5efe842006-04-08 01:18:56 +0000698 177, 172, 201, 201, 173, 151, 154, 176, 167, 158,
699 170, 172, 161, 173, 174, 177, 155, 164, 164, 165,
700 166, 164, 164, 168, 164, 164, 164, 164, 164, 164,
701 176, 170, 168, 178, 168, 174, 179, 180, 168, 181,
702 168, 182, 183, 184, 178, 185, 180, 187, 181, 186,
703 188, 189, 190, 191, 185, 179, 187, 190, 192, 197,
704 184, 195, 193, 188, 182, 183, 186, 192, 194, 189,
705 193, 199, 199, 194, 191, 195, 199, 197, 204, 206,
706 200, 200, 199, 200, 200, 202, 202, 202, 203, 203,
707 203, 205, 207, 211, 212, 204, 206, 213, 205, 214,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000708
Chris Lattnerd5efe842006-04-08 01:18:56 +0000709 211, 215, 213, 216, 217, 218, 219, 221, 216, 207,
710 220, 219, 214, 222, 221, 224, 215, 212, 226, 220,
711 225, 227, 228, 217, 229, 225, 218, 226, 231, 230,
712 224, 235, 232, 236, 238, 244, 222, 239, 229, 242,
713 248, 241, 227, 228, 230, 281, 231, 232, 236, 235,
714 241, 281, 242, 245, 243, 244, 246, 247, 238, 249,
715 239, 243, 245, 248, 250, 246, 247, 252, 251, 249,
716 255, 254, 258, 250, 252, 260, 245, 251, 261, 246,
717 254, 258, 262, 264, 263, 255, 260, 265, 261, 263,
718 266, 267, 268, 270, 272, 262, 273, 273, 275, 278,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000719
Chris Lattnerd5efe842006-04-08 01:18:56 +0000720 264, 276, 267, 275, 280, 279, 278, 272, 265, 276,
721 279, 266, 282, 283, 284, 285, 270, 286, 291, 268,
722 288, 282, 290, 292, 286, 280, 293, 288, 294, 295,
723 283, 290, 285, 291, 297, 298, 299, 284, 295, 292,
724 304, 300, 305, 299, 298, 294, 301, 302, 313, 293,
725 300, 297, 314, 317, 316, 301, 302, 322, 304, 318,
726 323, 324, 314, 313, 325, 305, 316, 323, 318, 324,
727 326, 328, 329, 330, 334, 332, 317, 335, 336, 340,
728 322, 326, 341, 343, 340, 329, 335, 325, 332, 345,
729 330, 334, 346, 354, 328, 355, 349, 347, 345, 343,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000730
Chris Lattnerd5efe842006-04-08 01:18:56 +0000731 336, 346, 347, 349, 357, 341, 358, 362, 368, 363,
732 370, 369, 355, 357, 354, 371, 358, 374, 377, 375,
733 362, 363, 376, 368, 369, 378, 379, 370, 375, 381,
734 380, 376, 374, 383, 384, 377, 387, 385, 371, 380,
735 378, 379, 385, 384, 386, 387, 388, 392, 389, 386,
736 393, 381, 394, 398, 395, 399, 401, 407, 383, 389,
737 404, 400, 392, 395, 399, 406, 398, 393, 400, 388,
738 402, 401, 408, 404, 406, 394, 402, 408, 409, 410,
739 407, 411, 412, 413, 414, 415, 416, 417, 411, 418,
740 415, 419, 420, 421, 409, 423, 413, 427, 424, 414,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000741
Chris Lattnerd5efe842006-04-08 01:18:56 +0000742 419, 420, 416, 425, 426, 412, 417, 424, 410, 428,
743 429, 431, 418, 426, 432, 434, 421, 435, 425, 436,
744 427, 437, 428, 432, 423, 438, 439, 429, 434, 431,
745 440, 441, 442, 444, 435, 448, 451, 447, 440, 437,
746 436, 446, 445, 443, 448, 433, 430, 439, 438, 422,
747 444, 405, 403, 397, 396, 442, 391, 451, 390, 382,
748 441, 454, 454, 454, 454, 455, 455, 457, 373, 457,
749 457, 372, 367, 366, 365, 364, 361, 360, 359, 356,
750 353, 352, 351, 350, 348, 344, 342, 339, 338, 337,
751 333, 331, 327, 321, 320, 319, 315, 312, 311, 310,
Chris Lattnere869eef2005-11-12 00:11:49 +0000752
Chris Lattnerd5efe842006-04-08 01:18:56 +0000753 309, 308, 307, 306, 303, 296, 289, 287, 277, 274,
754 271, 269, 259, 257, 256, 253, 237, 234, 233, 223,
755 210, 209, 208, 196, 175, 171, 169, 163, 162, 160,
756 157, 156, 134, 129, 125, 123, 121, 118, 114, 110,
757 97, 84, 59, 39, 37, 8, 7, 3, 453, 453,
758 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
759 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
760 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
761 453, 453, 453, 453, 453, 453, 453, 453, 453, 453
Reid Spencer68a24bd2005-08-27 18:50:39 +0000762 } ;
763
764static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
765static char *yy_full_match;
766static int yy_lp;
767#define REJECT \
768{ \
769*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
770yy_cp = yy_full_match; /* restore poss. backed-over text */ \
771++yy_lp; \
772goto find_rule; \
773}
774#define yymore() yymore_used_but_not_detected
775#define YY_MORE_ADJ 0
776#define YY_RESTORE_YY_MORE_OFFSET
777char *yytext;
Chris Lattnerd5efe842006-04-08 01:18:56 +0000778#line 1 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000779#define INITIAL 0
780/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
781//
782// The LLVM Compiler Infrastructure
783//
784// This file was developed by the LLVM research group and is distributed under
785// the University of Illinois Open Source License. See LICENSE.TXT for details.
786//
787//===----------------------------------------------------------------------===//
788//
789// This file implements the flex scanner for LLVM assembly languages files.
790//
791//===----------------------------------------------------------------------===*/
792#define YY_NEVER_INTERACTIVE 1
Chris Lattnerd5efe842006-04-08 01:18:56 +0000793#line 28 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000794#include "ParserInternals.h"
795#include "llvm/Module.h"
796#include <list>
797#include "llvmAsmParser.h"
798#include <cctype>
799#include <cstdlib>
800
801void set_scan_file(FILE * F){
802 yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
803}
804void set_scan_string (const char * str) {
805 yy_scan_string (str);
806}
807
808#define RET_TOK(type, Enum, sym) \
809 llvmAsmlval.type = Instruction::Enum; return sym
810
811namespace llvm {
812
813// TODO: All of the static identifiers are figured out by the lexer,
814// these should be hashed to reduce the lexer size
815
816
817// atoull - Convert an ascii string of decimal digits into the unsigned long
818// long representation... this does not have to do input error checking,
819// because we know that the input will be matched by a suitable regex...
820//
821static uint64_t atoull(const char *Buffer) {
822 uint64_t Result = 0;
823 for (; *Buffer; Buffer++) {
824 uint64_t OldRes = Result;
825 Result *= 10;
826 Result += *Buffer-'0';
827 if (Result < OldRes) // Uh, oh, overflow detected!!!
828 ThrowException("constant bigger than 64 bits detected!");
829 }
830 return Result;
831}
832
833static uint64_t HexIntToVal(const char *Buffer) {
834 uint64_t Result = 0;
835 for (; *Buffer; ++Buffer) {
836 uint64_t OldRes = Result;
837 Result *= 16;
838 char C = *Buffer;
839 if (C >= '0' && C <= '9')
840 Result += C-'0';
841 else if (C >= 'A' && C <= 'F')
842 Result += C-'A'+10;
843 else if (C >= 'a' && C <= 'f')
844 Result += C-'a'+10;
845
846 if (Result < OldRes) // Uh, oh, overflow detected!!!
847 ThrowException("constant bigger than 64 bits detected!");
848 }
849 return Result;
850}
851
852
853// HexToFP - Convert the ascii string in hexidecimal format to the floating
854// point representation of it.
855//
856static double HexToFP(const char *Buffer) {
857 // Behave nicely in the face of C TBAA rules... see:
858 // http://www.nullstone.com/htmls/category/aliastyp.htm
859 union {
860 uint64_t UI;
861 double FP;
862 } UIntToFP;
863 UIntToFP.UI = HexIntToVal(Buffer);
864
865 assert(sizeof(double) == sizeof(uint64_t) &&
866 "Data sizes incompatible on this target!");
867 return UIntToFP.FP; // Cast Hex constant to double
868}
869
870
871// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
872// appropriate character. If AllowNull is set to false, a \00 value will cause
873// an exception to be thrown.
874//
875// If AllowNull is set to true, the return value of the function points to the
876// last character of the string in memory.
877//
878char *UnEscapeLexed(char *Buffer, bool AllowNull) {
879 char *BOut = Buffer;
880 for (char *BIn = Buffer; *BIn; ) {
881 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
882 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
883 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
884 if (!AllowNull && !*BOut)
885 ThrowException("String literal cannot accept \\00 escape!");
886
887 BIn[3] = Tmp; // Restore character
888 BIn += 3; // Skip over handled chars
889 ++BOut;
890 } else {
891 *BOut++ = *BIn++;
892 }
893 }
894
895 return BOut;
896}
897
898} // End llvm namespace
899
900using namespace llvm;
901
902#define YY_NEVER_INTERACTIVE 1
903/* Comments start with a ; and go till end of line */
904/* Variable(Value) identifiers start with a % sign */
905/* Label identifiers end with a colon */
906/* Quoted names can contain any character except " and \ */
907/* [PN]Integer: match positive and negative literal integer values that
908 * are preceeded by a '%' character. These represent unnamed variable slots.
909 */
910/* E[PN]Integer: match positive and negative literal integer values */
911/* FPConstant - A Floating point constant.
912 */
913/* HexFPConstant - Floating point constant represented in IEEE format as a
914 * hexadecimal number for when exponential notation is not precise enough.
915 */
916/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
917 * it to deal with 64 bit numbers.
918 */
Chris Lattnerd5efe842006-04-08 01:18:56 +0000919#line 920 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000920
921/* Macros after this point can all be overridden by user definitions in
922 * section 1.
923 */
924
925#ifndef YY_SKIP_YYWRAP
926#ifdef __cplusplus
927extern "C" int yywrap YY_PROTO(( void ));
928#else
929extern int yywrap YY_PROTO(( void ));
930#endif
931#endif
932
933#ifndef YY_NO_UNPUT
934static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
935#endif
936
937#ifndef yytext_ptr
938static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
939#endif
940
941#ifdef YY_NEED_STRLEN
942static int yy_flex_strlen YY_PROTO(( yyconst char * ));
943#endif
944
945#ifndef YY_NO_INPUT
946#ifdef __cplusplus
947static int yyinput YY_PROTO(( void ));
948#else
949static int input YY_PROTO(( void ));
950#endif
951#endif
952
953#if YY_STACK_USED
954static int yy_start_stack_ptr = 0;
955static int yy_start_stack_depth = 0;
956static int *yy_start_stack = 0;
957#ifndef YY_NO_PUSH_STATE
958static void yy_push_state YY_PROTO(( int new_state ));
959#endif
960#ifndef YY_NO_POP_STATE
961static void yy_pop_state YY_PROTO(( void ));
962#endif
963#ifndef YY_NO_TOP_STATE
964static int yy_top_state YY_PROTO(( void ));
965#endif
966
967#else
968#define YY_NO_PUSH_STATE 1
969#define YY_NO_POP_STATE 1
970#define YY_NO_TOP_STATE 1
971#endif
972
973#ifdef YY_MALLOC_DECL
974YY_MALLOC_DECL
975#else
976#if __STDC__
977#ifndef __cplusplus
978#include <stdlib.h>
979#endif
980#else
981/* Just try to get by without declaring the routines. This will fail
982 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
983 * or sizeof(void*) != sizeof(int).
984 */
985#endif
986#endif
987
988/* Amount of stuff to slurp up with each read. */
989#ifndef YY_READ_BUF_SIZE
990#define YY_READ_BUF_SIZE 8192
991#endif
992
993/* Copy whatever the last rule matched to the standard output. */
994
995#ifndef ECHO
996/* This used to be an fputs(), but since the string might contain NUL's,
997 * we now use fwrite().
998 */
999#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1000#endif
1001
1002/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1003 * is returned in "result".
1004 */
1005#ifndef YY_INPUT
1006#define YY_INPUT(buf,result,max_size) \
1007 if ( yy_current_buffer->yy_is_interactive ) \
1008 { \
1009 int c = '*', n; \
1010 for ( n = 0; n < max_size && \
1011 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1012 buf[n] = (char) c; \
1013 if ( c == '\n' ) \
1014 buf[n++] = (char) c; \
1015 if ( c == EOF && ferror( yyin ) ) \
1016 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1017 result = n; \
1018 } \
1019 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1020 && ferror( yyin ) ) \
1021 YY_FATAL_ERROR( "input in flex scanner failed" );
1022#endif
1023
1024/* No semi-colon after return; correct usage is to write "yyterminate();" -
1025 * we don't want an extra ';' after the "return" because that will cause
1026 * some compilers to complain about unreachable statements.
1027 */
1028#ifndef yyterminate
1029#define yyterminate() return YY_NULL
1030#endif
1031
1032/* Number of entries by which start-condition stack grows. */
1033#ifndef YY_START_STACK_INCR
1034#define YY_START_STACK_INCR 25
1035#endif
1036
1037/* Report a fatal error. */
1038#ifndef YY_FATAL_ERROR
1039#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1040#endif
1041
1042/* Default declaration of generated scanner - a define so the user can
1043 * easily add parameters.
1044 */
1045#ifndef YY_DECL
1046#define YY_DECL int yylex YY_PROTO(( void ))
1047#endif
1048
1049/* Code executed at the beginning of each rule, after yytext and yyleng
1050 * have been set up.
1051 */
1052#ifndef YY_USER_ACTION
1053#define YY_USER_ACTION
1054#endif
1055
1056/* Code executed at the end of each rule. */
1057#ifndef YY_BREAK
1058#define YY_BREAK break;
1059#endif
1060
1061#define YY_RULE_SETUP \
1062 YY_USER_ACTION
1063
1064YY_DECL
1065 {
1066 register yy_state_type yy_current_state;
Nate Begeman14b05292005-11-05 09:21:28 +00001067 register char *yy_cp, *yy_bp;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001068 register int yy_act;
1069
Chris Lattnerd5efe842006-04-08 01:18:56 +00001070#line 179 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001071
1072
Chris Lattnerd5efe842006-04-08 01:18:56 +00001073#line 1074 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001074
1075 if ( yy_init )
1076 {
1077 yy_init = 0;
1078
1079#ifdef YY_USER_INIT
1080 YY_USER_INIT;
1081#endif
1082
1083 if ( ! yy_start )
1084 yy_start = 1; /* first start state */
1085
1086 if ( ! yyin )
1087 yyin = stdin;
1088
1089 if ( ! yyout )
1090 yyout = stdout;
1091
1092 if ( ! yy_current_buffer )
1093 yy_current_buffer =
1094 yy_create_buffer( yyin, YY_BUF_SIZE );
1095
1096 yy_load_buffer_state();
1097 }
1098
1099 while ( 1 ) /* loops until end-of-file is reached */
1100 {
1101 yy_cp = yy_c_buf_p;
1102
1103 /* Support of yytext. */
1104 *yy_cp = yy_hold_char;
1105
1106 /* yy_bp points to the position in yy_ch_buf of the start of
1107 * the current run.
1108 */
1109 yy_bp = yy_cp;
1110
1111 yy_current_state = yy_start;
1112 yy_state_ptr = yy_state_buf;
1113 *yy_state_ptr++ = yy_current_state;
1114yy_match:
1115 do
1116 {
1117 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1118 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1119 {
1120 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattnerd5efe842006-04-08 01:18:56 +00001121 if ( yy_current_state >= 454 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001122 yy_c = yy_meta[(unsigned int) yy_c];
1123 }
1124 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1125 *yy_state_ptr++ = yy_current_state;
1126 ++yy_cp;
1127 }
Chris Lattnerd5efe842006-04-08 01:18:56 +00001128 while ( yy_current_state != 453 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001129
1130yy_find_action:
1131 yy_current_state = *--yy_state_ptr;
1132 yy_lp = yy_accept[yy_current_state];
1133find_rule: /* we branch to this label when backing up */
1134 for ( ; ; ) /* until we find what rule we matched */
1135 {
1136 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1137 {
1138 yy_act = yy_acclist[yy_lp];
1139 {
1140 yy_full_match = yy_cp;
1141 break;
1142 }
1143 }
1144 --yy_cp;
1145 yy_current_state = *--yy_state_ptr;
1146 yy_lp = yy_accept[yy_current_state];
1147 }
1148
1149 YY_DO_BEFORE_ACTION;
1150
1151 if ( yy_act != YY_END_OF_BUFFER )
1152 {
1153 int yyl;
1154 for ( yyl = 0; yyl < yyleng; ++yyl )
1155 if ( yytext[yyl] == '\n' )
1156 ++yylineno;
1157 }
1158
1159do_action: /* This label is used only to access EOF actions. */
1160
1161
1162 switch ( yy_act )
1163 { /* beginning of action switch */
1164case 1:
1165YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001166#line 181 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001167{ /* Ignore comments for now */ }
1168 YY_BREAK
1169case 2:
1170YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001171#line 183 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001172{ return BEGINTOK; }
1173 YY_BREAK
1174case 3:
1175YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001176#line 184 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001177{ return ENDTOK; }
1178 YY_BREAK
1179case 4:
1180YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001181#line 185 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001182{ return TRUETOK; }
1183 YY_BREAK
1184case 5:
1185YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001186#line 186 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001187{ return FALSETOK; }
1188 YY_BREAK
1189case 6:
1190YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001191#line 187 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001192{ return DECLARE; }
1193 YY_BREAK
1194case 7:
1195YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001196#line 188 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001197{ return GLOBAL; }
1198 YY_BREAK
1199case 8:
1200YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001201#line 189 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001202{ return CONSTANT; }
1203 YY_BREAK
1204case 9:
1205YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001206#line 190 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001207{ return INTERNAL; }
1208 YY_BREAK
1209case 10:
1210YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001211#line 191 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001212{ return LINKONCE; }
1213 YY_BREAK
1214case 11:
1215YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001216#line 192 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001217{ return WEAK; }
1218 YY_BREAK
1219case 12:
1220YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001221#line 193 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001222{ return APPENDING; }
1223 YY_BREAK
1224case 13:
1225YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001226#line 194 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001227{ return EXTERNAL; } /* Deprecated, turn into external */
1228 YY_BREAK
1229case 14:
1230YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001231#line 195 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001232{ return EXTERNAL; }
1233 YY_BREAK
1234case 15:
1235YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001236#line 196 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001237{ return IMPLEMENTATION; }
1238 YY_BREAK
1239case 16:
1240YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001241#line 197 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001242{ return ZEROINITIALIZER; }
1243 YY_BREAK
1244case 17:
1245YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001246#line 198 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001247{ return DOTDOTDOT; }
1248 YY_BREAK
1249case 18:
1250YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001251#line 199 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001252{ return UNDEF; }
1253 YY_BREAK
1254case 19:
1255YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001256#line 200 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001257{ return NULL_TOK; }
1258 YY_BREAK
1259case 20:
1260YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001261#line 201 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001262{ return TO; }
1263 YY_BREAK
1264case 21:
1265YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001266#line 202 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001267{ RET_TOK(TermOpVal, Unwind, UNWIND); }
1268 YY_BREAK
1269case 22:
1270YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001271#line 203 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001272{ return NOT; } /* Deprecated, turned into XOR */
1273 YY_BREAK
1274case 23:
1275YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001276#line 204 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001277{ return TAIL; }
1278 YY_BREAK
1279case 24:
1280YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001281#line 205 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001282{ return TARGET; }
1283 YY_BREAK
1284case 25:
1285YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001286#line 206 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001287{ return TRIPLE; }
1288 YY_BREAK
1289case 26:
1290YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001291#line 207 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001292{ return DEPLIBS; }
1293 YY_BREAK
1294case 27:
1295YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001296#line 208 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001297{ return ENDIAN; }
1298 YY_BREAK
1299case 28:
1300YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001301#line 209 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001302{ return POINTERSIZE; }
1303 YY_BREAK
1304case 29:
1305YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001306#line 210 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001307{ return LITTLE; }
1308 YY_BREAK
1309case 30:
1310YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001311#line 211 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001312{ return BIG; }
1313 YY_BREAK
1314case 31:
1315YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001316#line 212 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001317{ return VOLATILE; }
1318 YY_BREAK
1319case 32:
1320YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001321#line 213 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattnere869eef2005-11-12 00:11:49 +00001322{ return ALIGN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001323 YY_BREAK
1324case 33:
1325YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001326#line 214 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattnere869eef2005-11-12 00:11:49 +00001327{ return SECTION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001328 YY_BREAK
1329case 34:
1330YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001331#line 215 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner66316012006-01-24 04:14:29 +00001332{ return MODULE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001333 YY_BREAK
1334case 35:
1335YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001336#line 216 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner66316012006-01-24 04:14:29 +00001337{ return ASM_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001338 YY_BREAK
1339case 36:
1340YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001341#line 217 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001342{ return SIDEEFFECT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001343 YY_BREAK
1344case 37:
1345YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001346#line 219 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001347{ return CC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001348 YY_BREAK
1349case 38:
1350YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001351#line 220 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001352{ return CCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001353 YY_BREAK
1354case 39:
1355YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001356#line 221 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001357{ return FASTCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001358 YY_BREAK
1359case 40:
1360YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001361#line 222 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001362{ return COLDCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001363 YY_BREAK
1364case 41:
1365YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001366#line 224 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001367{ llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001368 YY_BREAK
1369case 42:
1370YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001371#line 225 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001372{ llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001373 YY_BREAK
1374case 43:
1375YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001376#line 226 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001377{ llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001378 YY_BREAK
1379case 44:
1380YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001381#line 227 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001382{ llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001383 YY_BREAK
1384case 45:
1385YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001386#line 228 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001387{ llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001388 YY_BREAK
1389case 46:
1390YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001391#line 229 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001392{ llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001393 YY_BREAK
1394case 47:
1395YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001396#line 230 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001397{ llvmAsmlval.PrimType = Type::IntTy ; return INT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001398 YY_BREAK
1399case 48:
1400YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001401#line 231 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001402{ llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001403 YY_BREAK
1404case 49:
1405YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001406#line 232 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001407{ llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001408 YY_BREAK
1409case 50:
1410YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001411#line 233 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001412{ llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001413 YY_BREAK
1414case 51:
1415YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001416#line 234 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001417{ llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001418 YY_BREAK
1419case 52:
1420YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001421#line 235 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001422{ llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001423 YY_BREAK
1424case 53:
1425YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001426#line 236 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001427{ llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001428 YY_BREAK
1429case 54:
1430YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001431#line 237 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001432{ return TYPE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001433 YY_BREAK
1434case 55:
1435YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001436#line 238 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001437{ return OPAQUE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001438 YY_BREAK
1439case 56:
1440YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001441#line 240 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001442{ RET_TOK(BinaryOpVal, Add, ADD); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001443 YY_BREAK
1444case 57:
1445YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001446#line 241 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001447{ RET_TOK(BinaryOpVal, Sub, SUB); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001448 YY_BREAK
1449case 58:
1450YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001451#line 242 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001452{ RET_TOK(BinaryOpVal, Mul, MUL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001453 YY_BREAK
1454case 59:
1455YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001456#line 243 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001457{ RET_TOK(BinaryOpVal, Div, DIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001458 YY_BREAK
1459case 60:
1460YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001461#line 244 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001462{ RET_TOK(BinaryOpVal, Rem, REM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001463 YY_BREAK
1464case 61:
1465YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001466#line 245 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001467{ RET_TOK(BinaryOpVal, And, AND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001468 YY_BREAK
1469case 62:
1470YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001471#line 246 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001472{ RET_TOK(BinaryOpVal, Or , OR ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001473 YY_BREAK
1474case 63:
1475YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001476#line 247 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001477{ RET_TOK(BinaryOpVal, Xor, XOR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001478 YY_BREAK
1479case 64:
1480YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001481#line 248 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001482{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001483 YY_BREAK
1484case 65:
1485YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001486#line 249 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001487{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001488 YY_BREAK
1489case 66:
1490YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001491#line 250 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001492{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001493 YY_BREAK
1494case 67:
1495YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001496#line 251 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001497{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001498 YY_BREAK
1499case 68:
1500YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001501#line 252 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001502{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001503 YY_BREAK
1504case 69:
1505YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001506#line 253 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001507{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001508 YY_BREAK
1509case 70:
1510YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001511#line 255 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001512{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001513 YY_BREAK
1514case 71:
1515YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001516#line 256 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001517{ RET_TOK(OtherOpVal, Call, CALL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001518 YY_BREAK
1519case 72:
1520YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001521#line 257 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001522{ RET_TOK(OtherOpVal, Cast, CAST); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001523 YY_BREAK
1524case 73:
1525YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001526#line 258 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001527{ RET_TOK(OtherOpVal, Select, SELECT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001528 YY_BREAK
1529case 74:
1530YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001531#line 259 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001532{ RET_TOK(OtherOpVal, Shl, SHL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001533 YY_BREAK
1534case 75:
1535YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001536#line 260 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001537{ RET_TOK(OtherOpVal, Shr, SHR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001538 YY_BREAK
1539case 76:
1540YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001541#line 261 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001542{ return VANEXT_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001543 YY_BREAK
1544case 77:
1545YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001546#line 262 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001547{ return VAARG_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001548 YY_BREAK
1549case 78:
1550YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001551#line 263 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001552{ RET_TOK(OtherOpVal, VAArg , VAARG); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001553 YY_BREAK
1554case 79:
1555YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001556#line 264 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001557{ RET_TOK(TermOpVal, Ret, RET); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001558 YY_BREAK
1559case 80:
1560YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001561#line 265 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001562{ RET_TOK(TermOpVal, Br, BR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001563 YY_BREAK
1564case 81:
1565YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001566#line 266 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001567{ RET_TOK(TermOpVal, Switch, SWITCH); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001568 YY_BREAK
1569case 82:
1570YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001571#line 267 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001572{ RET_TOK(TermOpVal, Invoke, INVOKE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001573 YY_BREAK
1574case 83:
1575YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001576#line 268 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001577{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001578 YY_BREAK
1579case 84:
1580YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001581#line 269 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001582{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001583 YY_BREAK
1584case 85:
1585YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001586#line 271 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001587{ RET_TOK(MemOpVal, Malloc, MALLOC); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001588 YY_BREAK
1589case 86:
1590YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001591#line 272 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001592{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
Nate Begeman14b05292005-11-05 09:21:28 +00001593 YY_BREAK
1594case 87:
1595YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001596#line 273 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001597{ RET_TOK(MemOpVal, Free, FREE); }
Chris Lattnere869eef2005-11-12 00:11:49 +00001598 YY_BREAK
1599case 88:
1600YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001601#line 274 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001602{ RET_TOK(MemOpVal, Load, LOAD); }
Robert Bocchino9c62b562006-01-10 19:04:32 +00001603 YY_BREAK
1604case 89:
1605YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001606#line 275 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001607{ RET_TOK(MemOpVal, Store, STORE); }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001608 YY_BREAK
1609case 90:
1610YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001611#line 276 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001612{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
Chris Lattner8335e842006-01-23 23:05:42 +00001613 YY_BREAK
1614case 91:
1615YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001616#line 278 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001617{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
Chris Lattner66316012006-01-24 04:14:29 +00001618 YY_BREAK
1619case 92:
1620YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001621#line 279 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattner0e9c3762006-01-25 22:27:16 +00001622{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1623 YY_BREAK
1624case 93:
1625YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001626#line 280 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1627{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
1628 YY_BREAK
1629case 94:
1630YY_RULE_SETUP
1631#line 283 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001632{
1633 UnEscapeLexed(yytext+1);
1634 llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
1635 return VAR_ID;
1636 }
1637 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001638case 95:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001639YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001640#line 288 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001641{
1642 yytext[strlen(yytext)-1] = 0; // nuke colon
1643 UnEscapeLexed(yytext);
1644 llvmAsmlval.StrVal = strdup(yytext);
1645 return LABELSTR;
1646 }
1647 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001648case 96:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001649YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001650#line 294 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001651{
1652 yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
1653 UnEscapeLexed(yytext+1);
1654 llvmAsmlval.StrVal = strdup(yytext+1);
1655 return LABELSTR;
1656 }
1657 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001658case 97:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001659YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001660#line 301 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001661{ // Note that we cannot unescape a string constant here! The
1662 // string constant might contain a \00 which would not be
1663 // understood by the string stuff. It is valid to make a
1664 // [sbyte] c"Hello World\00" constant, for example.
1665 //
1666 yytext[strlen(yytext)-1] = 0; // nuke end quote
1667 llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
1668 return STRINGCONSTANT;
1669 }
1670 YY_BREAK
Chris Lattner0e9c3762006-01-25 22:27:16 +00001671case 98:
1672YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001673#line 312 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1674{ llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
1675 YY_BREAK
1676case 99:
1677YY_RULE_SETUP
1678#line 313 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001679{
1680 uint64_t Val = atoull(yytext+1);
1681 // +1: we have bigger negative range
1682 if (Val > (uint64_t)INT64_MAX+1)
1683 ThrowException("Constant too large for signed 64 bits!");
1684 llvmAsmlval.SInt64Val = -Val;
1685 return ESINT64VAL;
1686 }
1687 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001688case 100:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001689YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001690#line 321 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001691{
1692 llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
1693 return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
1694 }
1695 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001696case 101:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001697YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001698#line 326 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001699{
1700 uint64_t Val = atoull(yytext+1);
1701 if ((unsigned)Val != Val)
1702 ThrowException("Invalid value number (too large)!");
1703 llvmAsmlval.UIntVal = unsigned(Val);
1704 return UINTVAL;
1705 }
1706 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001707case 102:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001708YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001709#line 333 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001710{
1711 uint64_t Val = atoull(yytext+2);
1712 // +1: we have bigger negative range
1713 if (Val > (uint64_t)INT32_MAX+1)
1714 ThrowException("Constant too large for signed 32 bits!");
1715 llvmAsmlval.SIntVal = (int)-Val;
1716 return SINTVAL;
1717 }
1718 YY_BREAK
Chris Lattner0e9c3762006-01-25 22:27:16 +00001719case 103:
1720YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001721#line 342 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1722{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
1723 YY_BREAK
1724case 104:
1725YY_RULE_SETUP
1726#line 343 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001727{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
1728 YY_BREAK
1729case YY_STATE_EOF(INITIAL):
Chris Lattnerd5efe842006-04-08 01:18:56 +00001730#line 345 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001731{
1732 /* Make sure to free the internal buffers for flex when we are
1733 * done reading our input!
1734 */
1735 yy_delete_buffer(YY_CURRENT_BUFFER);
1736 return EOF;
1737 }
1738 YY_BREAK
Chris Lattner66316012006-01-24 04:14:29 +00001739case 105:
1740YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001741#line 353 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1742{ /* Ignore whitespace */ }
Chris Lattner0e9c3762006-01-25 22:27:16 +00001743 YY_BREAK
1744case 106:
1745YY_RULE_SETUP
Chris Lattnerd5efe842006-04-08 01:18:56 +00001746#line 354 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1747{ return yytext[0]; }
1748 YY_BREAK
1749case 107:
1750YY_RULE_SETUP
1751#line 356 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001752YY_FATAL_ERROR( "flex scanner jammed" );
1753 YY_BREAK
Chris Lattnerd5efe842006-04-08 01:18:56 +00001754#line 1755 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001755
1756 case YY_END_OF_BUFFER:
1757 {
1758 /* Amount of text matched not including the EOB char. */
1759 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1760
1761 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1762 *yy_cp = yy_hold_char;
1763 YY_RESTORE_YY_MORE_OFFSET
1764
1765 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1766 {
1767 /* We're scanning a new file or input source. It's
1768 * possible that this happened because the user
1769 * just pointed yyin at a new source and called
1770 * yylex(). If so, then we have to assure
1771 * consistency between yy_current_buffer and our
1772 * globals. Here is the right place to do so, because
1773 * this is the first action (other than possibly a
1774 * back-up) that will match for the new input source.
1775 */
1776 yy_n_chars = yy_current_buffer->yy_n_chars;
1777 yy_current_buffer->yy_input_file = yyin;
1778 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1779 }
1780
1781 /* Note that here we test for yy_c_buf_p "<=" to the position
1782 * of the first EOB in the buffer, since yy_c_buf_p will
1783 * already have been incremented past the NUL character
1784 * (since all states make transitions on EOB to the
1785 * end-of-buffer state). Contrast this with the test
1786 * in input().
1787 */
1788 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1789 { /* This was really a NUL. */
1790 yy_state_type yy_next_state;
1791
1792 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1793
1794 yy_current_state = yy_get_previous_state();
1795
1796 /* Okay, we're now positioned to make the NUL
1797 * transition. We couldn't have
1798 * yy_get_previous_state() go ahead and do it
1799 * for us because it doesn't know how to deal
1800 * with the possibility of jamming (and we don't
1801 * want to build jamming into it because then it
1802 * will run more slowly).
1803 */
1804
1805 yy_next_state = yy_try_NUL_trans( yy_current_state );
1806
1807 yy_bp = yytext_ptr + YY_MORE_ADJ;
1808
1809 if ( yy_next_state )
1810 {
1811 /* Consume the NUL. */
1812 yy_cp = ++yy_c_buf_p;
1813 yy_current_state = yy_next_state;
1814 goto yy_match;
1815 }
1816
1817 else
1818 {
1819 yy_cp = yy_c_buf_p;
1820 goto yy_find_action;
1821 }
1822 }
1823
1824 else switch ( yy_get_next_buffer() )
1825 {
1826 case EOB_ACT_END_OF_FILE:
1827 {
1828 yy_did_buffer_switch_on_eof = 0;
1829
1830 if ( yywrap() )
1831 {
1832 /* Note: because we've taken care in
1833 * yy_get_next_buffer() to have set up
1834 * yytext, we can now set up
1835 * yy_c_buf_p so that if some total
1836 * hoser (like flex itself) wants to
1837 * call the scanner after we return the
1838 * YY_NULL, it'll still work - another
1839 * YY_NULL will get returned.
1840 */
1841 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1842
1843 yy_act = YY_STATE_EOF(YY_START);
1844 goto do_action;
1845 }
1846
1847 else
1848 {
1849 if ( ! yy_did_buffer_switch_on_eof )
1850 YY_NEW_FILE;
1851 }
1852 break;
1853 }
1854
1855 case EOB_ACT_CONTINUE_SCAN:
1856 yy_c_buf_p =
1857 yytext_ptr + yy_amount_of_matched_text;
1858
1859 yy_current_state = yy_get_previous_state();
1860
1861 yy_cp = yy_c_buf_p;
1862 yy_bp = yytext_ptr + YY_MORE_ADJ;
1863 goto yy_match;
1864
1865 case EOB_ACT_LAST_MATCH:
1866 yy_c_buf_p =
1867 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1868
1869 yy_current_state = yy_get_previous_state();
1870
1871 yy_cp = yy_c_buf_p;
1872 yy_bp = yytext_ptr + YY_MORE_ADJ;
1873 goto yy_find_action;
1874 }
1875 break;
1876 }
1877
1878 default:
1879 YY_FATAL_ERROR(
1880 "fatal flex scanner internal error--no action found" );
1881 } /* end of action switch */
1882 } /* end of scanning one token */
1883 } /* end of yylex */
1884
1885
1886/* yy_get_next_buffer - try to read in a new buffer
1887 *
1888 * Returns a code representing an action:
1889 * EOB_ACT_LAST_MATCH -
1890 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1891 * EOB_ACT_END_OF_FILE - end of file
1892 */
1893
1894static int yy_get_next_buffer()
1895 {
1896 register char *dest = yy_current_buffer->yy_ch_buf;
1897 register char *source = yytext_ptr;
1898 register int number_to_move, i;
1899 int ret_val;
1900
1901 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1902 YY_FATAL_ERROR(
1903 "fatal flex scanner internal error--end of buffer missed" );
1904
1905 if ( yy_current_buffer->yy_fill_buffer == 0 )
1906 { /* Don't try to fill the buffer, so this is an EOF. */
1907 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1908 {
1909 /* We matched a single character, the EOB, so
1910 * treat this as a final EOF.
1911 */
1912 return EOB_ACT_END_OF_FILE;
1913 }
1914
1915 else
1916 {
1917 /* We matched some text prior to the EOB, first
1918 * process it.
1919 */
1920 return EOB_ACT_LAST_MATCH;
1921 }
1922 }
1923
1924 /* Try to read more data. */
1925
1926 /* First move last chars to start of buffer. */
1927 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1928
1929 for ( i = 0; i < number_to_move; ++i )
1930 *(dest++) = *(source++);
1931
1932 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1933 /* don't do the read, it's not guaranteed to return an EOF,
1934 * just force an EOF
1935 */
1936 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1937
1938 else
1939 {
1940 int num_to_read =
1941 yy_current_buffer->yy_buf_size - number_to_move - 1;
1942
1943 while ( num_to_read <= 0 )
1944 { /* Not enough room in the buffer - grow it. */
1945#ifdef YY_USES_REJECT
1946 YY_FATAL_ERROR(
1947"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1948#else
1949
1950 /* just a shorter name for the current buffer */
1951 YY_BUFFER_STATE b = yy_current_buffer;
1952
1953 int yy_c_buf_p_offset =
1954 (int) (yy_c_buf_p - b->yy_ch_buf);
1955
1956 if ( b->yy_is_our_buffer )
1957 {
1958 int new_size = b->yy_buf_size * 2;
1959
1960 if ( new_size <= 0 )
1961 b->yy_buf_size += b->yy_buf_size / 8;
1962 else
1963 b->yy_buf_size *= 2;
1964
1965 b->yy_ch_buf = (char *)
1966 /* Include room in for 2 EOB chars. */
1967 yy_flex_realloc( (void *) b->yy_ch_buf,
1968 b->yy_buf_size + 2 );
1969 }
1970 else
1971 /* Can't grow it, we don't own it. */
1972 b->yy_ch_buf = 0;
1973
1974 if ( ! b->yy_ch_buf )
1975 YY_FATAL_ERROR(
1976 "fatal error - scanner input buffer overflow" );
1977
1978 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1979
1980 num_to_read = yy_current_buffer->yy_buf_size -
1981 number_to_move - 1;
1982#endif
1983 }
1984
1985 if ( num_to_read > YY_READ_BUF_SIZE )
1986 num_to_read = YY_READ_BUF_SIZE;
1987
1988 /* Read in more data. */
1989 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1990 yy_n_chars, num_to_read );
1991
1992 yy_current_buffer->yy_n_chars = yy_n_chars;
1993 }
1994
1995 if ( yy_n_chars == 0 )
1996 {
1997 if ( number_to_move == YY_MORE_ADJ )
1998 {
1999 ret_val = EOB_ACT_END_OF_FILE;
2000 yyrestart( yyin );
2001 }
2002
2003 else
2004 {
2005 ret_val = EOB_ACT_LAST_MATCH;
2006 yy_current_buffer->yy_buffer_status =
2007 YY_BUFFER_EOF_PENDING;
2008 }
2009 }
2010
2011 else
2012 ret_val = EOB_ACT_CONTINUE_SCAN;
2013
2014 yy_n_chars += number_to_move;
2015 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2016 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2017
2018 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2019
2020 return ret_val;
2021 }
2022
2023
2024/* yy_get_previous_state - get the state just before the EOB char was reached */
2025
2026static yy_state_type yy_get_previous_state()
2027 {
2028 register yy_state_type yy_current_state;
2029 register char *yy_cp;
2030
2031 yy_current_state = yy_start;
2032 yy_state_ptr = yy_state_buf;
2033 *yy_state_ptr++ = yy_current_state;
2034
2035 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2036 {
2037 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2038 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2039 {
2040 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattnerd5efe842006-04-08 01:18:56 +00002041 if ( yy_current_state >= 454 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002042 yy_c = yy_meta[(unsigned int) yy_c];
2043 }
2044 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2045 *yy_state_ptr++ = yy_current_state;
2046 }
2047
2048 return yy_current_state;
2049 }
2050
2051
2052/* yy_try_NUL_trans - try to make a transition on the NUL character
2053 *
2054 * synopsis
2055 * next_state = yy_try_NUL_trans( current_state );
2056 */
2057
2058#ifdef YY_USE_PROTOS
2059static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2060#else
2061static yy_state_type yy_try_NUL_trans( yy_current_state )
2062yy_state_type yy_current_state;
2063#endif
2064 {
2065 register int yy_is_jam;
2066
2067 register YY_CHAR yy_c = 1;
2068 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2069 {
2070 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattnerd5efe842006-04-08 01:18:56 +00002071 if ( yy_current_state >= 454 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002072 yy_c = yy_meta[(unsigned int) yy_c];
2073 }
2074 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Chris Lattnerd5efe842006-04-08 01:18:56 +00002075 yy_is_jam = (yy_current_state == 453);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002076 if ( ! yy_is_jam )
2077 *yy_state_ptr++ = yy_current_state;
2078
2079 return yy_is_jam ? 0 : yy_current_state;
2080 }
2081
2082
2083#ifndef YY_NO_UNPUT
2084#ifdef YY_USE_PROTOS
2085static inline void yyunput( int c, register char *yy_bp )
2086#else
2087static inline void yyunput( c, yy_bp )
2088int c;
2089register char *yy_bp;
2090#endif
2091 {
2092 register char *yy_cp = yy_c_buf_p;
2093
2094 /* undo effects of setting up yytext */
2095 *yy_cp = yy_hold_char;
2096
2097 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2098 { /* need to shift things up to make room */
2099 /* +2 for EOB chars. */
2100 register int number_to_move = yy_n_chars + 2;
2101 register char *dest = &yy_current_buffer->yy_ch_buf[
2102 yy_current_buffer->yy_buf_size + 2];
2103 register char *source =
2104 &yy_current_buffer->yy_ch_buf[number_to_move];
2105
2106 while ( source > yy_current_buffer->yy_ch_buf )
2107 *--dest = *--source;
2108
2109 yy_cp += (int) (dest - source);
2110 yy_bp += (int) (dest - source);
2111 yy_current_buffer->yy_n_chars =
2112 yy_n_chars = yy_current_buffer->yy_buf_size;
2113
2114 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2115 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2116 }
2117
2118 *--yy_cp = (char) c;
2119
2120 if ( c == '\n' )
2121 --yylineno;
2122
2123 yytext_ptr = yy_bp;
2124 yy_hold_char = *yy_cp;
2125 yy_c_buf_p = yy_cp;
2126 }
2127#endif /* ifndef YY_NO_UNPUT */
2128
2129
Reid Spencer68a24bd2005-08-27 18:50:39 +00002130#ifdef __cplusplus
2131static int yyinput()
2132#else
2133static int input()
2134#endif
2135 {
2136 int c;
2137
2138 *yy_c_buf_p = yy_hold_char;
2139
2140 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2141 {
2142 /* yy_c_buf_p now points to the character we want to return.
2143 * If this occurs *before* the EOB characters, then it's a
2144 * valid NUL; if not, then we've hit the end of the buffer.
2145 */
2146 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2147 /* This was really a NUL. */
2148 *yy_c_buf_p = '\0';
2149
2150 else
2151 { /* need more input */
2152 int offset = yy_c_buf_p - yytext_ptr;
2153 ++yy_c_buf_p;
2154
2155 switch ( yy_get_next_buffer() )
2156 {
2157 case EOB_ACT_LAST_MATCH:
2158 /* This happens because yy_g_n_b()
2159 * sees that we've accumulated a
2160 * token and flags that we need to
2161 * try matching the token before
2162 * proceeding. But for input(),
2163 * there's no matching to consider.
2164 * So convert the EOB_ACT_LAST_MATCH
2165 * to EOB_ACT_END_OF_FILE.
2166 */
2167
2168 /* Reset buffer status. */
2169 yyrestart( yyin );
2170
2171 /* fall through */
2172
2173 case EOB_ACT_END_OF_FILE:
2174 {
2175 if ( yywrap() )
2176 return EOF;
2177
2178 if ( ! yy_did_buffer_switch_on_eof )
2179 YY_NEW_FILE;
2180#ifdef __cplusplus
2181 return yyinput();
2182#else
2183 return input();
2184#endif
2185 }
2186
2187 case EOB_ACT_CONTINUE_SCAN:
2188 yy_c_buf_p = yytext_ptr + offset;
2189 break;
2190 }
2191 }
2192 }
2193
2194 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2195 *yy_c_buf_p = '\0'; /* preserve yytext */
2196 yy_hold_char = *++yy_c_buf_p;
2197
2198 if ( c == '\n' )
2199 ++yylineno;
2200
2201 return c;
2202 }
Nate Begeman14b05292005-11-05 09:21:28 +00002203
Reid Spencer68a24bd2005-08-27 18:50:39 +00002204
2205#ifdef YY_USE_PROTOS
2206void yyrestart( FILE *input_file )
2207#else
2208void yyrestart( input_file )
2209FILE *input_file;
2210#endif
2211 {
2212 if ( ! yy_current_buffer )
2213 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2214
2215 yy_init_buffer( yy_current_buffer, input_file );
2216 yy_load_buffer_state();
2217 }
2218
2219
2220#ifdef YY_USE_PROTOS
2221void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2222#else
2223void yy_switch_to_buffer( new_buffer )
2224YY_BUFFER_STATE new_buffer;
2225#endif
2226 {
2227 if ( yy_current_buffer == new_buffer )
2228 return;
2229
2230 if ( yy_current_buffer )
2231 {
2232 /* Flush out information for old buffer. */
2233 *yy_c_buf_p = yy_hold_char;
2234 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2235 yy_current_buffer->yy_n_chars = yy_n_chars;
2236 }
2237
2238 yy_current_buffer = new_buffer;
2239 yy_load_buffer_state();
2240
2241 /* We don't actually know whether we did this switch during
2242 * EOF (yywrap()) processing, but the only time this flag
2243 * is looked at is after yywrap() is called, so it's safe
2244 * to go ahead and always set it.
2245 */
2246 yy_did_buffer_switch_on_eof = 1;
2247 }
2248
2249
2250#ifdef YY_USE_PROTOS
2251void yy_load_buffer_state( void )
2252#else
2253void yy_load_buffer_state()
2254#endif
2255 {
2256 yy_n_chars = yy_current_buffer->yy_n_chars;
2257 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2258 yyin = yy_current_buffer->yy_input_file;
2259 yy_hold_char = *yy_c_buf_p;
2260 }
2261
2262
2263#ifdef YY_USE_PROTOS
2264YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2265#else
2266YY_BUFFER_STATE yy_create_buffer( file, size )
2267FILE *file;
2268int size;
2269#endif
2270 {
2271 YY_BUFFER_STATE b;
2272
2273 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2274 if ( ! b )
2275 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2276
2277 b->yy_buf_size = size;
2278
2279 /* yy_ch_buf has to be 2 characters longer than the size given because
2280 * we need to put in 2 end-of-buffer characters.
2281 */
2282 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2283 if ( ! b->yy_ch_buf )
2284 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2285
2286 b->yy_is_our_buffer = 1;
2287
2288 yy_init_buffer( b, file );
2289
2290 return b;
2291 }
2292
2293
2294#ifdef YY_USE_PROTOS
2295void yy_delete_buffer( YY_BUFFER_STATE b )
2296#else
2297void yy_delete_buffer( b )
2298YY_BUFFER_STATE b;
2299#endif
2300 {
2301 if ( ! b )
2302 return;
2303
2304 if ( b == yy_current_buffer )
2305 yy_current_buffer = (YY_BUFFER_STATE) 0;
2306
2307 if ( b->yy_is_our_buffer )
2308 yy_flex_free( (void *) b->yy_ch_buf );
2309
2310 yy_flex_free( (void *) b );
2311 }
2312
2313
Nate Begeman14b05292005-11-05 09:21:28 +00002314#ifndef YY_ALWAYS_INTERACTIVE
2315#ifndef YY_NEVER_INTERACTIVE
2316extern int isatty YY_PROTO(( int ));
2317#endif
2318#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +00002319
2320#ifdef YY_USE_PROTOS
2321void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2322#else
2323void yy_init_buffer( b, file )
2324YY_BUFFER_STATE b;
2325FILE *file;
2326#endif
2327
2328
2329 {
2330 yy_flush_buffer( b );
2331
2332 b->yy_input_file = file;
2333 b->yy_fill_buffer = 1;
2334
2335#if YY_ALWAYS_INTERACTIVE
2336 b->yy_is_interactive = 1;
2337#else
2338#if YY_NEVER_INTERACTIVE
2339 b->yy_is_interactive = 0;
2340#else
2341 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2342#endif
2343#endif
2344 }
2345
2346
2347#ifdef YY_USE_PROTOS
2348void yy_flush_buffer( YY_BUFFER_STATE b )
2349#else
2350void yy_flush_buffer( b )
2351YY_BUFFER_STATE b;
2352#endif
2353
2354 {
2355 if ( ! b )
2356 return;
2357
2358 b->yy_n_chars = 0;
2359
2360 /* We always need two end-of-buffer characters. The first causes
2361 * a transition to the end-of-buffer state. The second causes
2362 * a jam in that state.
2363 */
2364 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2365 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2366
2367 b->yy_buf_pos = &b->yy_ch_buf[0];
2368
2369 b->yy_at_bol = 1;
2370 b->yy_buffer_status = YY_BUFFER_NEW;
2371
2372 if ( b == yy_current_buffer )
2373 yy_load_buffer_state();
2374 }
2375
2376
2377#ifndef YY_NO_SCAN_BUFFER
2378#ifdef YY_USE_PROTOS
2379YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2380#else
2381YY_BUFFER_STATE yy_scan_buffer( base, size )
2382char *base;
2383yy_size_t size;
2384#endif
2385 {
2386 YY_BUFFER_STATE b;
2387
2388 if ( size < 2 ||
2389 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2390 base[size-1] != YY_END_OF_BUFFER_CHAR )
2391 /* They forgot to leave room for the EOB's. */
2392 return 0;
2393
2394 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2395 if ( ! b )
2396 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2397
2398 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2399 b->yy_buf_pos = b->yy_ch_buf = base;
2400 b->yy_is_our_buffer = 0;
2401 b->yy_input_file = 0;
2402 b->yy_n_chars = b->yy_buf_size;
2403 b->yy_is_interactive = 0;
2404 b->yy_at_bol = 1;
2405 b->yy_fill_buffer = 0;
2406 b->yy_buffer_status = YY_BUFFER_NEW;
2407
2408 yy_switch_to_buffer( b );
2409
2410 return b;
2411 }
2412#endif
2413
2414
2415#ifndef YY_NO_SCAN_STRING
2416#ifdef YY_USE_PROTOS
2417YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2418#else
2419YY_BUFFER_STATE yy_scan_string( yy_str )
2420yyconst char *yy_str;
2421#endif
2422 {
2423 int len;
2424 for ( len = 0; yy_str[len]; ++len )
2425 ;
2426
2427 return yy_scan_bytes( yy_str, len );
2428 }
2429#endif
2430
2431
2432#ifndef YY_NO_SCAN_BYTES
2433#ifdef YY_USE_PROTOS
2434YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2435#else
2436YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2437yyconst char *bytes;
2438int len;
2439#endif
2440 {
2441 YY_BUFFER_STATE b;
2442 char *buf;
2443 yy_size_t n;
2444 int i;
2445
2446 /* Get memory for full buffer, including space for trailing EOB's. */
2447 n = len + 2;
2448 buf = (char *) yy_flex_alloc( n );
2449 if ( ! buf )
2450 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2451
2452 for ( i = 0; i < len; ++i )
2453 buf[i] = bytes[i];
2454
2455 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2456
2457 b = yy_scan_buffer( buf, n );
2458 if ( ! b )
2459 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2460
2461 /* It's okay to grow etc. this buffer, and we should throw it
2462 * away when we're done.
2463 */
2464 b->yy_is_our_buffer = 1;
2465
2466 return b;
2467 }
2468#endif
2469
2470
2471#ifndef YY_NO_PUSH_STATE
2472#ifdef YY_USE_PROTOS
2473static void yy_push_state( int new_state )
2474#else
2475static void yy_push_state( new_state )
2476int new_state;
2477#endif
2478 {
2479 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2480 {
2481 yy_size_t new_size;
2482
2483 yy_start_stack_depth += YY_START_STACK_INCR;
2484 new_size = yy_start_stack_depth * sizeof( int );
2485
2486 if ( ! yy_start_stack )
2487 yy_start_stack = (int *) yy_flex_alloc( new_size );
2488
2489 else
2490 yy_start_stack = (int *) yy_flex_realloc(
2491 (void *) yy_start_stack, new_size );
2492
2493 if ( ! yy_start_stack )
2494 YY_FATAL_ERROR(
2495 "out of memory expanding start-condition stack" );
2496 }
2497
2498 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2499
2500 BEGIN(new_state);
2501 }
2502#endif
2503
2504
2505#ifndef YY_NO_POP_STATE
2506static void yy_pop_state()
2507 {
2508 if ( --yy_start_stack_ptr < 0 )
2509 YY_FATAL_ERROR( "start-condition stack underflow" );
2510
2511 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2512 }
2513#endif
2514
2515
2516#ifndef YY_NO_TOP_STATE
2517static int yy_top_state()
2518 {
2519 return yy_start_stack[yy_start_stack_ptr - 1];
2520 }
2521#endif
2522
2523#ifndef YY_EXIT_FAILURE
2524#define YY_EXIT_FAILURE 2
2525#endif
2526
2527#ifdef YY_USE_PROTOS
2528static void yy_fatal_error( yyconst char msg[] )
2529#else
2530static void yy_fatal_error( msg )
2531char msg[];
2532#endif
2533 {
2534 (void) fprintf( stderr, "%s\n", msg );
2535 exit( YY_EXIT_FAILURE );
2536 }
2537
2538
2539
2540/* Redefine yyless() so it works in section 3 code. */
2541
2542#undef yyless
2543#define yyless(n) \
2544 do \
2545 { \
2546 /* Undo effects of setting up yytext. */ \
2547 yytext[yyleng] = yy_hold_char; \
2548 yy_c_buf_p = yytext + n; \
2549 yy_hold_char = *yy_c_buf_p; \
2550 *yy_c_buf_p = '\0'; \
2551 yyleng = n; \
2552 } \
2553 while ( 0 )
2554
2555
2556/* Internal utility routines. */
2557
2558#ifndef yytext_ptr
2559#ifdef YY_USE_PROTOS
2560static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2561#else
2562static void yy_flex_strncpy( s1, s2, n )
2563char *s1;
2564yyconst char *s2;
2565int n;
2566#endif
2567 {
2568 register int i;
2569 for ( i = 0; i < n; ++i )
2570 s1[i] = s2[i];
2571 }
2572#endif
2573
2574#ifdef YY_NEED_STRLEN
2575#ifdef YY_USE_PROTOS
2576static int yy_flex_strlen( yyconst char *s )
2577#else
2578static int yy_flex_strlen( s )
2579yyconst char *s;
2580#endif
2581 {
2582 register int n;
2583 for ( n = 0; s[n]; ++n )
2584 ;
2585
2586 return n;
2587 }
2588#endif
2589
2590
2591#ifdef YY_USE_PROTOS
2592static void *yy_flex_alloc( yy_size_t size )
2593#else
2594static void *yy_flex_alloc( size )
2595yy_size_t size;
2596#endif
2597 {
2598 return (void *) malloc( size );
2599 }
2600
2601#ifdef YY_USE_PROTOS
2602static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
2603#else
2604static inline void *yy_flex_realloc( ptr, size )
2605void *ptr;
2606yy_size_t size;
2607#endif
2608 {
2609 /* The cast to (char *) in the following accommodates both
2610 * implementations that use char* generic pointers, and those
2611 * that use void* generic pointers. It works with the latter
2612 * because both ANSI C and C++ allow castless assignment from
2613 * any pointer type to void*, and deal with argument conversions
2614 * as though doing an assignment.
2615 */
2616 return (void *) realloc( (char *) ptr, size );
2617 }
2618
2619#ifdef YY_USE_PROTOS
2620static void yy_flex_free( void *ptr )
2621#else
2622static void yy_flex_free( ptr )
2623void *ptr;
2624#endif
2625 {
2626 free( ptr );
2627 }
2628
2629#if YY_MAIN
2630int main()
2631 {
2632 yylex();
2633 return 0;
2634 }
2635#endif
Chris Lattnerd5efe842006-04-08 01:18:56 +00002636#line 356 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002637
Chris Lattner2fecc0f2006-02-15 07:02:59 +00002638