1 #line 2 "tokenizer.yy.c"
3 #line 4 "tokenizer.yy.c"
5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
9 #define yy_create_buffer avm2__create_buffer
10 #define yy_delete_buffer avm2__delete_buffer
11 #define yy_flex_debug avm2__flex_debug
12 #define yy_init_buffer avm2__init_buffer
13 #define yy_flush_buffer avm2__flush_buffer
14 #define yy_load_buffer_state avm2__load_buffer_state
15 #define yy_switch_to_buffer avm2__switch_to_buffer
17 #define yyleng avm2_leng
18 #define yylex avm2_lex
19 #define yylineno avm2_lineno
20 #define yyout avm2_out
21 #define yyrestart avm2_restart
22 #define yytext avm2_text
23 #define yywrap avm2_wrap
24 #define yyalloc avm2_alloc
25 #define yyrealloc avm2_realloc
26 #define yyfree avm2_free
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
32 #if YY_FLEX_SUBMINOR_VERSION > 0
36 /* First, we deal with platform-specific or compiler-specific issues. */
38 /* begin standard C headers. */
44 /* end standard C headers. */
46 /* flex integer type definitions */
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
78 /* Limits of integral types. */
80 #define INT8_MIN (-128)
83 #define INT16_MIN (-32767-1)
86 #define INT32_MIN (-2147483647-1)
89 #define INT8_MAX (127)
92 #define INT16_MAX (32767)
95 #define INT32_MAX (2147483647)
98 #define UINT8_MAX (255U)
101 #define UINT16_MAX (65535U)
104 #define UINT32_MAX (4294967295U)
107 #endif /* ! FLEXINT_H */
111 /* The "const" storage-class-modifier is valid. */
114 #else /* ! __cplusplus */
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
121 #endif /* defined (__STDC__) */
122 #endif /* ! __cplusplus */
125 #define yyconst const
130 /* Returned upon end-of-file. */
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134 * integer for use as an array index. If the signed char is negative,
135 * we want to instead treat it as an 8-bit unsigned char, hence the
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 /* Enter a start condition. This macro really ought to take a parameter,
141 * but we do it the disgusting crufty way forced on us by the ()-less
142 * definition of BEGIN.
144 #define BEGIN (yy_start) = 1 + 2 *
146 /* Translate the current start state into a value that can be later handed
147 * to BEGIN to return to the state. The YYSTATE alias is for lex
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE avm2_restart(avm2_in )
159 #define YY_END_OF_BUFFER_CHAR 0
161 /* Size of default input buffer. */
163 #define YY_BUF_SIZE 16384
166 /* The state buf must be large enough to hold one state per character in the main buffer.
168 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
175 extern int avm2_leng;
177 extern FILE *avm2_in, *avm2_out;
179 #define EOB_ACT_CONTINUE_SCAN 0
180 #define EOB_ACT_END_OF_FILE 1
181 #define EOB_ACT_LAST_MATCH 2
183 #define YY_LESS_LINENO(n)
185 /* Return all but the first "n" matched characters back to the input stream. */
189 /* Undo effects of setting up avm2_text. */ \
190 int yyless_macro_arg = (n); \
191 YY_LESS_LINENO(yyless_macro_arg);\
192 *yy_cp = (yy_hold_char); \
193 YY_RESTORE_YY_MORE_OFFSET \
194 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195 YY_DO_BEFORE_ACTION; /* set up avm2_text again */ \
199 #define unput(c) yyunput( c, (yytext_ptr) )
201 #ifndef YY_TYPEDEF_YY_SIZE_T
202 #define YY_TYPEDEF_YY_SIZE_T
203 typedef size_t yy_size_t;
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
212 char *yy_ch_buf; /* input buffer */
213 char *yy_buf_pos; /* current position in input buffer */
215 /* Size of input buffer in bytes, not including room for EOB
218 yy_size_t yy_buf_size;
220 /* Number of characters read into yy_ch_buf, not including EOB
225 /* Whether we "own" the buffer - i.e., we know we created it,
226 * and can realloc() it to grow it, and should free() it to
229 int yy_is_our_buffer;
231 /* Whether this is an "interactive" input source; if so, and
232 * if we're using stdio for input, then we want to use getc()
233 * instead of fread(), to make sure we stop fetching input after
236 int yy_is_interactive;
238 /* Whether we're considered to be at the beginning of a line.
239 * If so, '^' rules will be active on the next match, otherwise
244 int yy_bs_lineno; /**< The line count. */
245 int yy_bs_column; /**< The column count. */
247 /* Whether to try to fill the input buffer when we reach the
252 int yy_buffer_status;
254 #define YY_BUFFER_NEW 0
255 #define YY_BUFFER_NORMAL 1
256 /* When an EOF's been seen but there's still some text to process
257 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258 * shouldn't try reading from the input source any more. We might
259 * still have a bunch of tokens to match, though, because of
260 * possible backing-up.
262 * When we actually see the EOF, we change the status to "new"
263 * (via avm2_restart()), so that the user can continue scanning by
264 * just pointing avm2_in at a new input file.
266 #define YY_BUFFER_EOF_PENDING 2
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
271 /* Stack of input buffers. */
272 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
276 /* We provide macros for accessing buffer states in case in the
277 * future we want to put the buffer states in a more general
280 * Returns the top of the stack, or NULL.
282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
286 /* Same as previous macro, but useful when we know that the buffer stack is not
287 * NULL or when we need an lvalue. For internal use only.
289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
291 /* yy_hold_char holds the character lost when avm2_text is formed. */
292 static char yy_hold_char;
293 static int yy_n_chars; /* number of characters read into yy_ch_buf */
296 /* Points to current character in buffer. */
297 static char *yy_c_buf_p = (char *) 0;
298 static int yy_init = 0; /* whether we need to initialize */
299 static int yy_start = 0; /* start state number */
301 /* Flag which is used to allow avm2_wrap()'s to do buffer switches
302 * instead of setting up a fresh avm2_in. A bit of a hack ...
304 static int yy_did_buffer_switch_on_eof;
306 void avm2_restart (FILE *input_file );
307 void avm2__switch_to_buffer (YY_BUFFER_STATE new_buffer );
308 YY_BUFFER_STATE avm2__create_buffer (FILE *file,int size );
309 void avm2__delete_buffer (YY_BUFFER_STATE b );
310 void avm2__flush_buffer (YY_BUFFER_STATE b );
311 void avm2_push_buffer_state (YY_BUFFER_STATE new_buffer );
312 void avm2_pop_buffer_state (void );
314 static void avm2_ensure_buffer_stack (void );
315 static void avm2__load_buffer_state (void );
316 static void avm2__init_buffer (YY_BUFFER_STATE b,FILE *file );
318 #define YY_FLUSH_BUFFER avm2__flush_buffer(YY_CURRENT_BUFFER )
320 YY_BUFFER_STATE avm2__scan_buffer (char *base,yy_size_t size );
321 YY_BUFFER_STATE avm2__scan_string (yyconst char *yy_str );
322 YY_BUFFER_STATE avm2__scan_bytes (yyconst char *bytes,int len );
324 void *avm2_alloc (yy_size_t );
325 void *avm2_realloc (void *,yy_size_t );
326 void avm2_free (void * );
328 #define yy_new_buffer avm2__create_buffer
330 #define yy_set_interactive(is_interactive) \
332 if ( ! YY_CURRENT_BUFFER ){ \
333 avm2_ensure_buffer_stack (); \
334 YY_CURRENT_BUFFER_LVALUE = \
335 avm2__create_buffer(avm2_in,YY_BUF_SIZE ); \
337 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
340 #define yy_set_bol(at_bol) \
342 if ( ! YY_CURRENT_BUFFER ){\
343 avm2_ensure_buffer_stack (); \
344 YY_CURRENT_BUFFER_LVALUE = \
345 avm2__create_buffer(avm2_in,YY_BUF_SIZE ); \
347 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
352 /* Begin user sect3 */
354 typedef unsigned char YY_CHAR;
356 FILE *avm2_in = (FILE *) 0, *avm2_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int avm2_lineno;
364 extern char *avm2_text;
365 #define yytext_ptr avm2_text
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[] );
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up avm2_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 avm2_leng = (size_t) (yy_cp - yy_bp); \
378 (yy_hold_char) = *yy_cp; \
380 (yy_c_buf_p) = yy_cp;
382 #define YY_NUM_RULES 106
383 #define YY_END_OF_BUFFER 107
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify;
391 static yyconst flex_int16_t yy_accept[468] =
393 0, 0, 0, 0, 0, 0, 107, 105, 13, 13,
394 103, 105, 103, 103, 103, 105, 104, 103, 103, 103,
395 51, 103, 16, 16, 16, 53, 103, 103, 103, 102,
396 103, 102, 102, 102, 102, 102, 102, 102, 102, 102,
397 102, 102, 102, 102, 102, 102, 102, 102, 103, 105,
398 102, 103, 103, 51, 103, 10, 10, 10, 29, 0,
399 6, 0, 40, 27, 0, 0, 41, 36, 37, 35,
400 38, 50, 17, 3, 0, 39, 17, 16, 0, 0,
401 52, 46, 34, 32, 33, 48, 0, 102, 0, 101,
402 102, 102, 102, 102, 102, 24, 102, 102, 102, 102,
404 102, 102, 102, 102, 102, 100, 102, 99, 98, 102,
405 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
406 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
407 42, 28, 0, 99, 0, 10, 10, 11, 0, 3,
408 7, 39, 0, 11, 10, 0, 30, 49, 0, 0,
409 0, 0, 0, 1, 17, 15, 14, 0, 44, 31,
410 43, 47, 0, 0, 0, 0, 0, 102, 102, 102,
411 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
412 23, 102, 94, 102, 102, 102, 102, 102, 93, 102,
413 102, 102, 102, 102, 102, 102, 95, 102, 102, 102,
415 102, 102, 97, 102, 102, 92, 96, 102, 102, 102,
416 12, 102, 11, 11, 0, 7, 0, 0, 0, 7,
417 0, 7, 7, 11, 9, 8, 0, 0, 0, 2,
418 0, 15, 0, 45, 0, 0, 0, 0, 102, 90,
419 102, 102, 102, 102, 102, 102, 102, 85, 89, 102,
420 102, 102, 102, 102, 102, 102, 102, 102, 102, 88,
421 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
422 87, 102, 102, 86, 102, 91, 102, 11, 9, 8,
423 7, 0, 7, 0, 0, 2, 0, 7, 7, 9,
424 0, 2, 18, 20, 0, 0, 0, 83, 80, 78,
426 79, 102, 102, 102, 102, 102, 82, 81, 102, 102,
427 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
428 102, 102, 84, 102, 77, 102, 102, 25, 102, 9,
429 0, 0, 2, 0, 7, 7, 19, 0, 0, 102,
430 102, 70, 102, 102, 102, 102, 102, 75, 102, 102,
431 102, 102, 73, 102, 102, 102, 102, 72, 71, 74,
432 26, 76, 102, 102, 7, 0, 0, 102, 65, 68,
433 69, 64, 102, 102, 102, 102, 102, 102, 102, 66,
434 67, 102, 102, 102, 7, 0, 21, 60, 63, 102,
435 102, 102, 62, 102, 61, 102, 102, 0, 22, 102,
437 102, 56, 57, 58, 59, 0, 0, 0, 0, 55,
438 54, 0, 5, 0, 0, 0, 0, 0, 0, 0,
439 0, 0, 0, 0, 0, 5, 0, 0, 0, 0,
440 0, 0, 4, 0, 0, 4, 0, 5, 0, 0,
441 0, 0, 20, 5, 20, 20, 0, 0, 0, 19,
442 5, 19, 19, 0, 0, 0, 0, 0, 21, 5,
443 21, 21, 22, 5, 22, 22, 0
446 static yyconst flex_int32_t yy_ec[256] =
448 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
449 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
451 1, 4, 5, 6, 7, 8, 9, 10, 11, 8,
452 12, 13, 14, 8, 15, 16, 17, 18, 19, 19,
453 20, 19, 19, 19, 19, 19, 19, 21, 8, 22,
454 23, 24, 8, 8, 25, 25, 25, 25, 25, 25,
455 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
456 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
457 8, 26, 27, 8, 28, 7, 29, 30, 31, 32,
459 33, 34, 35, 36, 37, 25, 38, 39, 40, 41,
460 42, 43, 25, 44, 45, 46, 47, 48, 49, 50,
461 51, 25, 8, 52, 8, 8, 7, 7, 7, 7,
462 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
463 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
464 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
465 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
466 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
467 7, 7, 7, 7, 7, 7, 53, 7, 7, 7,
468 54, 7, 7, 7, 7, 7, 7, 7, 7, 7,
470 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
471 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
472 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
473 7, 7, 7, 7, 7, 7, 7, 7, 55, 7,
474 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
478 static yyconst flex_int32_t yy_meta[56] =
480 1, 2, 3, 2, 4, 4, 4, 4, 4, 4,
481 4, 4, 4, 4, 4, 5, 4, 6, 6, 6,
482 2, 4, 4, 4, 7, 8, 4, 8, 7, 7,
483 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
484 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
488 static yyconst flex_int16_t yy_base[495] =
490 0, 420, 42, 49, 56, 63, 455, 2184, 2184, 2184,
491 431, 78, 2184, 427, 436, 76, 2184, 418, 71, 73,
492 73, 82, 90, 95, 100, 415, 75, 406, 98, 121,
493 2184, 124, 127, 131, 108, 107, 114, 125, 143, 147,
494 126, 158, 162, 170, 179, 186, 193, 200, 80, 365,
495 376, 227, 233, 239, 247, 247, 256, 261, 391, 172,
496 2184, 403, 2184, 2184, 155, 400, 2184, 2184, 2184, 2184,
497 2184, 384, 264, 285, 393, 2184, 271, 276, 379, 344,
498 2184, 362, 2184, 360, 2184, 115, 297, 264, 305, 275,
499 282, 281, 283, 290, 299, 301, 305, 320, 313, 324,
501 306, 332, 336, 340, 347, 348, 355, 362, 363, 370,
502 382, 384, 386, 391, 398, 409, 403, 414, 405, 423,
503 430, 429, 435, 441, 446, 458, 450, 464, 470, 469,
504 2184, 2184, 318, 485, 499, 516, 521, 502, 207, 541,
505 565, 208, 245, 527, 532, 352, 2184, 2184, 558, 561,
506 574, 350, 361, 2184, 537, 0, 344, 339, 2184, 2184,
507 2184, 333, 615, 294, 274, 264, 249, 484, 540, 541,
508 591, 592, 593, 611, 600, 612, 623, 628, 629, 630,
509 634, 646, 650, 651, 652, 666, 667, 673, 672, 674,
510 678, 689, 690, 694, 695, 706, 710, 712, 717, 718,
512 726, 733, 732, 734, 748, 740, 741, 756, 755, 757,
513 2184, 762, 566, 605, 262, 0, 804, 807, 810, 252,
514 836, 0, 846, 608, 0, 252, 162, 813, 839, 244,
515 842, 0, 210, 2184, 0, 200, 203, 201, 790, 818,
516 822, 869, 870, 876, 878, 890, 895, 899, 901, 910,
517 915, 916, 917, 931, 932, 933, 938, 939, 950, 954,
518 958, 962, 966, 970, 977, 978, 984, 986, 998, 1002,
519 1003, 1004, 1018, 1019, 1020, 1025, 1026, 664, 0, 212,
520 0, 1053, 1079, 1134, 1137, 197, 1140, 1166, 0, 0,
521 1221, 2184, 2184, 2184, 0, 165, 167, 1116, 1117, 1123,
523 1197, 1201, 1202, 1216, 1217, 1218, 1222, 1223, 1234, 1238,
524 1240, 1246, 1249, 1262, 1264, 1270, 1279, 1271, 1291, 1295,
525 1286, 1300, 1306, 1307, 1311, 1318, 1322, 1326, 1334, 0,
526 1368, 1376, 0, 1394, 0, 0, 2184, 165, 130, 1333,
527 1345, 1359, 1361, 1370, 1375, 1377, 1389, 1394, 1396, 1395,
528 1400, 1401, 1412, 1416, 1417, 1424, 1423, 1431, 1432, 1438,
529 1439, 1443, 1447, 1454, 145, 81, 0, 1461, 1462, 1463,
530 1468, 1469, 1477, 1483, 1484, 1498, 1491, 1503, 1502, 1507,
531 1509, 1514, 1521, 900, 95, 0, 2184, 1523, 1528, 1529,
532 1530, 1544, 1537, 1545, 1551, 1553, 1559, 1600, 2184, 1568,
534 1580, 1576, 1587, 1588, 1594, 740, 184, 1636, 1639, 1606,
535 1615, 863, 866, 1032, 1072, 187, 1225, 104, 181, 1648,
536 1664, 1675, 1678, 1690, 1693, 1696, 1701, 1705, 1709, 1712,
537 1716, 1719, 1751, 98, 1754, 1760, 1763, 1766, 1792, 1776,
538 1780, 1784, 1769, 1772, 1787, 1808, 1847, 1820, 1826, 1823,
539 1829, 1832, 1835, 1873, 1839, 1876, 1912, 1967, 1879, 1882,
540 1885, 1888, 1891, 1894, 1903, 1906, 2184, 2022, 2030, 2037,
541 2045, 2053, 2061, 2065, 2072, 2076, 2083, 2086, 2089, 83,
542 2096, 2099, 2106, 2114, 2114, 2121, 2129, 2134, 2139, 2144,
543 2151, 2159, 2167, 2175
547 static yyconst flex_int16_t yy_def[495] =
549 467, 1, 1, 1, 1, 1, 467, 467, 467, 467,
550 467, 468, 467, 467, 467, 469, 467, 467, 467, 467,
551 467, 467, 467, 467, 467, 467, 467, 467, 467, 470,
552 467, 470, 470, 470, 34, 34, 34, 34, 34, 34,
553 34, 34, 34, 34, 34, 39, 34, 34, 467, 467,
554 39, 467, 467, 467, 471, 467, 467, 467, 467, 468,
555 467, 468, 467, 467, 469, 469, 467, 467, 467, 467,
556 467, 467, 467, 472, 473, 467, 467, 467, 474, 467,
557 467, 467, 467, 467, 467, 467, 467, 34, 467, 34,
558 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
560 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
561 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
562 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
563 467, 467, 467, 34, 467, 467, 467, 467, 471, 475,
564 473, 471, 471, 467, 467, 476, 467, 467, 472, 472,
565 477, 467, 473, 467, 467, 478, 474, 467, 467, 467,
566 467, 467, 467, 467, 467, 467, 467, 34, 34, 34,
567 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
568 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
569 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
571 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
572 467, 34, 467, 467, 479, 480, 475, 475, 481, 480,
573 475, 141, 471, 467, 482, 476, 483, 472, 477, 467,
574 472, 478, 467, 467, 484, 467, 467, 467, 34, 34,
575 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
576 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
577 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
578 34, 34, 34, 34, 34, 34, 34, 467, 485, 479,
579 480, 486, 467, 475, 481, 480, 475, 467, 223, 482,
580 472, 467, 467, 467, 487, 467, 467, 34, 34, 34,
582 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
583 34, 34, 39, 34, 34, 34, 34, 34, 34, 34,
584 34, 34, 34, 34, 34, 34, 34, 34, 34, 485,
585 475, 475, 480, 475, 283, 288, 467, 467, 467, 34,
586 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
587 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
588 34, 34, 34, 34, 223, 467, 488, 34, 34, 34,
589 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
590 34, 34, 34, 470, 283, 489, 467, 34, 34, 34,
591 34, 34, 34, 34, 34, 34, 34, 490, 467, 34,
593 34, 34, 34, 34, 34, 491, 492, 493, 491, 34,
594 34, 467, 467, 491, 491, 492, 467, 492, 494, 494,
595 493, 493, 491, 493, 467, 467, 491, 491, 491, 491,
596 491, 467, 467, 494, 467, 467, 491, 494, 491, 491,
597 491, 491, 467, 467, 491, 491, 491, 491, 491, 467,
598 467, 491, 491, 491, 491, 491, 491, 491, 467, 467,
599 491, 491, 467, 467, 491, 491, 0, 467, 467, 467,
600 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
601 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
606 static yyconst flex_int16_t yy_nxt[2240] =
608 8, 9, 10, 9, 11, 12, 8, 13, 14, 15,
609 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
610 26, 27, 28, 29, 30, 8, 31, 30, 32, 33,
611 34, 35, 36, 37, 38, 30, 39, 30, 30, 30,
612 40, 41, 42, 43, 44, 45, 46, 47, 48, 30,
613 30, 49, 8, 8, 50, 52, 53, 54, 55, 56,
614 57, 58, 52, 53, 54, 55, 56, 57, 58, 52,
615 53, 54, 55, 56, 57, 58, 52, 53, 54, 55,
616 56, 57, 58, 61, 68, 51, 61, 70, 72, 281,
617 73, 73, 73, 69, 74, 71, 82, 83, 75, 51,
619 419, 66, 131, 62, 76, 77, 416, 78, 78, 78,
620 77, 152, 78, 78, 78, 77, 386, 78, 78, 78,
621 85, 86, 87, 87, 87, 87, 87, 87, 87, 87,
622 87, 132, 87, 87, 87, 98, 88, 161, 162, 79,
623 95, 89, 101, 80, 89, 99, 88, 89, 88, 96,
624 102, 89, 88, 88, 88, 103, 100, 105, 97, 92,
625 104, 385, 367, 88, 88, 61, 88, 88, 90, 93,
626 91, 88, 94, 113, 291, 110, 106, 61, 292, 111,
627 66, 88, 107, 108, 88, 88, 114, 109, 88, 417,
628 88, 417, 417, 112, 117, 366, 88, 62, 88, 88,
630 88, 115, 118, 88, 116, 339, 434, 88, 88, 418,
631 338, 88, 418, 231, 122, 119, 120, 88, 121, 88,
632 88, 127, 123, 216, 216, 88, 125, 279, 88, 124,
633 126, 88, 143, 143, 128, 129, 130, 297, 88, 296,
634 68, 88, 135, 295, 136, 137, 137, 70, 135, 69,
635 136, 137, 137, 293, 72, 71, 138, 138, 138, 140,
636 231, 223, 144, 141, 145, 145, 145, 225, 231, 142,
637 143, 144, 143, 145, 145, 145, 144, 279, 145, 145,
638 145, 73, 73, 73, 238, 149, 149, 149, 155, 155,
639 155, 77, 88, 78, 78, 78, 146, 151, 87, 87,
641 87, 152, 88, 88, 80, 88, 163, 163, 163, 88,
642 88, 171, 237, 88, 168, 236, 88, 89, 88, 88,
643 88, 88, 88, 88, 88, 169, 170, 88, 88, 88,
644 172, 88, 173, 88, 88, 235, 164, 174, 165, 88,
645 88, 88, 88, 88, 179, 175, 88, 88, 88, 166,
646 176, 88, 88, 167, 88, 234, 233, 177, 88, 156,
647 88, 88, 88, 154, 88, 88, 231, 225, 88, 178,
648 88, 211, 180, 88, 88, 88, 88, 88, 88, 181,
649 182, 88, 160, 88, 159, 88, 88, 158, 88, 88,
650 88, 88, 183, 88, 156, 154, 88, 184, 88, 148,
652 88, 88, 65, 88, 88, 60, 185, 186, 88, 187,
653 88, 88, 88, 147, 88, 188, 134, 133, 191, 88,
654 88, 192, 190, 88, 88, 88, 88, 88, 84, 88,
655 189, 88, 88, 198, 193, 81, 88, 88, 195, 194,
656 67, 88, 88, 88, 88, 64, 88, 88, 196, 63,
657 88, 88, 88, 59, 467, 88, 51, 88, 88, 197,
658 467, 88, 467, 88, 88, 199, 200, 88, 88, 88,
659 88, 88, 201, 88, 88, 467, 88, 205, 88, 88,
660 467, 202, 88, 204, 88, 203, 88, 88, 88, 467,
661 206, 88, 88, 207, 467, 467, 88, 88, 88, 88,
663 208, 467, 88, 467, 467, 88, 209, 88, 88, 467,
664 88, 88, 239, 88, 210, 212, 213, 213, 213, 138,
665 138, 138, 88, 88, 467, 88, 88, 467, 467, 185,
666 186, 214, 467, 137, 137, 137, 214, 467, 137, 137,
667 137, 217, 217, 149, 224, 224, 224, 144, 467, 145,
668 145, 145, 467, 219, 155, 155, 155, 220, 149, 149,
669 149, 149, 149, 149, 467, 215, 221, 154, 88, 88,
670 227, 241, 240, 227, 228, 228, 228, 467, 88, 88,
671 467, 88, 88, 213, 213, 213, 229, 467, 467, 222,
672 230, 467, 467, 222, 222, 222, 222, 222, 222, 222,
674 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
675 222, 222, 222, 222, 222, 222, 163, 163, 163, 88,
676 88, 245, 278, 278, 278, 224, 224, 224, 247, 88,
677 88, 88, 88, 88, 88, 242, 243, 244, 88, 88,
678 88, 88, 467, 246, 467, 467, 164, 248, 165, 88,
679 88, 88, 88, 88, 467, 249, 88, 88, 252, 166,
680 250, 88, 88, 167, 88, 467, 88, 88, 88, 88,
681 88, 88, 88, 251, 88, 88, 253, 467, 88, 88,
682 88, 278, 278, 278, 88, 467, 467, 88, 88, 254,
683 88, 88, 255, 88, 88, 88, 467, 256, 257, 258,
685 88, 88, 88, 467, 88, 88, 88, 88, 88, 259,
686 88, 88, 260, 88, 88, 88, 88, 88, 88, 88,
687 467, 261, 88, 88, 467, 467, 262, 88, 88, 467,
688 88, 88, 88, 265, 88, 88, 88, 263, 88, 264,
689 88, 412, 413, 414, 88, 88, 88, 88, 88, 268,
690 88, 88, 266, 88, 88, 88, 88, 267, 88, 88,
691 88, 88, 88, 269, 88, 271, 272, 270, 88, 88,
692 88, 88, 88, 88, 88, 88, 88, 467, 88, 88,
693 273, 88, 88, 88, 88, 88, 88, 274, 467, 88,
694 88, 467, 276, 275, 88, 88, 88, 88, 88, 467,
696 277, 467, 467, 88, 217, 217, 149, 217, 217, 149,
697 284, 284, 228, 149, 149, 149, 282, 467, 88, 282,
698 283, 467, 285, 283, 467, 227, 286, 298, 88, 221,
699 467, 88, 221, 467, 467, 287, 217, 217, 149, 228,
700 228, 228, 149, 149, 149, 467, 88, 467, 282, 467,
701 88, 229, 288, 467, 227, 230, 88, 299, 152, 88,
702 88, 221, 216, 88, 412, 413, 412, 412, 413, 412,
703 289, 143, 467, 467, 289, 289, 289, 289, 289, 289,
704 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
705 289, 289, 289, 289, 289, 289, 289, 88, 88, 467,
707 467, 398, 398, 398, 88, 467, 88, 88, 88, 467,
708 88, 88, 302, 300, 88, 301, 88, 88, 88, 88,
709 89, 467, 467, 88, 303, 467, 467, 88, 88, 88,
710 467, 88, 467, 88, 305, 304, 88, 88, 88, 88,
711 88, 467, 88, 88, 88, 88, 467, 307, 88, 467,
712 306, 88, 467, 88, 308, 88, 88, 88, 88, 88,
713 88, 312, 309, 310, 467, 467, 88, 88, 467, 88,
714 88, 88, 88, 88, 88, 311, 88, 88, 88, 88,
715 88, 313, 88, 314, 467, 467, 88, 467, 88, 467,
716 317, 88, 88, 467, 318, 88, 88, 315, 88, 88,
718 88, 316, 319, 88, 88, 88, 88, 88, 88, 467,
719 467, 88, 88, 320, 88, 88, 88, 467, 88, 88,
720 322, 321, 88, 467, 88, 88, 88, 88, 324, 323,
721 88, 88, 88, 412, 413, 414, 88, 467, 467, 88,
722 88, 88, 88, 88, 88, 326, 88, 88, 88, 467,
723 325, 327, 328, 88, 88, 231, 88, 88, 88, 88,
724 88, 88, 467, 88, 88, 332, 88, 88, 467, 333,
725 467, 467, 329, 412, 413, 414, 467, 467, 334, 149,
726 149, 149, 150, 150, 150, 150, 150, 150, 150, 150,
727 150, 227, 150, 150, 150, 150, 150, 150, 150, 150,
729 150, 150, 150, 335, 150, 150, 150, 335, 335, 335,
730 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
731 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
732 150, 150, 150, 150, 217, 217, 149, 284, 284, 228,
733 217, 217, 149, 467, 88, 88, 282, 467, 467, 285,
734 283, 88, 282, 286, 88, 88, 288, 88, 88, 221,
735 467, 88, 287, 467, 88, 221, 217, 217, 149, 218,
736 218, 218, 218, 218, 218, 218, 218, 218, 282, 218,
737 218, 218, 283, 218, 218, 218, 218, 218, 218, 218,
738 336, 221, 218, 218, 336, 336, 336, 336, 336, 336,
740 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
741 336, 336, 336, 336, 336, 336, 336, 218, 218, 218,
742 218, 149, 149, 149, 467, 88, 432, 433, 432, 88,
743 88, 467, 467, 227, 467, 88, 467, 230, 88, 88,
744 341, 340, 88, 88, 88, 88, 88, 467, 342, 344,
745 88, 88, 467, 343, 88, 88, 88, 88, 88, 88,
746 88, 345, 88, 88, 88, 467, 88, 467, 88, 467,
747 346, 467, 88, 467, 88, 88, 88, 347, 88, 88,
748 467, 88, 350, 467, 88, 348, 349, 88, 88, 351,
749 88, 467, 88, 88, 467, 467, 353, 467, 88, 88,
751 88, 467, 88, 88, 352, 88, 354, 88, 88, 88,
752 467, 88, 88, 355, 88, 467, 356, 88, 467, 88,
753 88, 357, 467, 88, 88, 358, 359, 88, 88, 88,
754 360, 467, 88, 88, 88, 88, 88, 467, 88, 88,
755 467, 88, 361, 467, 88, 88, 88, 88, 88, 88,
756 88, 362, 88, 467, 88, 467, 88, 467, 363, 88,
757 88, 88, 88, 88, 88, 364, 467, 88, 217, 217,
758 149, 88, 88, 88, 88, 88, 217, 217, 149, 368,
759 282, 467, 467, 88, 220, 467, 88, 88, 282, 88,
760 369, 370, 286, 221, 217, 217, 149, 88, 88, 88,
762 88, 221, 88, 88, 467, 88, 282, 467, 88, 467,
763 365, 88, 467, 88, 371, 88, 88, 88, 373, 221,
764 467, 374, 88, 376, 88, 372, 375, 88, 377, 378,
765 88, 467, 88, 88, 88, 88, 88, 88, 88, 88,
766 88, 88, 88, 467, 88, 88, 467, 379, 467, 380,
767 88, 88, 88, 88, 88, 88, 381, 88, 88, 88,
768 88, 88, 88, 467, 88, 88, 88, 88, 382, 88,
769 88, 88, 88, 88, 467, 88, 88, 88, 467, 88,
770 88, 88, 88, 467, 88, 88, 384, 383, 88, 88,
771 88, 88, 88, 388, 467, 88, 88, 88, 467, 88,
773 88, 88, 88, 88, 88, 88, 88, 88, 467, 88,
774 88, 88, 88, 467, 467, 88, 391, 389, 88, 88,
775 467, 88, 88, 390, 88, 88, 88, 467, 392, 393,
776 88, 88, 88, 394, 395, 88, 88, 88, 467, 88,
777 88, 88, 88, 88, 88, 88, 396, 88, 88, 88,
778 88, 88, 88, 397, 467, 88, 88, 88, 88, 88,
779 467, 88, 88, 467, 88, 88, 88, 88, 88, 88,
780 88, 401, 88, 88, 400, 88, 402, 403, 88, 88,
781 467, 88, 88, 88, 404, 88, 88, 88, 467, 88,
782 405, 88, 88, 467, 88, 467, 88, 88, 467, 467,
784 88, 398, 398, 398, 88, 407, 88, 467, 88, 88,
785 408, 467, 410, 411, 88, 88, 88, 88, 88, 467,
786 409, 88, 88, 467, 467, 88, 88, 467, 88, 88,
787 467, 467, 88, 467, 88, 88, 419, 420, 413, 421,
788 425, 426, 427, 88, 88, 467, 423, 88, 467, 420,
789 413, 420, 467, 88, 467, 467, 88, 467, 417, 467,
790 467, 424, 467, 467, 419, 420, 413, 421, 467, 467,
791 428, 467, 429, 434, 423, 419, 420, 413, 421, 435,
792 436, 437, 467, 430, 467, 423, 467, 431, 467, 424,
793 419, 420, 438, 421, 425, 426, 425, 425, 426, 425,
795 424, 467, 425, 426, 427, 467, 412, 413, 414, 467,
796 412, 413, 414, 412, 413, 414, 467, 412, 413, 414,
797 432, 433, 432, 467, 164, 467, 165, 164, 467, 165,
798 467, 467, 428, 467, 429, 467, 467, 166, 467, 467,
799 166, 167, 467, 467, 167, 430, 439, 467, 467, 431,
800 440, 442, 432, 433, 432, 435, 436, 435, 467, 467,
801 441, 435, 436, 435, 435, 436, 437, 420, 413, 420,
802 412, 413, 412, 412, 413, 412, 417, 412, 413, 414,
803 467, 412, 413, 414, 467, 412, 413, 414, 412, 413,
804 414, 434, 294, 443, 444, 445, 446, 446, 446, 446,
806 446, 446, 446, 446, 446, 446, 446, 446, 446, 412,
807 413, 414, 446, 446, 446, 446, 448, 467, 446, 447,
808 449, 412, 413, 414, 412, 413, 412, 412, 413, 414,
809 412, 413, 412, 412, 413, 414, 412, 413, 414, 467,
810 412, 413, 414, 446, 446, 446, 446, 337, 450, 451,
811 452, 453, 453, 453, 453, 453, 453, 453, 453, 453,
812 453, 453, 453, 453, 455, 454, 467, 453, 453, 453,
813 453, 457, 467, 453, 412, 413, 414, 412, 413, 414,
814 412, 413, 412, 412, 413, 412, 412, 413, 414, 412,
815 413, 414, 412, 413, 412, 412, 413, 412, 453, 453,
817 453, 453, 467, 456, 412, 413, 414, 412, 413, 414,
818 467, 458, 387, 459, 460, 461, 462, 462, 462, 462,
819 462, 462, 462, 462, 462, 462, 462, 462, 462, 467,
820 467, 467, 462, 462, 462, 462, 467, 467, 462, 467,
821 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
822 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
823 467, 467, 467, 462, 462, 462, 462, 399, 463, 464,
824 465, 466, 466, 466, 466, 466, 466, 466, 466, 466,
825 466, 466, 466, 466, 467, 467, 467, 466, 466, 466,
826 466, 467, 467, 466, 467, 467, 467, 467, 467, 467,
828 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
829 467, 467, 467, 467, 467, 467, 467, 467, 466, 466,
830 466, 466, 60, 60, 467, 60, 60, 60, 60, 60,
831 65, 65, 467, 65, 65, 65, 65, 65, 88, 88,
832 467, 467, 88, 88, 88, 139, 139, 467, 139, 139,
833 139, 139, 139, 150, 150, 150, 150, 150, 150, 150,
834 150, 153, 153, 153, 153, 153, 153, 153, 153, 157,
835 157, 157, 218, 218, 218, 218, 218, 218, 218, 218,
836 226, 226, 226, 149, 149, 149, 149, 149, 149, 149,
837 149, 232, 232, 280, 280, 280, 217, 217, 217, 217,
839 217, 217, 217, 217, 290, 290, 231, 231, 231, 231,
840 231, 231, 231, 231, 294, 294, 294, 294, 294, 330,
841 330, 331, 331, 331, 331, 331, 331, 331, 331, 337,
842 337, 337, 337, 337, 387, 387, 387, 387, 387, 399,
843 399, 399, 399, 399, 406, 406, 406, 406, 406, 406,
844 406, 406, 415, 415, 415, 415, 415, 415, 415, 416,
845 416, 467, 416, 416, 416, 416, 416, 422, 422, 422,
846 422, 422, 422, 422, 422, 419, 419, 467, 419, 419,
847 419, 419, 419, 7, 467, 467, 467, 467, 467, 467,
848 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
850 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
851 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
852 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
853 467, 467, 467, 467, 467, 467, 467, 467, 467
856 static yyconst flex_int16_t yy_chk[2240] =
858 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
859 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
860 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
863 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
864 3, 3, 4, 4, 4, 4, 4, 4, 4, 5,
865 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
866 6, 6, 6, 12, 19, 4, 16, 20, 21, 480,
867 21, 21, 21, 19, 22, 20, 27, 27, 22, 6,
869 434, 16, 49, 12, 22, 23, 418, 23, 23, 23,
870 24, 385, 24, 24, 24, 25, 366, 25, 25, 25,
871 29, 29, 30, 30, 30, 32, 32, 32, 33, 33,
872 33, 49, 34, 34, 34, 36, 35, 86, 86, 23,
873 35, 30, 37, 25, 32, 36, 35, 33, 36, 35,
874 37, 34, 37, 38, 41, 37, 36, 38, 35, 34,
875 37, 365, 339, 38, 41, 65, 38, 41, 32, 34,
876 33, 39, 34, 41, 227, 40, 39, 60, 227, 40,
877 65, 39, 39, 39, 39, 40, 42, 39, 40, 407,
878 43, 419, 416, 40, 43, 338, 42, 60, 44, 42,
880 43, 42, 44, 43, 42, 297, 419, 45, 44, 407,
881 296, 44, 416, 286, 45, 44, 44, 45, 44, 46,
882 45, 47, 45, 139, 142, 46, 46, 280, 48, 45,
883 46, 47, 139, 142, 47, 48, 48, 238, 48, 237,
884 52, 48, 52, 236, 52, 52, 52, 53, 53, 52,
885 53, 53, 53, 233, 54, 53, 54, 54, 54, 55,
886 230, 143, 56, 55, 56, 56, 56, 226, 220, 55,
887 143, 57, 55, 57, 57, 57, 58, 215, 58, 58,
888 58, 73, 73, 73, 167, 74, 74, 74, 77, 77,
889 77, 78, 88, 78, 78, 78, 56, 74, 87, 87,
891 87, 74, 88, 90, 58, 88, 89, 89, 89, 92,
892 91, 93, 166, 90, 91, 165, 90, 87, 94, 92,
893 91, 93, 92, 91, 93, 92, 92, 95, 94, 96,
894 94, 94, 95, 97, 101, 164, 89, 95, 89, 96,
895 95, 99, 96, 97, 101, 97, 97, 101, 98, 89,
896 98, 99, 100, 89, 99, 162, 158, 99, 98, 157,
897 102, 98, 100, 153, 103, 100, 152, 146, 104, 100,
898 102, 133, 102, 102, 103, 105, 106, 103, 104, 103,
899 104, 104, 84, 107, 82, 105, 106, 80, 105, 106,
900 108, 109, 105, 107, 79, 75, 107, 107, 110, 72,
902 108, 109, 66, 108, 109, 62, 108, 108, 110, 110,
903 111, 110, 112, 59, 113, 110, 51, 50, 113, 114,
904 111, 114, 112, 111, 113, 112, 115, 113, 28, 114,
905 111, 117, 114, 119, 115, 26, 115, 116, 116, 115,
906 18, 117, 118, 119, 117, 15, 119, 116, 117, 14,
907 116, 120, 118, 11, 7, 118, 2, 122, 121, 118,
908 0, 120, 0, 123, 120, 120, 121, 122, 121, 124,
909 122, 121, 122, 123, 125, 0, 123, 125, 127, 124,
910 0, 123, 124, 124, 125, 123, 126, 125, 127, 0,
911 126, 127, 128, 127, 0, 0, 126, 130, 129, 126,
913 128, 0, 128, 0, 0, 128, 129, 130, 129, 0,
914 130, 129, 168, 134, 130, 134, 135, 135, 135, 138,
915 138, 138, 168, 134, 0, 168, 134, 0, 0, 134,
916 134, 136, 0, 136, 136, 136, 137, 0, 137, 137,
917 137, 140, 140, 140, 144, 144, 144, 145, 0, 145,
918 145, 145, 0, 140, 155, 155, 155, 140, 149, 149,
919 149, 150, 150, 150, 0, 136, 140, 141, 169, 170,
920 149, 170, 169, 150, 151, 151, 151, 0, 169, 170,
921 0, 169, 170, 213, 213, 213, 151, 0, 0, 141,
922 151, 0, 0, 141, 141, 141, 141, 141, 141, 141,
924 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
925 141, 141, 141, 141, 141, 141, 163, 163, 163, 171,
926 172, 173, 214, 214, 214, 224, 224, 224, 175, 171,
927 172, 173, 171, 172, 173, 171, 172, 172, 175, 174,
928 176, 175, 0, 174, 0, 0, 163, 176, 163, 174,
929 176, 177, 174, 176, 0, 177, 178, 179, 180, 163,
930 178, 177, 181, 163, 177, 0, 178, 179, 180, 178,
931 179, 180, 181, 179, 182, 181, 182, 0, 183, 184,
932 185, 278, 278, 278, 182, 0, 0, 182, 183, 184,
933 185, 183, 184, 185, 186, 187, 0, 185, 186, 187,
935 189, 188, 190, 0, 186, 187, 191, 186, 187, 188,
936 189, 188, 190, 189, 188, 190, 191, 192, 193, 191,
937 0, 191, 194, 195, 0, 0, 192, 192, 193, 0,
938 192, 193, 194, 195, 196, 194, 195, 193, 197, 194,
939 198, 406, 406, 406, 196, 199, 200, 196, 197, 199,
940 198, 197, 196, 198, 201, 199, 200, 198, 199, 200,
941 203, 202, 204, 200, 201, 202, 204, 201, 206, 207,
942 203, 202, 204, 203, 202, 204, 205, 0, 206, 207,
943 205, 206, 207, 209, 208, 210, 205, 208, 0, 205,
944 212, 0, 210, 209, 208, 210, 209, 208, 210, 0,
946 212, 0, 0, 212, 217, 217, 217, 218, 218, 218,
947 219, 219, 219, 228, 228, 228, 217, 0, 239, 218,
948 217, 0, 219, 218, 0, 228, 219, 239, 239, 217,
949 0, 239, 218, 0, 0, 219, 221, 221, 221, 229,
950 229, 229, 231, 231, 231, 0, 240, 0, 221, 0,
951 241, 229, 221, 0, 231, 229, 240, 241, 231, 240,
952 241, 221, 223, 241, 412, 412, 412, 413, 413, 413,
953 223, 223, 0, 0, 223, 223, 223, 223, 223, 223,
954 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
955 223, 223, 223, 223, 223, 223, 223, 242, 243, 0,
957 0, 384, 384, 384, 244, 0, 245, 242, 243, 0,
958 242, 243, 244, 242, 244, 243, 245, 244, 246, 245,
959 384, 0, 0, 247, 245, 0, 0, 248, 246, 249,
960 0, 246, 0, 247, 247, 246, 247, 248, 250, 249,
961 248, 0, 249, 251, 252, 253, 0, 251, 250, 0,
962 250, 250, 0, 251, 252, 253, 251, 252, 253, 254,
963 255, 256, 253, 254, 0, 0, 257, 258, 0, 254,
964 255, 256, 254, 255, 256, 255, 257, 258, 259, 257,
965 258, 257, 260, 258, 0, 0, 261, 0, 259, 0,
966 262, 259, 260, 0, 263, 260, 261, 259, 264, 261,
968 262, 261, 264, 262, 263, 265, 266, 263, 264, 0,
969 0, 264, 267, 265, 268, 265, 266, 0, 265, 266,
970 267, 266, 267, 0, 268, 267, 269, 268, 269, 268,
971 270, 271, 272, 414, 414, 414, 269, 0, 0, 269,
972 270, 271, 272, 270, 271, 272, 273, 274, 275, 0,
973 270, 273, 275, 276, 277, 282, 273, 274, 275, 273,
974 274, 275, 0, 276, 277, 282, 276, 277, 0, 282,
975 0, 0, 277, 415, 415, 415, 0, 0, 282, 283,
976 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
977 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
979 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
980 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
981 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
982 283, 283, 283, 283, 284, 284, 284, 285, 285, 285,
983 287, 287, 287, 0, 298, 299, 284, 0, 0, 285,
984 284, 300, 287, 285, 298, 299, 287, 298, 299, 284,
985 0, 300, 285, 0, 300, 287, 288, 288, 288, 288,
986 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
987 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
988 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
990 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
991 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
992 288, 291, 291, 291, 0, 301, 417, 417, 417, 302,
993 303, 0, 0, 291, 0, 301, 0, 291, 301, 302,
994 303, 302, 302, 303, 304, 305, 306, 0, 304, 306,
995 307, 308, 0, 305, 304, 305, 306, 304, 305, 306,
996 307, 308, 309, 307, 308, 0, 310, 0, 311, 0,
997 309, 0, 309, 0, 312, 309, 310, 310, 311, 310,
998 0, 311, 313, 0, 312, 311, 312, 312, 313, 313,
999 314, 0, 315, 313, 0, 0, 315, 0, 316, 318,
1001 314, 0, 315, 314, 314, 315, 316, 317, 316, 318,
1002 0, 316, 318, 317, 321, 0, 318, 317, 0, 319,
1003 317, 319, 0, 320, 321, 320, 321, 321, 322, 319,
1004 322, 0, 319, 320, 323, 324, 320, 0, 322, 325,
1005 0, 322, 324, 0, 323, 324, 326, 323, 324, 325,
1006 327, 326, 325, 0, 328, 0, 326, 0, 327, 326,
1007 327, 340, 329, 327, 328, 329, 0, 328, 331, 331,
1008 331, 340, 329, 341, 340, 329, 332, 332, 332, 340,
1009 331, 0, 0, 341, 331, 0, 341, 342, 332, 343,
1010 341, 343, 332, 331, 334, 334, 334, 342, 344, 343,
1012 342, 332, 343, 345, 0, 346, 334, 0, 344, 0,
1013 334, 344, 0, 345, 344, 346, 345, 347, 346, 334,
1014 0, 347, 348, 350, 349, 345, 349, 347, 351, 352,
1015 347, 0, 348, 350, 349, 348, 350, 349, 351, 352,
1016 353, 351, 352, 0, 354, 355, 0, 354, 0, 355,
1017 353, 357, 356, 353, 354, 355, 356, 354, 355, 358,
1018 359, 357, 356, 0, 357, 356, 360, 361, 357, 358,
1019 359, 362, 358, 359, 0, 363, 360, 361, 0, 360,
1020 361, 362, 364, 0, 362, 363, 364, 363, 363, 368,
1021 369, 370, 364, 368, 0, 364, 371, 372, 0, 368,
1023 369, 370, 368, 369, 370, 373, 371, 372, 0, 371,
1024 372, 374, 375, 0, 0, 373, 375, 373, 373, 377,
1025 0, 374, 375, 374, 374, 375, 376, 0, 376, 377,
1026 379, 378, 377, 378, 379, 380, 376, 381, 0, 376,
1027 379, 378, 382, 379, 378, 380, 382, 381, 380, 383,
1028 381, 388, 382, 383, 0, 382, 389, 390, 391, 383,
1029 0, 388, 383, 0, 388, 393, 389, 390, 391, 389,
1030 390, 391, 392, 394, 390, 393, 392, 394, 393, 395,
1031 0, 396, 392, 394, 396, 392, 394, 397, 0, 395,
1032 397, 396, 395, 0, 396, 0, 400, 397, 0, 0,
1034 397, 398, 398, 398, 402, 398, 400, 0, 401, 400,
1035 398, 0, 400, 401, 402, 403, 404, 402, 401, 0,
1036 398, 401, 405, 0, 0, 403, 404, 0, 403, 404,
1037 0, 0, 405, 0, 410, 405, 408, 408, 408, 408,
1038 409, 409, 409, 411, 410, 0, 408, 410, 0, 420,
1039 420, 420, 0, 411, 0, 0, 411, 0, 420, 0,
1040 0, 408, 0, 0, 421, 421, 421, 421, 0, 0,
1041 409, 0, 409, 420, 421, 422, 422, 422, 422, 423,
1042 423, 423, 0, 409, 0, 422, 0, 409, 0, 421,
1043 424, 424, 424, 424, 425, 425, 425, 426, 426, 426,
1045 422, 0, 427, 427, 427, 0, 428, 428, 428, 0,
1046 429, 429, 429, 430, 430, 430, 0, 431, 431, 431,
1047 432, 432, 432, 0, 425, 0, 425, 426, 0, 426,
1048 0, 0, 427, 0, 427, 0, 0, 425, 0, 0,
1049 426, 425, 0, 0, 426, 427, 428, 0, 0, 427,
1050 429, 431, 433, 433, 433, 435, 435, 435, 0, 0,
1051 430, 436, 436, 436, 437, 437, 437, 438, 438, 438,
1052 443, 443, 443, 444, 444, 444, 438, 440, 440, 440,
1053 0, 441, 441, 441, 0, 442, 442, 442, 445, 445,
1054 445, 438, 439, 439, 439, 439, 439, 439, 439, 439,
1056 439, 439, 439, 439, 439, 439, 439, 439, 439, 446,
1057 446, 446, 439, 439, 439, 439, 441, 0, 439, 440,
1058 442, 448, 448, 448, 450, 450, 450, 449, 449, 449,
1059 451, 451, 451, 452, 452, 452, 453, 453, 453, 0,
1060 455, 455, 455, 439, 439, 439, 439, 447, 447, 447,
1061 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
1062 447, 447, 447, 447, 449, 448, 0, 447, 447, 447,
1063 447, 455, 0, 447, 454, 454, 454, 456, 456, 456,
1064 459, 459, 459, 460, 460, 460, 461, 461, 461, 462,
1065 462, 462, 463, 463, 463, 464, 464, 464, 447, 447,
1067 447, 447, 0, 454, 465, 465, 465, 466, 466, 466,
1068 0, 456, 457, 457, 457, 457, 457, 457, 457, 457,
1069 457, 457, 457, 457, 457, 457, 457, 457, 457, 0,
1070 0, 0, 457, 457, 457, 457, 0, 0, 457, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 457, 457, 457, 457, 458, 458, 458,
1074 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
1075 458, 458, 458, 458, 0, 0, 0, 458, 458, 458,
1076 458, 0, 0, 458, 0, 0, 0, 0, 0, 0,
1078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1079 0, 0, 0, 0, 0, 0, 0, 0, 458, 458,
1080 458, 458, 468, 468, 0, 468, 468, 468, 468, 468,
1081 469, 469, 0, 469, 469, 469, 469, 469, 470, 470,
1082 0, 0, 470, 470, 470, 471, 471, 0, 471, 471,
1083 471, 471, 471, 472, 472, 472, 472, 472, 472, 472,
1084 472, 473, 473, 473, 473, 473, 473, 473, 473, 474,
1085 474, 474, 475, 475, 475, 475, 475, 475, 475, 475,
1086 476, 476, 476, 477, 477, 477, 477, 477, 477, 477,
1087 477, 478, 478, 479, 479, 479, 481, 481, 481, 481,
1089 481, 481, 481, 481, 482, 482, 483, 483, 483, 483,
1090 483, 483, 483, 483, 484, 484, 484, 484, 484, 485,
1091 485, 486, 486, 486, 486, 486, 486, 486, 486, 487,
1092 487, 487, 487, 487, 488, 488, 488, 488, 488, 489,
1093 489, 489, 489, 489, 490, 490, 490, 490, 490, 490,
1094 490, 490, 491, 491, 491, 491, 491, 491, 491, 492,
1095 492, 0, 492, 492, 492, 492, 492, 493, 493, 493,
1096 493, 493, 493, 493, 493, 494, 494, 0, 494, 494,
1097 494, 494, 494, 467, 467, 467, 467, 467, 467, 467,
1098 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
1100 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
1101 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
1102 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
1103 467, 467, 467, 467, 467, 467, 467, 467, 467
1106 static yy_state_type yy_last_accepting_state;
1107 static char *yy_last_accepting_cpos;
1109 extern int avm2__flex_debug;
1110 int avm2__flex_debug = 0;
1112 /* The intent behind this definition is that it'll catch
1113 * any uses of REJECT which flex missed.
1115 #define REJECT reject_used_but_not_detected
1116 #define yymore() yymore_used_but_not_detected
1117 #define YY_MORE_ADJ 0
1118 #define YY_RESTORE_YY_MORE_OFFSET
1120 #line 1 "tokenizer.lex"
1123 Routines for compiling Flash2 AVM2 ABC Actionscript
1125 Extension module for the rfxswf library.
1126 Part of the swftools package.
1128 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1130 This program is free software; you can redistribute it and/or modify
1131 it under the terms of the GNU General Public License as published by
1132 the Free Software Foundation; either version 2 of the License, or
1133 (at your option) any later version.
1135 This program is distributed in the hope that it will be useful,
1136 but WITHOUT ANY WARRANTY; without even the implied warranty of
1137 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1138 GNU General Public License for more details.
1140 You should have received a copy of the GNU General Public License
1141 along with this program; if not, write to the Free Software
1142 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1143 #line 24 "tokenizer.lex"
1150 #include "../utf8.h"
1151 #include "tokenizer.h"
1154 int as3_verbosity = 1;
1155 void as3_error(const char*format, ...)
1162 va_start(arglist, format);
1163 vsprintf(buf, format, arglist);
1165 fprintf(stderr, "%s:%d:%d: error: %s\n", current_filename_short, current_line, current_column, buf);
1169 void as3_warning(const char*format, ...)
1176 va_start(arglist, format);
1177 vsprintf(buf, format, arglist);
1179 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1182 void as3_softwarning(const char*format, ...)
1189 va_start(arglist, format);
1190 vsprintf(buf, format, arglist);
1192 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1195 static void dbg(const char*format, ...)
1202 va_start(arglist, format);
1203 vsprintf(buf, format, arglist);
1206 while(l && buf[l-1]=='\n') {
1210 printf("(tokenizer) ");
1211 printf("%s\n", buf);
1217 #ifndef YY_CURRENT_BUFFER
1218 #define YY_CURRENT_BUFFER yy_current_buffer
1221 void handleInclude(char*text, int len, char quotes)
1225 char*p1 = strchr(text, '"');
1226 char*p2 = strrchr(text, '"');
1227 if(!p1 || !p2 || p1==p2) {
1228 syntaxerror("Invalid include in line %d\n", current_line);
1231 filename = strdup(p1+1);
1235 while(!strchr(" \n\r\t", text[i1])) i1++;
1237 while(strchr(" \n\r\t", text[i1])) i1++;
1238 while(strchr(" \n\r\t", text[i2-1])) i2--;
1239 if(i2!=len) text[i2]=0;
1240 filename = strdup(&text[i1]);
1243 char*fullfilename = enter_file(filename, YY_CURRENT_BUFFER);
1244 avm2_in = fopen(fullfilename, "rb");
1246 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1249 avm2__switch_to_buffer(avm2__create_buffer(avm2_in,YY_BUF_SIZE ) );
1250 //BEGIN(INITIAL); keep context
1253 static int do_unescape(const char*s, const char*end, char*n)
1259 if(o) o[len] = *s;len++;
1263 s++; //skip past '\'
1264 if(s==end) syntaxerror("invalid \\ at end of string");
1266 /* handle the various line endings (mac, dos, unix) */
1279 case '\\': if(o) o[len] = '\\';s++;len++; break;
1280 case '"': if(o) o[len] = '"';s++;len++; break;
1281 case '\'': if(o) o[len] = '\'';s++;len++; break;
1282 case 'b': if(o) o[len] = '\b';s++;len++; break;
1283 case 'f': if(o) o[len] = '\f';s++;len++; break;
1284 case 'n': if(o) o[len] = '\n';s++;len++; break;
1285 case 'r': if(o) o[len] = '\r';s++;len++; break;
1286 case 't': if(o) o[len] = '\t';s++;len++; break;
1287 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1290 while(strchr("01234567", *s) && nr<3 && s<end) {
1297 syntaxerror("octal number out of range (0-255): %d", num);
1298 if(o) o[len] = num;len++;
1301 case 'x': case 'u': {
1310 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1313 if(s==end) syntaxerror("invalid \\u{ at end of string");
1318 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1320 if(*s>='0' && *s<='9') num |= *s - '0';
1321 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1322 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1327 if(*s=='}' && s<end) {
1330 syntaxerror("missing terminating '}'");
1334 char*utf8 = getUTF8(num);
1336 if(o) o[len] = *utf8;utf8++;len++;
1340 syntaxerror("byte out of range (0-255): %d", num);
1341 if(o) o[len] = num;len++;
1346 syntaxerror("unknown escape sequence: \"\\%c\"", *s);
1353 static string_t string_unescape(const char*in, int l)
1356 const char*end = &in[l];
1358 int len = do_unescape(s, end, 0);
1359 char*n = (char*)malloc(len+1);
1360 do_unescape(s, end, n);
1361 string_t out = string_new(n, len);
1365 static void handleString(char*s, int len)
1368 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1371 else if(s[0]=='\'') {
1372 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1375 else syntaxerror("String incorrectly terminated");
1378 avm2_lval.str = string_unescape(s, len);
1382 char start_of_expression;
1384 static inline int mkid(int type)
1386 char*s = malloc(avm2_leng+1);
1387 memcpy(s, avm2_text, avm2_leng);
1393 static inline int m(int type)
1395 avm2_lval.token = type;
1400 static char numberbuf[64];
1403 if(avm2_leng>sizeof(numberbuf)-1)
1404 syntaxerror("decimal number overflow");
1406 memcpy(s, avm2_text, avm2_leng);
1411 static inline int setint(int v)
1413 avm2_lval.number_int = v;
1421 static inline int setuint(unsigned int v)
1423 avm2_lval.number_uint = v;
1431 static inline int setfloat(double v)
1433 avm2_lval.number_float = v;
1437 static inline int handlefloat()
1440 avm2_lval.number_float = atof(s);
1444 static inline int handleint()
1447 char l = (avm2_text[0]=='-');
1449 char*max = l?"1073741824":"2147483647";
1450 if(avm2_leng-l>10) {
1451 as3_warning("integer overflow: %s (converted to Number)", s);
1452 return handlefloat();
1454 if(avm2_leng-l==10) {
1456 for(t=0;t<avm2_leng-l;t++) {
1457 if(avm2_text[l+t]>max[t]) {
1458 as3_warning("integer overflow: %s (converted to Number)", s);
1459 return handlefloat();
1461 else if(avm2_text[l+t]<max[t])
1465 if(avm2_text[0]=='-') {
1471 for(t=0;t<avm2_leng;t++) {
1473 v+=avm2_text[t]-'0';
1479 static inline int handlehexfloat()
1481 char l = (avm2_text[0]=='-')+2;
1486 for(t=l;t<avm2_leng;t++) {
1487 char c = avm2_text[t];
1497 if(c>='0' && c<='9')
1499 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1500 d+=((c&0x0f)+9)*base;
1504 static inline int handlehex()
1506 char l = (avm2_text[0]=='-')+2;
1507 int len = avm2_leng;
1511 syntaxerror("integer overflow %s", s);
1516 for(t=l;t<len;t++) {
1518 char c = avm2_text[t];
1519 if(c>='0' && c<='9')
1521 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1524 if(l && v>1073741824) {
1526 as3_warning("signed integer overflow: %s (converted to Number)", s);
1529 if(!l && v>2147483647) {
1531 as3_warning("unsigned integer overflow: %s (converted to Number)", s);
1536 return setint(-(int)v);
1542 void handleLabel(char*text, int len)
1545 for(t=len-1;t>=0;--t) {
1550 char*s = malloc(t+1);
1551 memcpy(s, avm2_text, t);
1556 static int handleregexp()
1558 char*s = malloc(avm2_leng);
1559 int len=avm2_leng-1;
1560 memcpy(s, avm2_text+1, len);
1563 for(t=len;t>=0;--t) {
1569 avm2_lval.regexp.pattern = s;
1571 avm2_lval.regexp.options = 0;
1573 avm2_lval.regexp.options = s+t+1;
1578 void initialize_scanner();
1579 #define YY_USER_INIT initialize_scanner();
1581 /* count the number of lines+columns consumed by this token */
1582 static inline void l() {
1584 for(t=0;t<avm2_leng;t++) {
1585 if(avm2_text[t]=='\n') {
1593 /* count the number of columns consumed by this token */
1594 static inline void c() {
1595 current_column+=avm2_leng;
1598 //Boolean {c();return m(KW_BOOLEAN);}
1599 //int {c();return m(KW_INT);}
1600 //uint {c();return m(KW_UINT);}
1601 //Number {c();return m(KW_NUMBER);}
1606 #line 1607 "tokenizer.yy.c"
1612 #ifndef YY_NO_UNISTD_H
1613 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1614 * down here because we want the user's section 1 to have been scanned first.
1615 * The user has a chance to override it with an option.
1620 #ifndef YY_EXTRA_TYPE
1621 #define YY_EXTRA_TYPE void *
1624 static int yy_init_globals (void );
1626 /* Accessor methods to globals.
1627 These are made visible to non-reentrant scanners for convenience. */
1629 int avm2_lex_destroy (void );
1631 int avm2_get_debug (void );
1633 void avm2_set_debug (int debug_flag );
1635 YY_EXTRA_TYPE avm2_get_extra (void );
1637 void avm2_set_extra (YY_EXTRA_TYPE user_defined );
1639 FILE *avm2_get_in (void );
1641 void avm2_set_in (FILE * in_str );
1643 FILE *avm2_get_out (void );
1645 void avm2_set_out (FILE * out_str );
1647 int avm2_get_leng (void );
1649 char *avm2_get_text (void );
1651 int avm2_get_lineno (void );
1653 void avm2_set_lineno (int line_number );
1655 /* Macros after this point can all be overridden by user definitions in
1659 #ifndef YY_SKIP_YYWRAP
1661 extern "C" int avm2_wrap (void );
1663 extern int avm2_wrap (void );
1667 static void yyunput (int c,char *buf_ptr );
1670 static void yy_flex_strncpy (char *,yyconst char *,int );
1673 #ifdef YY_NEED_STRLEN
1674 static int yy_flex_strlen (yyconst char * );
1680 static int yyinput (void );
1682 static int input (void );
1687 /* Amount of stuff to slurp up with each read. */
1688 #ifndef YY_READ_BUF_SIZE
1689 #define YY_READ_BUF_SIZE 8192
1692 /* Copy whatever the last rule matched to the standard output. */
1694 /* This used to be an fputs(), but since the string might contain NUL's,
1695 * we now use fwrite().
1697 #define ECHO fwrite( avm2_text, avm2_leng, 1, avm2_out )
1700 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1701 * is returned in "result".
1704 #define YY_INPUT(buf,result,max_size) \
1705 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1709 for ( n = 0; n < max_size && \
1710 (c = getc( avm2_in )) != EOF && c != '\n'; ++n ) \
1711 buf[n] = (char) c; \
1713 buf[n++] = (char) c; \
1714 if ( c == EOF && ferror( avm2_in ) ) \
1715 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1721 while ( (result = fread(buf, 1, max_size, avm2_in))==0 && ferror(avm2_in)) \
1723 if( errno != EINTR) \
1725 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1729 clearerr(avm2_in); \
1736 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1737 * we don't want an extra ';' after the "return" because that will cause
1738 * some compilers to complain about unreachable statements.
1741 #define yyterminate() return YY_NULL
1744 /* Number of entries by which start-condition stack grows. */
1745 #ifndef YY_START_STACK_INCR
1746 #define YY_START_STACK_INCR 25
1749 /* Report a fatal error. */
1750 #ifndef YY_FATAL_ERROR
1751 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1754 /* end tables serialization structures and prototypes */
1756 /* Default declaration of generated scanner - a define so the user can
1757 * easily add parameters.
1760 #define YY_DECL_IS_OURS 1
1762 extern int avm2_lex (void);
1764 #define YY_DECL int avm2_lex (void)
1765 #endif /* !YY_DECL */
1767 /* Code executed at the beginning of each rule, after avm2_text and avm2_leng
1770 #ifndef YY_USER_ACTION
1771 #define YY_USER_ACTION
1774 /* Code executed at the end of each rule. */
1776 #define YY_BREAK break;
1779 #define YY_RULE_SETUP \
1780 if ( avm2_leng > 0 ) \
1781 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1782 (avm2_text[avm2_leng - 1] == '\n'); \
1785 /** The main scanner function which does all the work.
1789 register yy_state_type yy_current_state;
1790 register char *yy_cp, *yy_bp;
1791 register int yy_act;
1793 #line 507 "tokenizer.lex"
1797 #line 1798 "tokenizer.yy.c"
1808 (yy_start) = 1; /* first start state */
1816 if ( ! YY_CURRENT_BUFFER ) {
1817 avm2_ensure_buffer_stack ();
1818 YY_CURRENT_BUFFER_LVALUE =
1819 avm2__create_buffer(avm2_in,YY_BUF_SIZE );
1822 avm2__load_buffer_state( );
1825 while ( 1 ) /* loops until end-of-file is reached */
1827 yy_cp = (yy_c_buf_p);
1829 /* Support of avm2_text. */
1830 *yy_cp = (yy_hold_char);
1832 /* yy_bp points to the position in yy_ch_buf of the start of
1837 yy_current_state = (yy_start);
1838 yy_current_state += YY_AT_BOL();
1842 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1843 if ( yy_accept[yy_current_state] )
1845 (yy_last_accepting_state) = yy_current_state;
1846 (yy_last_accepting_cpos) = yy_cp;
1848 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1850 yy_current_state = (int) yy_def[yy_current_state];
1851 if ( yy_current_state >= 468 )
1852 yy_c = yy_meta[(unsigned int) yy_c];
1854 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1857 while ( yy_current_state != 467 );
1858 yy_cp = (yy_last_accepting_cpos);
1859 yy_current_state = (yy_last_accepting_state);
1862 yy_act = yy_accept[yy_current_state];
1864 YY_DO_BEFORE_ACTION;
1866 do_action: /* This label is used only to access EOF actions. */
1869 { /* beginning of action switch */
1870 case 0: /* must back up */
1871 /* undo the effects of YY_DO_BEFORE_ACTION */
1872 *yy_cp = (yy_hold_char);
1873 yy_cp = (yy_last_accepting_cpos);
1874 yy_current_state = (yy_last_accepting_state);
1875 goto yy_find_action;
1878 /* rule 1 can match eol */
1880 #line 510 "tokenizer.lex"
1881 {l(); /* single line comment */}
1884 /* rule 2 can match eol */
1886 #line 511 "tokenizer.lex"
1887 {l(); /* multi line comment */}
1891 #line 512 "tokenizer.lex"
1892 {syntaxerror("syntax error: unterminated comment", avm2_text);}
1895 /* rule 4 can match eol */
1896 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
1897 (yy_c_buf_p) = yy_cp -= 1;
1898 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
1900 #line 514 "tokenizer.lex"
1901 {l();handleInclude(avm2_text, avm2_leng, 1);}
1904 /* rule 5 can match eol */
1905 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
1906 (yy_c_buf_p) = yy_cp -= 1;
1907 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
1909 #line 515 "tokenizer.lex"
1910 {l();handleInclude(avm2_text, avm2_leng, 0);}
1913 /* rule 6 can match eol */
1915 #line 516 "tokenizer.lex"
1916 {l(); BEGIN(INITIAL);handleString(avm2_text, avm2_leng);return T_STRING;}
1921 #line 519 "tokenizer.lex"
1922 {c(); BEGIN(INITIAL);return handleregexp();}
1926 #line 520 "tokenizer.lex"
1927 {c(); BEGIN(INITIAL);return handlehex();}
1931 #line 521 "tokenizer.lex"
1932 {c(); BEGIN(INITIAL);return handlehexfloat();}
1936 #line 522 "tokenizer.lex"
1937 {c(); BEGIN(INITIAL);return handleint();}
1941 #line 523 "tokenizer.lex"
1942 {c(); BEGIN(INITIAL);return handlefloat();}
1947 #line 526 "tokenizer.lex"
1951 /* rule 13 can match eol */
1953 #line 527 "tokenizer.lex"
1958 #line 529 "tokenizer.lex"
1959 {c(); BEGIN(INITIAL);return handlehex();}
1963 #line 530 "tokenizer.lex"
1964 {c(); BEGIN(INITIAL);return handlehexfloat();}
1968 #line 531 "tokenizer.lex"
1969 {c(); BEGIN(INITIAL);return handleint();}
1973 #line 532 "tokenizer.lex"
1974 {c(); BEGIN(INITIAL);return handlefloat();}
1978 #line 534 "tokenizer.lex"
1979 {/* for debugging: generates a tokenizer-level error */
1980 syntaxerror("3rr0r");}
1983 /* rule 19 can match eol */
1984 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
1985 (yy_c_buf_p) = yy_cp -= 1;
1986 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
1988 #line 537 "tokenizer.lex"
1989 {l();handleLabel(avm2_text, avm2_leng-3);return T_FOR;}
1992 /* rule 20 can match eol */
1993 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
1994 (yy_c_buf_p) = yy_cp -= 1;
1995 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
1997 #line 538 "tokenizer.lex"
1998 {l();handleLabel(avm2_text, avm2_leng-2);return T_DO;}
2001 /* rule 21 can match eol */
2002 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
2003 (yy_c_buf_p) = yy_cp -= 1;
2004 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
2006 #line 539 "tokenizer.lex"
2007 {l();handleLabel(avm2_text, avm2_leng-5);return T_WHILE;}
2010 /* rule 22 can match eol */
2011 *yy_cp = (yy_hold_char); /* undo effects of setting up avm2_text */
2012 (yy_c_buf_p) = yy_cp -= 1;
2013 YY_DO_BEFORE_ACTION; /* set up avm2_text again */
2015 #line 540 "tokenizer.lex"
2016 {l();handleLabel(avm2_text, avm2_leng-6);return T_SWITCH;}
2020 #line 541 "tokenizer.lex"
2021 {c();avm2_lval.id="";return T_FOR;}
2025 #line 542 "tokenizer.lex"
2026 {c();avm2_lval.id="";return T_DO;}
2030 #line 543 "tokenizer.lex"
2031 {c();avm2_lval.id="";return T_WHILE;}
2035 #line 544 "tokenizer.lex"
2036 {c();avm2_lval.id="";return T_SWITCH;}
2040 #line 546 "tokenizer.lex"
2041 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2045 #line 547 "tokenizer.lex"
2046 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2050 #line 548 "tokenizer.lex"
2051 {c();BEGIN(REGEXPOK);return m(T_NE);}
2055 #line 549 "tokenizer.lex"
2056 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2060 #line 550 "tokenizer.lex"
2061 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2065 #line 551 "tokenizer.lex"
2066 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2070 #line 552 "tokenizer.lex"
2071 {c();return m(T_GE);}
2075 #line 553 "tokenizer.lex"
2076 {c();return m(T_LE);}
2080 #line 554 "tokenizer.lex"
2081 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2085 #line 555 "tokenizer.lex"
2086 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2090 #line 556 "tokenizer.lex"
2091 {c();return m(T_PLUSBY);}
2095 #line 557 "tokenizer.lex"
2096 {c();return m(T_MINUSBY);}
2100 #line 558 "tokenizer.lex"
2101 {c();return m(T_DIVBY);}
2105 #line 559 "tokenizer.lex"
2106 {c();return m(T_MODBY);}
2110 #line 560 "tokenizer.lex"
2111 {c();return m(T_MULBY);}
2115 #line 561 "tokenizer.lex"
2116 {c();return m(T_ORBY);}
2120 #line 562 "tokenizer.lex"
2121 {c();return m(T_SHRBY);}
2125 #line 563 "tokenizer.lex"
2126 {c();return m(T_SHLBY);}
2130 #line 564 "tokenizer.lex"
2131 {c();return m(T_USHRBY);}
2135 #line 565 "tokenizer.lex"
2136 {c();return m(T_SHL);}
2140 #line 566 "tokenizer.lex"
2141 {c();return m(T_USHR);}
2145 #line 567 "tokenizer.lex"
2146 {c();return m(T_SHR);}
2150 #line 568 "tokenizer.lex"
2151 {c();return m(T_DOTDOTDOT);}
2155 #line 569 "tokenizer.lex"
2156 {c();return m(T_DOTDOT);}
2160 #line 570 "tokenizer.lex"
2161 {c();return m('.');}
2165 #line 571 "tokenizer.lex"
2166 {c();return m(T_COLONCOLON);}
2170 #line 572 "tokenizer.lex"
2171 {c();return m(':');}
2175 #line 573 "tokenizer.lex"
2176 {c();return m(KW_INSTANCEOF);}
2180 #line 574 "tokenizer.lex"
2181 {c();return m(KW_IMPLEMENTS);}
2185 #line 575 "tokenizer.lex"
2186 {c();return m(KW_INTERFACE);}
2190 #line 576 "tokenizer.lex"
2191 {c();return m(KW_NAMESPACE);}
2195 #line 577 "tokenizer.lex"
2196 {c();return m(KW_PROTECTED);}
2200 #line 578 "tokenizer.lex"
2201 {c();return m(KW_UNDEFINED);}
2205 #line 579 "tokenizer.lex"
2206 {c();return m(KW_CONTINUE);}
2210 #line 580 "tokenizer.lex"
2211 {c();return m(KW_OVERRIDE);}
2215 #line 581 "tokenizer.lex"
2216 {c();return m(KW_INTERNAL);}
2220 #line 582 "tokenizer.lex"
2221 {c();return m(KW_FUNCTION);}
2225 #line 583 "tokenizer.lex"
2226 {c();return m(KW_FINALLY);}
2230 #line 584 "tokenizer.lex"
2231 {c();return m(KW_DEFAULT);}
2235 #line 585 "tokenizer.lex"
2236 {c();return m(KW_PACKAGE);}
2240 #line 586 "tokenizer.lex"
2241 {c();return m(KW_PRIVATE);}
2245 #line 587 "tokenizer.lex"
2246 {c();return m(KW_DYNAMIC);}
2250 #line 588 "tokenizer.lex"
2251 {c();return m(KW_EXTENDS);}
2255 #line 589 "tokenizer.lex"
2256 {c();return m(KW_DELETE);}
2260 #line 590 "tokenizer.lex"
2261 {c();return m(KW_RETURN);}
2265 #line 591 "tokenizer.lex"
2266 {c();return m(KW_PUBLIC);}
2270 #line 592 "tokenizer.lex"
2271 {c();return m(KW_NATIVE);}
2275 #line 593 "tokenizer.lex"
2276 {c();return m(KW_STATIC);}
2280 #line 594 "tokenizer.lex"
2281 {c();return m(KW_IMPORT);}
2285 #line 595 "tokenizer.lex"
2286 {c();return m(KW_TYPEOF);}
2290 #line 596 "tokenizer.lex"
2291 {c();return m(KW_THROW);}
2295 #line 597 "tokenizer.lex"
2296 {c();return m(KW_CLASS);}
2300 #line 598 "tokenizer.lex"
2301 {c();return m(KW_CONST);}
2305 #line 599 "tokenizer.lex"
2306 {c();return m(KW_CATCH);}
2310 #line 600 "tokenizer.lex"
2311 {c();return m(KW_FINAL);}
2315 #line 601 "tokenizer.lex"
2316 {c();return m(KW_FALSE);}
2320 #line 602 "tokenizer.lex"
2321 {c();return m(KW_BREAK);}
2325 #line 603 "tokenizer.lex"
2326 {c();return m(KW_SUPER);}
2330 #line 604 "tokenizer.lex"
2331 {c();return m(KW_EACH);}
2335 #line 605 "tokenizer.lex"
2336 {c();return m(KW_VOID);}
2340 #line 606 "tokenizer.lex"
2341 {c();return m(KW_TRUE);}
2345 #line 607 "tokenizer.lex"
2346 {c();return m(KW_NULL);}
2350 #line 608 "tokenizer.lex"
2351 {c();return m(KW_ELSE);}
2355 #line 609 "tokenizer.lex"
2356 {c();return m(KW_CASE);}
2360 #line 610 "tokenizer.lex"
2361 {c();return m(KW_WITH);}
2365 #line 611 "tokenizer.lex"
2366 {c();return m(KW_USE);}
2370 #line 612 "tokenizer.lex"
2371 {c();return m(KW_NEW);}
2375 #line 613 "tokenizer.lex"
2376 {c();return m(KW_GET);}
2380 #line 614 "tokenizer.lex"
2381 {c();return m(KW_SET);}
2385 #line 615 "tokenizer.lex"
2386 {c();return m(KW_VAR);}
2390 #line 616 "tokenizer.lex"
2391 {c();return m(KW_TRY);}
2395 #line 617 "tokenizer.lex"
2396 {c();return m(KW_IS) ;}
2400 #line 618 "tokenizer.lex"
2401 {c();return m(KW_IN) ;}
2405 #line 619 "tokenizer.lex"
2406 {c();return m(KW_IF) ;}
2410 #line 620 "tokenizer.lex"
2411 {c();return m(KW_AS);}
2415 #line 621 "tokenizer.lex"
2416 {c();BEGIN(INITIAL);return mkid(T_IDENTIFIER);}
2420 #line 623 "tokenizer.lex"
2421 {c();BEGIN(REGEXPOK);return m(avm2_text[0]);}
2425 #line 624 "tokenizer.lex"
2426 {c();BEGIN(INITIAL);return m(avm2_text[0]);}
2430 #line 626 "tokenizer.lex"
2431 {char c1=avm2_text[0];
2433 buf[0] = avm2_text[0];
2435 for(t=1;t<128;t++) {
2436 char c = buf[t]=input();
2437 if(c=='\n' || c==EOF) {
2442 if(c1>='0' && c1<='9')
2443 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2445 syntaxerror("syntax error: %s", buf);
2451 case YY_STATE_EOF(INITIAL):
2452 case YY_STATE_EOF(REGEXPOK):
2453 case YY_STATE_EOF(BEGINNING):
2454 #line 645 "tokenizer.lex"
2456 void*b = leave_file();
2459 avm2__delete_buffer(YY_CURRENT_BUFFER);
2462 avm2__delete_buffer(YY_CURRENT_BUFFER);
2463 avm2__switch_to_buffer(b);
2469 #line 657 "tokenizer.lex"
2472 #line 2473 "tokenizer.yy.c"
2474 case YY_END_OF_BUFFER:
2476 /* Amount of text matched not including the EOB char. */
2477 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2479 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2480 *yy_cp = (yy_hold_char);
2481 YY_RESTORE_YY_MORE_OFFSET
2483 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2485 /* We're scanning a new file or input source. It's
2486 * possible that this happened because the user
2487 * just pointed avm2_in at a new source and called
2488 * avm2_lex(). If so, then we have to assure
2489 * consistency between YY_CURRENT_BUFFER and our
2490 * globals. Here is the right place to do so, because
2491 * this is the first action (other than possibly a
2492 * back-up) that will match for the new input source.
2494 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2495 YY_CURRENT_BUFFER_LVALUE->yy_input_file = avm2_in;
2496 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2499 /* Note that here we test for yy_c_buf_p "<=" to the position
2500 * of the first EOB in the buffer, since yy_c_buf_p will
2501 * already have been incremented past the NUL character
2502 * (since all states make transitions on EOB to the
2503 * end-of-buffer state). Contrast this with the test
2506 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2507 { /* This was really a NUL. */
2508 yy_state_type yy_next_state;
2510 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2512 yy_current_state = yy_get_previous_state( );
2514 /* Okay, we're now positioned to make the NUL
2515 * transition. We couldn't have
2516 * yy_get_previous_state() go ahead and do it
2517 * for us because it doesn't know how to deal
2518 * with the possibility of jamming (and we don't
2519 * want to build jamming into it because then it
2520 * will run more slowly).
2523 yy_next_state = yy_try_NUL_trans( yy_current_state );
2525 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2527 if ( yy_next_state )
2529 /* Consume the NUL. */
2530 yy_cp = ++(yy_c_buf_p);
2531 yy_current_state = yy_next_state;
2537 yy_cp = (yy_last_accepting_cpos);
2538 yy_current_state = (yy_last_accepting_state);
2539 goto yy_find_action;
2543 else switch ( yy_get_next_buffer( ) )
2545 case EOB_ACT_END_OF_FILE:
2547 (yy_did_buffer_switch_on_eof) = 0;
2551 /* Note: because we've taken care in
2552 * yy_get_next_buffer() to have set up
2553 * avm2_text, we can now set up
2554 * yy_c_buf_p so that if some total
2555 * hoser (like flex itself) wants to
2556 * call the scanner after we return the
2557 * YY_NULL, it'll still work - another
2558 * YY_NULL will get returned.
2560 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2562 yy_act = YY_STATE_EOF(YY_START);
2568 if ( ! (yy_did_buffer_switch_on_eof) )
2574 case EOB_ACT_CONTINUE_SCAN:
2576 (yytext_ptr) + yy_amount_of_matched_text;
2578 yy_current_state = yy_get_previous_state( );
2580 yy_cp = (yy_c_buf_p);
2581 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2584 case EOB_ACT_LAST_MATCH:
2586 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2588 yy_current_state = yy_get_previous_state( );
2590 yy_cp = (yy_c_buf_p);
2591 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2592 goto yy_find_action;
2599 "fatal flex scanner internal error--no action found" );
2600 } /* end of action switch */
2601 } /* end of scanning one token */
2602 } /* end of avm2_lex */
2604 /* yy_get_next_buffer - try to read in a new buffer
2606 * Returns a code representing an action:
2607 * EOB_ACT_LAST_MATCH -
2608 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2609 * EOB_ACT_END_OF_FILE - end of file
2611 static int yy_get_next_buffer (void)
2613 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2614 register char *source = (yytext_ptr);
2615 register int number_to_move, i;
2618 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2620 "fatal flex scanner internal error--end of buffer missed" );
2622 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2623 { /* Don't try to fill the buffer, so this is an EOF. */
2624 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2626 /* We matched a single character, the EOB, so
2627 * treat this as a final EOF.
2629 return EOB_ACT_END_OF_FILE;
2634 /* We matched some text prior to the EOB, first
2637 return EOB_ACT_LAST_MATCH;
2641 /* Try to read more data. */
2643 /* First move last chars to start of buffer. */
2644 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2646 for ( i = 0; i < number_to_move; ++i )
2647 *(dest++) = *(source++);
2649 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2650 /* don't do the read, it's not guaranteed to return an EOF,
2653 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2658 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2660 while ( num_to_read <= 0 )
2661 { /* Not enough room in the buffer - grow it. */
2663 /* just a shorter name for the current buffer */
2664 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2666 int yy_c_buf_p_offset =
2667 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2669 if ( b->yy_is_our_buffer )
2671 int new_size = b->yy_buf_size * 2;
2673 if ( new_size <= 0 )
2674 b->yy_buf_size += b->yy_buf_size / 8;
2676 b->yy_buf_size *= 2;
2678 b->yy_ch_buf = (char *)
2679 /* Include room in for 2 EOB chars. */
2680 avm2_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2683 /* Can't grow it, we don't own it. */
2686 if ( ! b->yy_ch_buf )
2688 "fatal error - scanner input buffer overflow" );
2690 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2692 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2697 if ( num_to_read > YY_READ_BUF_SIZE )
2698 num_to_read = YY_READ_BUF_SIZE;
2700 /* Read in more data. */
2701 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2702 (yy_n_chars), (size_t) num_to_read );
2704 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2707 if ( (yy_n_chars) == 0 )
2709 if ( number_to_move == YY_MORE_ADJ )
2711 ret_val = EOB_ACT_END_OF_FILE;
2712 avm2_restart(avm2_in );
2717 ret_val = EOB_ACT_LAST_MATCH;
2718 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2719 YY_BUFFER_EOF_PENDING;
2724 ret_val = EOB_ACT_CONTINUE_SCAN;
2726 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2727 /* Extend the array by 50%, plus the number we really need. */
2728 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2729 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) avm2_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2730 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2731 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2734 (yy_n_chars) += number_to_move;
2735 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2736 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2738 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2743 /* yy_get_previous_state - get the state just before the EOB char was reached */
2745 static yy_state_type yy_get_previous_state (void)
2747 register yy_state_type yy_current_state;
2748 register char *yy_cp;
2750 yy_current_state = (yy_start);
2751 yy_current_state += YY_AT_BOL();
2753 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2755 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2756 if ( yy_accept[yy_current_state] )
2758 (yy_last_accepting_state) = yy_current_state;
2759 (yy_last_accepting_cpos) = yy_cp;
2761 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2763 yy_current_state = (int) yy_def[yy_current_state];
2764 if ( yy_current_state >= 468 )
2765 yy_c = yy_meta[(unsigned int) yy_c];
2767 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2770 return yy_current_state;
2773 /* yy_try_NUL_trans - try to make a transition on the NUL character
2776 * next_state = yy_try_NUL_trans( current_state );
2778 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2780 register int yy_is_jam;
2781 register char *yy_cp = (yy_c_buf_p);
2783 register YY_CHAR yy_c = 1;
2784 if ( yy_accept[yy_current_state] )
2786 (yy_last_accepting_state) = yy_current_state;
2787 (yy_last_accepting_cpos) = yy_cp;
2789 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2791 yy_current_state = (int) yy_def[yy_current_state];
2792 if ( yy_current_state >= 468 )
2793 yy_c = yy_meta[(unsigned int) yy_c];
2795 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2796 yy_is_jam = (yy_current_state == 467);
2798 return yy_is_jam ? 0 : yy_current_state;
2801 static void yyunput (int c, register char * yy_bp )
2803 register char *yy_cp;
2805 yy_cp = (yy_c_buf_p);
2807 /* undo effects of setting up avm2_text */
2808 *yy_cp = (yy_hold_char);
2810 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2811 { /* need to shift things up to make room */
2812 /* +2 for EOB chars. */
2813 register int number_to_move = (yy_n_chars) + 2;
2814 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2815 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2816 register char *source =
2817 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2819 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2820 *--dest = *--source;
2822 yy_cp += (int) (dest - source);
2823 yy_bp += (int) (dest - source);
2824 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2825 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2827 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2828 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2831 *--yy_cp = (char) c;
2833 (yytext_ptr) = yy_bp;
2834 (yy_hold_char) = *yy_cp;
2835 (yy_c_buf_p) = yy_cp;
2840 static int yyinput (void)
2842 static int input (void)
2848 *(yy_c_buf_p) = (yy_hold_char);
2850 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2852 /* yy_c_buf_p now points to the character we want to return.
2853 * If this occurs *before* the EOB characters, then it's a
2854 * valid NUL; if not, then we've hit the end of the buffer.
2856 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2857 /* This was really a NUL. */
2858 *(yy_c_buf_p) = '\0';
2861 { /* need more input */
2862 int offset = (yy_c_buf_p) - (yytext_ptr);
2865 switch ( yy_get_next_buffer( ) )
2867 case EOB_ACT_LAST_MATCH:
2868 /* This happens because yy_g_n_b()
2869 * sees that we've accumulated a
2870 * token and flags that we need to
2871 * try matching the token before
2872 * proceeding. But for input(),
2873 * there's no matching to consider.
2874 * So convert the EOB_ACT_LAST_MATCH
2875 * to EOB_ACT_END_OF_FILE.
2878 /* Reset buffer status. */
2879 avm2_restart(avm2_in );
2883 case EOB_ACT_END_OF_FILE:
2888 if ( ! (yy_did_buffer_switch_on_eof) )
2897 case EOB_ACT_CONTINUE_SCAN:
2898 (yy_c_buf_p) = (yytext_ptr) + offset;
2904 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2905 *(yy_c_buf_p) = '\0'; /* preserve avm2_text */
2906 (yy_hold_char) = *++(yy_c_buf_p);
2908 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2912 #endif /* ifndef YY_NO_INPUT */
2914 /** Immediately switch to a different input stream.
2915 * @param input_file A readable stream.
2917 * @note This function does not reset the start condition to @c INITIAL .
2919 void avm2_restart (FILE * input_file )
2922 if ( ! YY_CURRENT_BUFFER ){
2923 avm2_ensure_buffer_stack ();
2924 YY_CURRENT_BUFFER_LVALUE =
2925 avm2__create_buffer(avm2_in,YY_BUF_SIZE );
2928 avm2__init_buffer(YY_CURRENT_BUFFER,input_file );
2929 avm2__load_buffer_state( );
2932 /** Switch to a different input buffer.
2933 * @param new_buffer The new input buffer.
2936 void avm2__switch_to_buffer (YY_BUFFER_STATE new_buffer )
2939 /* TODO. We should be able to replace this entire function body
2941 * avm2_pop_buffer_state();
2942 * avm2_push_buffer_state(new_buffer);
2944 avm2_ensure_buffer_stack ();
2945 if ( YY_CURRENT_BUFFER == new_buffer )
2948 if ( YY_CURRENT_BUFFER )
2950 /* Flush out information for old buffer. */
2951 *(yy_c_buf_p) = (yy_hold_char);
2952 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2953 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2956 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2957 avm2__load_buffer_state( );
2959 /* We don't actually know whether we did this switch during
2960 * EOF (avm2_wrap()) processing, but the only time this flag
2961 * is looked at is after avm2_wrap() is called, so it's safe
2962 * to go ahead and always set it.
2964 (yy_did_buffer_switch_on_eof) = 1;
2967 static void avm2__load_buffer_state (void)
2969 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2970 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2971 avm2_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2972 (yy_hold_char) = *(yy_c_buf_p);
2975 /** Allocate and initialize an input buffer state.
2976 * @param file A readable stream.
2977 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2979 * @return the allocated buffer state.
2981 YY_BUFFER_STATE avm2__create_buffer (FILE * file, int size )
2985 b = (YY_BUFFER_STATE) avm2_alloc(sizeof( struct yy_buffer_state ) );
2987 YY_FATAL_ERROR( "out of dynamic memory in avm2__create_buffer()" );
2989 b->yy_buf_size = size;
2991 /* yy_ch_buf has to be 2 characters longer than the size given because
2992 * we need to put in 2 end-of-buffer characters.
2994 b->yy_ch_buf = (char *) avm2_alloc(b->yy_buf_size + 2 );
2995 if ( ! b->yy_ch_buf )
2996 YY_FATAL_ERROR( "out of dynamic memory in avm2__create_buffer()" );
2998 b->yy_is_our_buffer = 1;
3000 avm2__init_buffer(b,file );
3005 /** Destroy the buffer.
3006 * @param b a buffer created with avm2__create_buffer()
3009 void avm2__delete_buffer (YY_BUFFER_STATE b )
3015 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3016 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3018 if ( b->yy_is_our_buffer )
3019 avm2_free((void *) b->yy_ch_buf );
3021 avm2_free((void *) b );
3024 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3028 #ifdef __THROW /* this is a gnuism */
3029 extern int isatty (int ) __THROW;
3031 extern int isatty (int );
3038 /* Initializes or reinitializes a buffer.
3039 * This function is sometimes called more than once on the same buffer,
3040 * such as during a avm2_restart() or at EOF.
3042 static void avm2__init_buffer (YY_BUFFER_STATE b, FILE * file )
3047 avm2__flush_buffer(b );
3049 b->yy_input_file = file;
3050 b->yy_fill_buffer = 1;
3052 /* If b is the current buffer, then avm2__init_buffer was _probably_
3053 * called from avm2_restart() or through yy_get_next_buffer.
3054 * In that case, we don't want to reset the lineno or column.
3056 if (b != YY_CURRENT_BUFFER){
3057 b->yy_bs_lineno = 1;
3058 b->yy_bs_column = 0;
3061 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3066 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3067 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3070 void avm2__flush_buffer (YY_BUFFER_STATE b )
3077 /* We always need two end-of-buffer characters. The first causes
3078 * a transition to the end-of-buffer state. The second causes
3079 * a jam in that state.
3081 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3082 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3084 b->yy_buf_pos = &b->yy_ch_buf[0];
3087 b->yy_buffer_status = YY_BUFFER_NEW;
3089 if ( b == YY_CURRENT_BUFFER )
3090 avm2__load_buffer_state( );
3093 /** Pushes the new state onto the stack. The new state becomes
3094 * the current state. This function will allocate the stack
3096 * @param new_buffer The new state.
3099 void avm2_push_buffer_state (YY_BUFFER_STATE new_buffer )
3101 if (new_buffer == NULL)
3104 avm2_ensure_buffer_stack();
3106 /* This block is copied from avm2__switch_to_buffer. */
3107 if ( YY_CURRENT_BUFFER )
3109 /* Flush out information for old buffer. */
3110 *(yy_c_buf_p) = (yy_hold_char);
3111 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3112 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3115 /* Only push if top exists. Otherwise, replace top. */
3116 if (YY_CURRENT_BUFFER)
3117 (yy_buffer_stack_top)++;
3118 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3120 /* copied from avm2__switch_to_buffer. */
3121 avm2__load_buffer_state( );
3122 (yy_did_buffer_switch_on_eof) = 1;
3125 /** Removes and deletes the top of the stack, if present.
3126 * The next element becomes the new top.
3129 void avm2_pop_buffer_state (void)
3131 if (!YY_CURRENT_BUFFER)
3134 avm2__delete_buffer(YY_CURRENT_BUFFER );
3135 YY_CURRENT_BUFFER_LVALUE = NULL;
3136 if ((yy_buffer_stack_top) > 0)
3137 --(yy_buffer_stack_top);
3139 if (YY_CURRENT_BUFFER) {
3140 avm2__load_buffer_state( );
3141 (yy_did_buffer_switch_on_eof) = 1;
3145 /* Allocates the stack if it does not exist.
3146 * Guarantees space for at least one push.
3148 static void avm2_ensure_buffer_stack (void)
3152 if (!(yy_buffer_stack)) {
3154 /* First allocation is just for 2 elements, since we don't know if this
3155 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3156 * immediate realloc on the next call.
3159 (yy_buffer_stack) = (struct yy_buffer_state**)avm2_alloc
3160 (num_to_alloc * sizeof(struct yy_buffer_state*)
3162 if ( ! (yy_buffer_stack) )
3163 YY_FATAL_ERROR( "out of dynamic memory in avm2_ensure_buffer_stack()" );
3165 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3167 (yy_buffer_stack_max) = num_to_alloc;
3168 (yy_buffer_stack_top) = 0;
3172 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3174 /* Increase the buffer to prepare for a possible push. */
3175 int grow_size = 8 /* arbitrary grow size */;
3177 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3178 (yy_buffer_stack) = (struct yy_buffer_state**)avm2_realloc
3180 num_to_alloc * sizeof(struct yy_buffer_state*)
3182 if ( ! (yy_buffer_stack) )
3183 YY_FATAL_ERROR( "out of dynamic memory in avm2_ensure_buffer_stack()" );
3185 /* zero only the new slots.*/
3186 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3187 (yy_buffer_stack_max) = num_to_alloc;
3191 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3192 * @param base the character buffer
3193 * @param size the size in bytes of the character buffer
3195 * @return the newly allocated buffer state object.
3197 YY_BUFFER_STATE avm2__scan_buffer (char * base, yy_size_t size )
3202 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3203 base[size-1] != YY_END_OF_BUFFER_CHAR )
3204 /* They forgot to leave room for the EOB's. */
3207 b = (YY_BUFFER_STATE) avm2_alloc(sizeof( struct yy_buffer_state ) );
3209 YY_FATAL_ERROR( "out of dynamic memory in avm2__scan_buffer()" );
3211 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3212 b->yy_buf_pos = b->yy_ch_buf = base;
3213 b->yy_is_our_buffer = 0;
3214 b->yy_input_file = 0;
3215 b->yy_n_chars = b->yy_buf_size;
3216 b->yy_is_interactive = 0;
3218 b->yy_fill_buffer = 0;
3219 b->yy_buffer_status = YY_BUFFER_NEW;
3221 avm2__switch_to_buffer(b );
3226 /** Setup the input buffer state to scan a string. The next call to avm2_lex() will
3227 * scan from a @e copy of @a str.
3228 * @param yystr a NUL-terminated string to scan
3230 * @return the newly allocated buffer state object.
3231 * @note If you want to scan bytes that may contain NUL values, then use
3232 * avm2__scan_bytes() instead.
3234 YY_BUFFER_STATE avm2__scan_string (yyconst char * yystr )
3237 return avm2__scan_bytes(yystr,strlen(yystr) );
3240 /** Setup the input buffer state to scan the given bytes. The next call to avm2_lex() will
3241 * scan from a @e copy of @a bytes.
3242 * @param bytes the byte buffer to scan
3243 * @param len the number of bytes in the buffer pointed to by @a bytes.
3245 * @return the newly allocated buffer state object.
3247 YY_BUFFER_STATE avm2__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3254 /* Get memory for full buffer, including space for trailing EOB's. */
3255 n = _yybytes_len + 2;
3256 buf = (char *) avm2_alloc(n );
3258 YY_FATAL_ERROR( "out of dynamic memory in avm2__scan_bytes()" );
3260 for ( i = 0; i < _yybytes_len; ++i )
3261 buf[i] = yybytes[i];
3263 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3265 b = avm2__scan_buffer(buf,n );
3267 YY_FATAL_ERROR( "bad buffer in avm2__scan_bytes()" );
3269 /* It's okay to grow etc. this buffer, and we should throw it
3270 * away when we're done.
3272 b->yy_is_our_buffer = 1;
3277 #ifndef YY_EXIT_FAILURE
3278 #define YY_EXIT_FAILURE 2
3281 static void yy_fatal_error (yyconst char* msg )
3283 (void) fprintf( stderr, "%s\n", msg );
3284 exit( YY_EXIT_FAILURE );
3287 /* Redefine yyless() so it works in section 3 code. */
3293 /* Undo effects of setting up avm2_text. */ \
3294 int yyless_macro_arg = (n); \
3295 YY_LESS_LINENO(yyless_macro_arg);\
3296 avm2_text[avm2_leng] = (yy_hold_char); \
3297 (yy_c_buf_p) = avm2_text + yyless_macro_arg; \
3298 (yy_hold_char) = *(yy_c_buf_p); \
3299 *(yy_c_buf_p) = '\0'; \
3300 avm2_leng = yyless_macro_arg; \
3304 /* Accessor methods (get/set functions) to struct members. */
3306 /** Get the current line number.
3309 int avm2_get_lineno (void)
3315 /** Get the input stream.
3318 FILE *avm2_get_in (void)
3323 /** Get the output stream.
3326 FILE *avm2_get_out (void)
3331 /** Get the length of the current token.
3334 int avm2_get_leng (void)
3339 /** Get the current token.
3343 char *avm2_get_text (void)
3348 /** Set the current line number.
3349 * @param line_number
3352 void avm2_set_lineno (int line_number )
3355 avm2_lineno = line_number;
3358 /** Set the input stream. This does not discard the current
3360 * @param in_str A readable stream.
3362 * @see avm2__switch_to_buffer
3364 void avm2_set_in (FILE * in_str )
3369 void avm2_set_out (FILE * out_str )
3371 avm2_out = out_str ;
3374 int avm2_get_debug (void)
3376 return avm2__flex_debug;
3379 void avm2_set_debug (int bdebug )
3381 avm2__flex_debug = bdebug ;
3384 static int yy_init_globals (void)
3386 /* Initialization is the same as for the non-reentrant scanner.
3387 * This function is called from avm2_lex_destroy(), so don't allocate here.
3390 (yy_buffer_stack) = 0;
3391 (yy_buffer_stack_top) = 0;
3392 (yy_buffer_stack_max) = 0;
3393 (yy_c_buf_p) = (char *) 0;
3397 /* Defined in main.c */
3402 avm2_in = (FILE *) 0;
3403 avm2_out = (FILE *) 0;
3406 /* For future reference: Set errno on error, since we are called by
3412 /* avm2_lex_destroy is for both reentrant and non-reentrant scanners. */
3413 int avm2_lex_destroy (void)
3416 /* Pop the buffer stack, destroying each element. */
3417 while(YY_CURRENT_BUFFER){
3418 avm2__delete_buffer(YY_CURRENT_BUFFER );
3419 YY_CURRENT_BUFFER_LVALUE = NULL;
3420 avm2_pop_buffer_state();
3423 /* Destroy the stack itself. */
3424 avm2_free((yy_buffer_stack) );
3425 (yy_buffer_stack) = NULL;
3427 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3428 * avm2_lex() is called, initialization will occur. */
3435 * Internal utility routines.
3439 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3442 for ( i = 0; i < n; ++i )
3447 #ifdef YY_NEED_STRLEN
3448 static int yy_flex_strlen (yyconst char * s )
3451 for ( n = 0; s[n]; ++n )
3458 void *avm2_alloc (yy_size_t size )
3460 return (void *) malloc( size );
3463 void *avm2_realloc (void * ptr, yy_size_t size )
3465 /* The cast to (char *) in the following accommodates both
3466 * implementations that use char* generic pointers, and those
3467 * that use void* generic pointers. It works with the latter
3468 * because both ANSI C and C++ allow castless assignment from
3469 * any pointer type to void*, and deal with argument conversions
3470 * as though doing an assignment.
3472 return (void *) realloc( (char *) ptr, size );
3475 void avm2_free (void * ptr )
3477 free( (char *) ptr ); /* see avm2_realloc() for (char *) cast */
3480 #define YYTABLES_NAME "yytables"
3482 #line 657 "tokenizer.lex"
3491 static char mbuf[256];
3492 char*token2string(enum yytokentype nr, YYSTYPE v)
3494 if(nr==T_STRING) return "<string>";
3495 else if(nr==T_INT) return "<int>";
3496 else if(nr==T_UINT) return "<uint>";
3497 else if(nr==T_BYTE) return "<byte>";
3498 else if(nr==T_FLOAT) return "<float>";
3499 else if(nr==T_REGEXP) return "REGEXP";
3500 else if(nr==T_EOF) return "***END***";
3501 else if(nr==T_GE) return ">=";
3502 else if(nr==T_LE) return "<=";
3503 else if(nr==T_MINUSMINUS) return "--";
3504 else if(nr==T_PLUSPLUS) return "++";
3505 else if(nr==KW_IMPLEMENTS) return "implements";
3506 else if(nr==KW_INTERFACE) return "interface";
3507 else if(nr==KW_NAMESPACE) return "namespace";
3508 else if(nr==KW_PROTECTED) return "protected";
3509 else if(nr==KW_OVERRIDE) return "override";
3510 else if(nr==KW_INTERNAL) return "internal";
3511 else if(nr==KW_FUNCTION) return "function";
3512 else if(nr==KW_PACKAGE) return "package";
3513 else if(nr==KW_PRIVATE) return "private";
3514 else if(nr==KW_BOOLEAN) return "Boolean";
3515 else if(nr==KW_DYNAMIC) return "dynamic";
3516 else if(nr==KW_EXTENDS) return "extends";
3517 else if(nr==KW_PUBLIC) return "public";
3518 else if(nr==KW_NATIVE) return "native";
3519 else if(nr==KW_STATIC) return "static";
3520 else if(nr==KW_IMPORT) return "import";
3521 else if(nr==KW_NUMBER) return "number";
3522 else if(nr==KW_CLASS) return "class";
3523 else if(nr==KW_CONST) return "const";
3524 else if(nr==KW_FINAL) return "final";
3525 else if(nr==KW_FALSE) return "False";
3526 else if(nr==KW_TRUE) return "True";
3527 else if(nr==KW_UINT) return "uint";
3528 else if(nr==KW_NULL) return "null";
3529 else if(nr==KW_ELSE) return "else";
3530 else if(nr==KW_USE) return "use";
3531 else if(nr==KW_INT) return "int";
3532 else if(nr==KW_NEW) return "new";
3533 else if(nr==KW_GET) return "get";
3534 else if(nr==KW_SET) return "set";
3535 else if(nr==KW_VAR) return "var";
3536 else if(nr==KW_IS) return "is";
3537 else if(nr==KW_AS) return "as";
3538 else if(nr==T_IDENTIFIER) return "ID";
3540 sprintf(mbuf, "%d", nr);
3545 void initialize_scanner()