blob: 1418335e6683ce791f82d990bcbbbd04b6936728 [file] [log] [blame]
Reid Spencer68a24bd2005-08-27 18:50:39 +00001#define yy_create_buffer llvmAsm_create_buffer
2#define yy_delete_buffer llvmAsm_delete_buffer
3#define yy_scan_buffer llvmAsm_scan_buffer
4#define yy_scan_string llvmAsm_scan_string
5#define yy_scan_bytes llvmAsm_scan_bytes
6#define yy_flex_debug llvmAsm_flex_debug
7#define yy_init_buffer llvmAsm_init_buffer
8#define yy_flush_buffer llvmAsm_flush_buffer
9#define yy_load_buffer_state llvmAsm_load_buffer_state
10#define yy_switch_to_buffer llvmAsm_switch_to_buffer
11#define yyin llvmAsmin
12#define yyleng llvmAsmleng
13#define yylex llvmAsmlex
14#define yyout llvmAsmout
15#define yyrestart llvmAsmrestart
16#define yytext llvmAsmtext
17#define yylineno llvmAsmlineno
18
19#line 20 "Lexer.cpp"
20/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header$
24 */
25
26#define FLEX_SCANNER
27#define YY_FLEX_MAJOR_VERSION 2
28#define YY_FLEX_MINOR_VERSION 5
29
30#include <stdio.h>
Reid Spencer68a24bd2005-08-27 18:50:39 +000031
32
33/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34#ifdef c_plusplus
35#ifndef __cplusplus
36#define __cplusplus
37#endif
38#endif
39
40
41#ifdef __cplusplus
42
43#include <stdlib.h>
Nate Begeman14b05292005-11-05 09:21:28 +000044#include <unistd.h>
Reid Spencer68a24bd2005-08-27 18:50:39 +000045
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else /* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif /* __STDC__ */
60#endif /* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE (16384*64)
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
130 *
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144 do \
145 { \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151 } \
152 while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164 {
165 FILE *yy_input_file;
166
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
169
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
172 */
173 yy_size_t yy_buf_size;
174
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
177 */
178 int yy_n_chars;
179
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
183 */
184 int yy_is_our_buffer;
185
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
190 */
191 int yy_is_interactive;
192
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
196 */
197 int yy_at_bol;
198
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
201 */
202 int yy_fill_buffer;
203
204 int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
212 *
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
216 */
217#define YY_BUFFER_EOF_PENDING 2
218 };
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars; /* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1; /* whether we need to initialize */
240static int yy_start = 0; /* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268 { \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
272 }
273
274#define yy_set_bol(at_bol) \
275 { \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
279 }
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define YY_USES_REJECT
285
286#define yywrap() 1
287#define YY_SKIP_YYWRAP
288typedef unsigned char YY_CHAR;
289FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
290typedef int yy_state_type;
291extern int yylineno;
292int yylineno = 1;
293extern char *yytext;
294#define yytext_ptr yytext
295
296static yy_state_type yy_get_previous_state YY_PROTO(( void ));
297static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
298static int yy_get_next_buffer YY_PROTO(( void ));
299static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
300
301/* Done after the current pattern has been matched and before the
302 * corresponding action - sets up yytext.
303 */
304#define YY_DO_BEFORE_ACTION \
305 yytext_ptr = yy_bp; \
306 yyleng = (int) (yy_cp - yy_bp); \
307 yy_hold_char = *yy_cp; \
308 *yy_cp = '\0'; \
309 yy_c_buf_p = yy_cp;
310
Chris Lattner8335e842006-01-23 23:05:42 +0000311#define YY_NUM_RULES 104
312#define YY_END_OF_BUFFER 105
313static yyconst short int yy_acclist[182] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000314 { 0,
Chris Lattner8335e842006-01-23 23:05:42 +0000315 105, 103, 104, 102, 103, 104, 102, 104, 103, 104,
316 103, 104, 103, 104, 103, 104, 103, 104, 103, 104,
317 95, 103, 104, 95, 103, 104, 1, 103, 104, 103,
318 104, 103, 104, 103, 104, 103, 104, 103, 104, 103,
319 104, 103, 104, 103, 104, 103, 104, 103, 104, 103,
320 104, 103, 104, 103, 104, 103, 104, 103, 104, 103,
321 104, 103, 104, 103, 104, 103, 104, 103, 104, 103,
322 104, 94, 92, 91, 91, 98, 96, 100, 95, 1,
323 78, 35, 60, 20, 94, 91, 91, 99, 100, 17,
324 100, 101, 54, 59, 34, 30, 36, 57, 3, 45,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000325
Chris Lattner8335e842006-01-23 23:05:42 +0000326 56, 22, 68, 58, 77, 72, 73, 55, 61, 93,
327 100, 100, 40, 69, 70, 85, 86, 47, 19, 97,
328 23, 4, 52, 46, 39, 11, 100, 32, 2, 5,
329 49, 51, 41, 63, 67, 65, 66, 64, 62, 43,
330 87, 42, 48, 18, 75, 84, 38, 50, 27, 21,
331 37, 7, 80, 29, 83, 53, 71, 79, 24, 25,
332 81, 44, 76, 74, 6, 26, 33, 8, 14, 9,
333 10, 31, 12, 28, 82, 88, 90, 13, 89, 15,
334 16
Reid Spencer68a24bd2005-08-27 18:50:39 +0000335 } ;
336
Chris Lattner8335e842006-01-23 23:05:42 +0000337static yyconst short int yy_accept[430] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000338 { 0,
339 1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
340 17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
341 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
342 60, 62, 64, 66, 68, 70, 72, 72, 73, 73,
343 74, 75, 76, 77, 77, 78, 78, 79, 80, 80,
Chris Lattner8335e842006-01-23 23:05:42 +0000344 81, 81, 81, 81, 81, 81, 81, 81, 81, 82,
345 82, 83, 83, 83, 83, 83, 83, 83, 83, 83,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000346 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
Chris Lattner8335e842006-01-23 23:05:42 +0000347 83, 83, 83, 84, 84, 84, 84, 84, 84, 84,
348 84, 84, 84, 84, 84, 85, 85, 85, 85, 85,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000349
Chris Lattner8335e842006-01-23 23:05:42 +0000350 85, 85, 85, 85, 85, 85, 85, 85, 86, 87,
351 89, 90, 91, 92, 92, 93, 94, 94, 94, 95,
352 95, 96, 96, 97, 97, 97, 97, 98, 98, 98,
353 98, 98, 99, 99, 100, 100, 100, 100, 100, 100,
354 100, 100, 100, 100, 100, 101, 101, 101, 101, 101,
355 101, 101, 101, 102, 103, 103, 103, 104, 104, 105,
356 106, 106, 106, 106, 106, 106, 107, 107, 108, 108,
357 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
358 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
359 109, 110, 110, 111, 112, 112, 112, 112, 113, 113,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000360
Chris Lattner8335e842006-01-23 23:05:42 +0000361 113, 113, 113, 114, 115, 116, 116, 116, 116, 116,
362 116, 116, 116, 116, 116, 116, 116, 116, 117, 117,
363 117, 117, 117, 117, 117, 117, 117, 117, 118, 119,
364 119, 120, 120, 120, 121, 121, 121, 121, 121, 121,
365 121, 121, 121, 121, 121, 122, 122, 122, 123, 124,
366 124, 125, 125, 125, 125, 125, 125, 125, 125, 125,
367 125, 126, 126, 127, 127, 128, 129, 129, 129, 130,
368 130, 130, 130, 130, 130, 130, 130, 130, 130, 131,
369 131, 132, 132, 132, 132, 132, 132, 132, 133, 133,
370 133, 133, 133, 133, 134, 134, 134, 135, 136, 137,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000371
Chris Lattner8335e842006-01-23 23:05:42 +0000372 138, 139, 140, 141, 142, 142, 142, 142, 143, 144,
373 145, 145, 145, 145, 145, 145, 146, 146, 146, 146,
374 147, 147, 148, 148, 148, 148, 149, 150, 151, 151,
375 151, 152, 152, 153, 153, 153, 153, 154, 154, 155,
376 156, 157, 157, 157, 158, 159, 160, 161, 161, 161,
377 162, 163, 164, 165, 165, 165, 165, 165, 166, 167,
378 167, 167, 167, 167, 167, 167, 167, 167, 168, 168,
379 168, 168, 168, 168, 169, 170, 170, 170, 170, 170,
380 171, 172, 172, 172, 172, 173, 173, 174, 174, 174,
381 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
Chris Lattner8335e842006-01-23 23:05:42 +0000383 174, 174, 174, 174, 174, 174, 174, 174, 175, 175,
384 176, 176, 176, 176, 176, 176, 176, 176, 176, 177,
385 177, 178, 179, 179, 180, 181, 181, 182, 182
Reid Spencer68a24bd2005-08-27 18:50:39 +0000386 } ;
387
388static yyconst int yy_ec[256] =
389 { 0,
390 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
391 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
393 1, 2, 1, 4, 1, 5, 6, 1, 1, 1,
394 1, 1, 7, 1, 8, 9, 1, 10, 11, 11,
395 11, 11, 11, 11, 11, 11, 11, 12, 13, 1,
396 1, 1, 1, 1, 14, 14, 14, 14, 15, 14,
397 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
398 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
399 1, 1, 1, 1, 16, 1, 17, 18, 19, 20,
400
401 21, 22, 23, 24, 25, 5, 26, 27, 28, 29,
402 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
403 40, 41, 1, 1, 1, 1, 1, 1, 1, 1,
404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
406 1, 1, 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
412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
414 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
418 } ;
419
420static yyconst int yy_meta[42] =
421 { 0,
422 1, 1, 2, 1, 3, 1, 1, 3, 3, 3,
423 3, 4, 1, 3, 3, 3, 3, 3, 3, 3,
424 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
425 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
426 3
427 } ;
428
Chris Lattner8335e842006-01-23 23:05:42 +0000429static yyconst short int yy_base[434] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000430 { 0,
Chris Lattner8335e842006-01-23 23:05:42 +0000431 0, 0, 898, 899, 899, 899, 893, 884, 34, 36,
432 38, 42, 46, 50, 0, 52, 57, 54, 68, 62,
433 80, 82, 76, 94, 98, 40, 83, 88, 56, 125,
434 108, 154, 109, 87, 110, 111, 891, 899, 882, 899,
435 0, 117, 119, 141, 144, 124, 147, 164, 179, 0,
436 55, 153, 157, 155, 119, 159, 172, 173, 881, 175,
437 192, 193, 194, 105, 180, 195, 198, 196, 202, 200,
438 206, 207, 212, 214, 84, 215, 217, 226, 227, 223,
439 228, 219, 880, 235, 240, 233, 230, 216, 245, 251,
440 247, 255, 250, 254, 879, 258, 259, 262, 264, 270,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000441
Chris Lattner8335e842006-01-23 23:05:42 +0000442 276, 41, 287, 280, 274, 273, 277, 878, 0, 134,
443 302, 877, 309, 321, 0, 876, 285, 306, 875, 313,
444 874, 286, 873, 310, 314, 303, 872, 315, 327, 328,
445 330, 871, 331, 333, 332, 335, 336, 334, 342, 339,
446 350, 354, 338, 352, 355, 351, 362, 363, 365, 366,
447 367, 368, 870, 869, 370, 31, 868, 372, 867, 866,
448 392, 373, 380, 375, 404, 865, 386, 864, 387, 863,
449 382, 409, 381, 393, 411, 414, 406, 410, 417, 416,
450 418, 422, 426, 427, 432, 428, 438, 436, 441, 440,
451 862, 430, 899, 452, 461, 444, 464, 467, 452, 468,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000452
Chris Lattner8335e842006-01-23 23:05:42 +0000453 453, 471, 861, 860, 859, 472, 458, 473, 474, 476,
454 477, 480, 483, 484, 485, 486, 490, 858, 492, 495,
455 496, 497, 498, 501, 502, 503, 508, 857, 856, 506,
456 855, 509, 511, 0, 516, 514, 522, 510, 526, 528,
457 531, 520, 532, 538, 854, 539, 542, 853, 852, 544,
458 851, 536, 546, 550, 554, 552, 555, 558, 560, 561,
459 850, 562, 849, 564, 567, 848, 567, 570, 847, 568,
460 581, 573, 574, 582, 583, 584, 587, 589, 846, 590,
461 845, 592, 593, 595, 598, 599, 603, 844, 602, 605,
462 606, 609, 615, 843, 610, 617, 842, 841, 840, 839,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000463
Chris Lattner8335e842006-01-23 23:05:42 +0000464 838, 837, 836, 835, 620, 622, 625, 834, 833, 832,
465 623, 626, 627, 629, 630, 831, 631, 636, 638, 830,
466 637, 829, 639, 642, 643, 828, 827, 826, 648, 644,
467 825, 647, 824, 657, 659, 664, 823, 670, 822, 821,
468 820, 658, 661, 819, 818, 817, 816, 660, 662, 815,
469 812, 803, 802, 671, 672, 675, 676, 800, 798, 680,
470 681, 682, 683, 687, 688, 684, 689, 797, 696, 704,
471 697, 694, 705, 796, 794, 698, 707, 708, 710, 793,
472 792, 712, 714, 715, 790, 720, 789, 718, 722, 723,
473 726, 730, 734, 735, 732, 736, 738, 739, 740, 744,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000474
Chris Lattner8335e842006-01-23 23:05:42 +0000475 741, 746, 743, 751, 748, 754, 756, 787, 763, 785,
476 761, 764, 765, 766, 768, 769, 775, 776, 783, 778,
477 782, 512, 779, 379, 376, 780, 340, 899, 816, 818,
478 292, 822, 167
Reid Spencer68a24bd2005-08-27 18:50:39 +0000479 } ;
480
Chris Lattner8335e842006-01-23 23:05:42 +0000481static yyconst short int yy_def[434] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000482 { 0,
Chris Lattner8335e842006-01-23 23:05:42 +0000483 428, 1, 428, 428, 428, 428, 429, 430, 431, 428,
484 430, 430, 430, 430, 432, 430, 430, 430, 430, 430,
485 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
486 430, 430, 430, 430, 430, 430, 429, 428, 430, 428,
487 433, 433, 428, 428, 430, 430, 430, 430, 430, 432,
488 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
489 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
490 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
491 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
492 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000493
Chris Lattner8335e842006-01-23 23:05:42 +0000494 430, 430, 430, 430, 430, 430, 430, 428, 433, 433,
495 428, 430, 430, 430, 49, 430, 430, 430, 430, 430,
496 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
497 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
498 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
499 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
500 49, 430, 430, 430, 430, 430, 430, 430, 430, 430,
501 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
502 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
503 430, 430, 428, 428, 428, 428, 430, 430, 430, 430,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000504
Chris Lattner8335e842006-01-23 23:05:42 +0000505 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
506 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
507 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
508 430, 430, 430, 161, 430, 430, 430, 430, 430, 430,
509 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
510 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
511 430, 430, 430, 430, 428, 430, 430, 430, 430, 430,
512 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
513 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
514 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000515
Chris Lattner8335e842006-01-23 23:05:42 +0000516 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
517 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
518 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
519 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
520 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
521 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
522 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
523 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
524 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
525 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000526
Chris Lattner8335e842006-01-23 23:05:42 +0000527 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
528 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
529 430, 430, 430, 430, 430, 430, 430, 0, 428, 428,
530 428, 428, 428
Reid Spencer68a24bd2005-08-27 18:50:39 +0000531 } ;
532
Chris Lattner8335e842006-01-23 23:05:42 +0000533static yyconst short int yy_nxt[941] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000534 { 0,
535 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
536 14, 4, 15, 8, 8, 8, 16, 17, 18, 19,
537 20, 21, 22, 8, 23, 8, 24, 25, 26, 27,
538 28, 8, 29, 30, 31, 32, 33, 34, 35, 8,
539 36, 42, 40, 43, 43, 44, 44, 45, 45, 40,
Chris Lattner8335e842006-01-23 23:05:42 +0000540 46, 40, 40, 40, 47, 48, 48, 40, 47, 48,
541 48, 40, 232, 40, 184, 40, 40, 40, 40, 80,
542 60, 51, 61, 40, 116, 81, 86, 56, 52, 40,
543 53, 57, 54, 62, 49, 55, 58, 40, 63, 59,
544 66, 40, 64, 40, 40, 40, 68, 65, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000545
Chris Lattner8335e842006-01-23 23:05:42 +0000546 67, 147, 71, 73, 74, 40, 69, 105, 72, 40,
547 75, 84, 70, 82, 78, 83, 40, 85, 76, 40,
548 40, 40, 40, 77, 94, 103, 110, 110, 43, 43,
549 40, 107, 112, 79, 87, 40, 40, 95, 104, 106,
550 96, 132, 88, 110, 110, 89, 121, 97, 90, 111,
551 44, 44, 47, 45, 45, 40, 113, 113, 40, 91,
552 92, 114, 93, 87, 40, 40, 40, 114, 40, 109,
553 40, 98, 47, 48, 48, 40, 119, 117, 99, 118,
554 100, 122, 101, 40, 40, 120, 40, 102, 115, 115,
555 40, 40, 115, 115, 123, 115, 115, 115, 115, 115,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000556
Chris Lattner8335e842006-01-23 23:05:42 +0000557 115, 125, 124, 40, 40, 40, 40, 40, 126, 40,
558 127, 40, 130, 40, 134, 133, 135, 40, 40, 128,
559 140, 129, 137, 40, 131, 40, 40, 40, 40, 138,
560 40, 139, 136, 150, 40, 156, 142, 40, 40, 40,
561 141, 40, 143, 148, 40, 151, 40, 144, 145, 149,
562 146, 40, 152, 153, 155, 162, 40, 154, 40, 157,
563 159, 40, 40, 163, 158, 40, 40, 160, 161, 40,
564 40, 164, 170, 40, 171, 40, 169, 166, 172, 165,
565 167, 40, 174, 168, 40, 40, 173, 40, 40, 176,
566 190, 40, 178, 175, 41, 180, 40, 40, 40, 179,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000567
Chris Lattner8335e842006-01-23 23:05:42 +0000568 181, 177, 185, 186, 188, 191, 189, 199, 182, 192,
569 202, 194, 194, 183, 40, 187, 195, 40, 113, 113,
570 40, 40, 195, 114, 40, 40, 40, 196, 197, 114,
571 198, 198, 40, 201, 206, 200, 203, 205, 40, 40,
572 204, 40, 40, 40, 40, 40, 40, 40, 210, 40,
573 40, 40, 212, 40, 208, 213, 209, 211, 217, 218,
574 207, 40, 40, 40, 221, 40, 40, 214, 216, 215,
575 219, 220, 222, 40, 40, 223, 40, 40, 40, 40,
576 224, 40, 225, 40, 40, 228, 40, 40, 226, 229,
577 40, 40, 40, 40, 230, 237, 231, 40, 40, 227,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000578
Chris Lattner8335e842006-01-23 23:05:42 +0000579 233, 234, 234, 246, 40, 234, 234, 235, 234, 234,
580 234, 234, 234, 234, 236, 40, 244, 40, 242, 243,
581 40, 40, 40, 247, 238, 40, 239, 40, 40, 40,
582 240, 248, 241, 40, 249, 245, 253, 40, 40, 40,
583 250, 40, 255, 40, 251, 252, 254, 40, 258, 40,
584 256, 40, 40, 265, 265, 261, 257, 262, 260, 264,
585 259, 194, 194, 40, 40, 263, 195, 196, 196, 40,
586 265, 265, 195, 198, 198, 40, 198, 198, 40, 40,
587 266, 268, 40, 40, 40, 40, 267, 40, 40, 272,
588 270, 40, 271, 275, 40, 40, 40, 40, 273, 269,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000589
Chris Lattner8335e842006-01-23 23:05:42 +0000590 278, 40, 274, 40, 280, 279, 40, 40, 40, 40,
591 276, 283, 40, 40, 40, 277, 284, 40, 282, 40,
592 40, 40, 40, 40, 281, 40, 287, 40, 288, 285,
593 286, 40, 289, 40, 290, 291, 294, 40, 295, 40,
594 296, 297, 40, 40, 292, 293, 298, 40, 300, 40,
595 40, 302, 304, 40, 303, 40, 305, 40, 309, 306,
596 299, 40, 301, 40, 308, 40, 40, 310, 307, 40,
597 312, 40, 40, 40, 311, 40, 265, 265, 40, 40,
598 313, 40, 316, 320, 40, 40, 322, 314, 319, 321,
599 315, 325, 40, 40, 40, 40, 318, 323, 40, 317,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000600
Chris Lattner8335e842006-01-23 23:05:42 +0000601 40, 40, 326, 40, 40, 324, 40, 330, 331, 40,
602 40, 327, 332, 40, 40, 329, 40, 40, 328, 333,
603 40, 40, 334, 337, 340, 339, 40, 336, 40, 341,
604 338, 40, 335, 40, 40, 342, 40, 40, 40, 343,
605 40, 40, 40, 345, 349, 347, 350, 40, 40, 40,
606 40, 344, 352, 40, 40, 40, 346, 348, 40, 40,
607 354, 356, 358, 351, 360, 353, 355, 357, 40, 40,
608 40, 40, 40, 40, 362, 40, 359, 363, 361, 364,
609 365, 40, 40, 40, 369, 370, 40, 40, 366, 368,
610 367, 40, 40, 40, 40, 40, 372, 371, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000611
Chris Lattner8335e842006-01-23 23:05:42 +0000612 40, 376, 377, 373, 381, 40, 375, 40, 40, 40,
613 374, 378, 383, 379, 380, 40, 40, 385, 40, 40,
614 384, 40, 382, 40, 388, 40, 40, 387, 386, 40,
615 391, 40, 394, 40, 40, 389, 392, 40, 396, 398,
616 393, 40, 390, 40, 395, 40, 40, 40, 403, 40,
617 40, 40, 40, 399, 40, 40, 397, 40, 401, 40,
618 407, 402, 40, 404, 408, 40, 410, 40, 405, 411,
619 400, 412, 40, 406, 40, 40, 40, 40, 414, 40,
620 40, 409, 413, 416, 415, 417, 40, 40, 422, 40,
621 40, 40, 418, 40, 40, 420, 40, 419, 40, 426,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000622
Chris Lattner8335e842006-01-23 23:05:42 +0000623 40, 40, 421, 40, 40, 40, 425, 40, 40, 40,
624 424, 40, 427, 40, 40, 423, 37, 37, 37, 37,
625 39, 39, 50, 40, 50, 50, 40, 40, 40, 40,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000626 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
627 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Nate Begeman14b05292005-11-05 09:21:28 +0000628 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattnere869eef2005-11-12 00:11:49 +0000629 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Robert Bocchino9c62b562006-01-10 19:04:32 +0000630 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
Chris Lattner8335e842006-01-23 23:05:42 +0000631 40, 40, 40, 40, 40, 40, 40, 40, 40, 193,
632 40, 40, 40, 40, 108, 40, 38, 428, 3, 428,
Chris Lattnere869eef2005-11-12 00:11:49 +0000633
Chris Lattner8335e842006-01-23 23:05:42 +0000634 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
635 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
636 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
637 428, 428, 428, 428, 428, 428, 428, 428, 428, 428
Reid Spencer68a24bd2005-08-27 18:50:39 +0000638 } ;
639
Chris Lattner8335e842006-01-23 23:05:42 +0000640static yyconst short int yy_chk[941] =
Reid Spencer68a24bd2005-08-27 18:50:39 +0000641 { 0,
642 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
643 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Chris Lattner8335e842006-01-23 23:05:42 +0000646 1, 9, 156, 9, 9, 10, 10, 11, 11, 11,
647 12, 26, 102, 12, 13, 13, 13, 13, 14, 14,
648 14, 14, 156, 16, 102, 18, 51, 29, 17, 26,
649 18, 16, 18, 20, 51, 26, 29, 17, 16, 19,
650 16, 17, 16, 18, 13, 16, 17, 23, 19, 17,
651 20, 21, 19, 22, 27, 75, 21, 19, 34, 28,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000652
Chris Lattner8335e842006-01-23 23:05:42 +0000653 20, 75, 22, 23, 23, 24, 21, 34, 22, 25,
654 24, 28, 21, 27, 25, 27, 64, 28, 24, 31,
655 33, 35, 36, 24, 31, 33, 42, 42, 43, 43,
656 55, 36, 46, 25, 30, 46, 30, 31, 33, 35,
657 31, 64, 30, 110, 110, 30, 55, 31, 30, 44,
658 44, 44, 45, 45, 45, 45, 47, 47, 47, 30,
659 30, 47, 30, 32, 52, 32, 54, 47, 53, 433,
660 56, 32, 48, 48, 48, 48, 53, 52, 32, 52,
661 32, 56, 32, 57, 58, 54, 60, 32, 49, 49,
662 49, 65, 49, 49, 57, 49, 49, 49, 49, 49,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000663
Chris Lattner8335e842006-01-23 23:05:42 +0000664 49, 60, 58, 61, 62, 63, 66, 68, 60, 67,
665 61, 70, 63, 69, 66, 65, 67, 71, 72, 62,
666 70, 62, 68, 73, 63, 74, 76, 88, 77, 68,
667 82, 69, 67, 77, 80, 82, 72, 78, 79, 81,
668 71, 87, 73, 76, 86, 77, 84, 74, 74, 76,
669 74, 85, 78, 79, 81, 88, 89, 80, 91, 84,
670 86, 93, 90, 89, 85, 94, 92, 86, 87, 96,
671 97, 89, 92, 98, 93, 99, 91, 90, 94, 89,
672 90, 100, 96, 90, 106, 105, 94, 101, 107, 97,
673 105, 104, 99, 96, 431, 101, 117, 122, 103, 100,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000674
Chris Lattner8335e842006-01-23 23:05:42 +0000675 101, 98, 103, 103, 104, 106, 104, 117, 101, 107,
676 122, 111, 111, 101, 126, 103, 111, 118, 113, 113,
677 113, 124, 111, 113, 120, 125, 128, 114, 114, 113,
678 114, 114, 114, 120, 128, 118, 124, 126, 129, 130,
679 125, 131, 133, 135, 134, 138, 136, 137, 133, 143,
680 140, 427, 135, 139, 130, 136, 131, 134, 139, 140,
681 129, 141, 146, 144, 143, 142, 145, 136, 138, 137,
682 141, 142, 144, 147, 148, 145, 149, 150, 151, 152,
683 146, 155, 147, 158, 162, 150, 164, 425, 148, 151,
684 424, 163, 173, 171, 152, 164, 155, 167, 169, 149,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000685
Chris Lattner8335e842006-01-23 23:05:42 +0000686 158, 161, 161, 173, 174, 161, 161, 162, 161, 161,
687 161, 161, 161, 161, 163, 165, 171, 177, 167, 169,
688 172, 178, 175, 174, 165, 176, 165, 180, 179, 181,
689 165, 175, 165, 182, 176, 172, 180, 183, 184, 186,
690 177, 192, 182, 185, 178, 179, 181, 188, 185, 187,
691 183, 190, 189, 196, 196, 188, 184, 189, 187, 192,
692 186, 194, 194, 199, 201, 190, 194, 195, 195, 207,
693 195, 195, 194, 197, 197, 197, 198, 198, 198, 200,
694 199, 201, 202, 206, 208, 209, 200, 210, 211, 208,
695 206, 212, 207, 211, 213, 214, 215, 216, 209, 202,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000696
Chris Lattner8335e842006-01-23 23:05:42 +0000697 214, 217, 210, 219, 216, 215, 220, 221, 222, 223,
698 212, 220, 224, 225, 226, 213, 221, 230, 219, 227,
699 232, 238, 233, 422, 217, 236, 224, 235, 225, 222,
700 223, 242, 226, 237, 227, 230, 235, 239, 236, 240,
701 237, 238, 241, 243, 232, 233, 239, 252, 240, 244,
702 246, 241, 243, 247, 242, 250, 244, 253, 252, 246,
703 239, 254, 240, 256, 250, 255, 257, 253, 247, 258,
704 255, 259, 260, 262, 254, 264, 265, 265, 267, 270,
705 256, 268, 259, 267, 272, 273, 270, 257, 264, 268,
706 258, 273, 271, 274, 275, 276, 262, 271, 277, 260,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000707
Chris Lattner8335e842006-01-23 23:05:42 +0000708 278, 280, 274, 282, 283, 272, 284, 278, 280, 285,
709 286, 275, 282, 289, 287, 277, 290, 291, 276, 283,
710 292, 295, 284, 287, 291, 290, 293, 286, 296, 292,
711 289, 305, 285, 306, 311, 293, 307, 312, 313, 295,
712 314, 315, 317, 305, 312, 307, 313, 318, 321, 319,
713 323, 296, 315, 324, 325, 330, 306, 311, 332, 329,
714 318, 321, 324, 314, 329, 317, 319, 323, 334, 342,
715 335, 348, 343, 349, 332, 336, 325, 334, 330, 335,
716 336, 338, 354, 355, 348, 349, 356, 357, 338, 343,
717 342, 360, 361, 362, 363, 366, 355, 354, 364, 365,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000718
Chris Lattner8335e842006-01-23 23:05:42 +0000719 367, 361, 362, 356, 366, 372, 360, 369, 371, 376,
720 357, 363, 369, 364, 365, 370, 373, 371, 377, 378,
721 370, 379, 367, 382, 376, 383, 384, 373, 372, 388,
722 379, 386, 384, 389, 390, 377, 382, 391, 388, 390,
723 383, 392, 378, 395, 386, 393, 394, 396, 395, 397,
724 398, 399, 401, 391, 403, 400, 389, 402, 393, 405,
725 399, 394, 404, 396, 400, 406, 402, 407, 397, 403,
726 392, 404, 411, 398, 409, 412, 413, 414, 406, 415,
727 416, 401, 405, 409, 407, 411, 417, 418, 416, 420,
728 423, 426, 412, 421, 419, 414, 410, 413, 408, 423,
Reid Spencer68a24bd2005-08-27 18:50:39 +0000729
Chris Lattner8335e842006-01-23 23:05:42 +0000730 387, 385, 415, 381, 380, 375, 420, 374, 368, 359,
731 418, 358, 426, 353, 352, 417, 429, 429, 429, 429,
732 430, 430, 432, 351, 432, 432, 350, 347, 346, 345,
733 344, 341, 340, 339, 337, 333, 331, 328, 327, 326,
734 322, 320, 316, 310, 309, 308, 304, 303, 302, 301,
735 300, 299, 298, 297, 294, 288, 281, 279, 269, 266,
736 263, 261, 251, 249, 248, 245, 231, 229, 228, 218,
737 205, 204, 203, 191, 170, 168, 166, 160, 159, 157,
738 154, 153, 132, 127, 123, 121, 119, 116, 112, 108,
739 95, 83, 59, 39, 37, 8, 7, 3, 428, 428,
Chris Lattnere869eef2005-11-12 00:11:49 +0000740
Chris Lattner8335e842006-01-23 23:05:42 +0000741 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
742 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
743 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
744 428, 428, 428, 428, 428, 428, 428, 428, 428, 428
Reid Spencer68a24bd2005-08-27 18:50:39 +0000745 } ;
746
747static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
748static char *yy_full_match;
749static int yy_lp;
750#define REJECT \
751{ \
752*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
753yy_cp = yy_full_match; /* restore poss. backed-over text */ \
754++yy_lp; \
755goto find_rule; \
756}
757#define yymore() yymore_used_but_not_detected
758#define YY_MORE_ADJ 0
759#define YY_RESTORE_YY_MORE_OFFSET
760char *yytext;
Chris Lattner8335e842006-01-23 23:05:42 +0000761#line 1 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000762#define INITIAL 0
763/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
764//
765// The LLVM Compiler Infrastructure
766//
767// This file was developed by the LLVM research group and is distributed under
768// the University of Illinois Open Source License. See LICENSE.TXT for details.
769//
770//===----------------------------------------------------------------------===//
771//
772// This file implements the flex scanner for LLVM assembly languages files.
773//
774//===----------------------------------------------------------------------===*/
775#define YY_NEVER_INTERACTIVE 1
Chris Lattner8335e842006-01-23 23:05:42 +0000776#line 28 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000777#include "ParserInternals.h"
778#include "llvm/Module.h"
779#include <list>
780#include "llvmAsmParser.h"
781#include <cctype>
782#include <cstdlib>
783
784void set_scan_file(FILE * F){
785 yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
786}
787void set_scan_string (const char * str) {
788 yy_scan_string (str);
789}
790
791#define RET_TOK(type, Enum, sym) \
792 llvmAsmlval.type = Instruction::Enum; return sym
793
794namespace llvm {
795
796// TODO: All of the static identifiers are figured out by the lexer,
797// these should be hashed to reduce the lexer size
798
799
800// atoull - Convert an ascii string of decimal digits into the unsigned long
801// long representation... this does not have to do input error checking,
802// because we know that the input will be matched by a suitable regex...
803//
804static uint64_t atoull(const char *Buffer) {
805 uint64_t Result = 0;
806 for (; *Buffer; Buffer++) {
807 uint64_t OldRes = Result;
808 Result *= 10;
809 Result += *Buffer-'0';
810 if (Result < OldRes) // Uh, oh, overflow detected!!!
811 ThrowException("constant bigger than 64 bits detected!");
812 }
813 return Result;
814}
815
816static uint64_t HexIntToVal(const char *Buffer) {
817 uint64_t Result = 0;
818 for (; *Buffer; ++Buffer) {
819 uint64_t OldRes = Result;
820 Result *= 16;
821 char C = *Buffer;
822 if (C >= '0' && C <= '9')
823 Result += C-'0';
824 else if (C >= 'A' && C <= 'F')
825 Result += C-'A'+10;
826 else if (C >= 'a' && C <= 'f')
827 Result += C-'a'+10;
828
829 if (Result < OldRes) // Uh, oh, overflow detected!!!
830 ThrowException("constant bigger than 64 bits detected!");
831 }
832 return Result;
833}
834
835
836// HexToFP - Convert the ascii string in hexidecimal format to the floating
837// point representation of it.
838//
839static double HexToFP(const char *Buffer) {
840 // Behave nicely in the face of C TBAA rules... see:
841 // http://www.nullstone.com/htmls/category/aliastyp.htm
842 union {
843 uint64_t UI;
844 double FP;
845 } UIntToFP;
846 UIntToFP.UI = HexIntToVal(Buffer);
847
848 assert(sizeof(double) == sizeof(uint64_t) &&
849 "Data sizes incompatible on this target!");
850 return UIntToFP.FP; // Cast Hex constant to double
851}
852
853
854// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
855// appropriate character. If AllowNull is set to false, a \00 value will cause
856// an exception to be thrown.
857//
858// If AllowNull is set to true, the return value of the function points to the
859// last character of the string in memory.
860//
861char *UnEscapeLexed(char *Buffer, bool AllowNull) {
862 char *BOut = Buffer;
863 for (char *BIn = Buffer; *BIn; ) {
864 if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
865 char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
866 *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
867 if (!AllowNull && !*BOut)
868 ThrowException("String literal cannot accept \\00 escape!");
869
870 BIn[3] = Tmp; // Restore character
871 BIn += 3; // Skip over handled chars
872 ++BOut;
873 } else {
874 *BOut++ = *BIn++;
875 }
876 }
877
878 return BOut;
879}
880
881} // End llvm namespace
882
883using namespace llvm;
884
885#define YY_NEVER_INTERACTIVE 1
886/* Comments start with a ; and go till end of line */
887/* Variable(Value) identifiers start with a % sign */
888/* Label identifiers end with a colon */
889/* Quoted names can contain any character except " and \ */
890/* [PN]Integer: match positive and negative literal integer values that
891 * are preceeded by a '%' character. These represent unnamed variable slots.
892 */
893/* E[PN]Integer: match positive and negative literal integer values */
894/* FPConstant - A Floating point constant.
895 */
896/* HexFPConstant - Floating point constant represented in IEEE format as a
897 * hexadecimal number for when exponential notation is not precise enough.
898 */
899/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
900 * it to deal with 64 bit numbers.
901 */
Chris Lattner8335e842006-01-23 23:05:42 +0000902#line 903 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +0000903
904/* Macros after this point can all be overridden by user definitions in
905 * section 1.
906 */
907
908#ifndef YY_SKIP_YYWRAP
909#ifdef __cplusplus
910extern "C" int yywrap YY_PROTO(( void ));
911#else
912extern int yywrap YY_PROTO(( void ));
913#endif
914#endif
915
916#ifndef YY_NO_UNPUT
917static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
918#endif
919
920#ifndef yytext_ptr
921static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
922#endif
923
924#ifdef YY_NEED_STRLEN
925static int yy_flex_strlen YY_PROTO(( yyconst char * ));
926#endif
927
928#ifndef YY_NO_INPUT
929#ifdef __cplusplus
930static int yyinput YY_PROTO(( void ));
931#else
932static int input YY_PROTO(( void ));
933#endif
934#endif
935
936#if YY_STACK_USED
937static int yy_start_stack_ptr = 0;
938static int yy_start_stack_depth = 0;
939static int *yy_start_stack = 0;
940#ifndef YY_NO_PUSH_STATE
941static void yy_push_state YY_PROTO(( int new_state ));
942#endif
943#ifndef YY_NO_POP_STATE
944static void yy_pop_state YY_PROTO(( void ));
945#endif
946#ifndef YY_NO_TOP_STATE
947static int yy_top_state YY_PROTO(( void ));
948#endif
949
950#else
951#define YY_NO_PUSH_STATE 1
952#define YY_NO_POP_STATE 1
953#define YY_NO_TOP_STATE 1
954#endif
955
956#ifdef YY_MALLOC_DECL
957YY_MALLOC_DECL
958#else
959#if __STDC__
960#ifndef __cplusplus
961#include <stdlib.h>
962#endif
963#else
964/* Just try to get by without declaring the routines. This will fail
965 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
966 * or sizeof(void*) != sizeof(int).
967 */
968#endif
969#endif
970
971/* Amount of stuff to slurp up with each read. */
972#ifndef YY_READ_BUF_SIZE
973#define YY_READ_BUF_SIZE 8192
974#endif
975
976/* Copy whatever the last rule matched to the standard output. */
977
978#ifndef ECHO
979/* This used to be an fputs(), but since the string might contain NUL's,
980 * we now use fwrite().
981 */
982#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
983#endif
984
985/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
986 * is returned in "result".
987 */
988#ifndef YY_INPUT
989#define YY_INPUT(buf,result,max_size) \
990 if ( yy_current_buffer->yy_is_interactive ) \
991 { \
992 int c = '*', n; \
993 for ( n = 0; n < max_size && \
994 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
995 buf[n] = (char) c; \
996 if ( c == '\n' ) \
997 buf[n++] = (char) c; \
998 if ( c == EOF && ferror( yyin ) ) \
999 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1000 result = n; \
1001 } \
1002 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1003 && ferror( yyin ) ) \
1004 YY_FATAL_ERROR( "input in flex scanner failed" );
1005#endif
1006
1007/* No semi-colon after return; correct usage is to write "yyterminate();" -
1008 * we don't want an extra ';' after the "return" because that will cause
1009 * some compilers to complain about unreachable statements.
1010 */
1011#ifndef yyterminate
1012#define yyterminate() return YY_NULL
1013#endif
1014
1015/* Number of entries by which start-condition stack grows. */
1016#ifndef YY_START_STACK_INCR
1017#define YY_START_STACK_INCR 25
1018#endif
1019
1020/* Report a fatal error. */
1021#ifndef YY_FATAL_ERROR
1022#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1023#endif
1024
1025/* Default declaration of generated scanner - a define so the user can
1026 * easily add parameters.
1027 */
1028#ifndef YY_DECL
1029#define YY_DECL int yylex YY_PROTO(( void ))
1030#endif
1031
1032/* Code executed at the beginning of each rule, after yytext and yyleng
1033 * have been set up.
1034 */
1035#ifndef YY_USER_ACTION
1036#define YY_USER_ACTION
1037#endif
1038
1039/* Code executed at the end of each rule. */
1040#ifndef YY_BREAK
1041#define YY_BREAK break;
1042#endif
1043
1044#define YY_RULE_SETUP \
1045 YY_USER_ACTION
1046
1047YY_DECL
1048 {
1049 register yy_state_type yy_current_state;
Nate Begeman14b05292005-11-05 09:21:28 +00001050 register char *yy_cp, *yy_bp;
Reid Spencer68a24bd2005-08-27 18:50:39 +00001051 register int yy_act;
1052
Chris Lattner8335e842006-01-23 23:05:42 +00001053#line 179 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001054
1055
Chris Lattner8335e842006-01-23 23:05:42 +00001056#line 1057 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001057
1058 if ( yy_init )
1059 {
1060 yy_init = 0;
1061
1062#ifdef YY_USER_INIT
1063 YY_USER_INIT;
1064#endif
1065
1066 if ( ! yy_start )
1067 yy_start = 1; /* first start state */
1068
1069 if ( ! yyin )
1070 yyin = stdin;
1071
1072 if ( ! yyout )
1073 yyout = stdout;
1074
1075 if ( ! yy_current_buffer )
1076 yy_current_buffer =
1077 yy_create_buffer( yyin, YY_BUF_SIZE );
1078
1079 yy_load_buffer_state();
1080 }
1081
1082 while ( 1 ) /* loops until end-of-file is reached */
1083 {
1084 yy_cp = yy_c_buf_p;
1085
1086 /* Support of yytext. */
1087 *yy_cp = yy_hold_char;
1088
1089 /* yy_bp points to the position in yy_ch_buf of the start of
1090 * the current run.
1091 */
1092 yy_bp = yy_cp;
1093
1094 yy_current_state = yy_start;
1095 yy_state_ptr = yy_state_buf;
1096 *yy_state_ptr++ = yy_current_state;
1097yy_match:
1098 do
1099 {
1100 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1101 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1102 {
1103 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattner8335e842006-01-23 23:05:42 +00001104 if ( yy_current_state >= 429 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00001105 yy_c = yy_meta[(unsigned int) yy_c];
1106 }
1107 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1108 *yy_state_ptr++ = yy_current_state;
1109 ++yy_cp;
1110 }
Chris Lattner8335e842006-01-23 23:05:42 +00001111 while ( yy_current_state != 428 );
Reid Spencer68a24bd2005-08-27 18:50:39 +00001112
1113yy_find_action:
1114 yy_current_state = *--yy_state_ptr;
1115 yy_lp = yy_accept[yy_current_state];
1116find_rule: /* we branch to this label when backing up */
1117 for ( ; ; ) /* until we find what rule we matched */
1118 {
1119 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1120 {
1121 yy_act = yy_acclist[yy_lp];
1122 {
1123 yy_full_match = yy_cp;
1124 break;
1125 }
1126 }
1127 --yy_cp;
1128 yy_current_state = *--yy_state_ptr;
1129 yy_lp = yy_accept[yy_current_state];
1130 }
1131
1132 YY_DO_BEFORE_ACTION;
1133
1134 if ( yy_act != YY_END_OF_BUFFER )
1135 {
1136 int yyl;
1137 for ( yyl = 0; yyl < yyleng; ++yyl )
1138 if ( yytext[yyl] == '\n' )
1139 ++yylineno;
1140 }
1141
1142do_action: /* This label is used only to access EOF actions. */
1143
1144
1145 switch ( yy_act )
1146 { /* beginning of action switch */
1147case 1:
1148YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001149#line 181 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001150{ /* Ignore comments for now */ }
1151 YY_BREAK
1152case 2:
1153YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001154#line 183 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001155{ return BEGINTOK; }
1156 YY_BREAK
1157case 3:
1158YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001159#line 184 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001160{ return ENDTOK; }
1161 YY_BREAK
1162case 4:
1163YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001164#line 185 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001165{ return TRUETOK; }
1166 YY_BREAK
1167case 5:
1168YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001169#line 186 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001170{ return FALSETOK; }
1171 YY_BREAK
1172case 6:
1173YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001174#line 187 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001175{ return DECLARE; }
1176 YY_BREAK
1177case 7:
1178YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001179#line 188 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001180{ return GLOBAL; }
1181 YY_BREAK
1182case 8:
1183YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001184#line 189 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001185{ return CONSTANT; }
1186 YY_BREAK
1187case 9:
1188YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001189#line 190 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001190{ return INTERNAL; }
1191 YY_BREAK
1192case 10:
1193YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001194#line 191 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001195{ return LINKONCE; }
1196 YY_BREAK
1197case 11:
1198YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001199#line 192 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001200{ return WEAK; }
1201 YY_BREAK
1202case 12:
1203YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001204#line 193 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001205{ return APPENDING; }
1206 YY_BREAK
1207case 13:
1208YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001209#line 194 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001210{ return EXTERNAL; } /* Deprecated, turn into external */
1211 YY_BREAK
1212case 14:
1213YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001214#line 195 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001215{ return EXTERNAL; }
1216 YY_BREAK
1217case 15:
1218YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001219#line 196 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001220{ return IMPLEMENTATION; }
1221 YY_BREAK
1222case 16:
1223YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001224#line 197 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001225{ return ZEROINITIALIZER; }
1226 YY_BREAK
1227case 17:
1228YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001229#line 198 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001230{ return DOTDOTDOT; }
1231 YY_BREAK
1232case 18:
1233YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001234#line 199 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001235{ return UNDEF; }
1236 YY_BREAK
1237case 19:
1238YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001239#line 200 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001240{ return NULL_TOK; }
1241 YY_BREAK
1242case 20:
1243YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001244#line 201 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001245{ return TO; }
1246 YY_BREAK
1247case 21:
1248YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001249#line 202 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001250{ RET_TOK(TermOpVal, Unwind, UNWIND); }
1251 YY_BREAK
1252case 22:
1253YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001254#line 203 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001255{ return NOT; } /* Deprecated, turned into XOR */
1256 YY_BREAK
1257case 23:
1258YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001259#line 204 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001260{ return TAIL; }
1261 YY_BREAK
1262case 24:
1263YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001264#line 205 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001265{ return TARGET; }
1266 YY_BREAK
1267case 25:
1268YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001269#line 206 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001270{ return TRIPLE; }
1271 YY_BREAK
1272case 26:
1273YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001274#line 207 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001275{ return DEPLIBS; }
1276 YY_BREAK
1277case 27:
1278YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001279#line 208 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001280{ return ENDIAN; }
1281 YY_BREAK
1282case 28:
1283YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001284#line 209 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001285{ return POINTERSIZE; }
1286 YY_BREAK
1287case 29:
1288YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001289#line 210 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001290{ return LITTLE; }
1291 YY_BREAK
1292case 30:
1293YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001294#line 211 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001295{ return BIG; }
1296 YY_BREAK
1297case 31:
1298YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001299#line 212 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001300{ return VOLATILE; }
1301 YY_BREAK
1302case 32:
1303YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001304#line 213 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattnere869eef2005-11-12 00:11:49 +00001305{ return ALIGN; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001306 YY_BREAK
1307case 33:
1308YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001309#line 214 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Chris Lattnere869eef2005-11-12 00:11:49 +00001310{ return SECTION; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001311 YY_BREAK
1312case 34:
1313YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001314#line 215 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1315{ return ASM_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001316 YY_BREAK
1317case 35:
1318YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001319#line 217 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1320{ return CC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001321 YY_BREAK
1322case 36:
1323YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001324#line 218 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1325{ return CCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001326 YY_BREAK
1327case 37:
1328YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001329#line 219 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1330{ return FASTCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001331 YY_BREAK
1332case 38:
1333YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001334#line 220 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1335{ return COLDCC_TOK; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001336 YY_BREAK
1337case 39:
1338YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001339#line 222 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1340{ llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001341 YY_BREAK
1342case 40:
1343YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001344#line 223 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1345{ llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001346 YY_BREAK
1347case 41:
1348YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001349#line 224 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1350{ llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001351 YY_BREAK
1352case 42:
1353YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001354#line 225 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1355{ llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001356 YY_BREAK
1357case 43:
1358YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001359#line 226 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1360{ llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001361 YY_BREAK
1362case 44:
1363YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001364#line 227 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1365{ llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001366 YY_BREAK
1367case 45:
1368YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001369#line 228 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1370{ llvmAsmlval.PrimType = Type::IntTy ; return INT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001371 YY_BREAK
1372case 46:
1373YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001374#line 229 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1375{ llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001376 YY_BREAK
1377case 47:
1378YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001379#line 230 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1380{ llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001381 YY_BREAK
1382case 48:
1383YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001384#line 231 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1385{ llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001386 YY_BREAK
1387case 49:
1388YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001389#line 232 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1390{ llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001391 YY_BREAK
1392case 50:
1393YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001394#line 233 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1395{ llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001396 YY_BREAK
1397case 51:
1398YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001399#line 234 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1400{ llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001401 YY_BREAK
1402case 52:
1403YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001404#line 235 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1405{ return TYPE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001406 YY_BREAK
1407case 53:
1408YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001409#line 236 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1410{ return OPAQUE; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001411 YY_BREAK
1412case 54:
1413YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001414#line 238 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1415{ RET_TOK(BinaryOpVal, Add, ADD); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001416 YY_BREAK
1417case 55:
1418YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001419#line 239 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1420{ RET_TOK(BinaryOpVal, Sub, SUB); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001421 YY_BREAK
1422case 56:
1423YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001424#line 240 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1425{ RET_TOK(BinaryOpVal, Mul, MUL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001426 YY_BREAK
1427case 57:
1428YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001429#line 241 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1430{ RET_TOK(BinaryOpVal, Div, DIV); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001431 YY_BREAK
1432case 58:
1433YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001434#line 242 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1435{ RET_TOK(BinaryOpVal, Rem, REM); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001436 YY_BREAK
1437case 59:
1438YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001439#line 243 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1440{ RET_TOK(BinaryOpVal, And, AND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001441 YY_BREAK
1442case 60:
1443YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001444#line 244 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1445{ RET_TOK(BinaryOpVal, Or , OR ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001446 YY_BREAK
1447case 61:
1448YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001449#line 245 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1450{ RET_TOK(BinaryOpVal, Xor, XOR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001451 YY_BREAK
1452case 62:
1453YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001454#line 246 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1455{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001456 YY_BREAK
1457case 63:
1458YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001459#line 247 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1460{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001461 YY_BREAK
1462case 64:
1463YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001464#line 248 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1465{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001466 YY_BREAK
1467case 65:
1468YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001469#line 249 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1470{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001471 YY_BREAK
1472case 66:
1473YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001474#line 250 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1475{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001476 YY_BREAK
1477case 67:
1478YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001479#line 251 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1480{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001481 YY_BREAK
1482case 68:
1483YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001484#line 253 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1485{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001486 YY_BREAK
1487case 69:
1488YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001489#line 254 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1490{ RET_TOK(OtherOpVal, Call, CALL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001491 YY_BREAK
1492case 70:
1493YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001494#line 255 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1495{ RET_TOK(OtherOpVal, Cast, CAST); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001496 YY_BREAK
1497case 71:
1498YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001499#line 256 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1500{ RET_TOK(OtherOpVal, Select, SELECT); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001501 YY_BREAK
1502case 72:
1503YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001504#line 257 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1505{ RET_TOK(OtherOpVal, Shl, SHL); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001506 YY_BREAK
1507case 73:
1508YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001509#line 258 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1510{ RET_TOK(OtherOpVal, Shr, SHR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001511 YY_BREAK
1512case 74:
1513YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001514#line 259 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1515{ return VANEXT_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001516 YY_BREAK
1517case 75:
1518YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001519#line 260 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1520{ return VAARG_old; }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001521 YY_BREAK
1522case 76:
1523YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001524#line 261 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1525{ RET_TOK(OtherOpVal, VAArg , VAARG); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001526 YY_BREAK
1527case 77:
1528YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001529#line 262 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1530{ RET_TOK(TermOpVal, Ret, RET); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001531 YY_BREAK
1532case 78:
1533YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001534#line 263 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1535{ RET_TOK(TermOpVal, Br, BR); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001536 YY_BREAK
1537case 79:
1538YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001539#line 264 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1540{ RET_TOK(TermOpVal, Switch, SWITCH); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001541 YY_BREAK
1542case 80:
1543YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001544#line 265 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1545{ RET_TOK(TermOpVal, Invoke, INVOKE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001546 YY_BREAK
1547case 81:
1548YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001549#line 266 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1550{ RET_TOK(TermOpVal, Unwind, UNWIND); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001551 YY_BREAK
1552case 82:
1553YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001554#line 267 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1555{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001556 YY_BREAK
1557case 83:
1558YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001559#line 269 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1560{ RET_TOK(MemOpVal, Malloc, MALLOC); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001561 YY_BREAK
1562case 84:
1563YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001564#line 270 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1565{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001566 YY_BREAK
1567case 85:
1568YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001569#line 271 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1570{ RET_TOK(MemOpVal, Free, FREE); }
Reid Spencer68a24bd2005-08-27 18:50:39 +00001571 YY_BREAK
1572case 86:
1573YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001574#line 272 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1575{ RET_TOK(MemOpVal, Load, LOAD); }
Nate Begeman14b05292005-11-05 09:21:28 +00001576 YY_BREAK
1577case 87:
1578YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001579#line 273 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1580{ RET_TOK(MemOpVal, Store, STORE); }
Chris Lattnere869eef2005-11-12 00:11:49 +00001581 YY_BREAK
1582case 88:
1583YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001584#line 274 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1585{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
Robert Bocchino9c62b562006-01-10 19:04:32 +00001586 YY_BREAK
1587case 89:
1588YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001589#line 276 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1590{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001591 YY_BREAK
1592case 90:
1593YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001594#line 277 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1595{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
1596 YY_BREAK
1597case 91:
1598YY_RULE_SETUP
1599#line 280 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001600{
1601 UnEscapeLexed(yytext+1);
1602 llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
1603 return VAR_ID;
1604 }
1605 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001606case 92:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001607YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001608#line 285 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001609{
1610 yytext[strlen(yytext)-1] = 0; // nuke colon
1611 UnEscapeLexed(yytext);
1612 llvmAsmlval.StrVal = strdup(yytext);
1613 return LABELSTR;
1614 }
1615 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001616case 93:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001617YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001618#line 291 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001619{
1620 yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
1621 UnEscapeLexed(yytext+1);
1622 llvmAsmlval.StrVal = strdup(yytext+1);
1623 return LABELSTR;
1624 }
1625 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001626case 94:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001627YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001628#line 298 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001629{ // Note that we cannot unescape a string constant here! The
1630 // string constant might contain a \00 which would not be
1631 // understood by the string stuff. It is valid to make a
1632 // [sbyte] c"Hello World\00" constant, for example.
1633 //
1634 yytext[strlen(yytext)-1] = 0; // nuke end quote
1635 llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
1636 return STRINGCONSTANT;
1637 }
1638 YY_BREAK
Robert Bocchino2def1b32006-01-17 20:06:25 +00001639case 95:
1640YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001641#line 309 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1642{ llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
1643 YY_BREAK
1644case 96:
1645YY_RULE_SETUP
1646#line 310 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001647{
1648 uint64_t Val = atoull(yytext+1);
1649 // +1: we have bigger negative range
1650 if (Val > (uint64_t)INT64_MAX+1)
1651 ThrowException("Constant too large for signed 64 bits!");
1652 llvmAsmlval.SInt64Val = -Val;
1653 return ESINT64VAL;
1654 }
1655 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001656case 97:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001657YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001658#line 318 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001659{
1660 llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
1661 return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
1662 }
1663 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001664case 98:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001665YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001666#line 323 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001667{
1668 uint64_t Val = atoull(yytext+1);
1669 if ((unsigned)Val != Val)
1670 ThrowException("Invalid value number (too large)!");
1671 llvmAsmlval.UIntVal = unsigned(Val);
1672 return UINTVAL;
1673 }
1674 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001675case 99:
Reid Spencer68a24bd2005-08-27 18:50:39 +00001676YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001677#line 330 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001678{
1679 uint64_t Val = atoull(yytext+2);
1680 // +1: we have bigger negative range
1681 if (Val > (uint64_t)INT32_MAX+1)
1682 ThrowException("Constant too large for signed 32 bits!");
1683 llvmAsmlval.SIntVal = (int)-Val;
1684 return SINTVAL;
1685 }
1686 YY_BREAK
Robert Bocchino2def1b32006-01-17 20:06:25 +00001687case 100:
1688YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001689#line 339 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1690{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
1691 YY_BREAK
1692case 101:
1693YY_RULE_SETUP
1694#line 340 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001695{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
1696 YY_BREAK
1697case YY_STATE_EOF(INITIAL):
Chris Lattner8335e842006-01-23 23:05:42 +00001698#line 342 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001699{
1700 /* Make sure to free the internal buffers for flex when we are
1701 * done reading our input!
1702 */
1703 yy_delete_buffer(YY_CURRENT_BUFFER);
1704 return EOF;
1705 }
1706 YY_BREAK
Robert Bocchino9c62b562006-01-10 19:04:32 +00001707case 102:
1708YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001709#line 350 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1710{ /* Ignore whitespace */ }
Robert Bocchino2def1b32006-01-17 20:06:25 +00001711 YY_BREAK
1712case 103:
1713YY_RULE_SETUP
Chris Lattner8335e842006-01-23 23:05:42 +00001714#line 351 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
1715{ return yytext[0]; }
1716 YY_BREAK
1717case 104:
1718YY_RULE_SETUP
1719#line 353 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001720YY_FATAL_ERROR( "flex scanner jammed" );
1721 YY_BREAK
Chris Lattner8335e842006-01-23 23:05:42 +00001722#line 1723 "Lexer.cpp"
Reid Spencer68a24bd2005-08-27 18:50:39 +00001723
1724 case YY_END_OF_BUFFER:
1725 {
1726 /* Amount of text matched not including the EOB char. */
1727 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1728
1729 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1730 *yy_cp = yy_hold_char;
1731 YY_RESTORE_YY_MORE_OFFSET
1732
1733 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1734 {
1735 /* We're scanning a new file or input source. It's
1736 * possible that this happened because the user
1737 * just pointed yyin at a new source and called
1738 * yylex(). If so, then we have to assure
1739 * consistency between yy_current_buffer and our
1740 * globals. Here is the right place to do so, because
1741 * this is the first action (other than possibly a
1742 * back-up) that will match for the new input source.
1743 */
1744 yy_n_chars = yy_current_buffer->yy_n_chars;
1745 yy_current_buffer->yy_input_file = yyin;
1746 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1747 }
1748
1749 /* Note that here we test for yy_c_buf_p "<=" to the position
1750 * of the first EOB in the buffer, since yy_c_buf_p will
1751 * already have been incremented past the NUL character
1752 * (since all states make transitions on EOB to the
1753 * end-of-buffer state). Contrast this with the test
1754 * in input().
1755 */
1756 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1757 { /* This was really a NUL. */
1758 yy_state_type yy_next_state;
1759
1760 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1761
1762 yy_current_state = yy_get_previous_state();
1763
1764 /* Okay, we're now positioned to make the NUL
1765 * transition. We couldn't have
1766 * yy_get_previous_state() go ahead and do it
1767 * for us because it doesn't know how to deal
1768 * with the possibility of jamming (and we don't
1769 * want to build jamming into it because then it
1770 * will run more slowly).
1771 */
1772
1773 yy_next_state = yy_try_NUL_trans( yy_current_state );
1774
1775 yy_bp = yytext_ptr + YY_MORE_ADJ;
1776
1777 if ( yy_next_state )
1778 {
1779 /* Consume the NUL. */
1780 yy_cp = ++yy_c_buf_p;
1781 yy_current_state = yy_next_state;
1782 goto yy_match;
1783 }
1784
1785 else
1786 {
1787 yy_cp = yy_c_buf_p;
1788 goto yy_find_action;
1789 }
1790 }
1791
1792 else switch ( yy_get_next_buffer() )
1793 {
1794 case EOB_ACT_END_OF_FILE:
1795 {
1796 yy_did_buffer_switch_on_eof = 0;
1797
1798 if ( yywrap() )
1799 {
1800 /* Note: because we've taken care in
1801 * yy_get_next_buffer() to have set up
1802 * yytext, we can now set up
1803 * yy_c_buf_p so that if some total
1804 * hoser (like flex itself) wants to
1805 * call the scanner after we return the
1806 * YY_NULL, it'll still work - another
1807 * YY_NULL will get returned.
1808 */
1809 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1810
1811 yy_act = YY_STATE_EOF(YY_START);
1812 goto do_action;
1813 }
1814
1815 else
1816 {
1817 if ( ! yy_did_buffer_switch_on_eof )
1818 YY_NEW_FILE;
1819 }
1820 break;
1821 }
1822
1823 case EOB_ACT_CONTINUE_SCAN:
1824 yy_c_buf_p =
1825 yytext_ptr + yy_amount_of_matched_text;
1826
1827 yy_current_state = yy_get_previous_state();
1828
1829 yy_cp = yy_c_buf_p;
1830 yy_bp = yytext_ptr + YY_MORE_ADJ;
1831 goto yy_match;
1832
1833 case EOB_ACT_LAST_MATCH:
1834 yy_c_buf_p =
1835 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1836
1837 yy_current_state = yy_get_previous_state();
1838
1839 yy_cp = yy_c_buf_p;
1840 yy_bp = yytext_ptr + YY_MORE_ADJ;
1841 goto yy_find_action;
1842 }
1843 break;
1844 }
1845
1846 default:
1847 YY_FATAL_ERROR(
1848 "fatal flex scanner internal error--no action found" );
1849 } /* end of action switch */
1850 } /* end of scanning one token */
1851 } /* end of yylex */
1852
1853
1854/* yy_get_next_buffer - try to read in a new buffer
1855 *
1856 * Returns a code representing an action:
1857 * EOB_ACT_LAST_MATCH -
1858 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1859 * EOB_ACT_END_OF_FILE - end of file
1860 */
1861
1862static int yy_get_next_buffer()
1863 {
1864 register char *dest = yy_current_buffer->yy_ch_buf;
1865 register char *source = yytext_ptr;
1866 register int number_to_move, i;
1867 int ret_val;
1868
1869 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1870 YY_FATAL_ERROR(
1871 "fatal flex scanner internal error--end of buffer missed" );
1872
1873 if ( yy_current_buffer->yy_fill_buffer == 0 )
1874 { /* Don't try to fill the buffer, so this is an EOF. */
1875 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1876 {
1877 /* We matched a single character, the EOB, so
1878 * treat this as a final EOF.
1879 */
1880 return EOB_ACT_END_OF_FILE;
1881 }
1882
1883 else
1884 {
1885 /* We matched some text prior to the EOB, first
1886 * process it.
1887 */
1888 return EOB_ACT_LAST_MATCH;
1889 }
1890 }
1891
1892 /* Try to read more data. */
1893
1894 /* First move last chars to start of buffer. */
1895 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1896
1897 for ( i = 0; i < number_to_move; ++i )
1898 *(dest++) = *(source++);
1899
1900 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1901 /* don't do the read, it's not guaranteed to return an EOF,
1902 * just force an EOF
1903 */
1904 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1905
1906 else
1907 {
1908 int num_to_read =
1909 yy_current_buffer->yy_buf_size - number_to_move - 1;
1910
1911 while ( num_to_read <= 0 )
1912 { /* Not enough room in the buffer - grow it. */
1913#ifdef YY_USES_REJECT
1914 YY_FATAL_ERROR(
1915"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1916#else
1917
1918 /* just a shorter name for the current buffer */
1919 YY_BUFFER_STATE b = yy_current_buffer;
1920
1921 int yy_c_buf_p_offset =
1922 (int) (yy_c_buf_p - b->yy_ch_buf);
1923
1924 if ( b->yy_is_our_buffer )
1925 {
1926 int new_size = b->yy_buf_size * 2;
1927
1928 if ( new_size <= 0 )
1929 b->yy_buf_size += b->yy_buf_size / 8;
1930 else
1931 b->yy_buf_size *= 2;
1932
1933 b->yy_ch_buf = (char *)
1934 /* Include room in for 2 EOB chars. */
1935 yy_flex_realloc( (void *) b->yy_ch_buf,
1936 b->yy_buf_size + 2 );
1937 }
1938 else
1939 /* Can't grow it, we don't own it. */
1940 b->yy_ch_buf = 0;
1941
1942 if ( ! b->yy_ch_buf )
1943 YY_FATAL_ERROR(
1944 "fatal error - scanner input buffer overflow" );
1945
1946 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1947
1948 num_to_read = yy_current_buffer->yy_buf_size -
1949 number_to_move - 1;
1950#endif
1951 }
1952
1953 if ( num_to_read > YY_READ_BUF_SIZE )
1954 num_to_read = YY_READ_BUF_SIZE;
1955
1956 /* Read in more data. */
1957 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1958 yy_n_chars, num_to_read );
1959
1960 yy_current_buffer->yy_n_chars = yy_n_chars;
1961 }
1962
1963 if ( yy_n_chars == 0 )
1964 {
1965 if ( number_to_move == YY_MORE_ADJ )
1966 {
1967 ret_val = EOB_ACT_END_OF_FILE;
1968 yyrestart( yyin );
1969 }
1970
1971 else
1972 {
1973 ret_val = EOB_ACT_LAST_MATCH;
1974 yy_current_buffer->yy_buffer_status =
1975 YY_BUFFER_EOF_PENDING;
1976 }
1977 }
1978
1979 else
1980 ret_val = EOB_ACT_CONTINUE_SCAN;
1981
1982 yy_n_chars += number_to_move;
1983 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1984 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1985
1986 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1987
1988 return ret_val;
1989 }
1990
1991
1992/* yy_get_previous_state - get the state just before the EOB char was reached */
1993
1994static yy_state_type yy_get_previous_state()
1995 {
1996 register yy_state_type yy_current_state;
1997 register char *yy_cp;
1998
1999 yy_current_state = yy_start;
2000 yy_state_ptr = yy_state_buf;
2001 *yy_state_ptr++ = yy_current_state;
2002
2003 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2004 {
2005 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2006 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2007 {
2008 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattner8335e842006-01-23 23:05:42 +00002009 if ( yy_current_state >= 429 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002010 yy_c = yy_meta[(unsigned int) yy_c];
2011 }
2012 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2013 *yy_state_ptr++ = yy_current_state;
2014 }
2015
2016 return yy_current_state;
2017 }
2018
2019
2020/* yy_try_NUL_trans - try to make a transition on the NUL character
2021 *
2022 * synopsis
2023 * next_state = yy_try_NUL_trans( current_state );
2024 */
2025
2026#ifdef YY_USE_PROTOS
2027static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2028#else
2029static yy_state_type yy_try_NUL_trans( yy_current_state )
2030yy_state_type yy_current_state;
2031#endif
2032 {
2033 register int yy_is_jam;
2034
2035 register YY_CHAR yy_c = 1;
2036 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2037 {
2038 yy_current_state = (int) yy_def[yy_current_state];
Chris Lattner8335e842006-01-23 23:05:42 +00002039 if ( yy_current_state >= 429 )
Reid Spencer68a24bd2005-08-27 18:50:39 +00002040 yy_c = yy_meta[(unsigned int) yy_c];
2041 }
2042 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Chris Lattner8335e842006-01-23 23:05:42 +00002043 yy_is_jam = (yy_current_state == 428);
Reid Spencer68a24bd2005-08-27 18:50:39 +00002044 if ( ! yy_is_jam )
2045 *yy_state_ptr++ = yy_current_state;
2046
2047 return yy_is_jam ? 0 : yy_current_state;
2048 }
2049
2050
2051#ifndef YY_NO_UNPUT
2052#ifdef YY_USE_PROTOS
2053static inline void yyunput( int c, register char *yy_bp )
2054#else
2055static inline void yyunput( c, yy_bp )
2056int c;
2057register char *yy_bp;
2058#endif
2059 {
2060 register char *yy_cp = yy_c_buf_p;
2061
2062 /* undo effects of setting up yytext */
2063 *yy_cp = yy_hold_char;
2064
2065 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2066 { /* need to shift things up to make room */
2067 /* +2 for EOB chars. */
2068 register int number_to_move = yy_n_chars + 2;
2069 register char *dest = &yy_current_buffer->yy_ch_buf[
2070 yy_current_buffer->yy_buf_size + 2];
2071 register char *source =
2072 &yy_current_buffer->yy_ch_buf[number_to_move];
2073
2074 while ( source > yy_current_buffer->yy_ch_buf )
2075 *--dest = *--source;
2076
2077 yy_cp += (int) (dest - source);
2078 yy_bp += (int) (dest - source);
2079 yy_current_buffer->yy_n_chars =
2080 yy_n_chars = yy_current_buffer->yy_buf_size;
2081
2082 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2083 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2084 }
2085
2086 *--yy_cp = (char) c;
2087
2088 if ( c == '\n' )
2089 --yylineno;
2090
2091 yytext_ptr = yy_bp;
2092 yy_hold_char = *yy_cp;
2093 yy_c_buf_p = yy_cp;
2094 }
2095#endif /* ifndef YY_NO_UNPUT */
2096
2097
Reid Spencer68a24bd2005-08-27 18:50:39 +00002098#ifdef __cplusplus
2099static int yyinput()
2100#else
2101static int input()
2102#endif
2103 {
2104 int c;
2105
2106 *yy_c_buf_p = yy_hold_char;
2107
2108 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2109 {
2110 /* yy_c_buf_p now points to the character we want to return.
2111 * If this occurs *before* the EOB characters, then it's a
2112 * valid NUL; if not, then we've hit the end of the buffer.
2113 */
2114 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2115 /* This was really a NUL. */
2116 *yy_c_buf_p = '\0';
2117
2118 else
2119 { /* need more input */
2120 int offset = yy_c_buf_p - yytext_ptr;
2121 ++yy_c_buf_p;
2122
2123 switch ( yy_get_next_buffer() )
2124 {
2125 case EOB_ACT_LAST_MATCH:
2126 /* This happens because yy_g_n_b()
2127 * sees that we've accumulated a
2128 * token and flags that we need to
2129 * try matching the token before
2130 * proceeding. But for input(),
2131 * there's no matching to consider.
2132 * So convert the EOB_ACT_LAST_MATCH
2133 * to EOB_ACT_END_OF_FILE.
2134 */
2135
2136 /* Reset buffer status. */
2137 yyrestart( yyin );
2138
2139 /* fall through */
2140
2141 case EOB_ACT_END_OF_FILE:
2142 {
2143 if ( yywrap() )
2144 return EOF;
2145
2146 if ( ! yy_did_buffer_switch_on_eof )
2147 YY_NEW_FILE;
2148#ifdef __cplusplus
2149 return yyinput();
2150#else
2151 return input();
2152#endif
2153 }
2154
2155 case EOB_ACT_CONTINUE_SCAN:
2156 yy_c_buf_p = yytext_ptr + offset;
2157 break;
2158 }
2159 }
2160 }
2161
2162 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2163 *yy_c_buf_p = '\0'; /* preserve yytext */
2164 yy_hold_char = *++yy_c_buf_p;
2165
2166 if ( c == '\n' )
2167 ++yylineno;
2168
2169 return c;
2170 }
Nate Begeman14b05292005-11-05 09:21:28 +00002171
Reid Spencer68a24bd2005-08-27 18:50:39 +00002172
2173#ifdef YY_USE_PROTOS
2174void yyrestart( FILE *input_file )
2175#else
2176void yyrestart( input_file )
2177FILE *input_file;
2178#endif
2179 {
2180 if ( ! yy_current_buffer )
2181 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2182
2183 yy_init_buffer( yy_current_buffer, input_file );
2184 yy_load_buffer_state();
2185 }
2186
2187
2188#ifdef YY_USE_PROTOS
2189void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2190#else
2191void yy_switch_to_buffer( new_buffer )
2192YY_BUFFER_STATE new_buffer;
2193#endif
2194 {
2195 if ( yy_current_buffer == new_buffer )
2196 return;
2197
2198 if ( yy_current_buffer )
2199 {
2200 /* Flush out information for old buffer. */
2201 *yy_c_buf_p = yy_hold_char;
2202 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2203 yy_current_buffer->yy_n_chars = yy_n_chars;
2204 }
2205
2206 yy_current_buffer = new_buffer;
2207 yy_load_buffer_state();
2208
2209 /* We don't actually know whether we did this switch during
2210 * EOF (yywrap()) processing, but the only time this flag
2211 * is looked at is after yywrap() is called, so it's safe
2212 * to go ahead and always set it.
2213 */
2214 yy_did_buffer_switch_on_eof = 1;
2215 }
2216
2217
2218#ifdef YY_USE_PROTOS
2219void yy_load_buffer_state( void )
2220#else
2221void yy_load_buffer_state()
2222#endif
2223 {
2224 yy_n_chars = yy_current_buffer->yy_n_chars;
2225 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2226 yyin = yy_current_buffer->yy_input_file;
2227 yy_hold_char = *yy_c_buf_p;
2228 }
2229
2230
2231#ifdef YY_USE_PROTOS
2232YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2233#else
2234YY_BUFFER_STATE yy_create_buffer( file, size )
2235FILE *file;
2236int size;
2237#endif
2238 {
2239 YY_BUFFER_STATE b;
2240
2241 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2242 if ( ! b )
2243 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2244
2245 b->yy_buf_size = size;
2246
2247 /* yy_ch_buf has to be 2 characters longer than the size given because
2248 * we need to put in 2 end-of-buffer characters.
2249 */
2250 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2251 if ( ! b->yy_ch_buf )
2252 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2253
2254 b->yy_is_our_buffer = 1;
2255
2256 yy_init_buffer( b, file );
2257
2258 return b;
2259 }
2260
2261
2262#ifdef YY_USE_PROTOS
2263void yy_delete_buffer( YY_BUFFER_STATE b )
2264#else
2265void yy_delete_buffer( b )
2266YY_BUFFER_STATE b;
2267#endif
2268 {
2269 if ( ! b )
2270 return;
2271
2272 if ( b == yy_current_buffer )
2273 yy_current_buffer = (YY_BUFFER_STATE) 0;
2274
2275 if ( b->yy_is_our_buffer )
2276 yy_flex_free( (void *) b->yy_ch_buf );
2277
2278 yy_flex_free( (void *) b );
2279 }
2280
2281
Nate Begeman14b05292005-11-05 09:21:28 +00002282#ifndef YY_ALWAYS_INTERACTIVE
2283#ifndef YY_NEVER_INTERACTIVE
2284extern int isatty YY_PROTO(( int ));
2285#endif
2286#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +00002287
2288#ifdef YY_USE_PROTOS
2289void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2290#else
2291void yy_init_buffer( b, file )
2292YY_BUFFER_STATE b;
2293FILE *file;
2294#endif
2295
2296
2297 {
2298 yy_flush_buffer( b );
2299
2300 b->yy_input_file = file;
2301 b->yy_fill_buffer = 1;
2302
2303#if YY_ALWAYS_INTERACTIVE
2304 b->yy_is_interactive = 1;
2305#else
2306#if YY_NEVER_INTERACTIVE
2307 b->yy_is_interactive = 0;
2308#else
2309 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2310#endif
2311#endif
2312 }
2313
2314
2315#ifdef YY_USE_PROTOS
2316void yy_flush_buffer( YY_BUFFER_STATE b )
2317#else
2318void yy_flush_buffer( b )
2319YY_BUFFER_STATE b;
2320#endif
2321
2322 {
2323 if ( ! b )
2324 return;
2325
2326 b->yy_n_chars = 0;
2327
2328 /* We always need two end-of-buffer characters. The first causes
2329 * a transition to the end-of-buffer state. The second causes
2330 * a jam in that state.
2331 */
2332 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2333 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2334
2335 b->yy_buf_pos = &b->yy_ch_buf[0];
2336
2337 b->yy_at_bol = 1;
2338 b->yy_buffer_status = YY_BUFFER_NEW;
2339
2340 if ( b == yy_current_buffer )
2341 yy_load_buffer_state();
2342 }
2343
2344
2345#ifndef YY_NO_SCAN_BUFFER
2346#ifdef YY_USE_PROTOS
2347YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2348#else
2349YY_BUFFER_STATE yy_scan_buffer( base, size )
2350char *base;
2351yy_size_t size;
2352#endif
2353 {
2354 YY_BUFFER_STATE b;
2355
2356 if ( size < 2 ||
2357 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2358 base[size-1] != YY_END_OF_BUFFER_CHAR )
2359 /* They forgot to leave room for the EOB's. */
2360 return 0;
2361
2362 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2363 if ( ! b )
2364 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2365
2366 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2367 b->yy_buf_pos = b->yy_ch_buf = base;
2368 b->yy_is_our_buffer = 0;
2369 b->yy_input_file = 0;
2370 b->yy_n_chars = b->yy_buf_size;
2371 b->yy_is_interactive = 0;
2372 b->yy_at_bol = 1;
2373 b->yy_fill_buffer = 0;
2374 b->yy_buffer_status = YY_BUFFER_NEW;
2375
2376 yy_switch_to_buffer( b );
2377
2378 return b;
2379 }
2380#endif
2381
2382
2383#ifndef YY_NO_SCAN_STRING
2384#ifdef YY_USE_PROTOS
2385YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2386#else
2387YY_BUFFER_STATE yy_scan_string( yy_str )
2388yyconst char *yy_str;
2389#endif
2390 {
2391 int len;
2392 for ( len = 0; yy_str[len]; ++len )
2393 ;
2394
2395 return yy_scan_bytes( yy_str, len );
2396 }
2397#endif
2398
2399
2400#ifndef YY_NO_SCAN_BYTES
2401#ifdef YY_USE_PROTOS
2402YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2403#else
2404YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2405yyconst char *bytes;
2406int len;
2407#endif
2408 {
2409 YY_BUFFER_STATE b;
2410 char *buf;
2411 yy_size_t n;
2412 int i;
2413
2414 /* Get memory for full buffer, including space for trailing EOB's. */
2415 n = len + 2;
2416 buf = (char *) yy_flex_alloc( n );
2417 if ( ! buf )
2418 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2419
2420 for ( i = 0; i < len; ++i )
2421 buf[i] = bytes[i];
2422
2423 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2424
2425 b = yy_scan_buffer( buf, n );
2426 if ( ! b )
2427 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2428
2429 /* It's okay to grow etc. this buffer, and we should throw it
2430 * away when we're done.
2431 */
2432 b->yy_is_our_buffer = 1;
2433
2434 return b;
2435 }
2436#endif
2437
2438
2439#ifndef YY_NO_PUSH_STATE
2440#ifdef YY_USE_PROTOS
2441static void yy_push_state( int new_state )
2442#else
2443static void yy_push_state( new_state )
2444int new_state;
2445#endif
2446 {
2447 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2448 {
2449 yy_size_t new_size;
2450
2451 yy_start_stack_depth += YY_START_STACK_INCR;
2452 new_size = yy_start_stack_depth * sizeof( int );
2453
2454 if ( ! yy_start_stack )
2455 yy_start_stack = (int *) yy_flex_alloc( new_size );
2456
2457 else
2458 yy_start_stack = (int *) yy_flex_realloc(
2459 (void *) yy_start_stack, new_size );
2460
2461 if ( ! yy_start_stack )
2462 YY_FATAL_ERROR(
2463 "out of memory expanding start-condition stack" );
2464 }
2465
2466 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2467
2468 BEGIN(new_state);
2469 }
2470#endif
2471
2472
2473#ifndef YY_NO_POP_STATE
2474static void yy_pop_state()
2475 {
2476 if ( --yy_start_stack_ptr < 0 )
2477 YY_FATAL_ERROR( "start-condition stack underflow" );
2478
2479 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2480 }
2481#endif
2482
2483
2484#ifndef YY_NO_TOP_STATE
2485static int yy_top_state()
2486 {
2487 return yy_start_stack[yy_start_stack_ptr - 1];
2488 }
2489#endif
2490
2491#ifndef YY_EXIT_FAILURE
2492#define YY_EXIT_FAILURE 2
2493#endif
2494
2495#ifdef YY_USE_PROTOS
2496static void yy_fatal_error( yyconst char msg[] )
2497#else
2498static void yy_fatal_error( msg )
2499char msg[];
2500#endif
2501 {
2502 (void) fprintf( stderr, "%s\n", msg );
2503 exit( YY_EXIT_FAILURE );
2504 }
2505
2506
2507
2508/* Redefine yyless() so it works in section 3 code. */
2509
2510#undef yyless
2511#define yyless(n) \
2512 do \
2513 { \
2514 /* Undo effects of setting up yytext. */ \
2515 yytext[yyleng] = yy_hold_char; \
2516 yy_c_buf_p = yytext + n; \
2517 yy_hold_char = *yy_c_buf_p; \
2518 *yy_c_buf_p = '\0'; \
2519 yyleng = n; \
2520 } \
2521 while ( 0 )
2522
2523
2524/* Internal utility routines. */
2525
2526#ifndef yytext_ptr
2527#ifdef YY_USE_PROTOS
2528static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2529#else
2530static void yy_flex_strncpy( s1, s2, n )
2531char *s1;
2532yyconst char *s2;
2533int n;
2534#endif
2535 {
2536 register int i;
2537 for ( i = 0; i < n; ++i )
2538 s1[i] = s2[i];
2539 }
2540#endif
2541
2542#ifdef YY_NEED_STRLEN
2543#ifdef YY_USE_PROTOS
2544static int yy_flex_strlen( yyconst char *s )
2545#else
2546static int yy_flex_strlen( s )
2547yyconst char *s;
2548#endif
2549 {
2550 register int n;
2551 for ( n = 0; s[n]; ++n )
2552 ;
2553
2554 return n;
2555 }
2556#endif
2557
2558
2559#ifdef YY_USE_PROTOS
2560static void *yy_flex_alloc( yy_size_t size )
2561#else
2562static void *yy_flex_alloc( size )
2563yy_size_t size;
2564#endif
2565 {
2566 return (void *) malloc( size );
2567 }
2568
2569#ifdef YY_USE_PROTOS
2570static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
2571#else
2572static inline void *yy_flex_realloc( ptr, size )
2573void *ptr;
2574yy_size_t size;
2575#endif
2576 {
2577 /* The cast to (char *) in the following accommodates both
2578 * implementations that use char* generic pointers, and those
2579 * that use void* generic pointers. It works with the latter
2580 * because both ANSI C and C++ allow castless assignment from
2581 * any pointer type to void*, and deal with argument conversions
2582 * as though doing an assignment.
2583 */
2584 return (void *) realloc( (char *) ptr, size );
2585 }
2586
2587#ifdef YY_USE_PROTOS
2588static void yy_flex_free( void *ptr )
2589#else
2590static void yy_flex_free( ptr )
2591void *ptr;
2592#endif
2593 {
2594 free( ptr );
2595 }
2596
2597#if YY_MAIN
2598int main()
2599 {
2600 yylex();
2601 return 0;
2602 }
2603#endif
Chris Lattner8335e842006-01-23 23:05:42 +00002604#line 353 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
Reid Spencer68a24bd2005-08-27 18:50:39 +00002605