blob: 413e39c4de2612064ec84494d2ad98624dd36033 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001#define yy_create_buffer llvmAsm_create_buffer
2#define yy_delete_buffer llvmAsm_delete_buffer
3#define yy_scan_buffer llvmAsm_scan_buffer
4#define yy_scan_string llvmAsm_scan_string
5#define yy_scan_bytes llvmAsm_scan_bytes
6#define yy_flex_debug llvmAsm_flex_debug
7#define yy_init_buffer llvmAsm_init_buffer
8#define yy_flush_buffer llvmAsm_flush_buffer
9#define yy_load_buffer_state llvmAsm_load_buffer_state
10#define yy_switch_to_buffer llvmAsm_switch_to_buffer
11#define yyin llvmAsmin
12#define yyleng llvmAsmleng
13#define yylex llvmAsmlex
14#define yyout llvmAsmout
15#define yyrestart llvmAsmrestart
16#define yytext llvmAsmtext
17#define yylineno llvmAsmlineno
18
19#line 20 "Lexer.cpp"
20/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header: /cvs/root/flex/flex/skel.c,v 1.2 2004/05/07 00:28:17 jkh Exp $
24 */
25
26#define FLEX_SCANNER
27#define YY_FLEX_MAJOR_VERSION 2
28#define YY_FLEX_MINOR_VERSION 5
29
30#include <stdio.h>
31
32
33/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34#ifdef c_plusplus
35#ifndef __cplusplus
36#define __cplusplus
37#endif
38#endif
39
40
41#ifdef __cplusplus
42
43#include <stdlib.h>
44#include <unistd.h>
45
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else /* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif /* __STDC__ */
60#endif /* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE (16384*64)
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
130 *
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144 do \
145 { \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151 } \
152 while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164 {
165 FILE *yy_input_file;
166
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
169
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
172 */
173 yy_size_t yy_buf_size;
174
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
177 */
178 int yy_n_chars;
179
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
183 */
184 int yy_is_our_buffer;
185
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
190 */
191 int yy_is_interactive;
192
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
196 */
197 int yy_at_bol;
198
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
201 */
202 int yy_fill_buffer;
203
204 int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
212 *
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
216 */
217#define YY_BUFFER_EOF_PENDING 2
218 };
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars; /* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1; /* whether we need to initialize */
240static int yy_start = 0; /* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268 { \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
272 }
273
274#define yy_set_bol(at_bol) \
275 { \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
279 }
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define YY_USES_REJECT
285
286#define yywrap() 1
287#define YY_SKIP_YYWRAP
288typedef unsigned char YY_CHAR;
289FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
290typedef int yy_state_type;
291extern int yylineno;
292int yylineno = 1;
293extern char *yytext;
294#define yytext_ptr yytext
295
296static yy_state_type yy_get_previous_state YY_PROTO(( void ));
297static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
298static int yy_get_next_buffer YY_PROTO(( void ));
299static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
300
301/* Done after the current pattern has been matched and before the
302 * corresponding action - sets up yytext.
303 */
304#define YY_DO_BEFORE_ACTION \
305 yytext_ptr = yy_bp; \
306 yyleng = (int) (yy_cp - yy_bp); \
307 yy_hold_char = *yy_cp; \
308 *yy_cp = '\0'; \
309 yy_c_buf_p = yy_cp;
310
311#define YY_NUM_RULES 140
312#define YY_END_OF_BUFFER 141
313static yyconst short int yy_acclist[221] =
314 { 0,
315 141, 139, 140, 138, 139, 140, 138, 140, 139, 140,
316 139, 140, 139, 140, 139, 140, 139, 140, 139, 140,
317 131, 139, 140, 131, 139, 140, 1, 139, 140, 139,
318 140, 139, 140, 139, 140, 139, 140, 139, 140, 139,
319 140, 139, 140, 139, 140, 139, 140, 139, 140, 139,
320 140, 139, 140, 139, 140, 139, 140, 139, 140, 139,
321 140, 139, 140, 139, 140, 139, 140, 139, 140, 139,
322 140, 139, 140, 139, 140, 128, 126, 124, 134, 132,
323 136, 131, 1, 125, 135, 110, 38, 73, 55, 74,
324 69, 25, 128, 130, 124, 136, 22, 136, 137, 129,
325
326 125, 56, 68, 36, 39, 3, 58, 83, 88, 86,
327 87, 85, 84, 89, 93, 109, 78, 76, 65, 77,
328 75, 57, 91, 82, 80, 81, 79, 92, 90, 70,
329 127, 136, 136, 67, 94, 72, 61, 117, 64, 71,
330 118, 66, 24, 133, 60, 97, 63, 45, 26, 4,
331 53, 59, 62, 49, 12, 96, 136, 34, 32, 2,
332 5, 50, 99, 44, 52, 119, 95, 23, 116, 41,
333 7, 51, 40, 103, 102, 8, 16, 112, 115, 35,
334 54, 107, 101, 111, 27, 28, 100, 113, 108, 106,
335 6, 29, 98, 48, 33, 9, 19, 10, 104, 11,
336
337 47, 46, 105, 31, 13, 15, 14, 17, 30, 37,
338 18, 114, 20, 120, 122, 123, 42, 121, 43, 21
339 } ;
340
341static yyconst short int yy_accept[569] =
342 { 0,
343 1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
344 17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
345 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
346 60, 62, 64, 66, 68, 70, 72, 74, 76, 76,
347 77, 77, 78, 78, 79, 80, 80, 81, 81, 82,
348 83, 83, 84, 84, 85, 86, 86, 86, 86, 86,
349 86, 86, 86, 87, 87, 88, 88, 88, 88, 88,
350 88, 88, 89, 89, 89, 89, 89, 89, 89, 89,
351 89, 89, 89, 90, 90, 90, 90, 90, 90, 90,
352 90, 90, 90, 91, 91, 91, 91, 91, 91, 91,
353
354 91, 92, 92, 92, 92, 92, 92, 92, 92, 92,
355 92, 92, 92, 92, 92, 92, 92, 92, 92, 93,
356 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
357 93, 93, 93, 93, 93, 94, 94, 95, 96, 97,
358 98, 99, 99, 100, 100, 101, 102, 103, 103, 103,
359 104, 104, 104, 105, 105, 105, 105, 106, 106, 106,
360 106, 106, 106, 106, 106, 106, 107, 107, 107, 107,
361 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
362 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
363 108, 108, 108, 108, 108, 109, 110, 111, 112, 113,
364
365 114, 114, 115, 116, 116, 116, 117, 117, 117, 117,
366 117, 117, 118, 119, 120, 120, 120, 120, 121, 122,
367 122, 122, 123, 123, 123, 123, 123, 123, 123, 123,
368 123, 124, 125, 126, 126, 127, 128, 128, 129, 130,
369 130, 130, 130, 130, 130, 130, 130, 130, 131, 131,
370 131, 132, 133, 133, 133, 133, 134, 134, 134, 134,
371 134, 135, 135, 135, 136, 136, 136, 136, 136, 136,
372 136, 136, 136, 136, 136, 136, 136, 136, 137, 138,
373 138, 138, 138, 138, 139, 140, 140, 140, 140, 141,
374 141, 141, 141, 141, 141, 141, 141, 142, 143, 143,
375
376 143, 143, 143, 143, 144, 144, 144, 144, 145, 146,
377 146, 146, 147, 147, 147, 147, 148, 149, 149, 149,
378 150, 150, 150, 150, 151, 151, 152, 153, 153, 153,
379 153, 153, 154, 154, 155, 155, 156, 156, 156, 157,
380 158, 159, 160, 160, 160, 161, 161, 161, 161, 161,
381 161, 161, 161, 161, 161, 161, 161, 161, 162, 162,
382 163, 164, 164, 164, 164, 164, 164, 164, 165, 165,
383 165, 165, 165, 166, 166, 166, 166, 166, 166, 166,
384 166, 166, 166, 166, 166, 166, 166, 166, 167, 167,
385 167, 167, 167, 168, 168, 169, 169, 169, 169, 169,
386
387 169, 169, 169, 170, 170, 170, 171, 171, 171, 171,
388 172, 172, 172, 172, 173, 173, 173, 174, 175, 176,
389 176, 176, 177, 178, 178, 178, 178, 179, 179, 180,
390 181, 181, 181, 181, 182, 182, 182, 182, 183, 183,
391 183, 184, 185, 186, 186, 187, 188, 188, 189, 190,
392 190, 190, 190, 190, 190, 191, 191, 191, 192, 193,
393 193, 193, 193, 193, 193, 194, 194, 194, 194, 194,
394 194, 195, 195, 195, 195, 195, 196, 196, 196, 196,
395 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
396 197, 198, 198, 198, 198, 199, 200, 201, 202, 203,
397
398 203, 204, 204, 204, 204, 204, 205, 205, 205, 205,
399 206, 206, 207, 208, 208, 208, 208, 208, 209, 209,
400 209, 209, 209, 209, 209, 209, 210, 210, 210, 210,
401 210, 210, 211, 211, 211, 211, 211, 211, 212, 212,
402 212, 212, 212, 212, 213, 213, 213, 213, 213, 213,
403 213, 213, 214, 214, 214, 214, 214, 215, 216, 217,
404 217, 218, 218, 219, 220, 220, 221, 221
405 } ;
406
407static yyconst int yy_ec[256] =
408 { 0,
409 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
410 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
412 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
413 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
414 11, 11, 11, 12, 11, 13, 11, 14, 15, 1,
415 1, 1, 1, 16, 17, 17, 17, 17, 18, 17,
416 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
417 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
418 1, 1, 1, 1, 19, 1, 20, 21, 22, 23,
419
420 24, 25, 26, 27, 28, 5, 29, 30, 31, 32,
421 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
422 43, 44, 1, 1, 1, 1, 1, 1, 1, 1,
423 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,
429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430
431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
436 1, 1, 1, 1, 1
437 } ;
438
439static yyconst int yy_meta[45] =
440 { 0,
441 1, 1, 2, 3, 4, 1, 1, 4, 4, 4,
442 4, 4, 4, 5, 1, 1, 4, 4, 4, 4,
443 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
444 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
445 4, 4, 4, 4
446 } ;
447
448static yyconst short int yy_base[577] =
449 { 0,
450 0, 0, 1236, 1237, 1237, 1237, 1231, 1220, 41, 36,
451 45, 51, 57, 63, 0, 74, 66, 69, 68, 88,
452 78, 108, 93, 36, 135, 123, 119, 101, 154, 127,
453 67, 181, 139, 213, 141, 80, 156, 92, 1229, 1237,
454 1218, 1237, 1227, 0, 186, 203, 219, 100, 240, 256,
455 261, 0, 1226, 0, 190, 112, 157, 113, 159, 150,
456 136, 81, 1215, 49, 110, 162, 196, 266, 210, 207,
457 212, 1214, 204, 262, 224, 233, 192, 263, 279, 275,
458 230, 234, 284, 276, 288, 290, 97, 242, 291, 292,
459 294, 300, 1213, 295, 302, 298, 305, 313, 296, 321,
460
461 322, 324, 307, 325, 309, 328, 330, 332, 335, 336,
462 334, 339, 341, 346, 350, 353, 354, 342, 1212, 355,
463 362, 370, 366, 371, 372, 373, 379, 375, 386, 378,
464 393, 402, 390, 403, 1211, 1220, 1237, 0, 411, 1209,
465 436, 454, 0, 1218, 1237, 0, 1207, 405, 404, 1206,
466 414, 416, 1205, 413, 418, 428, 1204, 420, 419, 437,
467 439, 445, 441, 456, 458, 1203, 461, 449, 460, 462,
468 463, 467, 464, 468, 469, 475, 474, 488, 476, 491,
469 493, 494, 480, 495, 498, 500, 502, 506, 507, 1202,
470 510, 511, 512, 515, 1201, 1200, 1199, 1198, 1197, 1196,
471
472 508, 1195, 1194, 514, 516, 1193, 545, 519, 523, 517,
473 533, 1192, 1191, 1190, 525, 550, 520, 1189, 1188, 546,
474 537, 1187, 534, 561, 562, 565, 564, 568, 566, 567,
475 1186, 1185, 1184, 569, 1183, 1182, 571, 1181, 1180, 572,
476 573, 579, 583, 585, 591, 580, 598, 1179, 590, 592,
477 1237, 603, 621, 625, 629, 634, 612, 636, 422, 637,
478 1178, 638, 604, 1177, 639, 640, 641, 605, 642, 644,
479 643, 645, 649, 646, 653, 651, 666, 1176, 1175, 648,
480 652, 650, 663, 1174, 1173, 667, 678, 669, 1172, 670,
481 677, 680, 681, 686, 687, 685, 1171, 1170, 689, 690,
482
483 691, 692, 693, 1169, 694, 697, 695, 0, 1168, 696,
484 709, 1167, 711, 713, 715, 1166, 1165, 718, 721, 1164,
485 724, 725, 727, 1163, 730, 1162, 1161, 733, 735, 736,
486 732, 1160, 737, 1159, 739, 1158, 741, 698, 1157, 757,
487 1156, 1155, 745, 740, 1154, 747, 757, 760, 761, 758,
488 762, 528, 748, 769, 771, 773, 774, 1153, 775, 1152,
489 1151, 776, 778, 777, 784, 785, 779, 1150, 786, 787,
490 788, 793, 1149, 796, 798, 799, 807, 800, 802, 811,
491 804, 815, 817, 818, 819, 820, 823, 1148, 824, 822,
492 830, 828, 1147, 827, 1146, 826, 832, 833, 840, 844,
493
494 848, 849, 1145, 851, 852, 1144, 853, 855, 856, 1143,
495 857, 858, 859, 1142, 863, 861, 1141, 1140, 1139, 862,
496 864, 1138, 1137, 873, 882, 874, 1136, 879, 1135, 1134,
497 886, 875, 889, 1133, 890, 892, 893, 1132, 891, 894,
498 1131, 1130, 1129, 895, 1128, 1127, 899, 1126, 1125, 902,
499 896, 904, 903, 906, 1124, 908, 915, 1123, 1122, 916,
500 920, 921, 923, 925, 1106, 926, 927, 928, 929, 930,
501 1094, 931, 937, 945, 933, 1093, 941, 950, 947, 952,
502 954, 953, 961, 956, 959, 1092, 962, 965, 966, 968,
503 1089, 970, 973, 972, 1088, 1087, 1086, 1085, 1084, 974,
504
505 1083, 975, 976, 979, 981, 1082, 992, 993, 994, 1081,
506 995, 1075, 1074, 996, 997, 1001, 1003, 1073, 1004, 1005,
507 1006, 1010, 1009, 1011, 1016, 922, 1013, 1017, 1018, 1021,
508 1023, 860, 1024, 1032, 1033, 1035, 1036, 608, 1040, 1037,
509 1039, 1041, 1043, 606, 1046, 1045, 1044, 1048, 1054, 1055,
510 1056, 478, 1063, 1064, 1065, 1067, 477, 377, 374, 1069,
511 246, 1070, 245, 169, 1068, 165, 1237, 1109, 1111, 1114,
512 1118, 1121, 1125, 58, 1130, 57
513 } ;
514
515static yyconst short int yy_def[577] =
516 { 0,
517 567, 1, 567, 567, 567, 567, 568, 569, 570, 567,
518 569, 569, 569, 569, 571, 572, 569, 569, 569, 569,
519 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
520 569, 569, 569, 569, 569, 569, 569, 569, 568, 567,
521 569, 567, 573, 574, 567, 567, 569, 569, 569, 569,
522 569, 571, 575, 576, 567, 569, 569, 569, 569, 569,
523 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
524 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
525 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
526 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
527
528 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
529 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
530 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
531 569, 569, 569, 569, 567, 573, 567, 574, 567, 569,
532 569, 569, 51, 575, 567, 576, 569, 569, 569, 569,
533 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
534 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
535 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
536 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
537 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
538
539 569, 569, 569, 569, 569, 569, 51, 569, 569, 569,
540 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
541 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
542 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
543 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
544 567, 567, 567, 567, 569, 569, 569, 569, 569, 569,
545 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
546 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
547 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
548 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
549
550 569, 569, 569, 569, 569, 569, 569, 207, 569, 569,
551 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
552 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
553 569, 569, 569, 569, 569, 569, 569, 569, 569, 567,
554 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
555 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
556 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
557 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
558 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
559 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
560
561 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
562 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
563 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
564 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
565 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
566 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
567 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
568 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
569 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
570 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
571
572 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
573 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
574 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
575 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
576 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
577 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
578 569, 569, 569, 569, 569, 569, 0, 567, 567, 567,
579 567, 567, 567, 567, 567, 567
580 } ;
581
582static yyconst short int yy_nxt[1282] =
583 { 0,
584 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
585 14, 14, 14, 4, 15, 16, 8, 8, 8, 17,
586 18, 19, 20, 21, 22, 23, 24, 25, 8, 26,
587 27, 28, 29, 30, 8, 31, 32, 33, 34, 35,
588 36, 37, 8, 38, 43, 46, 46, 46, 46, 42,
589 45, 45, 45, 45, 47, 47, 47, 47, 42, 48,
590 146, 138, 42, 82, 42, 49, 50, 50, 50, 50,
591 42, 49, 50, 50, 50, 50, 42, 53, 156, 42,
592 42, 42, 42, 55, 55, 55, 55, 64, 56, 65,
593 105, 42, 61, 42, 42, 57, 62, 58, 51, 59,
594
595 66, 42, 60, 131, 63, 42, 42, 67, 140, 71,
596 42, 68, 72, 42, 42, 134, 80, 69, 155, 73,
597 70, 42, 81, 42, 93, 42, 42, 74, 185, 75,
598 76, 157, 42, 94, 147, 150, 42, 77, 90, 95,
599 42, 78, 86, 79, 83, 83, 83, 83, 42, 42,
600 87, 91, 42, 102, 42, 88, 84, 92, 117, 89,
601 129, 154, 103, 42, 104, 118, 85, 42, 132, 42,
602 42, 119, 42, 130, 120, 42, 152, 96, 42, 97,
603 153, 121, 42, 98, 148, 99, 149, 100, 133, 101,
604 106, 158, 151, 159, 42, 45, 45, 45, 45, 55,
605
606 55, 55, 55, 107, 108, 42, 109, 110, 111, 42,
607 112, 139, 46, 46, 46, 46, 113, 42, 114, 115,
608 42, 116, 106, 42, 172, 42, 42, 49, 47, 47,
609 47, 47, 42, 160, 166, 122, 123, 42, 124, 164,
610 125, 167, 126, 42, 127, 165, 42, 42, 128, 141,
611 141, 141, 141, 42, 170, 42, 178, 142, 42, 42,
612 171, 186, 177, 142, 49, 50, 50, 50, 50, 42,
613 143, 143, 143, 143, 42, 42, 42, 143, 143, 42,
614 143, 143, 143, 143, 143, 143, 173, 161, 42, 42,
615 162, 168, 42, 83, 83, 83, 83, 42, 169, 163,
616
617 174, 42, 175, 42, 42, 42, 179, 42, 42, 42,
618 184, 42, 176, 42, 191, 42, 189, 187, 42, 200,
619 42, 188, 42, 180, 181, 182, 42, 183, 196, 190,
620 192, 194, 195, 193, 42, 42, 198, 42, 42, 204,
621 201, 42, 197, 42, 202, 42, 206, 42, 42, 42,
622 199, 203, 42, 209, 42, 42, 216, 208, 212, 42,
623 205, 210, 218, 42, 220, 214, 42, 42, 42, 207,
624 222, 217, 213, 211, 215, 42, 219, 226, 221, 42,
625 223, 224, 227, 42, 42, 42, 42, 42, 42, 225,
626 42, 42, 42, 228, 232, 229, 235, 230, 242, 42,
627
628 231, 237, 238, 42, 243, 244, 42, 245, 233, 234,
629 236, 239, 246, 247, 240, 42, 42, 42, 42, 241,
630 252, 252, 252, 252, 257, 248, 42, 42, 253, 42,
631 258, 42, 42, 42, 253, 42, 259, 260, 249, 263,
632 262, 42, 265, 343, 250, 141, 141, 141, 141, 42,
633 42, 261, 42, 142, 42, 266, 267, 264, 42, 142,
634 254, 255, 42, 256, 256, 256, 256, 42, 268, 42,
635 270, 42, 269, 42, 42, 42, 42, 42, 273, 271,
636 42, 42, 42, 272, 274, 276, 280, 42, 42, 42,
637 42, 42, 284, 42, 287, 278, 275, 277, 286, 285,
638
639 282, 42, 279, 283, 42, 281, 42, 42, 42, 289,
640 288, 42, 294, 42, 290, 42, 291, 292, 295, 42,
641 42, 42, 297, 42, 42, 42, 296, 42, 42, 42,
642 42, 293, 42, 42, 302, 299, 42, 298, 42, 301,
643 311, 42, 305, 303, 304, 300, 42, 42, 411, 313,
644 42, 306, 315, 307, 308, 308, 308, 308, 309, 42,
645 310, 308, 308, 42, 308, 308, 308, 308, 308, 308,
646 312, 319, 318, 314, 42, 42, 316, 42, 42, 42,
647 42, 42, 42, 317, 42, 42, 42, 321, 322, 326,
648 320, 324, 42, 42, 329, 330, 42, 323, 42, 325,
649
650 331, 328, 333, 42, 42, 42, 327, 334, 336, 332,
651 335, 42, 252, 252, 252, 252, 337, 42, 42, 42,
652 253, 42, 338, 346, 350, 42, 253, 254, 254, 339,
653 340, 340, 340, 340, 340, 340, 340, 340, 256, 256,
654 256, 256, 42, 256, 256, 256, 256, 42, 341, 42,
655 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
656 347, 42, 42, 42, 42, 42, 42, 342, 344, 345,
657 349, 352, 357, 351, 358, 354, 42, 348, 355, 42,
658 42, 356, 42, 42, 353, 360, 362, 359, 363, 361,
659 42, 42, 367, 42, 42, 368, 365, 366, 42, 42,
660
661 42, 364, 42, 42, 42, 42, 42, 42, 42, 42,
662 42, 42, 369, 371, 372, 370, 373, 374, 377, 376,
663 381, 375, 42, 383, 42, 402, 42, 382, 42, 378,
664 384, 42, 380, 379, 42, 385, 386, 42, 42, 387,
665 42, 388, 389, 42, 391, 42, 42, 390, 42, 42,
666 42, 393, 42, 42, 42, 396, 392, 394, 42, 395,
667 42, 42, 404, 397, 403, 400, 340, 340, 340, 340,
668 42, 42, 398, 42, 42, 42, 399, 401, 406, 407,
669 408, 412, 42, 405, 42, 410, 42, 42, 42, 42,
670 42, 42, 42, 409, 414, 416, 417, 42, 42, 42,
671
672 42, 42, 413, 418, 415, 419, 42, 421, 420, 42,
673 423, 42, 42, 42, 422, 42, 427, 42, 425, 429,
674 42, 426, 430, 424, 42, 435, 431, 428, 42, 433,
675 42, 42, 42, 42, 434, 42, 42, 42, 432, 42,
676 42, 42, 436, 42, 440, 42, 42, 447, 439, 437,
677 442, 445, 444, 42, 448, 438, 441, 42, 449, 443,
678 446, 42, 42, 451, 42, 42, 42, 450, 42, 42,
679 42, 42, 42, 42, 42, 42, 42, 42, 454, 458,
680 453, 462, 463, 465, 456, 452, 42, 42, 42, 455,
681 460, 461, 42, 459, 466, 42, 467, 457, 464, 42,
682
683 470, 468, 42, 42, 42, 42, 42, 42, 42, 42,
684 472, 469, 42, 479, 477, 42, 42, 42, 478, 42,
685 473, 42, 471, 475, 476, 480, 483, 474, 42, 42,
686 484, 481, 482, 42, 42, 42, 42, 485, 42, 42,
687 42, 42, 42, 42, 42, 486, 42, 487, 492, 493,
688 42, 488, 491, 497, 42, 489, 494, 495, 42, 499,
689 42, 490, 498, 42, 496, 42, 42, 42, 500, 42,
690 501, 505, 42, 503, 42, 42, 504, 506, 42, 42,
691 502, 42, 508, 42, 510, 42, 42, 42, 42, 42,
692 507, 514, 42, 509, 42, 517, 518, 520, 519, 515,
693
694 511, 522, 512, 513, 516, 42, 42, 42, 42, 42,
695 42, 521, 524, 523, 42, 527, 42, 42, 42, 42,
696 528, 525, 42, 42, 42, 531, 42, 533, 535, 42,
697 42, 42, 526, 530, 42, 537, 42, 42, 529, 534,
698 536, 538, 532, 543, 541, 42, 42, 539, 42, 42,
699 42, 540, 42, 42, 42, 544, 42, 42, 42, 42,
700 542, 42, 545, 548, 546, 547, 554, 42, 42, 42,
701 550, 555, 552, 551, 549, 553, 42, 42, 42, 556,
702 42, 42, 42, 42, 560, 561, 42, 42, 42, 557,
703 564, 559, 558, 565, 42, 42, 42, 42, 42, 42,
704
705 42, 42, 42, 566, 563, 42, 42, 42, 562, 39,
706 39, 39, 39, 39, 41, 41, 44, 44, 52, 42,
707 52, 52, 52, 54, 54, 136, 136, 136, 136, 136,
708 144, 144, 144, 144, 144, 42, 42, 42, 42, 42,
709 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
710 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
711 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
712 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
713 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
714 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
715
716 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
717 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
718 42, 145, 42, 137, 251, 42, 42, 42, 42, 145,
719 137, 42, 135, 42, 40, 567, 3, 567, 567, 567,
720 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
721 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
722 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
723 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
724 567
725 } ;
726
727static yyconst short int yy_chk[1282] =
728 { 0,
729 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
730 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
733 1, 1, 1, 1, 9, 10, 10, 10, 10, 24,
734 9, 9, 9, 9, 11, 11, 11, 11, 11, 12,
735 576, 574, 64, 24, 12, 13, 13, 13, 13, 13,
736 13, 14, 14, 14, 14, 14, 14, 16, 64, 17,
737 31, 19, 18, 16, 16, 16, 16, 19, 17, 19,
738 31, 21, 18, 36, 62, 17, 18, 17, 13, 17,
739
740 19, 20, 17, 36, 18, 38, 23, 20, 48, 21,
741 87, 20, 21, 48, 28, 38, 23, 20, 62, 21,
742 20, 22, 23, 65, 28, 56, 58, 22, 87, 22,
743 22, 65, 27, 28, 56, 58, 26, 22, 27, 28,
744 30, 22, 26, 22, 25, 25, 25, 25, 25, 61,
745 26, 27, 33, 30, 35, 26, 25, 27, 33, 26,
746 35, 61, 30, 60, 30, 33, 25, 29, 37, 37,
747 57, 33, 59, 35, 33, 66, 60, 29, 566, 29,
748 60, 33, 564, 29, 57, 29, 57, 29, 37, 29,
749 32, 66, 59, 66, 32, 45, 45, 45, 45, 55,
750
751 55, 55, 55, 32, 32, 77, 32, 32, 32, 67,
752 32, 46, 46, 46, 46, 46, 32, 73, 32, 32,
753 70, 32, 34, 69, 77, 71, 34, 47, 47, 47,
754 47, 47, 47, 67, 71, 34, 34, 75, 34, 69,
755 34, 73, 34, 81, 34, 70, 76, 82, 34, 49,
756 49, 49, 49, 49, 75, 88, 82, 49, 563, 561,
757 76, 88, 81, 49, 50, 50, 50, 50, 50, 50,
758 51, 51, 51, 51, 51, 74, 78, 51, 51, 68,
759 51, 51, 51, 51, 51, 51, 78, 68, 80, 84,
760 68, 74, 79, 83, 83, 83, 83, 83, 74, 68,
761
762 78, 85, 79, 86, 89, 90, 84, 91, 94, 99,
763 86, 96, 80, 92, 94, 95, 91, 89, 97, 99,
764 103, 90, 105, 85, 85, 85, 98, 85, 97, 92,
765 94, 95, 96, 94, 100, 101, 98, 102, 104, 103,
766 100, 106, 97, 107, 101, 108, 105, 111, 109, 110,
767 98, 102, 112, 108, 113, 118, 111, 107, 109, 114,
768 104, 108, 112, 115, 113, 110, 116, 117, 120, 106,
769 115, 111, 109, 108, 110, 121, 112, 118, 114, 123,
770 116, 117, 120, 122, 124, 125, 126, 559, 128, 117,
771 558, 130, 127, 120, 124, 121, 126, 122, 128, 129,
772
773 123, 127, 127, 133, 129, 130, 131, 130, 124, 125,
774 126, 127, 131, 132, 127, 132, 134, 149, 148, 127,
775 139, 139, 139, 139, 148, 133, 154, 151, 139, 152,
776 148, 155, 159, 158, 139, 259, 149, 151, 134, 155,
777 154, 156, 158, 259, 134, 141, 141, 141, 141, 141,
778 160, 152, 161, 141, 163, 159, 160, 156, 162, 141,
779 142, 142, 168, 142, 142, 142, 142, 142, 161, 164,
780 163, 165, 162, 169, 167, 170, 171, 173, 165, 164,
781 172, 174, 175, 164, 167, 168, 172, 177, 176, 179,
782 557, 552, 175, 183, 177, 170, 167, 169, 176, 175,
783
784 174, 178, 171, 174, 180, 173, 181, 182, 184, 179,
785 178, 185, 183, 186, 180, 187, 181, 182, 184, 188,
786 189, 201, 186, 191, 192, 193, 185, 204, 194, 205,
787 210, 182, 208, 217, 192, 188, 209, 187, 215, 191,
788 210, 352, 201, 193, 194, 189, 211, 223, 352, 215,
789 221, 204, 217, 205, 207, 207, 207, 207, 208, 220,
790 209, 207, 207, 216, 207, 207, 207, 207, 207, 207,
791 211, 223, 221, 216, 224, 225, 220, 227, 226, 229,
792 230, 228, 234, 220, 237, 240, 241, 225, 226, 229,
793 224, 228, 242, 246, 237, 240, 243, 227, 244, 228,
794
795 241, 234, 243, 249, 245, 250, 230, 244, 246, 242,
796 245, 247, 252, 252, 252, 252, 247, 263, 268, 544,
797 252, 538, 249, 263, 268, 257, 252, 253, 253, 250,
798 253, 253, 253, 253, 254, 254, 254, 254, 255, 255,
799 255, 255, 255, 256, 256, 256, 256, 256, 257, 258,
800 260, 262, 265, 266, 267, 269, 271, 270, 272, 274,
801 265, 280, 273, 282, 276, 281, 275, 258, 260, 262,
802 267, 270, 275, 269, 276, 272, 283, 266, 273, 277,
803 286, 274, 288, 290, 271, 280, 282, 277, 282, 281,
804 291, 287, 288, 292, 293, 290, 286, 287, 296, 294,
805
806 295, 283, 299, 300, 301, 302, 303, 305, 307, 310,
807 306, 338, 291, 293, 294, 292, 295, 296, 301, 300,
808 306, 299, 311, 310, 313, 338, 314, 307, 315, 302,
809 311, 318, 305, 303, 319, 313, 314, 321, 322, 315,
810 323, 318, 319, 325, 322, 331, 328, 321, 329, 330,
811 333, 325, 335, 344, 337, 330, 323, 328, 343, 329,
812 346, 353, 344, 331, 343, 337, 340, 340, 340, 340,
813 347, 350, 333, 348, 349, 351, 335, 337, 347, 348,
814 349, 353, 354, 346, 355, 351, 356, 357, 359, 362,
815 364, 363, 367, 350, 355, 357, 359, 365, 366, 369,
816
817 370, 371, 354, 362, 356, 363, 372, 365, 364, 374,
818 367, 375, 376, 378, 366, 379, 372, 381, 370, 375,
819 377, 371, 376, 369, 380, 381, 377, 374, 382, 379,
820 383, 384, 385, 386, 380, 390, 387, 389, 378, 396,
821 394, 392, 382, 391, 386, 397, 398, 396, 385, 383,
822 389, 392, 391, 399, 397, 384, 387, 400, 398, 390,
823 394, 401, 402, 400, 404, 405, 407, 399, 408, 409,
824 411, 412, 413, 532, 416, 420, 415, 421, 404, 409,
825 402, 415, 415, 420, 407, 401, 424, 426, 432, 405,
826 412, 413, 428, 411, 421, 425, 424, 408, 416, 431,
827
828 428, 425, 433, 435, 439, 436, 437, 440, 444, 451,
829 432, 426, 447, 444, 439, 450, 453, 452, 440, 454,
830 433, 456, 431, 436, 437, 447, 452, 435, 457, 460,
831 453, 450, 451, 461, 462, 526, 463, 454, 464, 466,
832 467, 468, 469, 470, 472, 456, 475, 457, 464, 466,
833 473, 460, 463, 470, 477, 461, 467, 468, 474, 473,
834 479, 462, 472, 478, 469, 480, 482, 481, 474, 484,
835 475, 480, 485, 478, 483, 487, 479, 481, 488, 489,
836 477, 490, 483, 492, 485, 494, 493, 500, 502, 503,
837 482, 490, 504, 484, 505, 494, 500, 503, 502, 492,
838
839 487, 505, 488, 489, 493, 507, 508, 509, 511, 514,
840 515, 504, 508, 507, 516, 514, 517, 519, 520, 521,
841 515, 509, 523, 522, 524, 519, 527, 521, 523, 525,
842 528, 529, 511, 517, 530, 525, 531, 533, 516, 522,
843 524, 527, 520, 533, 530, 534, 535, 528, 536, 537,
844 540, 529, 541, 539, 542, 534, 543, 547, 546, 545,
845 531, 548, 535, 539, 536, 537, 546, 549, 550, 551,
846 541, 547, 543, 542, 540, 545, 553, 554, 555, 548,
847 556, 565, 560, 562, 553, 554, 518, 513, 512, 549,
848 560, 551, 550, 562, 510, 506, 501, 499, 498, 497,
849
850 496, 495, 491, 565, 556, 486, 476, 471, 555, 568,
851 568, 568, 568, 568, 569, 569, 570, 570, 571, 465,
852 571, 571, 571, 572, 572, 573, 573, 573, 573, 573,
853 575, 575, 575, 575, 575, 459, 458, 455, 449, 448,
854 446, 445, 443, 442, 441, 438, 434, 430, 429, 427,
855 423, 422, 419, 418, 417, 414, 410, 406, 403, 395,
856 393, 388, 373, 368, 361, 360, 358, 345, 342, 341,
857 339, 336, 334, 332, 327, 326, 324, 320, 317, 316,
858 312, 309, 304, 298, 297, 289, 285, 284, 279, 278,
859 264, 261, 248, 239, 238, 236, 235, 233, 232, 231,
860
861 222, 219, 218, 214, 213, 212, 206, 203, 202, 200,
862 199, 198, 197, 196, 195, 190, 166, 157, 153, 150,
863 147, 144, 140, 136, 135, 119, 93, 72, 63, 53,
864 43, 41, 39, 8, 7, 3, 567, 567, 567, 567,
865 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
866 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
867 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
868 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
869 567
870 } ;
871
872static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
873static char *yy_full_match;
874static int yy_lp;
875#define REJECT \
876{ \
877*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
878yy_cp = yy_full_match; /* restore poss. backed-over text */ \
879++yy_lp; \
880goto find_rule; \
881}
882#define yymore() yymore_used_but_not_detected
883#define YY_MORE_ADJ 0
884#define YY_RESTORE_YY_MORE_OFFSET
885char *yytext;
886#line 1 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
887#define INITIAL 0
888/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
889//
890// The LLVM Compiler Infrastructure
891//
892// This file was developed by the LLVM research group and is distributed under
893// the University of Illinois Open Source License. See LICENSE.TXT for details.
894//
895//===----------------------------------------------------------------------===//
896//
897// This file implements the flex scanner for LLVM assembly languages files.
898//
899//===----------------------------------------------------------------------===*/
900#define YY_NEVER_INTERACTIVE 1
901#line 28 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
902#include "ParserInternals.h"
903#include "llvm/Module.h"
904#include "llvm/Support/MathExtras.h"
905#include <list>
906#include "llvmAsmParser.h"
907#include <cctype>
908#include <cstdlib>
909
910void set_scan_file(FILE * F){
911 yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
912}
913void set_scan_string (const char * str) {
914 yy_scan_string (str);
915}
916
917// Construct a token value for a non-obsolete token
918#define RET_TOK(type, Enum, sym) \
919 llvmAsmlval.type = Instruction::Enum; \
920 return sym
921
922// Construct a token value for an obsolete token
923#define RET_TY(CTYPE, SYM) \
924 llvmAsmlval.PrimType = CTYPE;\
925 return SYM
926
927namespace llvm {
928
929// TODO: All of the static identifiers are figured out by the lexer,
930// these should be hashed to reduce the lexer size
931
932
933// atoull - Convert an ascii string of decimal digits into the unsigned long
934// long representation... this does not have to do input error checking,
935// because we know that the input will be matched by a suitable regex...
936//
937static uint64_t atoull(const char *Buffer) {
938 uint64_t Result = 0;
939 for (; *Buffer; Buffer++) {
940 uint64_t OldRes = Result;
941 Result *= 10;
942 Result += *Buffer-'0';
943 if (Result < OldRes) // Uh, oh, overflow detected!!!
944 GenerateError("constant bigger than 64 bits detected!");
945 }
946 return Result;
947}
948
949static uint64_t HexIntToVal(const char *Buffer) {
950 uint64_t Result = 0;
951 for (; *Buffer; ++Buffer) {
952 uint64_t OldRes = Result;
953 Result *= 16;
954 char C = *Buffer;
955 if (C >= '0' && C <= '9')
956 Result += C-'0';
957 else if (C >= 'A' && C <= 'F')
958 Result += C-'A'+10;
959 else if (C >= 'a' && C <= 'f')
960 Result += C-'a'+10;
961
962 if (Result < OldRes) // Uh, oh, overflow detected!!!
963 GenerateError("constant bigger than 64 bits detected!");
964 }
965 return Result;
966}
967
968
969// HexToFP - Convert the ascii string in hexidecimal format to the floating
970// point representation of it.
971//
972static double HexToFP(const char *Buffer) {
973 return BitsToDouble(HexIntToVal(Buffer)); // Cast Hex constant to double
974}
975
976
977// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
978// appropriate character.
979char *UnEscapeLexed(char *Buffer, char* EndBuffer) {
980 char *BOut = Buffer;
981 for (char *BIn = Buffer; *BIn; ) {
982 if (BIn[0] == '\\') {
983 if (BIn < EndBuffer-1 && BIn[1] == '\\') {
984 *BOut++ = '\\'; // Two \ becomes one
985 BIn += 2;
986 } else if (BIn < EndBuffer-2 && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
987 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
988 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
989 BIn[3] = Tmp; // Restore character
990 BIn += 3; // Skip over handled chars
991 ++BOut;
992 } else {
993 *BOut++ = *BIn++;
994 }
995 } else {
996 *BOut++ = *BIn++;
997 }
998 }
999 return BOut;
1000}
1001
1002} // End llvm namespace
1003
1004using namespace llvm;
1005
1006#define YY_NEVER_INTERACTIVE 1
1007/* Comments start with a ; and go till end of line */
1008/* Local Values and Type identifiers start with a % sign */
1009/* Global Value identifiers start with an @ sign */
1010/* Label identifiers end with a colon */
1011/* Quoted names can contain any character except " and \ */
1012/* LocalVarID/GlobalVarID: match an unnamed local variable slot ID. */
1013/* Integer types are specified with i and a bitwidth */
1014/* E[PN]Integer: match positive and negative literal integer values. */
1015/* FPConstant - A Floating point constant.
1016 */
1017/* HexFPConstant - Floating point constant represented in IEEE format as a
1018 * hexadecimal number for when exponential notation is not precise enough.
1019 */
1020/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
1021 * it to deal with 64 bit numbers.
1022 */
1023#line 1024 "Lexer.cpp"
1024
1025/* Macros after this point can all be overridden by user definitions in
1026 * section 1.
1027 */
1028
1029#ifndef YY_SKIP_YYWRAP
1030#ifdef __cplusplus
1031extern "C" int yywrap YY_PROTO(( void ));
1032#else
1033extern int yywrap YY_PROTO(( void ));
1034#endif
1035#endif
1036
1037#ifndef YY_NO_UNPUT
1038static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
1039#endif
1040
1041#ifndef yytext_ptr
1042static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1043#endif
1044
1045#ifdef YY_NEED_STRLEN
1046static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1047#endif
1048
1049#ifndef YY_NO_INPUT
1050#ifdef __cplusplus
1051static int yyinput YY_PROTO(( void ));
1052#else
1053static int input YY_PROTO(( void ));
1054#endif
1055#endif
1056
1057#if YY_STACK_USED
1058static int yy_start_stack_ptr = 0;
1059static int yy_start_stack_depth = 0;
1060static int *yy_start_stack = 0;
1061#ifndef YY_NO_PUSH_STATE
1062static void yy_push_state YY_PROTO(( int new_state ));
1063#endif
1064#ifndef YY_NO_POP_STATE
1065static void yy_pop_state YY_PROTO(( void ));
1066#endif
1067#ifndef YY_NO_TOP_STATE
1068static int yy_top_state YY_PROTO(( void ));
1069#endif
1070
1071#else
1072#define YY_NO_PUSH_STATE 1
1073#define YY_NO_POP_STATE 1
1074#define YY_NO_TOP_STATE 1
1075#endif
1076
1077#ifdef YY_MALLOC_DECL
1078YY_MALLOC_DECL
1079#else
1080#if __STDC__
1081#ifndef __cplusplus
1082#include <stdlib.h>
1083#endif
1084#else
1085/* Just try to get by without declaring the routines. This will fail
1086 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1087 * or sizeof(void*) != sizeof(int).
1088 */
1089#endif
1090#endif
1091
1092/* Amount of stuff to slurp up with each read. */
1093#ifndef YY_READ_BUF_SIZE
1094#define YY_READ_BUF_SIZE 8192
1095#endif
1096
1097/* Copy whatever the last rule matched to the standard output. */
1098
1099#ifndef ECHO
1100/* This used to be an fputs(), but since the string might contain NUL's,
1101 * we now use fwrite().
1102 */
1103#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1104#endif
1105
1106/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1107 * is returned in "result".
1108 */
1109#ifndef YY_INPUT
1110#define YY_INPUT(buf,result,max_size) \
1111 if ( yy_current_buffer->yy_is_interactive ) \
1112 { \
1113 int c = '*', n; \
1114 for ( n = 0; n < max_size && \
1115 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1116 buf[n] = (char) c; \
1117 if ( c == '\n' ) \
1118 buf[n++] = (char) c; \
1119 if ( c == EOF && ferror( yyin ) ) \
1120 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1121 result = n; \
1122 } \
1123 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1124 && ferror( yyin ) ) \
1125 YY_FATAL_ERROR( "input in flex scanner failed" );
1126#endif
1127
1128/* No semi-colon after return; correct usage is to write "yyterminate();" -
1129 * we don't want an extra ';' after the "return" because that will cause
1130 * some compilers to complain about unreachable statements.
1131 */
1132#ifndef yyterminate
1133#define yyterminate() return YY_NULL
1134#endif
1135
1136/* Number of entries by which start-condition stack grows. */
1137#ifndef YY_START_STACK_INCR
1138#define YY_START_STACK_INCR 25
1139#endif
1140
1141/* Report a fatal error. */
1142#ifndef YY_FATAL_ERROR
1143#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1144#endif
1145
1146/* Default declaration of generated scanner - a define so the user can
1147 * easily add parameters.
1148 */
1149#ifndef YY_DECL
1150#define YY_DECL int yylex YY_PROTO(( void ))
1151#endif
1152
1153/* Code executed at the beginning of each rule, after yytext and yyleng
1154 * have been set up.
1155 */
1156#ifndef YY_USER_ACTION
1157#define YY_USER_ACTION
1158#endif
1159
1160/* Code executed at the end of each rule. */
1161#ifndef YY_BREAK
1162#define YY_BREAK break;
1163#endif
1164
1165#define YY_RULE_SETUP \
1166 YY_USER_ACTION
1167
1168YY_DECL
1169 {
1170 register yy_state_type yy_current_state;
1171 register char *yy_cp, *yy_bp;
1172 register int yy_act;
1173
1174#line 180 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1175
1176
1177#line 1178 "Lexer.cpp"
1178
1179 if ( yy_init )
1180 {
1181 yy_init = 0;
1182
1183#ifdef YY_USER_INIT
1184 YY_USER_INIT;
1185#endif
1186
1187 if ( ! yy_start )
1188 yy_start = 1; /* first start state */
1189
1190 if ( ! yyin )
1191 yyin = stdin;
1192
1193 if ( ! yyout )
1194 yyout = stdout;
1195
1196 if ( ! yy_current_buffer )
1197 yy_current_buffer =
1198 yy_create_buffer( yyin, YY_BUF_SIZE );
1199
1200 yy_load_buffer_state();
1201 }
1202
1203 while ( 1 ) /* loops until end-of-file is reached */
1204 {
1205 yy_cp = yy_c_buf_p;
1206
1207 /* Support of yytext. */
1208 *yy_cp = yy_hold_char;
1209
1210 /* yy_bp points to the position in yy_ch_buf of the start of
1211 * the current run.
1212 */
1213 yy_bp = yy_cp;
1214
1215 yy_current_state = yy_start;
1216 yy_state_ptr = yy_state_buf;
1217 *yy_state_ptr++ = yy_current_state;
1218yy_match:
1219 do
1220 {
1221 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1222 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1223 {
1224 yy_current_state = (int) yy_def[yy_current_state];
1225 if ( yy_current_state >= 568 )
1226 yy_c = yy_meta[(unsigned int) yy_c];
1227 }
1228 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1229 *yy_state_ptr++ = yy_current_state;
1230 ++yy_cp;
1231 }
1232 while ( yy_current_state != 567 );
1233
1234yy_find_action:
1235 yy_current_state = *--yy_state_ptr;
1236 yy_lp = yy_accept[yy_current_state];
1237find_rule: /* we branch to this label when backing up */
1238 for ( ; ; ) /* until we find what rule we matched */
1239 {
1240 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1241 {
1242 yy_act = yy_acclist[yy_lp];
1243 {
1244 yy_full_match = yy_cp;
1245 break;
1246 }
1247 }
1248 --yy_cp;
1249 yy_current_state = *--yy_state_ptr;
1250 yy_lp = yy_accept[yy_current_state];
1251 }
1252
1253 YY_DO_BEFORE_ACTION;
1254
1255 if ( yy_act != YY_END_OF_BUFFER )
1256 {
1257 int yyl;
1258 for ( yyl = 0; yyl < yyleng; ++yyl )
1259 if ( yytext[yyl] == '\n' )
1260 ++yylineno;
1261 }
1262
1263do_action: /* This label is used only to access EOF actions. */
1264
1265
1266 switch ( yy_act )
1267 { /* beginning of action switch */
1268case 1:
1269YY_RULE_SETUP
1270#line 182 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1271{ /* Ignore comments for now */ }
1272 YY_BREAK
1273case 2:
1274YY_RULE_SETUP
1275#line 184 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1276{ return BEGINTOK; }
1277 YY_BREAK
1278case 3:
1279YY_RULE_SETUP
1280#line 185 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1281{ return ENDTOK; }
1282 YY_BREAK
1283case 4:
1284YY_RULE_SETUP
1285#line 186 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1286{ return TRUETOK; }
1287 YY_BREAK
1288case 5:
1289YY_RULE_SETUP
1290#line 187 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1291{ return FALSETOK; }
1292 YY_BREAK
1293case 6:
1294YY_RULE_SETUP
1295#line 188 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1296{ return DECLARE; }
1297 YY_BREAK
1298case 7:
1299YY_RULE_SETUP
1300#line 189 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1301{ return DEFINE; }
1302 YY_BREAK
1303case 8:
1304YY_RULE_SETUP
1305#line 190 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1306{ return GLOBAL; }
1307 YY_BREAK
1308case 9:
1309YY_RULE_SETUP
1310#line 191 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1311{ return CONSTANT; }
1312 YY_BREAK
1313case 10:
1314YY_RULE_SETUP
1315#line 192 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1316{ return INTERNAL; }
1317 YY_BREAK
1318case 11:
1319YY_RULE_SETUP
1320#line 193 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1321{ return LINKONCE; }
1322 YY_BREAK
1323case 12:
1324YY_RULE_SETUP
1325#line 194 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1326{ return WEAK; }
1327 YY_BREAK
1328case 13:
1329YY_RULE_SETUP
1330#line 195 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1331{ return APPENDING; }
1332 YY_BREAK
1333case 14:
1334YY_RULE_SETUP
1335#line 196 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1336{ return DLLIMPORT; }
1337 YY_BREAK
1338case 15:
1339YY_RULE_SETUP
1340#line 197 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1341{ return DLLEXPORT; }
1342 YY_BREAK
1343case 16:
1344YY_RULE_SETUP
1345#line 198 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1346{ return HIDDEN; }
1347 YY_BREAK
1348case 17:
1349YY_RULE_SETUP
1350#line 199 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1351{ return PROTECTED; }
1352 YY_BREAK
1353case 18:
1354YY_RULE_SETUP
1355#line 200 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1356{ return EXTERN_WEAK; }
1357 YY_BREAK
1358case 19:
1359YY_RULE_SETUP
1360#line 201 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1361{ return EXTERNAL; }
1362 YY_BREAK
1363case 20:
1364YY_RULE_SETUP
1365#line 202 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1366{ return THREAD_LOCAL; }
1367 YY_BREAK
1368case 21:
1369YY_RULE_SETUP
1370#line 203 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1371{ return ZEROINITIALIZER; }
1372 YY_BREAK
1373case 22:
1374YY_RULE_SETUP
1375#line 204 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1376{ return DOTDOTDOT; }
1377 YY_BREAK
1378case 23:
1379YY_RULE_SETUP
1380#line 205 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1381{ return UNDEF; }
1382 YY_BREAK
1383case 24:
1384YY_RULE_SETUP
1385#line 206 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1386{ return NULL_TOK; }
1387 YY_BREAK
1388case 25:
1389YY_RULE_SETUP
1390#line 207 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1391{ return TO; }
1392 YY_BREAK
1393case 26:
1394YY_RULE_SETUP
1395#line 208 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1396{ return TAIL; }
1397 YY_BREAK
1398case 27:
1399YY_RULE_SETUP
1400#line 209 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1401{ return TARGET; }
1402 YY_BREAK
1403case 28:
1404YY_RULE_SETUP
1405#line 210 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1406{ return TRIPLE; }
1407 YY_BREAK
1408case 29:
1409YY_RULE_SETUP
1410#line 211 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1411{ return DEPLIBS; }
1412 YY_BREAK
1413case 30:
1414YY_RULE_SETUP
1415#line 212 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1416{ return DATALAYOUT; }
1417 YY_BREAK
1418case 31:
1419YY_RULE_SETUP
1420#line 213 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1421{ return VOLATILE; }
1422 YY_BREAK
1423case 32:
1424YY_RULE_SETUP
1425#line 214 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1426{ return ALIGN; }
1427 YY_BREAK
1428case 33:
1429YY_RULE_SETUP
1430#line 215 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1431{ return SECTION; }
1432 YY_BREAK
1433case 34:
1434YY_RULE_SETUP
1435#line 216 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1436{ return ALIAS; }
1437 YY_BREAK
1438case 35:
1439YY_RULE_SETUP
1440#line 217 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1441{ return MODULE; }
1442 YY_BREAK
1443case 36:
1444YY_RULE_SETUP
1445#line 218 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1446{ return ASM_TOK; }
1447 YY_BREAK
1448case 37:
1449YY_RULE_SETUP
1450#line 219 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1451{ return SIDEEFFECT; }
1452 YY_BREAK
1453case 38:
1454YY_RULE_SETUP
1455#line 221 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1456{ return CC_TOK; }
1457 YY_BREAK
1458case 39:
1459YY_RULE_SETUP
1460#line 222 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1461{ return CCC_TOK; }
1462 YY_BREAK
1463case 40:
1464YY_RULE_SETUP
1465#line 223 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1466{ return FASTCC_TOK; }
1467 YY_BREAK
1468case 41:
1469YY_RULE_SETUP
1470#line 224 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1471{ return COLDCC_TOK; }
1472 YY_BREAK
1473case 42:
1474YY_RULE_SETUP
1475#line 225 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1476{ return X86_STDCALLCC_TOK; }
1477 YY_BREAK
1478case 43:
1479YY_RULE_SETUP
1480#line 226 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1481{ return X86_FASTCALLCC_TOK; }
1482 YY_BREAK
1483case 44:
1484YY_RULE_SETUP
1485#line 228 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1486{ return INREG; }
1487 YY_BREAK
1488case 45:
1489YY_RULE_SETUP
1490#line 229 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1491{ return SRET; }
1492 YY_BREAK
1493case 46:
1494YY_RULE_SETUP
1495#line 230 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1496{ return NOUNWIND; }
1497 YY_BREAK
1498case 47:
1499YY_RULE_SETUP
1500#line 231 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1501{ return NORETURN; }
1502 YY_BREAK
1503case 48:
1504YY_RULE_SETUP
1505#line 232 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1506{ return NOALIAS; }
1507 YY_BREAK
1508case 49:
1509YY_RULE_SETUP
1510#line 234 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1511{ RET_TY(Type::VoidTy, VOID); }
1512 YY_BREAK
1513case 50:
1514YY_RULE_SETUP
1515#line 235 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1516{ RET_TY(Type::FloatTy, FLOAT); }
1517 YY_BREAK
1518case 51:
1519YY_RULE_SETUP
1520#line 236 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1521{ RET_TY(Type::DoubleTy,DOUBLE);}
1522 YY_BREAK
1523case 52:
1524YY_RULE_SETUP
1525#line 237 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1526{ RET_TY(Type::LabelTy, LABEL); }
1527 YY_BREAK
1528case 53:
1529YY_RULE_SETUP
1530#line 238 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1531{ return TYPE; }
1532 YY_BREAK
1533case 54:
1534YY_RULE_SETUP
1535#line 239 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1536{ return OPAQUE; }
1537 YY_BREAK
1538case 55:
1539YY_RULE_SETUP
1540#line 240 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1541{ uint64_t NumBits = atoull(yytext+1);
1542 if (NumBits < IntegerType::MIN_INT_BITS ||
1543 NumBits > IntegerType::MAX_INT_BITS)
1544 GenerateError("Bitwidth for integer type out of range!");
1545 const Type* Ty = IntegerType::get(NumBits);
1546 RET_TY(Ty, INTTYPE);
1547 }
1548 YY_BREAK
1549case 56:
1550YY_RULE_SETUP
1551#line 248 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1552{ RET_TOK(BinaryOpVal, Add, ADD); }
1553 YY_BREAK
1554case 57:
1555YY_RULE_SETUP
1556#line 249 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1557{ RET_TOK(BinaryOpVal, Sub, SUB); }
1558 YY_BREAK
1559case 58:
1560YY_RULE_SETUP
1561#line 250 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1562{ RET_TOK(BinaryOpVal, Mul, MUL); }
1563 YY_BREAK
1564case 59:
1565YY_RULE_SETUP
1566#line 251 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1567{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
1568 YY_BREAK
1569case 60:
1570YY_RULE_SETUP
1571#line 252 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1572{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
1573 YY_BREAK
1574case 61:
1575YY_RULE_SETUP
1576#line 253 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1577{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
1578 YY_BREAK
1579case 62:
1580YY_RULE_SETUP
1581#line 254 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1582{ RET_TOK(BinaryOpVal, URem, UREM); }
1583 YY_BREAK
1584case 63:
1585YY_RULE_SETUP
1586#line 255 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1587{ RET_TOK(BinaryOpVal, SRem, SREM); }
1588 YY_BREAK
1589case 64:
1590YY_RULE_SETUP
1591#line 256 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1592{ RET_TOK(BinaryOpVal, FRem, FREM); }
1593 YY_BREAK
1594case 65:
1595YY_RULE_SETUP
1596#line 257 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1597{ RET_TOK(BinaryOpVal, Shl, SHL); }
1598 YY_BREAK
1599case 66:
1600YY_RULE_SETUP
1601#line 258 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1602{ RET_TOK(BinaryOpVal, LShr, LSHR); }
1603 YY_BREAK
1604case 67:
1605YY_RULE_SETUP
1606#line 259 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1607{ RET_TOK(BinaryOpVal, AShr, ASHR); }
1608 YY_BREAK
1609case 68:
1610YY_RULE_SETUP
1611#line 260 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1612{ RET_TOK(BinaryOpVal, And, AND); }
1613 YY_BREAK
1614case 69:
1615YY_RULE_SETUP
1616#line 261 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1617{ RET_TOK(BinaryOpVal, Or , OR ); }
1618 YY_BREAK
1619case 70:
1620YY_RULE_SETUP
1621#line 262 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1622{ RET_TOK(BinaryOpVal, Xor, XOR); }
1623 YY_BREAK
1624case 71:
1625YY_RULE_SETUP
1626#line 263 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1627{ RET_TOK(OtherOpVal, ICmp, ICMP); }
1628 YY_BREAK
1629case 72:
1630YY_RULE_SETUP
1631#line 264 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1632{ RET_TOK(OtherOpVal, FCmp, FCMP); }
1633 YY_BREAK
1634case 73:
1635YY_RULE_SETUP
1636#line 266 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1637{ return EQ; }
1638 YY_BREAK
1639case 74:
1640YY_RULE_SETUP
1641#line 267 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1642{ return NE; }
1643 YY_BREAK
1644case 75:
1645YY_RULE_SETUP
1646#line 268 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1647{ return SLT; }
1648 YY_BREAK
1649case 76:
1650YY_RULE_SETUP
1651#line 269 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1652{ return SGT; }
1653 YY_BREAK
1654case 77:
1655YY_RULE_SETUP
1656#line 270 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1657{ return SLE; }
1658 YY_BREAK
1659case 78:
1660YY_RULE_SETUP
1661#line 271 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1662{ return SGE; }
1663 YY_BREAK
1664case 79:
1665YY_RULE_SETUP
1666#line 272 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1667{ return ULT; }
1668 YY_BREAK
1669case 80:
1670YY_RULE_SETUP
1671#line 273 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1672{ return UGT; }
1673 YY_BREAK
1674case 81:
1675YY_RULE_SETUP
1676#line 274 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1677{ return ULE; }
1678 YY_BREAK
1679case 82:
1680YY_RULE_SETUP
1681#line 275 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1682{ return UGE; }
1683 YY_BREAK
1684case 83:
1685YY_RULE_SETUP
1686#line 276 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1687{ return OEQ; }
1688 YY_BREAK
1689case 84:
1690YY_RULE_SETUP
1691#line 277 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1692{ return ONE; }
1693 YY_BREAK
1694case 85:
1695YY_RULE_SETUP
1696#line 278 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1697{ return OLT; }
1698 YY_BREAK
1699case 86:
1700YY_RULE_SETUP
1701#line 279 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1702{ return OGT; }
1703 YY_BREAK
1704case 87:
1705YY_RULE_SETUP
1706#line 280 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1707{ return OLE; }
1708 YY_BREAK
1709case 88:
1710YY_RULE_SETUP
1711#line 281 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1712{ return OGE; }
1713 YY_BREAK
1714case 89:
1715YY_RULE_SETUP
1716#line 282 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1717{ return ORD; }
1718 YY_BREAK
1719case 90:
1720YY_RULE_SETUP
1721#line 283 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1722{ return UNO; }
1723 YY_BREAK
1724case 91:
1725YY_RULE_SETUP
1726#line 284 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1727{ return UEQ; }
1728 YY_BREAK
1729case 92:
1730YY_RULE_SETUP
1731#line 285 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1732{ return UNE; }
1733 YY_BREAK
1734case 93:
1735YY_RULE_SETUP
1736#line 287 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1737{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
1738 YY_BREAK
1739case 94:
1740YY_RULE_SETUP
1741#line 288 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1742{ RET_TOK(OtherOpVal, Call, CALL); }
1743 YY_BREAK
1744case 95:
1745YY_RULE_SETUP
1746#line 289 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1747{ RET_TOK(CastOpVal, Trunc, TRUNC); }
1748 YY_BREAK
1749case 96:
1750YY_RULE_SETUP
1751#line 290 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1752{ RET_TOK(CastOpVal, ZExt, ZEXT); }
1753 YY_BREAK
1754case 97:
1755YY_RULE_SETUP
1756#line 291 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1757{ RET_TOK(CastOpVal, SExt, SEXT); }
1758 YY_BREAK
1759case 98:
1760YY_RULE_SETUP
1761#line 292 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1762{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
1763 YY_BREAK
1764case 99:
1765YY_RULE_SETUP
1766#line 293 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1767{ RET_TOK(CastOpVal, FPExt, FPEXT); }
1768 YY_BREAK
1769case 100:
1770YY_RULE_SETUP
1771#line 294 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1772{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
1773 YY_BREAK
1774case 101:
1775YY_RULE_SETUP
1776#line 295 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1777{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
1778 YY_BREAK
1779case 102:
1780YY_RULE_SETUP
1781#line 296 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1782{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
1783 YY_BREAK
1784case 103:
1785YY_RULE_SETUP
1786#line 297 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1787{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
1788 YY_BREAK
1789case 104:
1790YY_RULE_SETUP
1791#line 298 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1792{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
1793 YY_BREAK
1794case 105:
1795YY_RULE_SETUP
1796#line 299 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1797{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
1798 YY_BREAK
1799case 106:
1800YY_RULE_SETUP
1801#line 300 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1802{ RET_TOK(CastOpVal, BitCast, BITCAST); }
1803 YY_BREAK
1804case 107:
1805YY_RULE_SETUP
1806#line 301 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1807{ RET_TOK(OtherOpVal, Select, SELECT); }
1808 YY_BREAK
1809case 108:
1810YY_RULE_SETUP
1811#line 302 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1812{ RET_TOK(OtherOpVal, VAArg , VAARG); }
1813 YY_BREAK
1814case 109:
1815YY_RULE_SETUP
1816#line 303 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1817{ RET_TOK(TermOpVal, Ret, RET); }
1818 YY_BREAK
1819case 110:
1820YY_RULE_SETUP
1821#line 304 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1822{ RET_TOK(TermOpVal, Br, BR); }
1823 YY_BREAK
1824case 111:
1825YY_RULE_SETUP
1826#line 305 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1827{ RET_TOK(TermOpVal, Switch, SWITCH); }
1828 YY_BREAK
1829case 112:
1830YY_RULE_SETUP
1831#line 306 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1832{ RET_TOK(TermOpVal, Invoke, INVOKE); }
1833 YY_BREAK
1834case 113:
1835YY_RULE_SETUP
1836#line 307 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1837{ RET_TOK(TermOpVal, Unwind, UNWIND); }
1838 YY_BREAK
1839case 114:
1840YY_RULE_SETUP
1841#line 308 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1842{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
1843 YY_BREAK
1844case 115:
1845YY_RULE_SETUP
1846#line 310 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1847{ RET_TOK(MemOpVal, Malloc, MALLOC); }
1848 YY_BREAK
1849case 116:
1850YY_RULE_SETUP
1851#line 311 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1852{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
1853 YY_BREAK
1854case 117:
1855YY_RULE_SETUP
1856#line 312 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1857{ RET_TOK(MemOpVal, Free, FREE); }
1858 YY_BREAK
1859case 118:
1860YY_RULE_SETUP
1861#line 313 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1862{ RET_TOK(MemOpVal, Load, LOAD); }
1863 YY_BREAK
1864case 119:
1865YY_RULE_SETUP
1866#line 314 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1867{ RET_TOK(MemOpVal, Store, STORE); }
1868 YY_BREAK
1869case 120:
1870YY_RULE_SETUP
1871#line 315 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1872{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
1873 YY_BREAK
1874case 121:
1875YY_RULE_SETUP
1876#line 317 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1877{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
1878 YY_BREAK
1879case 122:
1880YY_RULE_SETUP
1881#line 318 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1882{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1883 YY_BREAK
1884case 123:
1885YY_RULE_SETUP
1886#line 319 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1887{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
1888 YY_BREAK
1889case 124:
1890YY_RULE_SETUP
1891#line 322 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1892{
1893 llvmAsmlval.StrVal = new std::string(yytext+1); // Skip %
1894 return LOCALVAR;
1895 }
1896 YY_BREAK
1897case 125:
1898YY_RULE_SETUP
1899#line 326 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1900{
1901 llvmAsmlval.StrVal = new std::string(yytext+1); // Skip @
1902 return GLOBALVAR;
1903 }
1904 YY_BREAK
1905case 126:
1906YY_RULE_SETUP
1907#line 330 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1908{
1909 yytext[yyleng-1] = 0; // nuke colon
1910 llvmAsmlval.StrVal = new std::string(yytext);
1911 return LABELSTR;
1912 }
1913 YY_BREAK
1914case 127:
1915YY_RULE_SETUP
1916#line 335 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1917{
1918 yytext[yyleng-2] = 0; // nuke colon, end quote
1919 const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
1920 llvmAsmlval.StrVal =
1921 new std::string(yytext+1, EndChar - yytext - 1);
1922 return LABELSTR;
1923 }
1924 YY_BREAK
1925case 128:
1926YY_RULE_SETUP
1927#line 343 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1928{ yytext[yyleng-1] = 0; // nuke end quote
1929 const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
1930 llvmAsmlval.StrVal =
1931 new std::string(yytext+1, EndChar - yytext - 1);
1932 return STRINGCONSTANT;
1933 }
1934 YY_BREAK
1935case 129:
1936YY_RULE_SETUP
1937#line 349 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1938{
1939 yytext[yyleng-1] = 0; // nuke end quote
1940 const char* EndChar =
1941 UnEscapeLexed(yytext+2, yytext+yyleng);
1942 llvmAsmlval.StrVal =
1943 new std::string(yytext+2, EndChar - yytext - 2);
1944 return ATSTRINGCONSTANT;
1945 }
1946 YY_BREAK
1947case 130:
1948YY_RULE_SETUP
1949#line 357 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1950{
1951 yytext[yyleng-1] = 0; // nuke end quote
1952 const char* EndChar =
1953 UnEscapeLexed(yytext+2, yytext+yyleng);
1954 llvmAsmlval.StrVal =
1955 new std::string(yytext+2, EndChar - yytext - 2);
1956 return PCTSTRINGCONSTANT;
1957 }
1958 YY_BREAK
1959case 131:
1960YY_RULE_SETUP
1961#line 365 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1962{
1963 uint32_t numBits = ((yyleng * 64) / 19) + 1;
1964 APInt Tmp(numBits, yytext, yyleng, 10);
1965 uint32_t activeBits = Tmp.getActiveBits();
1966 if (activeBits > 0 && activeBits < numBits)
1967 Tmp.trunc(activeBits);
1968 if (Tmp.getBitWidth() > 64) {
1969 llvmAsmlval.APIntVal = new APInt(Tmp);
1970 return EUAPINTVAL;
1971 } else {
1972 llvmAsmlval.UInt64Val = Tmp.getZExtValue();
1973 return EUINT64VAL;
1974 }
1975 }
1976 YY_BREAK
1977case 132:
1978YY_RULE_SETUP
1979#line 379 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1980{
1981 uint32_t numBits = (((yyleng-1) * 64) / 19) + 2;
1982 APInt Tmp(numBits, yytext, yyleng, 10);
1983 uint32_t minBits = Tmp.getMinSignedBits();
1984 if (minBits > 0 && minBits < numBits)
1985 Tmp.trunc(minBits);
1986 if (Tmp.getBitWidth() > 64) {
1987 llvmAsmlval.APIntVal = new APInt(Tmp);
1988 return ESAPINTVAL;
1989 } else {
1990 llvmAsmlval.SInt64Val = Tmp.getSExtValue();
1991 return ESINT64VAL;
1992 }
1993 }
1994 YY_BREAK
1995case 133:
1996YY_RULE_SETUP
1997#line 394 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
1998{ int len = yyleng - 3;
1999 uint32_t bits = len * 4;
2000 APInt Tmp(bits, yytext+3, len, 16);
2001 uint32_t activeBits = Tmp.getActiveBits();
2002 if (activeBits > 0 && activeBits < bits)
2003 Tmp.trunc(activeBits);
2004 if (Tmp.getBitWidth() > 64) {
2005 llvmAsmlval.APIntVal = new APInt(Tmp);
2006 return yytext[0] == 's' ? ESAPINTVAL : EUAPINTVAL;
2007 } else if (yytext[0] == 's') {
2008 llvmAsmlval.SInt64Val = Tmp.getSExtValue();
2009 return ESINT64VAL;
2010 } else {
2011 llvmAsmlval.UInt64Val = Tmp.getZExtValue();
2012 return EUINT64VAL;
2013 }
2014 }
2015 YY_BREAK
2016case 134:
2017YY_RULE_SETUP
2018#line 412 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2019{
2020 uint64_t Val = atoull(yytext+1);
2021 if ((unsigned)Val != Val)
2022 GenerateError("Invalid value number (too large)!");
2023 llvmAsmlval.UIntVal = unsigned(Val);
2024 return LOCALVAL_ID;
2025 }
2026 YY_BREAK
2027case 135:
2028YY_RULE_SETUP
2029#line 419 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2030{
2031 uint64_t Val = atoull(yytext+1);
2032 if ((unsigned)Val != Val)
2033 GenerateError("Invalid value number (too large)!");
2034 llvmAsmlval.UIntVal = unsigned(Val);
2035 return GLOBALVAL_ID;
2036 }
2037 YY_BREAK
2038case 136:
2039YY_RULE_SETUP
2040#line 427 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2041{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
2042 YY_BREAK
2043case 137:
2044YY_RULE_SETUP
2045#line 428 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2046{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
2047 YY_BREAK
2048case YY_STATE_EOF(INITIAL):
2049#line 430 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2050{
2051 /* Make sure to free the internal buffers for flex when we are
2052 * done reading our input!
2053 */
2054 yy_delete_buffer(YY_CURRENT_BUFFER);
2055 return EOF;
2056 }
2057 YY_BREAK
2058case 138:
2059YY_RULE_SETUP
2060#line 438 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2061{ /* Ignore whitespace */ }
2062 YY_BREAK
2063case 139:
2064YY_RULE_SETUP
2065#line 439 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2066{ return yytext[0]; }
2067 YY_BREAK
2068case 140:
2069YY_RULE_SETUP
2070#line 441 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2071YY_FATAL_ERROR( "flex scanner jammed" );
2072 YY_BREAK
2073#line 2074 "Lexer.cpp"
2074
2075 case YY_END_OF_BUFFER:
2076 {
2077 /* Amount of text matched not including the EOB char. */
2078 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2079
2080 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2081 *yy_cp = yy_hold_char;
2082 YY_RESTORE_YY_MORE_OFFSET
2083
2084 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2085 {
2086 /* We're scanning a new file or input source. It's
2087 * possible that this happened because the user
2088 * just pointed yyin at a new source and called
2089 * yylex(). If so, then we have to assure
2090 * consistency between yy_current_buffer and our
2091 * globals. Here is the right place to do so, because
2092 * this is the first action (other than possibly a
2093 * back-up) that will match for the new input source.
2094 */
2095 yy_n_chars = yy_current_buffer->yy_n_chars;
2096 yy_current_buffer->yy_input_file = yyin;
2097 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2098 }
2099
2100 /* Note that here we test for yy_c_buf_p "<=" to the position
2101 * of the first EOB in the buffer, since yy_c_buf_p will
2102 * already have been incremented past the NUL character
2103 * (since all states make transitions on EOB to the
2104 * end-of-buffer state). Contrast this with the test
2105 * in input().
2106 */
2107 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2108 { /* This was really a NUL. */
2109 yy_state_type yy_next_state;
2110
2111 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2112
2113 yy_current_state = yy_get_previous_state();
2114
2115 /* Okay, we're now positioned to make the NUL
2116 * transition. We couldn't have
2117 * yy_get_previous_state() go ahead and do it
2118 * for us because it doesn't know how to deal
2119 * with the possibility of jamming (and we don't
2120 * want to build jamming into it because then it
2121 * will run more slowly).
2122 */
2123
2124 yy_next_state = yy_try_NUL_trans( yy_current_state );
2125
2126 yy_bp = yytext_ptr + YY_MORE_ADJ;
2127
2128 if ( yy_next_state )
2129 {
2130 /* Consume the NUL. */
2131 yy_cp = ++yy_c_buf_p;
2132 yy_current_state = yy_next_state;
2133 goto yy_match;
2134 }
2135
2136 else
2137 {
2138 yy_cp = yy_c_buf_p;
2139 goto yy_find_action;
2140 }
2141 }
2142
2143 else switch ( yy_get_next_buffer() )
2144 {
2145 case EOB_ACT_END_OF_FILE:
2146 {
2147 yy_did_buffer_switch_on_eof = 0;
2148
2149 if ( yywrap() )
2150 {
2151 /* Note: because we've taken care in
2152 * yy_get_next_buffer() to have set up
2153 * yytext, we can now set up
2154 * yy_c_buf_p so that if some total
2155 * hoser (like flex itself) wants to
2156 * call the scanner after we return the
2157 * YY_NULL, it'll still work - another
2158 * YY_NULL will get returned.
2159 */
2160 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2161
2162 yy_act = YY_STATE_EOF(YY_START);
2163 goto do_action;
2164 }
2165
2166 else
2167 {
2168 if ( ! yy_did_buffer_switch_on_eof )
2169 YY_NEW_FILE;
2170 }
2171 break;
2172 }
2173
2174 case EOB_ACT_CONTINUE_SCAN:
2175 yy_c_buf_p =
2176 yytext_ptr + yy_amount_of_matched_text;
2177
2178 yy_current_state = yy_get_previous_state();
2179
2180 yy_cp = yy_c_buf_p;
2181 yy_bp = yytext_ptr + YY_MORE_ADJ;
2182 goto yy_match;
2183
2184 case EOB_ACT_LAST_MATCH:
2185 yy_c_buf_p =
2186 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2187
2188 yy_current_state = yy_get_previous_state();
2189
2190 yy_cp = yy_c_buf_p;
2191 yy_bp = yytext_ptr + YY_MORE_ADJ;
2192 goto yy_find_action;
2193 }
2194 break;
2195 }
2196
2197 default:
2198 YY_FATAL_ERROR(
2199 "fatal flex scanner internal error--no action found" );
2200 } /* end of action switch */
2201 } /* end of scanning one token */
2202 } /* end of yylex */
2203
2204
2205/* yy_get_next_buffer - try to read in a new buffer
2206 *
2207 * Returns a code representing an action:
2208 * EOB_ACT_LAST_MATCH -
2209 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2210 * EOB_ACT_END_OF_FILE - end of file
2211 */
2212
2213static int yy_get_next_buffer()
2214 {
2215 register char *dest = yy_current_buffer->yy_ch_buf;
2216 register char *source = yytext_ptr;
2217 register int number_to_move, i;
2218 int ret_val;
2219
2220 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2221 YY_FATAL_ERROR(
2222 "fatal flex scanner internal error--end of buffer missed" );
2223
2224 if ( yy_current_buffer->yy_fill_buffer == 0 )
2225 { /* Don't try to fill the buffer, so this is an EOF. */
2226 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2227 {
2228 /* We matched a single character, the EOB, so
2229 * treat this as a final EOF.
2230 */
2231 return EOB_ACT_END_OF_FILE;
2232 }
2233
2234 else
2235 {
2236 /* We matched some text prior to the EOB, first
2237 * process it.
2238 */
2239 return EOB_ACT_LAST_MATCH;
2240 }
2241 }
2242
2243 /* Try to read more data. */
2244
2245 /* First move last chars to start of buffer. */
2246 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2247
2248 for ( i = 0; i < number_to_move; ++i )
2249 *(dest++) = *(source++);
2250
2251 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2252 /* don't do the read, it's not guaranteed to return an EOF,
2253 * just force an EOF
2254 */
2255 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2256
2257 else
2258 {
2259 int num_to_read =
2260 yy_current_buffer->yy_buf_size - number_to_move - 1;
2261
2262 while ( num_to_read <= 0 )
2263 { /* Not enough room in the buffer - grow it. */
2264#ifdef YY_USES_REJECT
2265 YY_FATAL_ERROR(
2266"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2267#else
2268
2269 /* just a shorter name for the current buffer */
2270 YY_BUFFER_STATE b = yy_current_buffer;
2271
2272 int yy_c_buf_p_offset =
2273 (int) (yy_c_buf_p - b->yy_ch_buf);
2274
2275 if ( b->yy_is_our_buffer )
2276 {
2277 int new_size = b->yy_buf_size * 2;
2278
2279 if ( new_size <= 0 )
2280 b->yy_buf_size += b->yy_buf_size / 8;
2281 else
2282 b->yy_buf_size *= 2;
2283
2284 b->yy_ch_buf = (char *)
2285 /* Include room in for 2 EOB chars. */
2286 yy_flex_realloc( (void *) b->yy_ch_buf,
2287 b->yy_buf_size + 2 );
2288 }
2289 else
2290 /* Can't grow it, we don't own it. */
2291 b->yy_ch_buf = 0;
2292
2293 if ( ! b->yy_ch_buf )
2294 YY_FATAL_ERROR(
2295 "fatal error - scanner input buffer overflow" );
2296
2297 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2298
2299 num_to_read = yy_current_buffer->yy_buf_size -
2300 number_to_move - 1;
2301#endif
2302 }
2303
2304 if ( num_to_read > YY_READ_BUF_SIZE )
2305 num_to_read = YY_READ_BUF_SIZE;
2306
2307 /* Read in more data. */
2308 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2309 yy_n_chars, num_to_read );
2310
2311 yy_current_buffer->yy_n_chars = yy_n_chars;
2312 }
2313
2314 if ( yy_n_chars == 0 )
2315 {
2316 if ( number_to_move == YY_MORE_ADJ )
2317 {
2318 ret_val = EOB_ACT_END_OF_FILE;
2319 yyrestart( yyin );
2320 }
2321
2322 else
2323 {
2324 ret_val = EOB_ACT_LAST_MATCH;
2325 yy_current_buffer->yy_buffer_status =
2326 YY_BUFFER_EOF_PENDING;
2327 }
2328 }
2329
2330 else
2331 ret_val = EOB_ACT_CONTINUE_SCAN;
2332
2333 yy_n_chars += number_to_move;
2334 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2335 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2336
2337 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2338
2339 return ret_val;
2340 }
2341
2342
2343/* yy_get_previous_state - get the state just before the EOB char was reached */
2344
2345static yy_state_type yy_get_previous_state()
2346 {
2347 register yy_state_type yy_current_state;
2348 register char *yy_cp;
2349
2350 yy_current_state = yy_start;
2351 yy_state_ptr = yy_state_buf;
2352 *yy_state_ptr++ = yy_current_state;
2353
2354 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2355 {
2356 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2357 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2358 {
2359 yy_current_state = (int) yy_def[yy_current_state];
2360 if ( yy_current_state >= 568 )
2361 yy_c = yy_meta[(unsigned int) yy_c];
2362 }
2363 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2364 *yy_state_ptr++ = yy_current_state;
2365 }
2366
2367 return yy_current_state;
2368 }
2369
2370
2371/* yy_try_NUL_trans - try to make a transition on the NUL character
2372 *
2373 * synopsis
2374 * next_state = yy_try_NUL_trans( current_state );
2375 */
2376
2377#ifdef YY_USE_PROTOS
2378static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2379#else
2380static yy_state_type yy_try_NUL_trans( yy_current_state )
2381yy_state_type yy_current_state;
2382#endif
2383 {
2384 register int yy_is_jam;
2385
2386 register YY_CHAR yy_c = 1;
2387 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2388 {
2389 yy_current_state = (int) yy_def[yy_current_state];
2390 if ( yy_current_state >= 568 )
2391 yy_c = yy_meta[(unsigned int) yy_c];
2392 }
2393 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2394 yy_is_jam = (yy_current_state == 567);
2395 if ( ! yy_is_jam )
2396 *yy_state_ptr++ = yy_current_state;
2397
2398 return yy_is_jam ? 0 : yy_current_state;
2399 }
2400
2401
2402#ifndef YY_NO_UNPUT
2403#ifdef YY_USE_PROTOS
2404static inline void yyunput( int c, register char *yy_bp )
2405#else
2406static inline void yyunput( c, yy_bp )
2407int c;
2408register char *yy_bp;
2409#endif
2410 {
2411 register char *yy_cp = yy_c_buf_p;
2412
2413 /* undo effects of setting up yytext */
2414 *yy_cp = yy_hold_char;
2415
2416 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2417 { /* need to shift things up to make room */
2418 /* +2 for EOB chars. */
2419 register int number_to_move = yy_n_chars + 2;
2420 register char *dest = &yy_current_buffer->yy_ch_buf[
2421 yy_current_buffer->yy_buf_size + 2];
2422 register char *source =
2423 &yy_current_buffer->yy_ch_buf[number_to_move];
2424
2425 while ( source > yy_current_buffer->yy_ch_buf )
2426 *--dest = *--source;
2427
2428 yy_cp += (int) (dest - source);
2429 yy_bp += (int) (dest - source);
2430 yy_current_buffer->yy_n_chars =
2431 yy_n_chars = yy_current_buffer->yy_buf_size;
2432
2433 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2434 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2435 }
2436
2437 *--yy_cp = (char) c;
2438
2439 if ( c == '\n' )
2440 --yylineno;
2441
2442 yytext_ptr = yy_bp;
2443 yy_hold_char = *yy_cp;
2444 yy_c_buf_p = yy_cp;
2445 }
2446#endif /* ifndef YY_NO_UNPUT */
2447
2448
2449#ifdef __cplusplus
2450static int yyinput()
2451#else
2452static int input()
2453#endif
2454 {
2455 int c;
2456
2457 *yy_c_buf_p = yy_hold_char;
2458
2459 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2460 {
2461 /* yy_c_buf_p now points to the character we want to return.
2462 * If this occurs *before* the EOB characters, then it's a
2463 * valid NUL; if not, then we've hit the end of the buffer.
2464 */
2465 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2466 /* This was really a NUL. */
2467 *yy_c_buf_p = '\0';
2468
2469 else
2470 { /* need more input */
2471 int offset = yy_c_buf_p - yytext_ptr;
2472 ++yy_c_buf_p;
2473
2474 switch ( yy_get_next_buffer() )
2475 {
2476 case EOB_ACT_LAST_MATCH:
2477 /* This happens because yy_g_n_b()
2478 * sees that we've accumulated a
2479 * token and flags that we need to
2480 * try matching the token before
2481 * proceeding. But for input(),
2482 * there's no matching to consider.
2483 * So convert the EOB_ACT_LAST_MATCH
2484 * to EOB_ACT_END_OF_FILE.
2485 */
2486
2487 /* Reset buffer status. */
2488 yyrestart( yyin );
2489
2490 /* fall through */
2491
2492 case EOB_ACT_END_OF_FILE:
2493 {
2494 if ( yywrap() )
2495 return EOF;
2496
2497 if ( ! yy_did_buffer_switch_on_eof )
2498 YY_NEW_FILE;
2499#ifdef __cplusplus
2500 return yyinput();
2501#else
2502 return input();
2503#endif
2504 }
2505
2506 case EOB_ACT_CONTINUE_SCAN:
2507 yy_c_buf_p = yytext_ptr + offset;
2508 break;
2509 }
2510 }
2511 }
2512
2513 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2514 *yy_c_buf_p = '\0'; /* preserve yytext */
2515 yy_hold_char = *++yy_c_buf_p;
2516
2517 if ( c == '\n' )
2518 ++yylineno;
2519
2520 return c;
2521 }
2522
2523
2524#ifdef YY_USE_PROTOS
2525void yyrestart( FILE *input_file )
2526#else
2527void yyrestart( input_file )
2528FILE *input_file;
2529#endif
2530 {
2531 if ( ! yy_current_buffer )
2532 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2533
2534 yy_init_buffer( yy_current_buffer, input_file );
2535 yy_load_buffer_state();
2536 }
2537
2538
2539#ifdef YY_USE_PROTOS
2540void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2541#else
2542void yy_switch_to_buffer( new_buffer )
2543YY_BUFFER_STATE new_buffer;
2544#endif
2545 {
2546 if ( yy_current_buffer == new_buffer )
2547 return;
2548
2549 if ( yy_current_buffer )
2550 {
2551 /* Flush out information for old buffer. */
2552 *yy_c_buf_p = yy_hold_char;
2553 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2554 yy_current_buffer->yy_n_chars = yy_n_chars;
2555 }
2556
2557 yy_current_buffer = new_buffer;
2558 yy_load_buffer_state();
2559
2560 /* We don't actually know whether we did this switch during
2561 * EOF (yywrap()) processing, but the only time this flag
2562 * is looked at is after yywrap() is called, so it's safe
2563 * to go ahead and always set it.
2564 */
2565 yy_did_buffer_switch_on_eof = 1;
2566 }
2567
2568
2569#ifdef YY_USE_PROTOS
2570void yy_load_buffer_state( void )
2571#else
2572void yy_load_buffer_state()
2573#endif
2574 {
2575 yy_n_chars = yy_current_buffer->yy_n_chars;
2576 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2577 yyin = yy_current_buffer->yy_input_file;
2578 yy_hold_char = *yy_c_buf_p;
2579 }
2580
2581
2582#ifdef YY_USE_PROTOS
2583YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2584#else
2585YY_BUFFER_STATE yy_create_buffer( file, size )
2586FILE *file;
2587int size;
2588#endif
2589 {
2590 YY_BUFFER_STATE b;
2591
2592 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2593 if ( ! b )
2594 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2595
2596 b->yy_buf_size = size;
2597
2598 /* yy_ch_buf has to be 2 characters longer than the size given because
2599 * we need to put in 2 end-of-buffer characters.
2600 */
2601 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2602 if ( ! b->yy_ch_buf )
2603 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2604
2605 b->yy_is_our_buffer = 1;
2606
2607 yy_init_buffer( b, file );
2608
2609 return b;
2610 }
2611
2612
2613#ifdef YY_USE_PROTOS
2614void yy_delete_buffer( YY_BUFFER_STATE b )
2615#else
2616void yy_delete_buffer( b )
2617YY_BUFFER_STATE b;
2618#endif
2619 {
2620 if ( ! b )
2621 return;
2622
2623 if ( b == yy_current_buffer )
2624 yy_current_buffer = (YY_BUFFER_STATE) 0;
2625
2626 if ( b->yy_is_our_buffer )
2627 yy_flex_free( (void *) b->yy_ch_buf );
2628
2629 yy_flex_free( (void *) b );
2630 }
2631
2632
2633#ifndef YY_ALWAYS_INTERACTIVE
2634#ifndef YY_NEVER_INTERACTIVE
2635extern int isatty YY_PROTO(( int ));
2636#endif
2637#endif
2638
2639#ifdef YY_USE_PROTOS
2640void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2641#else
2642void yy_init_buffer( b, file )
2643YY_BUFFER_STATE b;
2644FILE *file;
2645#endif
2646
2647
2648 {
2649 yy_flush_buffer( b );
2650
2651 b->yy_input_file = file;
2652 b->yy_fill_buffer = 1;
2653
2654#if YY_ALWAYS_INTERACTIVE
2655 b->yy_is_interactive = 1;
2656#else
2657#if YY_NEVER_INTERACTIVE
2658 b->yy_is_interactive = 0;
2659#else
2660 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2661#endif
2662#endif
2663 }
2664
2665
2666#ifdef YY_USE_PROTOS
2667void yy_flush_buffer( YY_BUFFER_STATE b )
2668#else
2669void yy_flush_buffer( b )
2670YY_BUFFER_STATE b;
2671#endif
2672
2673 {
2674 if ( ! b )
2675 return;
2676
2677 b->yy_n_chars = 0;
2678
2679 /* We always need two end-of-buffer characters. The first causes
2680 * a transition to the end-of-buffer state. The second causes
2681 * a jam in that state.
2682 */
2683 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2684 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2685
2686 b->yy_buf_pos = &b->yy_ch_buf[0];
2687
2688 b->yy_at_bol = 1;
2689 b->yy_buffer_status = YY_BUFFER_NEW;
2690
2691 if ( b == yy_current_buffer )
2692 yy_load_buffer_state();
2693 }
2694
2695
2696#ifndef YY_NO_SCAN_BUFFER
2697#ifdef YY_USE_PROTOS
2698YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2699#else
2700YY_BUFFER_STATE yy_scan_buffer( base, size )
2701char *base;
2702yy_size_t size;
2703#endif
2704 {
2705 YY_BUFFER_STATE b;
2706
2707 if ( size < 2 ||
2708 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2709 base[size-1] != YY_END_OF_BUFFER_CHAR )
2710 /* They forgot to leave room for the EOB's. */
2711 return 0;
2712
2713 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2714 if ( ! b )
2715 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2716
2717 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2718 b->yy_buf_pos = b->yy_ch_buf = base;
2719 b->yy_is_our_buffer = 0;
2720 b->yy_input_file = 0;
2721 b->yy_n_chars = b->yy_buf_size;
2722 b->yy_is_interactive = 0;
2723 b->yy_at_bol = 1;
2724 b->yy_fill_buffer = 0;
2725 b->yy_buffer_status = YY_BUFFER_NEW;
2726
2727 yy_switch_to_buffer( b );
2728
2729 return b;
2730 }
2731#endif
2732
2733
2734#ifndef YY_NO_SCAN_STRING
2735#ifdef YY_USE_PROTOS
2736YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2737#else
2738YY_BUFFER_STATE yy_scan_string( yy_str )
2739yyconst char *yy_str;
2740#endif
2741 {
2742 int len;
2743 for ( len = 0; yy_str[len]; ++len )
2744 ;
2745
2746 return yy_scan_bytes( yy_str, len );
2747 }
2748#endif
2749
2750
2751#ifndef YY_NO_SCAN_BYTES
2752#ifdef YY_USE_PROTOS
2753YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2754#else
2755YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2756yyconst char *bytes;
2757int len;
2758#endif
2759 {
2760 YY_BUFFER_STATE b;
2761 char *buf;
2762 yy_size_t n;
2763 int i;
2764
2765 /* Get memory for full buffer, including space for trailing EOB's. */
2766 n = len + 2;
2767 buf = (char *) yy_flex_alloc( n );
2768 if ( ! buf )
2769 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2770
2771 for ( i = 0; i < len; ++i )
2772 buf[i] = bytes[i];
2773
2774 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2775
2776 b = yy_scan_buffer( buf, n );
2777 if ( ! b )
2778 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2779
2780 /* It's okay to grow etc. this buffer, and we should throw it
2781 * away when we're done.
2782 */
2783 b->yy_is_our_buffer = 1;
2784
2785 return b;
2786 }
2787#endif
2788
2789
2790#ifndef YY_NO_PUSH_STATE
2791#ifdef YY_USE_PROTOS
2792static void yy_push_state( int new_state )
2793#else
2794static void yy_push_state( new_state )
2795int new_state;
2796#endif
2797 {
2798 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2799 {
2800 yy_size_t new_size;
2801
2802 yy_start_stack_depth += YY_START_STACK_INCR;
2803 new_size = yy_start_stack_depth * sizeof( int );
2804
2805 if ( ! yy_start_stack )
2806 yy_start_stack = (int *) yy_flex_alloc( new_size );
2807
2808 else
2809 yy_start_stack = (int *) yy_flex_realloc(
2810 (void *) yy_start_stack, new_size );
2811
2812 if ( ! yy_start_stack )
2813 YY_FATAL_ERROR(
2814 "out of memory expanding start-condition stack" );
2815 }
2816
2817 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2818
2819 BEGIN(new_state);
2820 }
2821#endif
2822
2823
2824#ifndef YY_NO_POP_STATE
2825static void yy_pop_state()
2826 {
2827 if ( --yy_start_stack_ptr < 0 )
2828 YY_FATAL_ERROR( "start-condition stack underflow" );
2829
2830 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2831 }
2832#endif
2833
2834
2835#ifndef YY_NO_TOP_STATE
2836static int yy_top_state()
2837 {
2838 return yy_start_stack[yy_start_stack_ptr - 1];
2839 }
2840#endif
2841
2842#ifndef YY_EXIT_FAILURE
2843#define YY_EXIT_FAILURE 2
2844#endif
2845
2846#ifdef YY_USE_PROTOS
2847static void yy_fatal_error( yyconst char msg[] )
2848#else
2849static void yy_fatal_error( msg )
2850char msg[];
2851#endif
2852 {
2853 (void) fprintf( stderr, "%s\n", msg );
2854 exit( YY_EXIT_FAILURE );
2855 }
2856
2857
2858
2859/* Redefine yyless() so it works in section 3 code. */
2860
2861#undef yyless
2862#define yyless(n) \
2863 do \
2864 { \
2865 /* Undo effects of setting up yytext. */ \
2866 yytext[yyleng] = yy_hold_char; \
2867 yy_c_buf_p = yytext + n; \
2868 yy_hold_char = *yy_c_buf_p; \
2869 *yy_c_buf_p = '\0'; \
2870 yyleng = n; \
2871 } \
2872 while ( 0 )
2873
2874
2875/* Internal utility routines. */
2876
2877#ifndef yytext_ptr
2878#ifdef YY_USE_PROTOS
2879static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2880#else
2881static void yy_flex_strncpy( s1, s2, n )
2882char *s1;
2883yyconst char *s2;
2884int n;
2885#endif
2886 {
2887 register int i;
2888 for ( i = 0; i < n; ++i )
2889 s1[i] = s2[i];
2890 }
2891#endif
2892
2893#ifdef YY_NEED_STRLEN
2894#ifdef YY_USE_PROTOS
2895static int yy_flex_strlen( yyconst char *s )
2896#else
2897static int yy_flex_strlen( s )
2898yyconst char *s;
2899#endif
2900 {
2901 register int n;
2902 for ( n = 0; s[n]; ++n )
2903 ;
2904
2905 return n;
2906 }
2907#endif
2908
2909
2910#ifdef YY_USE_PROTOS
2911static void *yy_flex_alloc( yy_size_t size )
2912#else
2913static void *yy_flex_alloc( size )
2914yy_size_t size;
2915#endif
2916 {
2917 return (void *) malloc( size );
2918 }
2919
2920#ifdef YY_USE_PROTOS
2921static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
2922#else
2923static inline void *yy_flex_realloc( ptr, size )
2924void *ptr;
2925yy_size_t size;
2926#endif
2927 {
2928 /* The cast to (char *) in the following accommodates both
2929 * implementations that use char* generic pointers, and those
2930 * that use void* generic pointers. It works with the latter
2931 * because both ANSI C and C++ allow castless assignment from
2932 * any pointer type to void*, and deal with argument conversions
2933 * as though doing an assignment.
2934 */
2935 return (void *) realloc( (char *) ptr, size );
2936 }
2937
2938#ifdef YY_USE_PROTOS
2939static void yy_flex_free( void *ptr )
2940#else
2941static void yy_flex_free( ptr )
2942void *ptr;
2943#endif
2944 {
2945 free( ptr );
2946 }
2947
2948#if YY_MAIN
2949int main()
2950 {
2951 yylex();
2952 return 0;
2953 }
2954#endif
2955#line 441 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/Lexer.l"
2956