1 #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
20 /* A lexical scanner generated by flex*/
22 /* Scanner skeleton version:
27 #define YY_FLEX_MAJOR_VERSION 2
28 #define YY_FLEX_MINOR_VERSION 5
34 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
46 /* Use prototypes in function declarations. */
49 /* The "const" storage-class-modifier is valid. */
52 #else /* ! __cplusplus */
60 #endif /* ! __cplusplus */
79 #define YY_PROTO(proto) proto
81 #define YY_PROTO(proto) ()
84 /* Returned upon end-of-file. */
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
92 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
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.
98 #define BEGIN yy_start = 1 + 2 *
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
104 #define YY_START ((yy_start - 1) / 2)
105 #define YYSTATE YY_START
107 /* Action number for EOF rule of a given start state. */
108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
110 /* Special action meaning "start processing a new file". */
111 #define YY_NEW_FILE yyrestart( yyin )
113 #define YY_END_OF_BUFFER_CHAR 0
115 /* Size of default input buffer. */
116 #define YY_BUF_SIZE (16384*64)
118 typedef struct yy_buffer_state *YY_BUFFER_STATE;
121 extern FILE *yyin, *yyout;
123 #define EOB_ACT_CONTINUE_SCAN 0
124 #define EOB_ACT_END_OF_FILE 1
125 #define EOB_ACT_LAST_MATCH 2
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:
131 * if ( condition_holds )
134 * do_something_else();
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.
141 /* Return all but the first 'n' matched characters back to the input stream. */
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 */ \
154 #define unput(c) yyunput( c, yytext_ptr )
156 /* Some routines like yy_flex_realloc() are emitted as static but are
157 not called by all lexers. This generates warnings in some compilers,
158 notably GCC. Arrange to suppress these. */
160 #define YY_MAY_BE_UNUSED __attribute__((unused))
162 #define YY_MAY_BE_UNUSED
165 /* The following is because we cannot portably get our hands on size_t
166 * (without autoconf's help, which isn't available because we want
167 * flex-generated scanners to compile on their own).
169 typedef unsigned int yy_size_t;
172 struct yy_buffer_state
176 char *yy_ch_buf; /* input buffer */
177 char *yy_buf_pos; /* current position in input buffer */
179 /* Size of input buffer in bytes, not including room for EOB
182 yy_size_t yy_buf_size;
184 /* Number of characters read into yy_ch_buf, not including EOB
189 /* Whether we "own" the buffer - i.e., we know we created it,
190 * and can realloc() it to grow it, and should free() it to
193 int yy_is_our_buffer;
195 /* Whether this is an "interactive" input source; if so, and
196 * if we're using stdio for input, then we want to use getc()
197 * instead of fread(), to make sure we stop fetching input after
200 int yy_is_interactive;
202 /* Whether we're considered to be at the beginning of a line.
203 * If so, '^' rules will be active on the next match, otherwise
208 /* Whether to try to fill the input buffer when we reach the
213 int yy_buffer_status;
214 #define YY_BUFFER_NEW 0
215 #define YY_BUFFER_NORMAL 1
216 /* When an EOF's been seen but there's still some text to process
217 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
218 * shouldn't try reading from the input source any more. We might
219 * still have a bunch of tokens to match, though, because of
220 * possible backing-up.
222 * When we actually see the EOF, we change the status to "new"
223 * (via yyrestart()), so that the user can continue scanning by
224 * just pointing yyin at a new input file.
226 #define YY_BUFFER_EOF_PENDING 2
229 static YY_BUFFER_STATE yy_current_buffer = 0;
231 /* We provide macros for accessing buffer states in case in the
232 * future we want to put the buffer states in a more general
235 #define YY_CURRENT_BUFFER yy_current_buffer
238 /* yy_hold_char holds the character lost when yytext is formed. */
239 static char yy_hold_char;
241 static int yy_n_chars; /* number of characters read into yy_ch_buf */
246 /* Points to current character in buffer. */
247 static char *yy_c_buf_p = (char *) 0;
248 static int yy_init = 1; /* whether we need to initialize */
249 static int yy_start = 0; /* start state number */
251 /* Flag which is used to allow yywrap()'s to do buffer switches
252 * instead of setting up a fresh yyin. A bit of a hack ...
254 static int yy_did_buffer_switch_on_eof;
256 void yyrestart YY_PROTO(( FILE *input_file ));
258 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
259 void yy_load_buffer_state YY_PROTO(( void ));
260 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
261 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
262 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
263 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
264 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
266 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
267 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
268 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
270 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
271 static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
272 static void yy_flex_free YY_PROTO(( void * ));
274 #define yy_new_buffer yy_create_buffer
276 #define yy_set_interactive(is_interactive) \
278 if ( ! yy_current_buffer ) \
279 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
280 yy_current_buffer->yy_is_interactive = is_interactive; \
283 #define yy_set_bol(at_bol) \
285 if ( ! yy_current_buffer ) \
286 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
287 yy_current_buffer->yy_at_bol = at_bol; \
290 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
293 #define YY_USES_REJECT
296 #define YY_SKIP_YYWRAP
297 typedef unsigned char YY_CHAR;
298 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
299 typedef int yy_state_type;
303 #define yytext_ptr yytext
305 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
306 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
307 static int yy_get_next_buffer YY_PROTO(( void ));
308 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
310 /* Done after the current pattern has been matched and before the
311 * corresponding action - sets up yytext.
313 #define YY_DO_BEFORE_ACTION \
314 yytext_ptr = yy_bp; \
315 yyleng = (int) (yy_cp - yy_bp); \
316 yy_hold_char = *yy_cp; \
320 #define YY_NUM_RULES 108
321 #define YY_END_OF_BUFFER 109
322 static yyconst short int yy_acclist[186] =
324 109, 107, 108, 106, 107, 108, 106, 108, 107, 108,
325 107, 108, 107, 108, 107, 108, 107, 108, 107, 108,
326 99, 107, 108, 99, 107, 108, 1, 107, 108, 107,
327 108, 107, 108, 107, 108, 107, 108, 107, 108, 107,
328 108, 107, 108, 107, 108, 107, 108, 107, 108, 107,
329 108, 107, 108, 107, 108, 107, 108, 107, 108, 107,
330 108, 107, 108, 107, 108, 107, 108, 107, 108, 107,
331 108, 98, 96, 95, 95, 102, 100, 104, 99, 1,
332 81, 37, 63, 20, 98, 95, 95, 103, 104, 17,
333 104, 105, 57, 62, 35, 30, 38, 60, 3, 48,
335 59, 22, 71, 61, 80, 75, 76, 58, 64, 97,
336 104, 104, 43, 72, 73, 88, 89, 50, 19, 101,
337 23, 4, 55, 49, 42, 11, 104, 32, 2, 5,
338 52, 54, 44, 66, 70, 68, 69, 67, 65, 46,
339 90, 45, 51, 18, 78, 87, 41, 53, 27, 21,
340 40, 7, 83, 29, 86, 34, 56, 74, 82, 24,
341 25, 84, 47, 79, 77, 39, 6, 26, 33, 8,
342 14, 9, 10, 31, 12, 36, 28, 85, 91, 93,
346 static yyconst short int yy_accept[461] =
348 1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
349 17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
350 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
351 60, 62, 64, 66, 68, 70, 72, 72, 73, 73,
352 74, 75, 76, 77, 77, 78, 78, 79, 80, 80,
353 81, 81, 81, 81, 81, 81, 81, 81, 81, 82,
354 82, 83, 83, 83, 83, 83, 83, 83, 83, 83,
355 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
356 83, 83, 83, 83, 83, 84, 84, 84, 84, 84,
357 84, 84, 84, 84, 84, 84, 84, 84, 85, 85,
359 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
360 85, 86, 87, 89, 90, 91, 92, 92, 93, 94,
361 94, 94, 95, 95, 96, 96, 97, 97, 97, 97,
362 98, 98, 98, 98, 98, 98, 99, 99, 100, 100,
363 100, 100, 100, 100, 100, 100, 100, 100, 100, 101,
364 101, 101, 101, 101, 101, 101, 101, 101, 102, 103,
365 103, 103, 104, 104, 105, 106, 106, 106, 106, 106,
366 106, 107, 107, 108, 108, 108, 108, 109, 109, 109,
367 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
368 109, 109, 109, 109, 109, 109, 109, 109, 110, 110,
370 111, 112, 112, 112, 112, 113, 113, 113, 113, 113,
371 114, 115, 116, 116, 116, 116, 116, 116, 116, 116,
372 116, 116, 116, 116, 116, 116, 117, 117, 117, 117,
373 117, 117, 117, 117, 117, 117, 118, 119, 119, 119,
374 120, 120, 120, 121, 121, 121, 121, 121, 121, 121,
375 121, 121, 121, 121, 121, 121, 122, 122, 122, 123,
376 124, 124, 125, 125, 125, 125, 125, 125, 125, 125,
377 125, 125, 126, 126, 127, 127, 128, 129, 129, 129,
378 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
379 130, 131, 131, 132, 132, 132, 132, 132, 132, 132,
381 133, 133, 133, 133, 133, 133, 133, 134, 134, 134,
382 135, 136, 137, 138, 139, 140, 141, 141, 141, 142,
383 142, 142, 142, 143, 144, 145, 145, 145, 145, 145,
384 145, 146, 146, 146, 146, 147, 147, 148, 148, 148,
385 148, 148, 149, 150, 151, 151, 151, 152, 152, 153,
386 153, 153, 153, 154, 154, 155, 156, 157, 158, 158,
387 158, 159, 159, 159, 160, 161, 162, 162, 162, 163,
388 164, 165, 166, 166, 166, 166, 166, 167, 168, 169,
389 169, 169, 169, 169, 169, 169, 169, 169, 170, 170,
390 170, 170, 170, 170, 170, 170, 171, 172, 172, 172,
392 172, 172, 173, 174, 174, 174, 174, 174, 174, 175,
393 175, 176, 176, 176, 176, 176, 176, 176, 176, 176,
394 176, 176, 176, 176, 176, 176, 176, 176, 177, 177,
395 177, 177, 177, 177, 177, 177, 178, 178, 178, 179,
396 179, 179, 179, 179, 179, 179, 179, 179, 179, 180,
397 180, 181, 182, 183, 183, 184, 185, 185, 186, 186
400 static yyconst int yy_ec[256] =
402 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
403 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
406 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
407 11, 11, 11, 11, 11, 11, 11, 12, 13, 1,
408 1, 1, 1, 1, 14, 14, 14, 14, 15, 14,
409 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
410 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
411 1, 1, 1, 1, 16, 1, 17, 18, 19, 20,
413 21, 22, 23, 24, 25, 5, 26, 27, 28, 29,
414 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
415 40, 41, 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, 1, 1, 1, 1, 1,
421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
432 static yyconst int yy_meta[42] =
434 1, 1, 2, 1, 3, 1, 1, 3, 3, 3,
435 3, 4, 1, 3, 3, 3, 3, 3, 3, 3,
436 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
437 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
441 static yyconst short int yy_base[465] =
443 0, 0, 960, 961, 961, 961, 955, 946, 34, 36,
444 38, 42, 46, 50, 0, 52, 57, 54, 68, 62,
445 80, 82, 83, 93, 102, 40, 84, 92, 56, 129,
446 112, 158, 113, 87, 90, 114, 953, 961, 944, 961,
447 0, 117, 123, 146, 149, 128, 163, 170, 183, 0,
448 55, 119, 151, 157, 178, 139, 154, 177, 943, 184,
449 196, 187, 88, 198, 197, 136, 200, 207, 201, 209,
450 210, 211, 213, 218, 220, 215, 212, 233, 224, 228,
451 225, 226, 232, 174, 942, 124, 241, 244, 246, 248,
452 251, 257, 253, 252, 256, 255, 264, 941, 269, 265,
454 259, 263, 271, 283, 41, 290, 286, 292, 279, 298,
455 940, 0, 304, 307, 939, 314, 326, 0, 938, 318,
456 315, 937, 311, 936, 327, 935, 328, 330, 308, 934,
457 334, 332, 335, 336, 337, 933, 341, 346, 339, 349,
458 338, 350, 356, 353, 355, 357, 365, 366, 367, 368,
459 369, 371, 372, 374, 377, 379, 381, 932, 931, 383,
460 31, 930, 384, 929, 928, 408, 389, 396, 390, 420,
461 927, 387, 926, 392, 391, 403, 925, 404, 421, 422,
462 409, 423, 425, 426, 430, 438, 439, 440, 441, 443,
463 442, 446, 444, 445, 458, 447, 459, 924, 461, 961,
465 465, 482, 471, 484, 487, 471, 489, 475, 476, 923,
466 922, 921, 490, 472, 491, 462, 494, 498, 499, 500,
467 501, 503, 502, 505, 506, 920, 509, 510, 516, 517,
468 518, 520, 521, 523, 527, 919, 918, 526, 528, 917,
469 530, 532, 0, 531, 533, 545, 537, 547, 549, 550,
470 548, 551, 553, 560, 566, 916, 565, 563, 915, 914,
471 567, 913, 564, 577, 568, 579, 580, 582, 583, 585,
472 586, 912, 588, 911, 589, 592, 910, 593, 592, 909,
473 594, 605, 599, 595, 608, 609, 607, 612, 615, 619,
474 908, 620, 907, 621, 622, 617, 623, 625, 629, 906,
476 628, 631, 634, 639, 643, 644, 905, 636, 647, 904,
477 903, 902, 901, 900, 899, 898, 649, 650, 897, 651,
478 655, 656, 896, 895, 894, 657, 659, 661, 658, 662,
479 893, 667, 671, 668, 892, 674, 891, 672, 675, 677,
480 676, 890, 889, 888, 683, 679, 887, 691, 886, 692,
481 694, 695, 885, 697, 884, 883, 882, 881, 693, 696,
482 880, 699, 705, 879, 878, 877, 706, 709, 876, 875,
483 874, 873, 710, 711, 712, 716, 872, 871, 868, 717,
484 718, 722, 720, 723, 726, 733, 728, 858, 730, 734,
485 735, 744, 736, 746, 747, 857, 856, 748, 751, 752,
487 753, 854, 853, 754, 756, 757, 759, 760, 851, 770,
488 850, 771, 761, 772, 773, 776, 778, 779, 781, 782,
489 786, 787, 788, 790, 792, 795, 793, 848, 796, 799,
490 800, 809, 798, 806, 810, 846, 811, 814, 844, 817,
491 820, 812, 822, 824, 828, 826, 831, 832, 843, 835,
492 842, 841, 839, 836, 535, 397, 838, 393, 961, 872,
496 static yyconst short int yy_def[465] =
498 459, 1, 459, 459, 459, 459, 460, 461, 462, 459,
499 461, 461, 461, 461, 463, 461, 461, 461, 461, 461,
500 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
501 461, 461, 461, 461, 461, 461, 460, 459, 461, 459,
502 464, 464, 459, 459, 461, 461, 461, 461, 461, 463,
503 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
504 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
505 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
506 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
507 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
509 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
510 459, 464, 464, 459, 461, 461, 461, 49, 461, 461,
511 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
512 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
513 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
514 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
515 461, 461, 461, 461, 461, 49, 461, 461, 461, 461,
516 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
517 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
518 461, 461, 461, 461, 461, 461, 461, 461, 461, 459,
520 459, 459, 459, 461, 461, 461, 461, 461, 461, 461,
521 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
522 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
523 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
524 461, 461, 166, 461, 461, 461, 461, 461, 461, 461,
525 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
526 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
527 461, 461, 461, 461, 461, 459, 461, 461, 461, 461,
528 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
529 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
531 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
532 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
533 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
534 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
535 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
536 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
537 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
538 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
539 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
540 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
542 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
543 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
544 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
545 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
546 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
547 461, 461, 461, 461, 461, 461, 461, 461, 0, 459,
551 static yyconst short int yy_nxt[1003] =
553 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
554 14, 4, 15, 8, 8, 8, 16, 17, 18, 19,
555 20, 21, 22, 8, 23, 8, 24, 25, 26, 27,
556 28, 8, 29, 30, 31, 32, 33, 34, 35, 8,
557 36, 42, 40, 43, 43, 44, 44, 45, 45, 40,
558 46, 40, 40, 40, 47, 48, 48, 40, 47, 48,
559 48, 40, 241, 40, 191, 40, 40, 40, 40, 82,
560 60, 51, 61, 40, 119, 83, 88, 56, 52, 40,
561 53, 57, 54, 62, 49, 55, 58, 63, 64, 59,
562 67, 40, 65, 40, 40, 40, 69, 66, 40, 40,
564 68, 40, 72, 40, 40, 112, 70, 108, 73, 76,
565 74, 75, 71, 40, 84, 86, 85, 77, 79, 109,
566 133, 87, 78, 40, 40, 40, 113, 113, 97, 106,
567 40, 80, 43, 43, 110, 40, 115, 81, 89, 40,
568 40, 98, 107, 120, 99, 121, 90, 40, 162, 91,
569 40, 100, 92, 93, 114, 44, 44, 47, 45, 45,
570 40, 125, 40, 94, 95, 40, 96, 89, 40, 40,
571 122, 137, 116, 116, 40, 101, 126, 117, 47, 48,
572 48, 40, 102, 117, 103, 40, 104, 123, 40, 40,
573 161, 105, 118, 118, 40, 40, 118, 118, 40, 118,
575 118, 118, 118, 118, 118, 124, 127, 40, 40, 40,
576 128, 40, 40, 131, 130, 132, 134, 129, 40, 138,
577 40, 40, 40, 40, 40, 139, 40, 141, 135, 40,
578 144, 40, 151, 136, 142, 40, 40, 40, 143, 40,
579 152, 140, 146, 40, 40, 145, 153, 157, 147, 154,
580 156, 158, 40, 148, 149, 40, 150, 40, 160, 40,
581 159, 155, 40, 40, 40, 163, 40, 40, 40, 168,
582 40, 164, 175, 177, 40, 40, 40, 169, 165, 178,
583 40, 176, 40, 171, 166, 170, 172, 167, 179, 173,
584 40, 185, 174, 181, 40, 183, 180, 40, 184, 41,
586 186, 40, 187, 40, 182, 192, 193, 188, 197, 40,
587 195, 198, 196, 113, 113, 189, 201, 201, 194, 40,
588 190, 202, 40, 116, 116, 40, 40, 202, 117, 40,
589 199, 208, 203, 204, 117, 205, 205, 40, 40, 40,
590 206, 40, 212, 40, 207, 40, 40, 40, 40, 40,
591 40, 209, 40, 213, 210, 215, 211, 40, 218, 220,
592 40, 40, 216, 217, 40, 214, 40, 40, 40, 221,
593 219, 223, 225, 226, 228, 227, 40, 40, 40, 40,
594 40, 222, 40, 40, 224, 40, 230, 231, 40, 233,
595 40, 229, 40, 236, 40, 40, 234, 232, 40, 237,
597 40, 40, 40, 40, 40, 238, 235, 40, 40, 240,
598 246, 253, 242, 252, 40, 40, 239, 243, 243, 251,
599 40, 243, 243, 244, 243, 243, 243, 243, 243, 243,
600 245, 40, 40, 40, 40, 254, 40, 40, 255, 258,
601 247, 40, 248, 259, 257, 260, 249, 256, 250, 40,
602 40, 40, 40, 40, 40, 40, 40, 40, 40, 264,
603 261, 266, 269, 273, 262, 271, 263, 267, 265, 40,
604 40, 268, 40, 40, 201, 201, 270, 272, 284, 202,
605 276, 276, 40, 40, 274, 202, 40, 40, 203, 203,
606 275, 276, 276, 205, 205, 40, 205, 205, 40, 277,
608 40, 40, 40, 279, 280, 40, 282, 278, 281, 40,
609 40, 40, 40, 40, 40, 287, 40, 40, 285, 290,
610 40, 40, 291, 292, 286, 283, 295, 40, 40, 40,
611 288, 40, 40, 289, 40, 294, 296, 40, 40, 40,
612 293, 40, 40, 40, 40, 299, 40, 300, 40, 297,
613 298, 307, 301, 302, 304, 303, 40, 308, 40, 40,
614 40, 40, 40, 309, 40, 305, 306, 311, 310, 313,
615 315, 40, 317, 318, 40, 40, 40, 40, 40, 40,
616 319, 312, 316, 314, 320, 321, 324, 323, 40, 322,
617 40, 40, 326, 40, 40, 327, 40, 40, 325, 40,
619 40, 276, 276, 40, 40, 40, 40, 331, 328, 335,
620 40, 336, 337, 334, 329, 330, 40, 339, 40, 40,
621 40, 338, 333, 40, 332, 341, 40, 340, 40, 342,
622 40, 40, 40, 40, 40, 343, 40, 346, 347, 40,
623 40, 348, 40, 345, 350, 40, 344, 40, 349, 353,
624 40, 355, 356, 352, 40, 40, 354, 351, 40, 357,
625 40, 40, 40, 358, 359, 360, 40, 40, 40, 40,
626 40, 363, 40, 40, 364, 362, 366, 368, 40, 40,
627 369, 361, 40, 40, 371, 40, 40, 40, 40, 365,
628 40, 367, 370, 377, 40, 373, 374, 378, 375, 380,
630 376, 372, 40, 40, 40, 40, 40, 40, 40, 379,
631 40, 385, 383, 381, 384, 386, 40, 40, 382, 389,
632 40, 40, 40, 40, 388, 387, 390, 40, 40, 40,
633 391, 40, 392, 40, 40, 394, 393, 40, 398, 40,
634 395, 40, 399, 397, 40, 40, 40, 40, 400, 401,
635 396, 407, 402, 403, 406, 40, 409, 40, 40, 40,
636 408, 404, 40, 40, 40, 40, 405, 40, 40, 411,
637 40, 40, 40, 415, 412, 418, 417, 420, 416, 413,
638 410, 40, 40, 40, 40, 419, 414, 40, 424, 40,
639 40, 422, 40, 40, 421, 423, 427, 40, 40, 40,
641 425, 40, 431, 40, 40, 429, 40, 40, 430, 40,
642 40, 40, 435, 428, 432, 436, 426, 40, 433, 439,
643 40, 40, 40, 40, 434, 40, 440, 437, 40, 441,
644 443, 40, 442, 40, 446, 40, 438, 40, 444, 40,
645 445, 447, 40, 40, 449, 453, 40, 40, 448, 40,
646 40, 450, 40, 40, 40, 40, 457, 40, 451, 40,
647 452, 40, 40, 456, 40, 40, 455, 40, 40, 40,
648 458, 454, 37, 37, 37, 37, 39, 39, 50, 40,
649 50, 50, 40, 40, 40, 40, 40, 40, 40, 40,
650 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
652 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
653 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
654 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
655 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
656 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
657 40, 200, 40, 40, 40, 40, 111, 40, 38, 459,
658 3, 459, 459, 459, 459, 459, 459, 459, 459, 459,
659 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
660 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
661 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
666 static yyconst short int yy_chk[1003] =
668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
671 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
672 1, 9, 161, 9, 9, 10, 10, 11, 11, 11,
673 12, 26, 105, 12, 13, 13, 13, 13, 14, 14,
674 14, 14, 161, 16, 105, 18, 51, 29, 17, 26,
675 18, 16, 18, 20, 51, 26, 29, 17, 16, 19,
676 16, 17, 16, 18, 13, 16, 17, 18, 19, 17,
677 20, 21, 19, 22, 23, 27, 21, 19, 34, 63,
679 20, 35, 22, 28, 24, 464, 21, 34, 22, 24,
680 23, 23, 21, 25, 27, 28, 27, 24, 25, 35,
681 63, 28, 24, 31, 33, 36, 42, 42, 31, 33,
682 52, 25, 43, 43, 36, 86, 46, 25, 30, 46,
683 30, 31, 33, 52, 31, 52, 30, 66, 86, 30,
684 56, 31, 30, 30, 44, 44, 44, 45, 45, 45,
685 45, 56, 53, 30, 30, 57, 30, 32, 54, 32,
686 53, 66, 47, 47, 47, 32, 57, 47, 48, 48,
687 48, 48, 32, 47, 32, 84, 32, 54, 58, 55,
688 84, 32, 49, 49, 49, 60, 49, 49, 62, 49,
690 49, 49, 49, 49, 49, 55, 58, 61, 65, 64,
691 60, 67, 69, 62, 61, 62, 64, 60, 68, 67,
692 70, 71, 72, 77, 73, 68, 76, 69, 64, 74,
693 71, 75, 76, 65, 69, 79, 81, 82, 70, 80,
694 77, 68, 73, 83, 78, 72, 77, 80, 74, 78,
695 79, 81, 87, 75, 75, 88, 75, 89, 83, 90,
696 82, 78, 91, 94, 93, 87, 96, 95, 92, 91,
697 101, 88, 93, 95, 102, 97, 100, 91, 88, 96,
698 99, 94, 103, 92, 89, 91, 92, 90, 97, 92,
699 109, 102, 92, 99, 104, 100, 97, 107, 101, 462,
701 103, 106, 104, 108, 99, 106, 106, 104, 108, 110,
702 107, 109, 107, 113, 113, 104, 114, 114, 106, 129,
703 104, 114, 123, 116, 116, 116, 121, 114, 116, 120,
704 110, 123, 117, 117, 116, 117, 117, 117, 125, 127,
705 120, 128, 129, 132, 121, 131, 133, 134, 135, 141,
706 139, 125, 137, 131, 127, 133, 128, 138, 137, 139,
707 140, 142, 134, 135, 144, 132, 145, 143, 146, 140,
708 138, 141, 143, 144, 146, 145, 147, 148, 149, 150,
709 151, 140, 152, 153, 142, 154, 148, 149, 155, 151,
710 156, 147, 157, 154, 160, 163, 152, 150, 172, 155,
712 167, 169, 175, 174, 458, 156, 153, 168, 456, 160,
713 169, 175, 163, 174, 176, 178, 157, 166, 166, 172,
714 181, 166, 166, 167, 166, 166, 166, 166, 166, 166,
715 168, 170, 179, 180, 182, 176, 183, 184, 178, 181,
716 170, 185, 170, 182, 180, 183, 170, 179, 170, 186,
717 187, 188, 189, 191, 190, 193, 194, 192, 196, 187,
718 184, 189, 192, 196, 185, 194, 186, 190, 188, 195,
719 197, 191, 199, 216, 201, 201, 193, 195, 216, 201,
720 203, 203, 206, 214, 197, 201, 208, 209, 202, 202,
721 199, 202, 202, 204, 204, 204, 205, 205, 205, 206,
723 207, 213, 215, 208, 209, 217, 214, 207, 213, 218,
724 219, 220, 221, 223, 222, 219, 224, 225, 217, 222,
725 227, 228, 223, 224, 218, 215, 228, 229, 230, 231,
726 220, 232, 233, 221, 234, 227, 229, 238, 235, 239,
727 225, 241, 244, 242, 245, 232, 455, 233, 247, 230,
728 231, 244, 234, 235, 239, 238, 246, 245, 248, 251,
729 249, 250, 252, 246, 253, 241, 242, 248, 247, 249,
730 250, 254, 252, 253, 258, 263, 257, 255, 261, 265,
731 254, 248, 251, 249, 255, 257, 263, 261, 264, 258,
732 266, 267, 265, 268, 269, 266, 270, 271, 264, 273,
734 275, 276, 276, 279, 278, 281, 284, 270, 267, 278,
735 283, 279, 281, 275, 268, 269, 282, 283, 287, 285,
736 286, 282, 273, 288, 271, 285, 289, 284, 296, 286,
737 290, 292, 294, 295, 297, 287, 298, 290, 292, 301,
738 299, 294, 302, 289, 296, 303, 288, 308, 295, 299,
739 304, 302, 303, 298, 305, 306, 301, 297, 309, 304,
740 317, 318, 320, 305, 306, 308, 321, 322, 326, 329,
741 327, 318, 328, 330, 320, 317, 322, 327, 332, 334,
742 328, 309, 333, 338, 330, 336, 339, 341, 340, 321,
743 346, 326, 329, 339, 345, 333, 334, 340, 336, 345,
745 338, 332, 348, 350, 359, 351, 352, 360, 354, 341,
746 362, 352, 350, 346, 351, 354, 363, 367, 348, 362,
747 368, 373, 374, 375, 360, 359, 363, 376, 380, 381,
748 367, 383, 368, 382, 384, 374, 373, 385, 381, 387,
749 375, 389, 382, 380, 386, 390, 391, 393, 383, 384,
750 376, 391, 385, 386, 390, 392, 393, 394, 395, 398,
751 392, 387, 399, 400, 401, 404, 389, 405, 406, 395,
752 407, 408, 413, 401, 398, 406, 405, 408, 404, 399,
753 394, 410, 412, 414, 415, 407, 400, 416, 414, 417,
754 418, 412, 419, 420, 410, 413, 417, 421, 422, 423,
756 415, 424, 421, 425, 427, 419, 426, 429, 420, 433,
757 430, 431, 425, 418, 422, 426, 416, 434, 423, 430,
758 432, 435, 437, 442, 424, 438, 431, 427, 440, 432,
759 434, 441, 433, 443, 438, 444, 429, 446, 435, 445,
760 437, 440, 447, 448, 442, 446, 450, 454, 441, 457,
761 453, 443, 452, 451, 449, 439, 454, 436, 444, 428,
762 445, 411, 409, 450, 403, 402, 448, 397, 396, 388,
763 457, 447, 460, 460, 460, 460, 461, 461, 463, 379,
764 463, 463, 378, 377, 372, 371, 370, 369, 366, 365,
765 364, 361, 358, 357, 356, 355, 353, 349, 347, 344,
767 343, 342, 337, 335, 331, 325, 324, 323, 319, 316,
768 315, 314, 313, 312, 311, 310, 307, 300, 293, 291,
769 280, 277, 274, 272, 262, 260, 259, 256, 240, 237,
770 236, 226, 212, 211, 210, 198, 177, 173, 171, 165,
771 164, 162, 159, 158, 136, 130, 126, 124, 122, 119,
772 115, 111, 98, 85, 59, 39, 37, 8, 7, 3,
773 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
774 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
775 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
776 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
781 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
782 static char *yy_full_match;
786 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
787 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
791 #define yymore() yymore_used_but_not_detected
792 #define YY_MORE_ADJ 0
793 #define YY_RESTORE_YY_MORE_OFFSET
795 #line 1 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
797 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
799 // The LLVM Compiler Infrastructure
801 // This file was developed by the LLVM research group and is distributed under
802 // the University of Illinois Open Source License. See LICENSE.TXT for details.
804 //===----------------------------------------------------------------------===//
806 // This file implements the flex scanner for LLVM assembly languages files.
808 //===----------------------------------------------------------------------===*/
809 #define YY_NEVER_INTERACTIVE 1
810 #line 28 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
811 #include "ParserInternals.h"
812 #include "llvm/Module.h"
814 #include "llvmAsmParser.h"
818 void set_scan_file(FILE * F){
819 yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
821 void set_scan_string (const char * str) {
822 yy_scan_string (str);
825 #define RET_TOK(type, Enum, sym) \
826 llvmAsmlval.type = Instruction::Enum; return sym
830 // TODO: All of the static identifiers are figured out by the lexer,
831 // these should be hashed to reduce the lexer size
834 // atoull - Convert an ascii string of decimal digits into the unsigned long
835 // long representation... this does not have to do input error checking,
836 // because we know that the input will be matched by a suitable regex...
838 static uint64_t atoull(const char *Buffer) {
840 for (; *Buffer; Buffer++) {
841 uint64_t OldRes = Result;
843 Result += *Buffer-'0';
844 if (Result < OldRes) // Uh, oh, overflow detected!!!
845 GenerateError("constant bigger than 64 bits detected!");
850 static uint64_t HexIntToVal(const char *Buffer) {
852 for (; *Buffer; ++Buffer) {
853 uint64_t OldRes = Result;
856 if (C >= '0' && C <= '9')
858 else if (C >= 'A' && C <= 'F')
860 else if (C >= 'a' && C <= 'f')
863 if (Result < OldRes) // Uh, oh, overflow detected!!!
864 GenerateError("constant bigger than 64 bits detected!");
870 // HexToFP - Convert the ascii string in hexidecimal format to the floating
871 // point representation of it.
873 static double HexToFP(const char *Buffer) {
874 // Behave nicely in the face of C TBAA rules... see:
875 // http://www.nullstone.com/htmls/category/aliastyp.htm
880 UIntToFP.UI = HexIntToVal(Buffer);
882 assert(sizeof(double) == sizeof(uint64_t) &&
883 "Data sizes incompatible on this target!");
884 return UIntToFP.FP; // Cast Hex constant to double
888 // UnEscapeLexed - Run through the specified buffer and change \xx codes to the
889 // appropriate character. If AllowNull is set to false, a \00 value will cause
890 // an exception to be thrown.
892 // If AllowNull is set to true, the return value of the function points to the
893 // last character of the string in memory.
895 char *UnEscapeLexed(char *Buffer, bool AllowNull) {
897 for (char *BIn = Buffer; *BIn; ) {
898 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
899 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
900 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
901 if (!AllowNull && !*BOut)
902 GenerateError("String literal cannot accept \\00 escape!");
904 BIn[3] = Tmp; // Restore character
905 BIn += 3; // Skip over handled chars
915 } // End llvm namespace
917 using namespace llvm;
919 #define YY_NEVER_INTERACTIVE 1
920 /* Comments start with a ; and go till end of line */
921 /* Variable(Value) identifiers start with a % sign */
922 /* Label identifiers end with a colon */
923 /* Quoted names can contain any character except " and \ */
924 /* [PN]Integer: match positive and negative literal integer values that
925 * are preceeded by a '%' character. These represent unnamed variable slots.
927 /* E[PN]Integer: match positive and negative literal integer values */
928 /* FPConstant - A Floating point constant.
930 /* HexFPConstant - Floating point constant represented in IEEE format as a
931 * hexadecimal number for when exponential notation is not precise enough.
933 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
934 * it to deal with 64 bit numbers.
936 #line 937 "Lexer.cpp"
938 /* Macros after this point can all be overridden by user definitions in
942 #ifndef YY_SKIP_YYWRAP
944 extern "C" int yywrap YY_PROTO(( void ));
946 extern int yywrap YY_PROTO(( void ));
951 static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
955 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
958 #ifdef YY_NEED_STRLEN
959 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
964 static int yyinput YY_PROTO(( void ));
966 static int input YY_PROTO(( void ));
971 static int yy_start_stack_ptr = 0;
972 static int yy_start_stack_depth = 0;
973 static int *yy_start_stack = 0;
974 #ifndef YY_NO_PUSH_STATE
975 static void yy_push_state YY_PROTO(( int new_state ));
977 #ifndef YY_NO_POP_STATE
978 static void yy_pop_state YY_PROTO(( void ));
980 #ifndef YY_NO_TOP_STATE
981 static int yy_top_state YY_PROTO(( void ));
985 #define YY_NO_PUSH_STATE 1
986 #define YY_NO_POP_STATE 1
987 #define YY_NO_TOP_STATE 1
990 #ifdef YY_MALLOC_DECL
998 /* Just try to get by without declaring the routines. This will fail
999 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1000 * or sizeof(void*) != sizeof(int).
1005 /* Amount of stuff to slurp up with each read. */
1006 #ifndef YY_READ_BUF_SIZE
1007 #define YY_READ_BUF_SIZE 8192
1010 /* Copy whatever the last rule matched to the standard output. */
1013 /* This used to be an fputs(), but since the string might contain NUL's,
1014 * we now use fwrite().
1016 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1019 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1020 * is returned in "result".
1023 #define YY_INPUT(buf,result,max_size) \
1024 if ( yy_current_buffer->yy_is_interactive ) \
1027 for ( n = 0; n < max_size && \
1028 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1029 buf[n] = (char) c; \
1031 buf[n++] = (char) c; \
1032 if ( c == EOF && ferror( yyin ) ) \
1033 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1036 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1037 && ferror( yyin ) ) \
1038 YY_FATAL_ERROR( "input in flex scanner failed" );
1041 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1042 * we don't want an extra ';' after the "return" because that will cause
1043 * some compilers to complain about unreachable statements.
1046 #define yyterminate() return YY_NULL
1049 /* Number of entries by which start-condition stack grows. */
1050 #ifndef YY_START_STACK_INCR
1051 #define YY_START_STACK_INCR 25
1054 /* Report a fatal error. */
1055 #ifndef YY_FATAL_ERROR
1056 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1059 /* Default declaration of generated scanner - a define so the user can
1060 * easily add parameters.
1063 #define YY_DECL int yylex YY_PROTO(( void ))
1066 /* Code executed at the beginning of each rule, after yytext and yyleng
1069 #ifndef YY_USER_ACTION
1070 #define YY_USER_ACTION
1073 /* Code executed at the end of each rule. */
1075 #define YY_BREAK break;
1078 #define YY_RULE_SETUP \
1083 register yy_state_type yy_current_state;
1084 register char *yy_cp = NULL, *yy_bp = NULL;
1085 register int yy_act;
1087 #line 179 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1090 #line 1091 "Lexer.cpp"
1101 yy_start = 1; /* first start state */
1109 if ( ! yy_current_buffer )
1111 yy_create_buffer( yyin, YY_BUF_SIZE );
1113 yy_load_buffer_state();
1116 while ( 1 ) /* loops until end-of-file is reached */
1120 /* Support of yytext. */
1121 *yy_cp = yy_hold_char;
1123 /* yy_bp points to the position in yy_ch_buf of the start of
1128 yy_current_state = yy_start;
1129 yy_state_ptr = yy_state_buf;
1130 *yy_state_ptr++ = yy_current_state;
1134 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1135 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1137 yy_current_state = (int) yy_def[yy_current_state];
1138 if ( yy_current_state >= 460 )
1139 yy_c = yy_meta[(unsigned int) yy_c];
1141 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1142 *yy_state_ptr++ = yy_current_state;
1145 while ( yy_current_state != 459 );
1148 yy_current_state = *--yy_state_ptr;
1149 yy_lp = yy_accept[yy_current_state];
1150 find_rule: /* we branch to this label when backing up */
1151 for ( ; ; ) /* until we find what rule we matched */
1153 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1155 yy_act = yy_acclist[yy_lp];
1157 yy_full_match = yy_cp;
1162 yy_current_state = *--yy_state_ptr;
1163 yy_lp = yy_accept[yy_current_state];
1166 YY_DO_BEFORE_ACTION;
1168 if ( yy_act != YY_END_OF_BUFFER )
1171 for ( yyl = 0; yyl < yyleng; ++yyl )
1172 if ( yytext[yyl] == '\n' )
1176 do_action: /* This label is used only to access EOF actions. */
1180 { /* beginning of action switch */
1183 #line 181 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1184 { /* Ignore comments for now */ }
1188 #line 183 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1189 { return BEGINTOK; }
1193 #line 184 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1198 #line 185 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1203 #line 186 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1204 { return FALSETOK; }
1208 #line 187 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1213 #line 188 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1218 #line 189 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1219 { return CONSTANT; }
1223 #line 190 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1224 { return INTERNAL; }
1228 #line 191 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1229 { return LINKONCE; }
1233 #line 192 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1238 #line 193 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1239 { return APPENDING; }
1243 #line 194 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1244 { return EXTERNAL; } /* Deprecated, turn into external */
1248 #line 195 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1249 { return EXTERNAL; }
1253 #line 196 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1254 { return IMPLEMENTATION; }
1258 #line 197 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1259 { return ZEROINITIALIZER; }
1263 #line 198 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1264 { return DOTDOTDOT; }
1268 #line 199 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1273 #line 200 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1274 { return NULL_TOK; }
1278 #line 201 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1283 #line 202 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1284 { RET_TOK(TermOpVal, Unwind, UNWIND); }
1288 #line 203 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1289 { return NOT; } /* Deprecated, turned into XOR */
1293 #line 204 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1298 #line 205 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1303 #line 206 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1308 #line 207 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1313 #line 208 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1318 #line 209 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1319 { return POINTERSIZE; }
1323 #line 210 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1328 #line 211 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1333 #line 212 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1334 { return VOLATILE; }
1338 #line 213 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1343 #line 214 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1348 #line 215 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1353 #line 216 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1358 #line 217 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1359 { return SIDEEFFECT; }
1363 #line 219 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1368 #line 220 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1373 #line 221 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1374 { return CSRETCC_TOK; }
1378 #line 222 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1379 { return FASTCC_TOK; }
1383 #line 223 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1384 { return COLDCC_TOK; }
1388 #line 225 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1389 { llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
1393 #line 226 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1394 { llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
1398 #line 227 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1399 { llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
1403 #line 228 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1404 { llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
1408 #line 229 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1409 { llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
1413 #line 230 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1414 { llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
1418 #line 231 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1419 { llvmAsmlval.PrimType = Type::IntTy ; return INT; }
1423 #line 232 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1424 { llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
1428 #line 233 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1429 { llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
1433 #line 234 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1434 { llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
1438 #line 235 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1439 { llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
1443 #line 236 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1444 { llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
1448 #line 237 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1449 { llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
1453 #line 238 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1458 #line 239 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1463 #line 241 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1464 { RET_TOK(BinaryOpVal, Add, ADD); }
1468 #line 242 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1469 { RET_TOK(BinaryOpVal, Sub, SUB); }
1473 #line 243 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1474 { RET_TOK(BinaryOpVal, Mul, MUL); }
1478 #line 244 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1479 { RET_TOK(BinaryOpVal, Div, DIV); }
1483 #line 245 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1484 { RET_TOK(BinaryOpVal, Rem, REM); }
1488 #line 246 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1489 { RET_TOK(BinaryOpVal, And, AND); }
1493 #line 247 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1494 { RET_TOK(BinaryOpVal, Or , OR ); }
1498 #line 248 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1499 { RET_TOK(BinaryOpVal, Xor, XOR); }
1503 #line 249 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1504 { RET_TOK(BinaryOpVal, SetNE, SETNE); }
1508 #line 250 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1509 { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
1513 #line 251 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1514 { RET_TOK(BinaryOpVal, SetLT, SETLT); }
1518 #line 252 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1519 { RET_TOK(BinaryOpVal, SetGT, SETGT); }
1523 #line 253 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1524 { RET_TOK(BinaryOpVal, SetLE, SETLE); }
1528 #line 254 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1529 { RET_TOK(BinaryOpVal, SetGE, SETGE); }
1533 #line 256 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1534 { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
1538 #line 257 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1539 { RET_TOK(OtherOpVal, Call, CALL); }
1543 #line 258 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1544 { RET_TOK(OtherOpVal, Cast, CAST); }
1548 #line 259 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1549 { RET_TOK(OtherOpVal, Select, SELECT); }
1553 #line 260 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1554 { RET_TOK(OtherOpVal, Shl, SHL); }
1558 #line 261 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1559 { RET_TOK(OtherOpVal, Shr, SHR); }
1563 #line 262 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1564 { return VANEXT_old; }
1568 #line 263 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1569 { return VAARG_old; }
1573 #line 264 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1574 { RET_TOK(OtherOpVal, VAArg , VAARG); }
1578 #line 265 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1579 { RET_TOK(TermOpVal, Ret, RET); }
1583 #line 266 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1584 { RET_TOK(TermOpVal, Br, BR); }
1588 #line 267 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1589 { RET_TOK(TermOpVal, Switch, SWITCH); }
1593 #line 268 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1594 { RET_TOK(TermOpVal, Invoke, INVOKE); }
1598 #line 269 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1599 { RET_TOK(TermOpVal, Unwind, UNWIND); }
1603 #line 270 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1604 { RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
1608 #line 272 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1609 { RET_TOK(MemOpVal, Malloc, MALLOC); }
1613 #line 273 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1614 { RET_TOK(MemOpVal, Alloca, ALLOCA); }
1618 #line 274 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1619 { RET_TOK(MemOpVal, Free, FREE); }
1623 #line 275 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1624 { RET_TOK(MemOpVal, Load, LOAD); }
1628 #line 276 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1629 { RET_TOK(MemOpVal, Store, STORE); }
1633 #line 277 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1634 { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
1638 #line 279 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1639 { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
1643 #line 280 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1644 { RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1648 #line 281 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1649 { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
1653 #line 284 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1655 UnEscapeLexed(yytext+1);
1656 llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
1662 #line 289 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1664 yytext[strlen(yytext)-1] = 0; // nuke colon
1665 UnEscapeLexed(yytext);
1666 llvmAsmlval.StrVal = strdup(yytext);
1672 #line 295 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1674 yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
1675 UnEscapeLexed(yytext+1);
1676 llvmAsmlval.StrVal = strdup(yytext+1);
1682 #line 302 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1683 { // Note that we cannot unescape a string constant here! The
1684 // string constant might contain a \00 which would not be
1685 // understood by the string stuff. It is valid to make a
1686 // [sbyte] c"Hello World\00" constant, for example.
1688 yytext[strlen(yytext)-1] = 0; // nuke end quote
1689 llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
1690 return STRINGCONSTANT;
1695 #line 313 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1696 { llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
1700 #line 314 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1702 uint64_t Val = atoull(yytext+1);
1703 // +1: we have bigger negative range
1704 if (Val > (uint64_t)INT64_MAX+1)
1705 GenerateError("Constant too large for signed 64 bits!");
1706 llvmAsmlval.SInt64Val = -Val;
1712 #line 322 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1714 llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
1715 return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
1720 #line 327 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1722 uint64_t Val = atoull(yytext+1);
1723 if ((unsigned)Val != Val)
1724 GenerateError("Invalid value number (too large)!");
1725 llvmAsmlval.UIntVal = unsigned(Val);
1731 #line 334 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1733 uint64_t Val = atoull(yytext+2);
1734 // +1: we have bigger negative range
1735 if (Val > (uint64_t)INT32_MAX+1)
1736 GenerateError("Constant too large for signed 32 bits!");
1737 llvmAsmlval.SIntVal = (int)-Val;
1743 #line 343 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1744 { llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
1748 #line 344 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1749 { llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
1751 case YY_STATE_EOF(INITIAL):
1752 #line 346 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1754 /* Make sure to free the internal buffers for flex when we are
1755 * done reading our input!
1757 yy_delete_buffer(YY_CURRENT_BUFFER);
1763 #line 354 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1764 { /* Ignore whitespace */ }
1768 #line 355 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1769 { return yytext[0]; }
1773 #line 357 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"
1774 YY_FATAL_ERROR( "flex scanner jammed" );
1776 #line 1777 "Lexer.cpp"
1778 case YY_END_OF_BUFFER:
1780 /* Amount of text matched not including the EOB char. */
1781 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1783 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1784 *yy_cp = yy_hold_char;
1785 YY_RESTORE_YY_MORE_OFFSET
1787 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1789 /* We're scanning a new file or input source. It's
1790 * possible that this happened because the user
1791 * just pointed yyin at a new source and called
1792 * yylex(). If so, then we have to assure
1793 * consistency between yy_current_buffer and our
1794 * globals. Here is the right place to do so, because
1795 * this is the first action (other than possibly a
1796 * back-up) that will match for the new input source.
1798 yy_n_chars = yy_current_buffer->yy_n_chars;
1799 yy_current_buffer->yy_input_file = yyin;
1800 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1803 /* Note that here we test for yy_c_buf_p "<=" to the position
1804 * of the first EOB in the buffer, since yy_c_buf_p will
1805 * already have been incremented past the NUL character
1806 * (since all states make transitions on EOB to the
1807 * end-of-buffer state). Contrast this with the test
1810 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1811 { /* This was really a NUL. */
1812 yy_state_type yy_next_state;
1814 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1816 yy_current_state = yy_get_previous_state();
1818 /* Okay, we're now positioned to make the NUL
1819 * transition. We couldn't have
1820 * yy_get_previous_state() go ahead and do it
1821 * for us because it doesn't know how to deal
1822 * with the possibility of jamming (and we don't
1823 * want to build jamming into it because then it
1824 * will run more slowly).
1827 yy_next_state = yy_try_NUL_trans( yy_current_state );
1829 yy_bp = yytext_ptr + YY_MORE_ADJ;
1831 if ( yy_next_state )
1833 /* Consume the NUL. */
1834 yy_cp = ++yy_c_buf_p;
1835 yy_current_state = yy_next_state;
1842 goto yy_find_action;
1846 else switch ( yy_get_next_buffer() )
1848 case EOB_ACT_END_OF_FILE:
1850 yy_did_buffer_switch_on_eof = 0;
1854 /* Note: because we've taken care in
1855 * yy_get_next_buffer() to have set up
1856 * yytext, we can now set up
1857 * yy_c_buf_p so that if some total
1858 * hoser (like flex itself) wants to
1859 * call the scanner after we return the
1860 * YY_NULL, it'll still work - another
1861 * YY_NULL will get returned.
1863 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1865 yy_act = YY_STATE_EOF(YY_START);
1871 if ( ! yy_did_buffer_switch_on_eof )
1877 case EOB_ACT_CONTINUE_SCAN:
1879 yytext_ptr + yy_amount_of_matched_text;
1881 yy_current_state = yy_get_previous_state();
1884 yy_bp = yytext_ptr + YY_MORE_ADJ;
1887 case EOB_ACT_LAST_MATCH:
1889 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1891 yy_current_state = yy_get_previous_state();
1894 yy_bp = yytext_ptr + YY_MORE_ADJ;
1895 goto yy_find_action;
1902 "fatal flex scanner internal error--no action found" );
1903 } /* end of action switch */
1904 } /* end of scanning one token */
1905 } /* end of yylex */
1908 /* yy_get_next_buffer - try to read in a new buffer
1910 * Returns a code representing an action:
1911 * EOB_ACT_LAST_MATCH -
1912 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1913 * EOB_ACT_END_OF_FILE - end of file
1916 static int yy_get_next_buffer()
1918 register char *dest = yy_current_buffer->yy_ch_buf;
1919 register char *source = yytext_ptr;
1920 register int number_to_move, i;
1923 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1925 "fatal flex scanner internal error--end of buffer missed" );
1927 if ( yy_current_buffer->yy_fill_buffer == 0 )
1928 { /* Don't try to fill the buffer, so this is an EOF. */
1929 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1931 /* We matched a single character, the EOB, so
1932 * treat this as a final EOF.
1934 return EOB_ACT_END_OF_FILE;
1939 /* We matched some text prior to the EOB, first
1942 return EOB_ACT_LAST_MATCH;
1946 /* Try to read more data. */
1948 /* First move last chars to start of buffer. */
1949 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1951 for ( i = 0; i < number_to_move; ++i )
1952 *(dest++) = *(source++);
1954 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1955 /* don't do the read, it's not guaranteed to return an EOF,
1958 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1963 yy_current_buffer->yy_buf_size - number_to_move - 1;
1965 while ( num_to_read <= 0 )
1966 { /* Not enough room in the buffer - grow it. */
1967 #ifdef YY_USES_REJECT
1969 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1972 /* just a shorter name for the current buffer */
1973 YY_BUFFER_STATE b = yy_current_buffer;
1975 int yy_c_buf_p_offset =
1976 (int) (yy_c_buf_p - b->yy_ch_buf);
1978 if ( b->yy_is_our_buffer )
1980 int new_size = b->yy_buf_size * 2;
1982 if ( new_size <= 0 )
1983 b->yy_buf_size += b->yy_buf_size / 8;
1985 b->yy_buf_size *= 2;
1987 b->yy_ch_buf = (char *)
1988 /* Include room in for 2 EOB chars. */
1989 yy_flex_realloc( (void *) b->yy_ch_buf,
1990 b->yy_buf_size + 2 );
1993 /* Can't grow it, we don't own it. */
1996 if ( ! b->yy_ch_buf )
1998 "fatal error - scanner input buffer overflow" );
2000 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2002 num_to_read = yy_current_buffer->yy_buf_size -
2007 if ( num_to_read > YY_READ_BUF_SIZE )
2008 num_to_read = YY_READ_BUF_SIZE;
2010 /* Read in more data. */
2011 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2012 yy_n_chars, num_to_read );
2014 yy_current_buffer->yy_n_chars = yy_n_chars;
2017 if ( yy_n_chars == 0 )
2019 if ( number_to_move == YY_MORE_ADJ )
2021 ret_val = EOB_ACT_END_OF_FILE;
2027 ret_val = EOB_ACT_LAST_MATCH;
2028 yy_current_buffer->yy_buffer_status =
2029 YY_BUFFER_EOF_PENDING;
2034 ret_val = EOB_ACT_CONTINUE_SCAN;
2036 yy_n_chars += number_to_move;
2037 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2038 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2040 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2046 /* yy_get_previous_state - get the state just before the EOB char was reached */
2048 static yy_state_type yy_get_previous_state()
2050 register yy_state_type yy_current_state;
2051 register char *yy_cp;
2053 yy_current_state = yy_start;
2054 yy_state_ptr = yy_state_buf;
2055 *yy_state_ptr++ = yy_current_state;
2057 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2059 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2060 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2062 yy_current_state = (int) yy_def[yy_current_state];
2063 if ( yy_current_state >= 460 )
2064 yy_c = yy_meta[(unsigned int) yy_c];
2066 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2067 *yy_state_ptr++ = yy_current_state;
2070 return yy_current_state;
2074 /* yy_try_NUL_trans - try to make a transition on the NUL character
2077 * next_state = yy_try_NUL_trans( current_state );
2080 #ifdef YY_USE_PROTOS
2081 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2083 static yy_state_type yy_try_NUL_trans( yy_current_state )
2084 yy_state_type yy_current_state;
2087 register int yy_is_jam;
2089 register YY_CHAR yy_c = 1;
2090 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2092 yy_current_state = (int) yy_def[yy_current_state];
2093 if ( yy_current_state >= 460 )
2094 yy_c = yy_meta[(unsigned int) yy_c];
2096 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2097 yy_is_jam = (yy_current_state == 459);
2099 *yy_state_ptr++ = yy_current_state;
2101 return yy_is_jam ? 0 : yy_current_state;
2106 #ifdef YY_USE_PROTOS
2107 static inline void yyunput( int c, register char *yy_bp )
2109 static inline void yyunput( c, yy_bp )
2111 register char *yy_bp;
2114 register char *yy_cp = yy_c_buf_p;
2116 /* undo effects of setting up yytext */
2117 *yy_cp = yy_hold_char;
2119 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2120 { /* need to shift things up to make room */
2121 /* +2 for EOB chars. */
2122 register int number_to_move = yy_n_chars + 2;
2123 register char *dest = &yy_current_buffer->yy_ch_buf[
2124 yy_current_buffer->yy_buf_size + 2];
2125 register char *source =
2126 &yy_current_buffer->yy_ch_buf[number_to_move];
2128 while ( source > yy_current_buffer->yy_ch_buf )
2129 *--dest = *--source;
2131 yy_cp += (int) (dest - source);
2132 yy_bp += (int) (dest - source);
2133 yy_current_buffer->yy_n_chars =
2134 yy_n_chars = yy_current_buffer->yy_buf_size;
2136 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2137 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2140 *--yy_cp = (char) c;
2146 yy_hold_char = *yy_cp;
2149 #endif /* ifndef YY_NO_UNPUT */
2154 static int yyinput()
2161 *yy_c_buf_p = yy_hold_char;
2163 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2165 /* yy_c_buf_p now points to the character we want to return.
2166 * If this occurs *before* the EOB characters, then it's a
2167 * valid NUL; if not, then we've hit the end of the buffer.
2169 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2170 /* This was really a NUL. */
2174 { /* need more input */
2175 int offset = yy_c_buf_p - yytext_ptr;
2178 switch ( yy_get_next_buffer() )
2180 case EOB_ACT_LAST_MATCH:
2181 /* This happens because yy_g_n_b()
2182 * sees that we've accumulated a
2183 * token and flags that we need to
2184 * try matching the token before
2185 * proceeding. But for input(),
2186 * there's no matching to consider.
2187 * So convert the EOB_ACT_LAST_MATCH
2188 * to EOB_ACT_END_OF_FILE.
2191 /* Reset buffer status. */
2196 case EOB_ACT_END_OF_FILE:
2201 if ( ! yy_did_buffer_switch_on_eof )
2210 case EOB_ACT_CONTINUE_SCAN:
2211 yy_c_buf_p = yytext_ptr + offset;
2217 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2218 *yy_c_buf_p = '\0'; /* preserve yytext */
2219 yy_hold_char = *++yy_c_buf_p;
2226 #endif /* YY_NO_INPUT */
2228 #ifdef YY_USE_PROTOS
2229 void yyrestart( FILE *input_file )
2231 void yyrestart( input_file )
2235 if ( ! yy_current_buffer )
2236 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2238 yy_init_buffer( yy_current_buffer, input_file );
2239 yy_load_buffer_state();
2243 #ifdef YY_USE_PROTOS
2244 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2246 void yy_switch_to_buffer( new_buffer )
2247 YY_BUFFER_STATE new_buffer;
2250 if ( yy_current_buffer == new_buffer )
2253 if ( yy_current_buffer )
2255 /* Flush out information for old buffer. */
2256 *yy_c_buf_p = yy_hold_char;
2257 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2258 yy_current_buffer->yy_n_chars = yy_n_chars;
2261 yy_current_buffer = new_buffer;
2262 yy_load_buffer_state();
2264 /* We don't actually know whether we did this switch during
2265 * EOF (yywrap()) processing, but the only time this flag
2266 * is looked at is after yywrap() is called, so it's safe
2267 * to go ahead and always set it.
2269 yy_did_buffer_switch_on_eof = 1;
2273 #ifdef YY_USE_PROTOS
2274 void yy_load_buffer_state( void )
2276 void yy_load_buffer_state()
2279 yy_n_chars = yy_current_buffer->yy_n_chars;
2280 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2281 yyin = yy_current_buffer->yy_input_file;
2282 yy_hold_char = *yy_c_buf_p;
2286 #ifdef YY_USE_PROTOS
2287 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2289 YY_BUFFER_STATE yy_create_buffer( file, size )
2296 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2298 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2300 b->yy_buf_size = size;
2302 /* yy_ch_buf has to be 2 characters longer than the size given because
2303 * we need to put in 2 end-of-buffer characters.
2305 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2306 if ( ! b->yy_ch_buf )
2307 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2309 b->yy_is_our_buffer = 1;
2311 yy_init_buffer( b, file );
2317 #ifdef YY_USE_PROTOS
2318 void yy_delete_buffer( YY_BUFFER_STATE b )
2320 void yy_delete_buffer( b )
2327 if ( b == yy_current_buffer )
2328 yy_current_buffer = (YY_BUFFER_STATE) 0;
2330 if ( b->yy_is_our_buffer )
2331 yy_flex_free( (void *) b->yy_ch_buf );
2333 yy_flex_free( (void *) b );
2338 #ifdef YY_USE_PROTOS
2339 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2341 void yy_init_buffer( b, file )
2348 yy_flush_buffer( b );
2350 b->yy_input_file = file;
2351 b->yy_fill_buffer = 1;
2353 #if YY_ALWAYS_INTERACTIVE
2354 b->yy_is_interactive = 1;
2356 #if YY_NEVER_INTERACTIVE
2357 b->yy_is_interactive = 0;
2359 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2365 #ifdef YY_USE_PROTOS
2366 void yy_flush_buffer( YY_BUFFER_STATE b )
2368 void yy_flush_buffer( b )
2378 /* We always need two end-of-buffer characters. The first causes
2379 * a transition to the end-of-buffer state. The second causes
2380 * a jam in that state.
2382 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2383 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2385 b->yy_buf_pos = &b->yy_ch_buf[0];
2388 b->yy_buffer_status = YY_BUFFER_NEW;
2390 if ( b == yy_current_buffer )
2391 yy_load_buffer_state();
2395 #ifndef YY_NO_SCAN_BUFFER
2396 #ifdef YY_USE_PROTOS
2397 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2399 YY_BUFFER_STATE yy_scan_buffer( base, size )
2407 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2408 base[size-1] != YY_END_OF_BUFFER_CHAR )
2409 /* They forgot to leave room for the EOB's. */
2412 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2414 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2416 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2417 b->yy_buf_pos = b->yy_ch_buf = base;
2418 b->yy_is_our_buffer = 0;
2419 b->yy_input_file = 0;
2420 b->yy_n_chars = b->yy_buf_size;
2421 b->yy_is_interactive = 0;
2423 b->yy_fill_buffer = 0;
2424 b->yy_buffer_status = YY_BUFFER_NEW;
2426 yy_switch_to_buffer( b );
2433 #ifndef YY_NO_SCAN_STRING
2434 #ifdef YY_USE_PROTOS
2435 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2437 YY_BUFFER_STATE yy_scan_string( yy_str )
2438 yyconst char *yy_str;
2442 for ( len = 0; yy_str[len]; ++len )
2445 return yy_scan_bytes( yy_str, len );
2450 #ifndef YY_NO_SCAN_BYTES
2451 #ifdef YY_USE_PROTOS
2452 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2454 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2455 yyconst char *bytes;
2464 /* Get memory for full buffer, including space for trailing EOB's. */
2466 buf = (char *) yy_flex_alloc( n );
2468 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2470 for ( i = 0; i < len; ++i )
2473 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2475 b = yy_scan_buffer( buf, n );
2477 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2479 /* It's okay to grow etc. this buffer, and we should throw it
2480 * away when we're done.
2482 b->yy_is_our_buffer = 1;
2489 #ifndef YY_NO_PUSH_STATE
2490 #ifdef YY_USE_PROTOS
2491 static void yy_push_state( int new_state )
2493 static void yy_push_state( new_state )
2497 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2501 yy_start_stack_depth += YY_START_STACK_INCR;
2502 new_size = yy_start_stack_depth * sizeof( int );
2504 if ( ! yy_start_stack )
2505 yy_start_stack = (int *) yy_flex_alloc( new_size );
2508 yy_start_stack = (int *) yy_flex_realloc(
2509 (void *) yy_start_stack, new_size );
2511 if ( ! yy_start_stack )
2513 "out of memory expanding start-condition stack" );
2516 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2523 #ifndef YY_NO_POP_STATE
2524 static void yy_pop_state()
2526 if ( --yy_start_stack_ptr < 0 )
2527 YY_FATAL_ERROR( "start-condition stack underflow" );
2529 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2534 #ifndef YY_NO_TOP_STATE
2535 static int yy_top_state()
2537 return yy_start_stack[yy_start_stack_ptr - 1];
2541 #ifndef YY_EXIT_FAILURE
2542 #define YY_EXIT_FAILURE 2
2545 #ifdef YY_USE_PROTOS
2546 static void yy_fatal_error( yyconst char msg[] )
2548 static void yy_fatal_error( msg )
2552 (void) fprintf( stderr, "%s\n", msg );
2553 exit( YY_EXIT_FAILURE );
2558 /* Redefine yyless() so it works in section 3 code. */
2564 /* Undo effects of setting up yytext. */ \
2565 yytext[yyleng] = yy_hold_char; \
2566 yy_c_buf_p = yytext + n; \
2567 yy_hold_char = *yy_c_buf_p; \
2568 *yy_c_buf_p = '\0'; \
2574 /* Internal utility routines. */
2577 #ifdef YY_USE_PROTOS
2578 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2580 static void yy_flex_strncpy( s1, s2, n )
2587 for ( i = 0; i < n; ++i )
2592 #ifdef YY_NEED_STRLEN
2593 #ifdef YY_USE_PROTOS
2594 static int yy_flex_strlen( yyconst char *s )
2596 static int yy_flex_strlen( s )
2601 for ( n = 0; s[n]; ++n )
2609 #ifdef YY_USE_PROTOS
2610 static void *yy_flex_alloc( yy_size_t size )
2612 static void *yy_flex_alloc( size )
2616 return (void *) malloc( size );
2619 #ifdef YY_USE_PROTOS
2620 static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
2622 static inline void *yy_flex_realloc( ptr, size )
2627 /* The cast to (char *) in the following accommodates both
2628 * implementations that use char* generic pointers, and those
2629 * that use void* generic pointers. It works with the latter
2630 * because both ANSI C and C++ allow castless assignment from
2631 * any pointer type to void*, and deal with argument conversions
2632 * as though doing an assignment.
2634 return (void *) realloc( (char *) ptr, size );
2637 #ifdef YY_USE_PROTOS
2638 static void yy_flex_free( void *ptr )
2640 static void yy_flex_free( ptr )
2654 #line 357 "/proj/llvm/llvm/lib/AsmParser/Lexer.l"