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
33 /* 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 /* 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).
160 typedef unsigned int yy_size_t;
163 struct yy_buffer_state
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
170 /* Size of input buffer in bytes, not including room for EOB
173 yy_size_t yy_buf_size;
175 /* Number of characters read into yy_ch_buf, not including EOB
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
184 int yy_is_our_buffer;
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
191 int yy_is_interactive;
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
199 /* Whether to try to fill the input buffer when we reach the
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.
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.
217 #define YY_BUFFER_EOF_PENDING 2
220 static YY_BUFFER_STATE yy_current_buffer = 0;
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
226 #define YY_CURRENT_BUFFER yy_current_buffer
229 /* yy_hold_char holds the character lost when yytext is formed. */
230 static char yy_hold_char;
232 static int yy_n_chars; /* number of characters read into yy_ch_buf */
237 /* Points to current character in buffer. */
238 static char *yy_c_buf_p = (char *) 0;
239 static int yy_init = 1; /* whether we need to initialize */
240 static int yy_start = 0; /* start state number */
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 ...
245 static int yy_did_buffer_switch_on_eof;
247 void yyrestart YY_PROTO(( FILE *input_file ));
249 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250 void yy_load_buffer_state YY_PROTO(( void ));
251 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
257 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
261 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262 static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263 static void yy_flex_free YY_PROTO(( void * ));
265 #define yy_new_buffer yy_create_buffer
267 #define yy_set_interactive(is_interactive) \
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; \
274 #define yy_set_bol(at_bol) \
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; \
281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
284 #define YY_USES_REJECT
287 #define YY_SKIP_YYWRAP
288 typedef unsigned char YY_CHAR;
289 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
290 typedef int yy_state_type;
294 #define yytext_ptr yytext
296 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
297 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
298 static int yy_get_next_buffer YY_PROTO(( void ));
299 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
301 /* Done after the current pattern has been matched and before the
302 * corresponding action - sets up yytext.
304 #define YY_DO_BEFORE_ACTION \
305 yytext_ptr = yy_bp; \
306 yyleng = (int) (yy_cp - yy_bp); \
307 yy_hold_char = *yy_cp; \
311 #define YY_NUM_RULES 107
312 #define YY_END_OF_BUFFER 108
313 static yyconst short int yy_acclist[185] =
315 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,
326 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,
329 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,
333 9, 10, 31, 12, 36, 28, 84, 90, 92, 93,
337 static yyconst short int yy_accept[455] =
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,
344 81, 81, 81, 81, 81, 81, 81, 81, 81, 82,
345 82, 83, 83, 83, 83, 83, 83, 83, 83, 83,
346 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
347 83, 83, 83, 83, 84, 84, 84, 84, 84, 84,
348 84, 84, 84, 84, 84, 84, 84, 85, 85, 85,
350 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,
357 107, 108, 108, 108, 108, 109, 109, 109, 109, 109,
358 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
359 109, 109, 109, 109, 109, 109, 110, 110, 111, 112,
361 112, 112, 112, 113, 113, 113, 113, 113, 114, 115,
362 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
363 116, 116, 116, 117, 117, 117, 117, 117, 117, 117,
364 117, 117, 117, 118, 119, 119, 119, 120, 120, 120,
365 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
366 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,
372 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,
383 173, 173, 173, 174, 174, 175, 175, 175, 175, 175,
384 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
385 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,
391 static yyconst int yy_ec[256] =
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,
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,
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,
423 static yyconst int yy_meta[42] =
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,
432 static yyconst short int yy_base[459] =
434 0, 0, 948, 949, 949, 949, 943, 934, 34, 36,
435 38, 42, 46, 50, 0, 52, 57, 54, 68, 62,
436 80, 82, 76, 94, 98, 40, 83, 88, 56, 125,
437 108, 154, 109, 87, 110, 111, 941, 949, 932, 949,
438 0, 119, 134, 142, 145, 124, 159, 166, 179, 0,
439 55, 180, 147, 153, 119, 150, 183, 156, 931, 175,
440 191, 192, 196, 90, 146, 200, 199, 201, 202, 204,
441 205, 211, 212, 210, 218, 217, 221, 227, 236, 230,
442 214, 239, 241, 930, 243, 247, 248, 225, 249, 250,
443 251, 253, 258, 262, 267, 270, 929, 274, 259, 279,
445 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,
456 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,
467 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,
478 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
486 static yyconst short int yy_def[459] =
488 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,
499 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,
510 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,
521 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,
532 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
540 static yyconst short int yy_nxt[991] =
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,
547 46, 40, 40, 40, 47, 48, 48, 40, 47, 48,
548 48, 40, 238, 40, 189, 40, 40, 40, 40, 81,
549 60, 51, 61, 40, 118, 82, 87, 56, 52, 40,
550 53, 57, 54, 62, 49, 55, 58, 40, 63, 59,
551 66, 40, 64, 40, 40, 40, 68, 65, 40, 40,
553 67, 40, 71, 73, 74, 40, 69, 107, 72, 40,
554 75, 85, 70, 83, 78, 84, 196, 86, 76, 40,
555 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,
564 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,
571 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,
575 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,
586 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,
597 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,
608 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,
619 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,
630 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,
638 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
639 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
641 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
642 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
652 static yyconst short int yy_chk[991] =
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,
658 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,
661 18, 16, 18, 20, 51, 26, 29, 17, 16, 19,
662 16, 17, 16, 18, 13, 16, 17, 23, 19, 17,
663 20, 21, 19, 22, 27, 108, 21, 19, 34, 28,
665 20, 64, 22, 23, 23, 24, 21, 34, 22, 25,
666 24, 28, 21, 27, 25, 27, 108, 28, 24, 31,
667 33, 35, 36, 24, 31, 33, 64, 25, 42, 42,
668 55, 36, 46, 25, 30, 46, 30, 31, 33, 35,
669 31, 458, 30, 43, 43, 30, 55, 31, 30, 30,
670 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,
673 32, 65, 32, 54, 456, 58, 60, 32, 49, 49,
674 49, 52, 49, 49, 57, 49, 49, 49, 49, 49,
676 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,
679 452, 69, 77, 67, 68, 75, 88, 77, 78, 71,
680 72, 80, 73, 74, 74, 76, 74, 79, 81, 77,
681 82, 76, 83, 78, 85, 79, 80, 83, 86, 87,
682 89, 90, 91, 88, 92, 82, 450, 85, 90, 93,
683 99, 86, 92, 94, 102, 87, 90, 91, 95, 94,
684 91, 96, 87, 91, 90, 98, 91, 93, 89, 99,
685 100, 95, 102, 101, 96, 103, 105, 130, 98, 106,
687 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,
698 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,
709 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,
720 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,
731 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,
742 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,
753 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
764 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
765 static char *yy_full_match;
769 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
770 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
774 #define yymore() yymore_used_but_not_detected
775 #define YY_MORE_ADJ 0
776 #define YY_RESTORE_YY_MORE_OFFSET
778 #line 1 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
780 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
782 // The LLVM Compiler Infrastructure
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.
787 //===----------------------------------------------------------------------===//
789 // This file implements the flex scanner for LLVM assembly languages files.
791 //===----------------------------------------------------------------------===*/
792 #define YY_NEVER_INTERACTIVE 1
793 #line 28 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
794 #include "ParserInternals.h"
795 #include "llvm/Module.h"
797 #include "llvmAsmParser.h"
801 void set_scan_file(FILE * F){
802 yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
804 void set_scan_string (const char * str) {
805 yy_scan_string (str);
808 #define RET_TOK(type, Enum, sym) \
809 llvmAsmlval.type = Instruction::Enum; return sym
813 // TODO: All of the static identifiers are figured out by the lexer,
814 // these should be hashed to reduce the lexer size
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...
821 static uint64_t atoull(const char *Buffer) {
823 for (; *Buffer; Buffer++) {
824 uint64_t OldRes = Result;
826 Result += *Buffer-'0';
827 if (Result < OldRes) // Uh, oh, overflow detected!!!
828 ThrowException("constant bigger than 64 bits detected!");
833 static uint64_t HexIntToVal(const char *Buffer) {
835 for (; *Buffer; ++Buffer) {
836 uint64_t OldRes = Result;
839 if (C >= '0' && C <= '9')
841 else if (C >= 'A' && C <= 'F')
843 else if (C >= 'a' && C <= 'f')
846 if (Result < OldRes) // Uh, oh, overflow detected!!!
847 ThrowException("constant bigger than 64 bits detected!");
853 // HexToFP - Convert the ascii string in hexidecimal format to the floating
854 // point representation of it.
856 static 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
863 UIntToFP.UI = HexIntToVal(Buffer);
865 assert(sizeof(double) == sizeof(uint64_t) &&
866 "Data sizes incompatible on this target!");
867 return UIntToFP.FP; // Cast Hex constant to double
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.
875 // If AllowNull is set to true, the return value of the function points to the
876 // last character of the string in memory.
878 char *UnEscapeLexed(char *Buffer, bool AllowNull) {
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!");
887 BIn[3] = Tmp; // Restore character
888 BIn += 3; // Skip over handled chars
898 } // End llvm namespace
900 using namespace llvm;
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.
910 /* E[PN]Integer: match positive and negative literal integer values */
911 /* FPConstant - A Floating point constant.
913 /* HexFPConstant - Floating point constant represented in IEEE format as a
914 * hexadecimal number for when exponential notation is not precise enough.
916 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
917 * it to deal with 64 bit numbers.
919 #line 920 "Lexer.cpp"
921 /* Macros after this point can all be overridden by user definitions in
925 #ifndef YY_SKIP_YYWRAP
927 extern "C" int yywrap YY_PROTO(( void ));
929 extern int yywrap YY_PROTO(( void ));
934 static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
938 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
941 #ifdef YY_NEED_STRLEN
942 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
947 static int yyinput YY_PROTO(( void ));
949 static int input YY_PROTO(( void ));
954 static int yy_start_stack_ptr = 0;
955 static int yy_start_stack_depth = 0;
956 static int *yy_start_stack = 0;
957 #ifndef YY_NO_PUSH_STATE
958 static void yy_push_state YY_PROTO(( int new_state ));
960 #ifndef YY_NO_POP_STATE
961 static void yy_pop_state YY_PROTO(( void ));
963 #ifndef YY_NO_TOP_STATE
964 static int yy_top_state YY_PROTO(( void ));
968 #define YY_NO_PUSH_STATE 1
969 #define YY_NO_POP_STATE 1
970 #define YY_NO_TOP_STATE 1
973 #ifdef YY_MALLOC_DECL
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).
988 /* Amount of stuff to slurp up with each read. */
989 #ifndef YY_READ_BUF_SIZE
990 #define YY_READ_BUF_SIZE 8192
993 /* Copy whatever the last rule matched to the standard output. */
996 /* This used to be an fputs(), but since the string might contain NUL's,
997 * we now use fwrite().
999 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1002 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1003 * is returned in "result".
1006 #define YY_INPUT(buf,result,max_size) \
1007 if ( yy_current_buffer->yy_is_interactive ) \
1010 for ( n = 0; n < max_size && \
1011 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1012 buf[n] = (char) c; \
1014 buf[n++] = (char) c; \
1015 if ( c == EOF && ferror( yyin ) ) \
1016 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1019 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1020 && ferror( yyin ) ) \
1021 YY_FATAL_ERROR( "input in flex scanner failed" );
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.
1029 #define yyterminate() return YY_NULL
1032 /* Number of entries by which start-condition stack grows. */
1033 #ifndef YY_START_STACK_INCR
1034 #define YY_START_STACK_INCR 25
1037 /* Report a fatal error. */
1038 #ifndef YY_FATAL_ERROR
1039 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1042 /* Default declaration of generated scanner - a define so the user can
1043 * easily add parameters.
1046 #define YY_DECL int yylex YY_PROTO(( void ))
1049 /* Code executed at the beginning of each rule, after yytext and yyleng
1052 #ifndef YY_USER_ACTION
1053 #define YY_USER_ACTION
1056 /* Code executed at the end of each rule. */
1058 #define YY_BREAK break;
1061 #define YY_RULE_SETUP \
1066 register yy_state_type yy_current_state;
1067 register char *yy_cp, *yy_bp;
1068 register int yy_act;
1070 #line 179 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1073 #line 1074 "Lexer.cpp"
1084 yy_start = 1; /* first start state */
1092 if ( ! yy_current_buffer )
1094 yy_create_buffer( yyin, YY_BUF_SIZE );
1096 yy_load_buffer_state();
1099 while ( 1 ) /* loops until end-of-file is reached */
1103 /* Support of yytext. */
1104 *yy_cp = yy_hold_char;
1106 /* yy_bp points to the position in yy_ch_buf of the start of
1111 yy_current_state = yy_start;
1112 yy_state_ptr = yy_state_buf;
1113 *yy_state_ptr++ = yy_current_state;
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 )
1120 yy_current_state = (int) yy_def[yy_current_state];
1121 if ( yy_current_state >= 454 )
1122 yy_c = yy_meta[(unsigned int) yy_c];
1124 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1125 *yy_state_ptr++ = yy_current_state;
1128 while ( yy_current_state != 453 );
1131 yy_current_state = *--yy_state_ptr;
1132 yy_lp = yy_accept[yy_current_state];
1133 find_rule: /* we branch to this label when backing up */
1134 for ( ; ; ) /* until we find what rule we matched */
1136 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1138 yy_act = yy_acclist[yy_lp];
1140 yy_full_match = yy_cp;
1145 yy_current_state = *--yy_state_ptr;
1146 yy_lp = yy_accept[yy_current_state];
1149 YY_DO_BEFORE_ACTION;
1151 if ( yy_act != YY_END_OF_BUFFER )
1154 for ( yyl = 0; yyl < yyleng; ++yyl )
1155 if ( yytext[yyl] == '\n' )
1159 do_action: /* This label is used only to access EOF actions. */
1163 { /* beginning of action switch */
1166 #line 181 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1167 { /* Ignore comments for now */ }
1171 #line 183 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1172 { return BEGINTOK; }
1176 #line 184 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1181 #line 185 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1186 #line 186 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1187 { return FALSETOK; }
1191 #line 187 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1196 #line 188 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1201 #line 189 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1202 { return CONSTANT; }
1206 #line 190 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1207 { return INTERNAL; }
1211 #line 191 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1212 { return LINKONCE; }
1216 #line 192 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1221 #line 193 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1222 { return APPENDING; }
1226 #line 194 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1227 { return EXTERNAL; } /* Deprecated, turn into external */
1231 #line 195 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1232 { return EXTERNAL; }
1236 #line 196 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1237 { return IMPLEMENTATION; }
1241 #line 197 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1242 { return ZEROINITIALIZER; }
1246 #line 198 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1247 { return DOTDOTDOT; }
1251 #line 199 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1256 #line 200 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1257 { return NULL_TOK; }
1261 #line 201 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1266 #line 202 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1267 { RET_TOK(TermOpVal, Unwind, UNWIND); }
1271 #line 203 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1272 { return NOT; } /* Deprecated, turned into XOR */
1276 #line 204 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1281 #line 205 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1286 #line 206 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1291 #line 207 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1296 #line 208 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1301 #line 209 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1302 { return POINTERSIZE; }
1306 #line 210 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1311 #line 211 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1316 #line 212 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1317 { return VOLATILE; }
1321 #line 213 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1326 #line 214 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1331 #line 215 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1336 #line 216 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1341 #line 217 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1342 { return SIDEEFFECT; }
1346 #line 219 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1351 #line 220 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1356 #line 221 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1357 { return FASTCC_TOK; }
1361 #line 222 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1362 { return COLDCC_TOK; }
1366 #line 224 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1367 { llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
1371 #line 225 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1372 { llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
1376 #line 226 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1377 { llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
1381 #line 227 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1382 { llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
1386 #line 228 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1387 { llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
1391 #line 229 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1392 { llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
1396 #line 230 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1397 { llvmAsmlval.PrimType = Type::IntTy ; return INT; }
1401 #line 231 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1402 { llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
1406 #line 232 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1407 { llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
1411 #line 233 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1412 { llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
1416 #line 234 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1417 { llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
1421 #line 235 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1422 { llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
1426 #line 236 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1427 { llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
1431 #line 237 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1436 #line 238 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1441 #line 240 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1442 { RET_TOK(BinaryOpVal, Add, ADD); }
1446 #line 241 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1447 { RET_TOK(BinaryOpVal, Sub, SUB); }
1451 #line 242 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1452 { RET_TOK(BinaryOpVal, Mul, MUL); }
1456 #line 243 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1457 { RET_TOK(BinaryOpVal, Div, DIV); }
1461 #line 244 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1462 { RET_TOK(BinaryOpVal, Rem, REM); }
1466 #line 245 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1467 { RET_TOK(BinaryOpVal, And, AND); }
1471 #line 246 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1472 { RET_TOK(BinaryOpVal, Or , OR ); }
1476 #line 247 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1477 { RET_TOK(BinaryOpVal, Xor, XOR); }
1481 #line 248 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1482 { RET_TOK(BinaryOpVal, SetNE, SETNE); }
1486 #line 249 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1487 { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
1491 #line 250 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1492 { RET_TOK(BinaryOpVal, SetLT, SETLT); }
1496 #line 251 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1497 { RET_TOK(BinaryOpVal, SetGT, SETGT); }
1501 #line 252 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1502 { RET_TOK(BinaryOpVal, SetLE, SETLE); }
1506 #line 253 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1507 { RET_TOK(BinaryOpVal, SetGE, SETGE); }
1511 #line 255 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1512 { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
1516 #line 256 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1517 { RET_TOK(OtherOpVal, Call, CALL); }
1521 #line 257 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1522 { RET_TOK(OtherOpVal, Cast, CAST); }
1526 #line 258 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1527 { RET_TOK(OtherOpVal, Select, SELECT); }
1531 #line 259 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1532 { RET_TOK(OtherOpVal, Shl, SHL); }
1536 #line 260 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1537 { RET_TOK(OtherOpVal, Shr, SHR); }
1541 #line 261 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1542 { return VANEXT_old; }
1546 #line 262 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1547 { return VAARG_old; }
1551 #line 263 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1552 { RET_TOK(OtherOpVal, VAArg , VAARG); }
1556 #line 264 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1557 { RET_TOK(TermOpVal, Ret, RET); }
1561 #line 265 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1562 { RET_TOK(TermOpVal, Br, BR); }
1566 #line 266 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1567 { RET_TOK(TermOpVal, Switch, SWITCH); }
1571 #line 267 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1572 { RET_TOK(TermOpVal, Invoke, INVOKE); }
1576 #line 268 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1577 { RET_TOK(TermOpVal, Unwind, UNWIND); }
1581 #line 269 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1582 { RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
1586 #line 271 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1587 { RET_TOK(MemOpVal, Malloc, MALLOC); }
1591 #line 272 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1592 { RET_TOK(MemOpVal, Alloca, ALLOCA); }
1596 #line 273 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1597 { RET_TOK(MemOpVal, Free, FREE); }
1601 #line 274 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1602 { RET_TOK(MemOpVal, Load, LOAD); }
1606 #line 275 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1607 { RET_TOK(MemOpVal, Store, STORE); }
1611 #line 276 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1612 { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
1616 #line 278 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1617 { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
1621 #line 279 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1622 { RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1626 #line 280 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1627 { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
1631 #line 283 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1633 UnEscapeLexed(yytext+1);
1634 llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
1640 #line 288 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1642 yytext[strlen(yytext)-1] = 0; // nuke colon
1643 UnEscapeLexed(yytext);
1644 llvmAsmlval.StrVal = strdup(yytext);
1650 #line 294 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1652 yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
1653 UnEscapeLexed(yytext+1);
1654 llvmAsmlval.StrVal = strdup(yytext+1);
1660 #line 301 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1661 { // 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.
1666 yytext[strlen(yytext)-1] = 0; // nuke end quote
1667 llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
1668 return STRINGCONSTANT;
1673 #line 312 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1674 { llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
1678 #line 313 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
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;
1690 #line 321 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1692 llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
1693 return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
1698 #line 326 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1700 uint64_t Val = atoull(yytext+1);
1701 if ((unsigned)Val != Val)
1702 ThrowException("Invalid value number (too large)!");
1703 llvmAsmlval.UIntVal = unsigned(Val);
1709 #line 333 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
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;
1721 #line 342 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1722 { llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
1726 #line 343 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1727 { llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
1729 case YY_STATE_EOF(INITIAL):
1730 #line 345 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1732 /* Make sure to free the internal buffers for flex when we are
1733 * done reading our input!
1735 yy_delete_buffer(YY_CURRENT_BUFFER);
1741 #line 353 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1742 { /* Ignore whitespace */ }
1746 #line 354 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1747 { return yytext[0]; }
1751 #line 356 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"
1752 YY_FATAL_ERROR( "flex scanner jammed" );
1754 #line 1755 "Lexer.cpp"
1756 case YY_END_OF_BUFFER:
1758 /* Amount of text matched not including the EOB char. */
1759 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1761 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1762 *yy_cp = yy_hold_char;
1763 YY_RESTORE_YY_MORE_OFFSET
1765 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
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.
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;
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
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;
1792 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1794 yy_current_state = yy_get_previous_state();
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).
1805 yy_next_state = yy_try_NUL_trans( yy_current_state );
1807 yy_bp = yytext_ptr + YY_MORE_ADJ;
1809 if ( yy_next_state )
1811 /* Consume the NUL. */
1812 yy_cp = ++yy_c_buf_p;
1813 yy_current_state = yy_next_state;
1820 goto yy_find_action;
1824 else switch ( yy_get_next_buffer() )
1826 case EOB_ACT_END_OF_FILE:
1828 yy_did_buffer_switch_on_eof = 0;
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.
1841 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1843 yy_act = YY_STATE_EOF(YY_START);
1849 if ( ! yy_did_buffer_switch_on_eof )
1855 case EOB_ACT_CONTINUE_SCAN:
1857 yytext_ptr + yy_amount_of_matched_text;
1859 yy_current_state = yy_get_previous_state();
1862 yy_bp = yytext_ptr + YY_MORE_ADJ;
1865 case EOB_ACT_LAST_MATCH:
1867 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1869 yy_current_state = yy_get_previous_state();
1872 yy_bp = yytext_ptr + YY_MORE_ADJ;
1873 goto yy_find_action;
1880 "fatal flex scanner internal error--no action found" );
1881 } /* end of action switch */
1882 } /* end of scanning one token */
1883 } /* end of yylex */
1886 /* yy_get_next_buffer - try to read in a new buffer
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
1894 static int yy_get_next_buffer()
1896 register char *dest = yy_current_buffer->yy_ch_buf;
1897 register char *source = yytext_ptr;
1898 register int number_to_move, i;
1901 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1903 "fatal flex scanner internal error--end of buffer missed" );
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 )
1909 /* We matched a single character, the EOB, so
1910 * treat this as a final EOF.
1912 return EOB_ACT_END_OF_FILE;
1917 /* We matched some text prior to the EOB, first
1920 return EOB_ACT_LAST_MATCH;
1924 /* Try to read more data. */
1926 /* First move last chars to start of buffer. */
1927 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1929 for ( i = 0; i < number_to_move; ++i )
1930 *(dest++) = *(source++);
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,
1936 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1941 yy_current_buffer->yy_buf_size - number_to_move - 1;
1943 while ( num_to_read <= 0 )
1944 { /* Not enough room in the buffer - grow it. */
1945 #ifdef YY_USES_REJECT
1947 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1950 /* just a shorter name for the current buffer */
1951 YY_BUFFER_STATE b = yy_current_buffer;
1953 int yy_c_buf_p_offset =
1954 (int) (yy_c_buf_p - b->yy_ch_buf);
1956 if ( b->yy_is_our_buffer )
1958 int new_size = b->yy_buf_size * 2;
1960 if ( new_size <= 0 )
1961 b->yy_buf_size += b->yy_buf_size / 8;
1963 b->yy_buf_size *= 2;
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 );
1971 /* Can't grow it, we don't own it. */
1974 if ( ! b->yy_ch_buf )
1976 "fatal error - scanner input buffer overflow" );
1978 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1980 num_to_read = yy_current_buffer->yy_buf_size -
1985 if ( num_to_read > YY_READ_BUF_SIZE )
1986 num_to_read = YY_READ_BUF_SIZE;
1988 /* Read in more data. */
1989 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1990 yy_n_chars, num_to_read );
1992 yy_current_buffer->yy_n_chars = yy_n_chars;
1995 if ( yy_n_chars == 0 )
1997 if ( number_to_move == YY_MORE_ADJ )
1999 ret_val = EOB_ACT_END_OF_FILE;
2005 ret_val = EOB_ACT_LAST_MATCH;
2006 yy_current_buffer->yy_buffer_status =
2007 YY_BUFFER_EOF_PENDING;
2012 ret_val = EOB_ACT_CONTINUE_SCAN;
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;
2018 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2024 /* yy_get_previous_state - get the state just before the EOB char was reached */
2026 static yy_state_type yy_get_previous_state()
2028 register yy_state_type yy_current_state;
2029 register char *yy_cp;
2031 yy_current_state = yy_start;
2032 yy_state_ptr = yy_state_buf;
2033 *yy_state_ptr++ = yy_current_state;
2035 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
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 )
2040 yy_current_state = (int) yy_def[yy_current_state];
2041 if ( yy_current_state >= 454 )
2042 yy_c = yy_meta[(unsigned int) yy_c];
2044 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2045 *yy_state_ptr++ = yy_current_state;
2048 return yy_current_state;
2052 /* yy_try_NUL_trans - try to make a transition on the NUL character
2055 * next_state = yy_try_NUL_trans( current_state );
2058 #ifdef YY_USE_PROTOS
2059 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2061 static yy_state_type yy_try_NUL_trans( yy_current_state )
2062 yy_state_type yy_current_state;
2065 register int yy_is_jam;
2067 register YY_CHAR yy_c = 1;
2068 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2070 yy_current_state = (int) yy_def[yy_current_state];
2071 if ( yy_current_state >= 454 )
2072 yy_c = yy_meta[(unsigned int) yy_c];
2074 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2075 yy_is_jam = (yy_current_state == 453);
2077 *yy_state_ptr++ = yy_current_state;
2079 return yy_is_jam ? 0 : yy_current_state;
2084 #ifdef YY_USE_PROTOS
2085 static inline void yyunput( int c, register char *yy_bp )
2087 static inline void yyunput( c, yy_bp )
2089 register char *yy_bp;
2092 register char *yy_cp = yy_c_buf_p;
2094 /* undo effects of setting up yytext */
2095 *yy_cp = yy_hold_char;
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];
2106 while ( source > yy_current_buffer->yy_ch_buf )
2107 *--dest = *--source;
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;
2114 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2115 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2118 *--yy_cp = (char) c;
2124 yy_hold_char = *yy_cp;
2127 #endif /* ifndef YY_NO_UNPUT */
2131 static int yyinput()
2138 *yy_c_buf_p = yy_hold_char;
2140 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
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.
2146 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2147 /* This was really a NUL. */
2151 { /* need more input */
2152 int offset = yy_c_buf_p - yytext_ptr;
2155 switch ( yy_get_next_buffer() )
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.
2168 /* Reset buffer status. */
2173 case EOB_ACT_END_OF_FILE:
2178 if ( ! yy_did_buffer_switch_on_eof )
2187 case EOB_ACT_CONTINUE_SCAN:
2188 yy_c_buf_p = yytext_ptr + offset;
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;
2205 #ifdef YY_USE_PROTOS
2206 void yyrestart( FILE *input_file )
2208 void yyrestart( input_file )
2212 if ( ! yy_current_buffer )
2213 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2215 yy_init_buffer( yy_current_buffer, input_file );
2216 yy_load_buffer_state();
2220 #ifdef YY_USE_PROTOS
2221 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2223 void yy_switch_to_buffer( new_buffer )
2224 YY_BUFFER_STATE new_buffer;
2227 if ( yy_current_buffer == new_buffer )
2230 if ( yy_current_buffer )
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;
2238 yy_current_buffer = new_buffer;
2239 yy_load_buffer_state();
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.
2246 yy_did_buffer_switch_on_eof = 1;
2250 #ifdef YY_USE_PROTOS
2251 void yy_load_buffer_state( void )
2253 void yy_load_buffer_state()
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;
2263 #ifdef YY_USE_PROTOS
2264 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2266 YY_BUFFER_STATE yy_create_buffer( file, size )
2273 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2275 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2277 b->yy_buf_size = size;
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.
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()" );
2286 b->yy_is_our_buffer = 1;
2288 yy_init_buffer( b, file );
2294 #ifdef YY_USE_PROTOS
2295 void yy_delete_buffer( YY_BUFFER_STATE b )
2297 void yy_delete_buffer( b )
2304 if ( b == yy_current_buffer )
2305 yy_current_buffer = (YY_BUFFER_STATE) 0;
2307 if ( b->yy_is_our_buffer )
2308 yy_flex_free( (void *) b->yy_ch_buf );
2310 yy_flex_free( (void *) b );
2314 #ifndef YY_ALWAYS_INTERACTIVE
2315 #ifndef YY_NEVER_INTERACTIVE
2316 extern int isatty YY_PROTO(( int ));
2320 #ifdef YY_USE_PROTOS
2321 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2323 void yy_init_buffer( b, file )
2330 yy_flush_buffer( b );
2332 b->yy_input_file = file;
2333 b->yy_fill_buffer = 1;
2335 #if YY_ALWAYS_INTERACTIVE
2336 b->yy_is_interactive = 1;
2338 #if YY_NEVER_INTERACTIVE
2339 b->yy_is_interactive = 0;
2341 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2347 #ifdef YY_USE_PROTOS
2348 void yy_flush_buffer( YY_BUFFER_STATE b )
2350 void yy_flush_buffer( b )
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.
2364 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2365 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2367 b->yy_buf_pos = &b->yy_ch_buf[0];
2370 b->yy_buffer_status = YY_BUFFER_NEW;
2372 if ( b == yy_current_buffer )
2373 yy_load_buffer_state();
2377 #ifndef YY_NO_SCAN_BUFFER
2378 #ifdef YY_USE_PROTOS
2379 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2381 YY_BUFFER_STATE yy_scan_buffer( base, size )
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. */
2394 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2396 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
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;
2405 b->yy_fill_buffer = 0;
2406 b->yy_buffer_status = YY_BUFFER_NEW;
2408 yy_switch_to_buffer( b );
2415 #ifndef YY_NO_SCAN_STRING
2416 #ifdef YY_USE_PROTOS
2417 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2419 YY_BUFFER_STATE yy_scan_string( yy_str )
2420 yyconst char *yy_str;
2424 for ( len = 0; yy_str[len]; ++len )
2427 return yy_scan_bytes( yy_str, len );
2432 #ifndef YY_NO_SCAN_BYTES
2433 #ifdef YY_USE_PROTOS
2434 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2436 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2437 yyconst char *bytes;
2446 /* Get memory for full buffer, including space for trailing EOB's. */
2448 buf = (char *) yy_flex_alloc( n );
2450 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2452 for ( i = 0; i < len; ++i )
2455 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2457 b = yy_scan_buffer( buf, n );
2459 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2461 /* It's okay to grow etc. this buffer, and we should throw it
2462 * away when we're done.
2464 b->yy_is_our_buffer = 1;
2471 #ifndef YY_NO_PUSH_STATE
2472 #ifdef YY_USE_PROTOS
2473 static void yy_push_state( int new_state )
2475 static void yy_push_state( new_state )
2479 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2483 yy_start_stack_depth += YY_START_STACK_INCR;
2484 new_size = yy_start_stack_depth * sizeof( int );
2486 if ( ! yy_start_stack )
2487 yy_start_stack = (int *) yy_flex_alloc( new_size );
2490 yy_start_stack = (int *) yy_flex_realloc(
2491 (void *) yy_start_stack, new_size );
2493 if ( ! yy_start_stack )
2495 "out of memory expanding start-condition stack" );
2498 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2505 #ifndef YY_NO_POP_STATE
2506 static void yy_pop_state()
2508 if ( --yy_start_stack_ptr < 0 )
2509 YY_FATAL_ERROR( "start-condition stack underflow" );
2511 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2516 #ifndef YY_NO_TOP_STATE
2517 static int yy_top_state()
2519 return yy_start_stack[yy_start_stack_ptr - 1];
2523 #ifndef YY_EXIT_FAILURE
2524 #define YY_EXIT_FAILURE 2
2527 #ifdef YY_USE_PROTOS
2528 static void yy_fatal_error( yyconst char msg[] )
2530 static void yy_fatal_error( msg )
2534 (void) fprintf( stderr, "%s\n", msg );
2535 exit( YY_EXIT_FAILURE );
2540 /* Redefine yyless() so it works in section 3 code. */
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'; \
2556 /* Internal utility routines. */
2559 #ifdef YY_USE_PROTOS
2560 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2562 static void yy_flex_strncpy( s1, s2, n )
2569 for ( i = 0; i < n; ++i )
2574 #ifdef YY_NEED_STRLEN
2575 #ifdef YY_USE_PROTOS
2576 static int yy_flex_strlen( yyconst char *s )
2578 static int yy_flex_strlen( s )
2583 for ( n = 0; s[n]; ++n )
2591 #ifdef YY_USE_PROTOS
2592 static void *yy_flex_alloc( yy_size_t size )
2594 static void *yy_flex_alloc( size )
2598 return (void *) malloc( size );
2601 #ifdef YY_USE_PROTOS
2602 static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
2604 static inline void *yy_flex_realloc( ptr, size )
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.
2616 return (void *) realloc( (char *) ptr, size );
2619 #ifdef YY_USE_PROTOS
2620 static void yy_flex_free( void *ptr )
2622 static void yy_flex_free( ptr )
2636 #line 356 "/Volumes/Projects/cvs/llvm/lib/AsmParser/Lexer.l"