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 as3__create_buffer
10 #define yy_delete_buffer as3__delete_buffer
11 #define yy_flex_debug as3__flex_debug
12 #define yy_init_buffer as3__init_buffer
13 #define yy_flush_buffer as3__flush_buffer
14 #define yy_load_buffer_state as3__load_buffer_state
15 #define yy_switch_to_buffer as3__switch_to_buffer
17 #define yyleng as3_leng
19 #define yylineno as3_lineno
21 #define yyrestart as3_restart
22 #define yytext as3_text
23 #define yywrap as3_wrap
24 #define yyalloc as3_alloc
25 #define yyrealloc as3_realloc
26 #define yyfree as3_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 as3_restart(as3_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;
177 extern FILE *as3_in, *as3_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 as3_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 as3_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 as3_restart()), so that the user can continue scanning by
264 * just pointing as3_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 as3_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 as3_wrap()'s to do buffer switches
302 * instead of setting up a fresh as3_in. A bit of a hack ...
304 static int yy_did_buffer_switch_on_eof;
306 void as3_restart (FILE *input_file );
307 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer );
308 YY_BUFFER_STATE as3__create_buffer (FILE *file,int size );
309 void as3__delete_buffer (YY_BUFFER_STATE b );
310 void as3__flush_buffer (YY_BUFFER_STATE b );
311 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer );
312 void as3_pop_buffer_state (void );
314 static void as3_ensure_buffer_stack (void );
315 static void as3__load_buffer_state (void );
316 static void as3__init_buffer (YY_BUFFER_STATE b,FILE *file );
318 #define YY_FLUSH_BUFFER as3__flush_buffer(YY_CURRENT_BUFFER )
320 YY_BUFFER_STATE as3__scan_buffer (char *base,yy_size_t size );
321 YY_BUFFER_STATE as3__scan_string (yyconst char *yy_str );
322 YY_BUFFER_STATE as3__scan_bytes (yyconst char *bytes,int len );
324 void *as3_alloc (yy_size_t );
325 void *as3_realloc (void *,yy_size_t );
326 void as3_free (void * );
328 #define yy_new_buffer as3__create_buffer
330 #define yy_set_interactive(is_interactive) \
332 if ( ! YY_CURRENT_BUFFER ){ \
333 as3_ensure_buffer_stack (); \
334 YY_CURRENT_BUFFER_LVALUE = \
335 as3__create_buffer(as3_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 as3_ensure_buffer_stack (); \
344 YY_CURRENT_BUFFER_LVALUE = \
345 as3__create_buffer(as3_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 *as3_in = (FILE *) 0, *as3_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int as3_lineno;
364 extern char *as3_text;
365 #define yytext_ptr as3_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 as3_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 as3_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 108
383 #define YY_END_OF_BUFFER 109
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[505] =
393 0, 0, 0, 0, 0, 0, 109, 107, 14, 14,
394 105, 107, 105, 105, 105, 107, 106, 105, 105, 105,
395 52, 105, 107, 107, 107, 54, 105, 105, 105, 103,
396 104, 103, 103, 103, 103, 103, 103, 103, 103, 103,
397 103, 103, 103, 103, 103, 103, 103, 103, 105, 104,
398 107, 103, 105, 105, 52, 105, 107, 107, 107, 30,
399 0, 6, 0, 41, 28, 0, 0, 42, 37, 38,
400 36, 39, 51, 0, 3, 0, 40, 17, 17, 0,
401 0, 0, 0, 53, 0, 47, 35, 33, 34, 49,
402 0, 103, 0, 102, 103, 103, 103, 103, 103, 25,
404 103, 103, 103, 103, 103, 103, 103, 103, 103, 101,
405 103, 100, 99, 103, 103, 103, 103, 103, 103, 103,
406 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
407 103, 103, 103, 103, 43, 29, 0, 100, 0, 0,
408 0, 0, 0, 3, 8, 40, 0, 11, 11, 0,
409 0, 0, 31, 50, 18, 0, 0, 0, 0, 0,
410 1, 0, 0, 0, 0, 0, 0, 45, 32, 44,
411 48, 0, 0, 0, 0, 0, 103, 103, 103, 103,
412 103, 103, 103, 103, 103, 103, 103, 103, 103, 24,
413 103, 95, 103, 103, 103, 103, 103, 94, 103, 103,
415 103, 103, 103, 103, 103, 96, 103, 103, 103, 103,
416 103, 98, 103, 103, 93, 97, 103, 103, 103, 13,
417 103, 0, 11, 11, 0, 0, 12, 8, 0, 0,
418 0, 8, 0, 8, 8, 0, 0, 0, 0, 0,
419 0, 0, 2, 0, 16, 0, 15, 15, 0, 0,
420 46, 0, 0, 0, 0, 103, 91, 103, 103, 103,
421 103, 103, 103, 103, 86, 90, 103, 103, 103, 103,
422 103, 103, 103, 103, 103, 103, 89, 103, 103, 103,
423 103, 103, 103, 103, 103, 103, 103, 88, 103, 103,
424 87, 103, 92, 103, 12, 0, 0, 0, 0, 8,
426 0, 8, 0, 0, 2, 0, 8, 8, 10, 0,
427 9, 9, 0, 2, 19, 0, 21, 0, 0, 0,
428 84, 81, 79, 80, 103, 103, 103, 103, 103, 83,
429 82, 103, 103, 103, 103, 103, 103, 103, 103, 103,
430 103, 103, 103, 103, 103, 85, 103, 78, 103, 103,
431 26, 103, 10, 0, 9, 9, 0, 0, 2, 0,
432 8, 8, 0, 20, 0, 0, 103, 103, 71, 103,
433 103, 103, 103, 103, 76, 103, 103, 103, 103, 74,
434 103, 103, 103, 103, 73, 72, 75, 27, 77, 103,
435 103, 8, 0, 0, 0, 103, 66, 69, 70, 65,
437 103, 103, 103, 103, 103, 103, 103, 67, 68, 103,
438 103, 103, 8, 0, 0, 22, 61, 64, 103, 103,
439 103, 63, 103, 62, 103, 103, 0, 0, 23, 103,
440 103, 57, 58, 59, 60, 0, 0, 0, 0, 0,
441 0, 56, 55, 0, 5, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
443 0, 0, 0, 0, 0, 4, 0, 0, 4, 0,
444 5, 0, 0, 0, 0, 7, 0, 21, 5, 21,
445 21, 0, 0, 0, 7, 0, 20, 5, 20, 20,
446 0, 0, 0, 0, 0, 22, 5, 22, 22, 23,
451 static yyconst flex_int32_t yy_ec[256] =
453 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
454 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 5, 6, 7, 8, 9, 10, 11, 12, 9,
457 13, 14, 15, 9, 16, 17, 18, 19, 20, 20,
458 21, 20, 20, 20, 20, 20, 20, 22, 9, 23,
459 24, 25, 9, 9, 26, 27, 28, 29, 27, 27,
460 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
461 27, 27, 27, 30, 27, 27, 27, 27, 27, 27,
462 31, 32, 33, 9, 34, 8, 35, 36, 37, 38,
464 39, 40, 41, 42, 43, 27, 44, 45, 46, 47,
465 48, 49, 27, 50, 51, 52, 53, 54, 55, 56,
466 57, 27, 9, 58, 59, 9, 8, 8, 8, 8,
467 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
468 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
469 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
470 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
471 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
472 8, 8, 8, 8, 8, 8, 60, 8, 8, 8,
473 61, 8, 8, 8, 8, 8, 8, 8, 8, 8,
475 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
476 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
477 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
478 8, 8, 8, 8, 8, 8, 8, 8, 62, 8,
479 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
483 static yyconst flex_int32_t yy_meta[63] =
485 1, 2, 3, 2, 2, 4, 4, 4, 4, 4,
486 4, 4, 4, 4, 4, 4, 5, 4, 6, 6,
487 6, 2, 4, 4, 4, 7, 7, 7, 7, 7,
488 4, 8, 4, 8, 7, 7, 7, 7, 9, 7,
489 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
490 7, 7, 7, 7, 7, 10, 7, 4, 4, 4,
494 static yyconst flex_int16_t yy_base[536] =
496 0, 578, 48, 55, 62, 69, 620, 2813, 2813, 2813,
497 577, 84, 2813, 576, 587, 81, 2813, 571, 77, 78,
498 86, 86, 98, 103, 108, 568, 108, 565, 71, 131,
499 2813, 141, 146, 167, 117, 131, 132, 143, 158, 172,
500 165, 173, 189, 194, 203, 217, 138, 224, 97, 2813,
501 514, 235, 270, 276, 237, 284, 284, 290, 298, 545,
502 190, 2813, 557, 2813, 2813, 128, 556, 2813, 2813, 2813,
503 2813, 2813, 539, 211, 324, 105, 2813, 2813, 293, 499,
504 257, 524, 486, 2813, 504, 509, 2813, 503, 2813, 114,
505 331, 226, 347, 296, 320, 312, 321, 326, 327, 335,
507 341, 347, 346, 355, 361, 366, 370, 377, 381, 382,
508 386, 393, 401, 402, 407, 408, 422, 423, 429, 430,
509 428, 434, 446, 448, 455, 454, 460, 466, 471, 483,
510 475, 489, 495, 494, 2813, 2813, 465, 510, 301, 531,
511 546, 552, 79, 574, 604, 163, 209, 2813, 560, 471,
512 358, 495, 2813, 2813, 2813, 608, 612, 661, 489, 232,
513 2813, 584, 598, 679, 741, 469, 459, 2813, 2813, 2813,
514 461, 766, 391, 375, 364, 368, 509, 590, 549, 732,
515 740, 548, 770, 741, 777, 775, 789, 781, 749, 763,
516 796, 795, 800, 801, 812, 817, 823, 819, 824, 828,
518 835, 839, 840, 846, 851, 855, 860, 862, 871, 876,
519 883, 882, 890, 897, 898, 899, 913, 904, 915, 2813,
520 919, 949, 2813, 952, 647, 391, 2813, 0, 975, 980,
521 999, 386, 1007, 0, 1022, 966, 976, 1079, 1141, 112,
522 1031, 1166, 381, 1174, 2813, 0, 2813, 0, 343, 329,
523 2813, 0, 295, 300, 296, 979, 971, 1148, 993, 1146,
524 1162, 1169, 1171, 1180, 1008, 1173, 1185, 1192, 1194, 1199,
525 1210, 1211, 1215, 1217, 1229, 1231, 1233, 1238, 1247, 1249,
526 1254, 1255, 1256, 1270, 1272, 1279, 1284, 1286, 1288, 1290,
527 1302, 1306, 1307, 1308, 2813, 1289, 1338, 1377, 1439, 0,
529 550, 1501, 1464, 1563, 312, 1568, 1600, 0, 2813, 0,
530 2813, 0, 1472, 2813, 2813, 280, 2813, 0, 232, 234,
531 1325, 1327, 1436, 1444, 1540, 1544, 1545, 1628, 1629, 1630,
532 1634, 1645, 1646, 1650, 1652, 1661, 1668, 1675, 1676, 1677,
533 1691, 1692, 1693, 1697, 1711, 1712, 1716, 1717, 1728, 1732,
534 1734, 1736, 2813, 0, 2813, 0, 1784, 1789, 0, 1808,
535 0, 0, 243, 2813, 218, 205, 1760, 1779, 1780, 1797,
536 1785, 1802, 1803, 1804, 1809, 1818, 1823, 1825, 1827, 1829,
537 1841, 1843, 1845, 1850, 1852, 1859, 1861, 1866, 1868, 1870,
538 1884, 225, 214, 174, 0, 1885, 1877, 1886, 1891, 1892,
540 1900, 1906, 1907, 1921, 1914, 1926, 1925, 1930, 1932, 1937,
541 1944, 1991, 196, 170, 0, 2813, 1952, 1953, 1964, 1969,
542 1976, 1975, 1983, 1984, 1992, 2000, 2039, 166, 2813, 2012,
543 2014, 2020, 2021, 2029, 2035, 667, 256, 2083, 2087, 161,
544 157, 2058, 2059, 1267, 1361, 1594, 2003, 292, 2094, 181,
545 129, 2107, 2119, 2131, 2142, 2151, 2155, 2162, 2167, 2171,
546 2175, 2179, 2183, 407, 2187, 2194, 154, 2224, 2228, 2233,
547 2237, 2269, 2248, 2252, 2256, 2813, 426, 2241, 2260, 2301,
548 2305, 2331, 2309, 2313, 66, 459, 2317, 2321, 2363, 2367,
549 2371, 2375, 2379, 2421, 2483, 2383, 2392, 2396, 2400, 2407,
551 2413, 2445, 2453, 2813, 2545, 2555, 2565, 2574, 2584, 2594,
552 2604, 2613, 2623, 2629, 2639, 2649, 2658, 2664, 2674, 2684,
553 2689, 2693, 2703, 2713, 2723, 2728, 2738, 2743, 2748, 2753,
554 2763, 2772, 2782, 2792, 2802
557 static yyconst flex_int16_t yy_def[536] =
559 504, 1, 1, 1, 1, 1, 504, 504, 504, 504,
560 504, 505, 504, 504, 504, 506, 504, 504, 504, 504,
561 504, 504, 507, 507, 507, 504, 504, 504, 504, 508,
562 504, 508, 508, 508, 34, 34, 34, 34, 34, 34,
563 34, 34, 34, 34, 34, 34, 34, 34, 504, 504,
564 504, 34, 504, 504, 504, 509, 510, 510, 510, 504,
565 505, 504, 505, 504, 504, 506, 506, 504, 504, 504,
566 504, 504, 504, 511, 512, 513, 504, 504, 511, 25,
567 504, 514, 504, 504, 504, 504, 504, 504, 504, 504,
568 504, 34, 504, 34, 34, 34, 34, 34, 34, 34,
570 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
571 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
572 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
573 34, 34, 34, 34, 504, 504, 504, 34, 504, 515,
574 515, 516, 509, 517, 513, 509, 509, 504, 516, 59,
575 504, 518, 504, 504, 504, 512, 512, 519, 504, 513,
576 504, 511, 511, 504, 514, 504, 504, 504, 504, 504,
577 504, 504, 504, 504, 504, 504, 34, 34, 34, 34,
578 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
579 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
581 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
582 34, 34, 34, 34, 34, 34, 34, 34, 34, 504,
583 34, 520, 504, 520, 504, 521, 504, 522, 517, 517,
584 523, 522, 517, 145, 509, 516, 516, 504, 518, 524,
585 512, 519, 504, 512, 504, 164, 504, 164, 504, 504,
586 504, 525, 504, 504, 504, 34, 34, 34, 34, 34,
587 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
588 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
589 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
590 34, 34, 34, 34, 504, 520, 520, 504, 521, 522,
592 526, 504, 517, 523, 522, 517, 504, 235, 504, 238,
593 504, 238, 512, 504, 504, 504, 504, 527, 504, 504,
594 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
595 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
596 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
597 34, 34, 504, 298, 504, 298, 517, 517, 522, 517,
598 302, 307, 504, 504, 504, 504, 34, 34, 34, 34,
599 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
600 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
601 34, 235, 504, 504, 528, 34, 34, 34, 34, 34,
603 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
604 34, 34, 302, 504, 529, 504, 34, 34, 34, 34,
605 34, 34, 34, 34, 34, 34, 530, 531, 504, 34,
606 34, 34, 34, 34, 34, 532, 533, 534, 532, 531,
607 531, 34, 34, 504, 504, 532, 532, 533, 504, 533,
608 535, 535, 534, 534, 532, 534, 504, 504, 532, 532,
609 532, 532, 532, 531, 504, 504, 535, 504, 504, 532,
610 535, 532, 532, 532, 532, 504, 531, 504, 504, 532,
611 532, 532, 532, 532, 531, 531, 504, 504, 532, 532,
612 532, 532, 532, 532, 532, 504, 504, 532, 532, 504,
614 504, 532, 532, 0, 504, 504, 504, 504, 504, 504,
615 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
616 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
617 504, 504, 504, 504, 504
620 static yyconst flex_int16_t yy_nxt[2876] =
622 8, 9, 10, 9, 9, 11, 12, 8, 13, 14,
623 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
624 25, 26, 27, 28, 29, 30, 30, 30, 30, 30,
625 13, 8, 31, 30, 32, 33, 34, 35, 36, 37,
626 38, 30, 39, 30, 30, 30, 40, 41, 42, 43,
627 44, 45, 46, 47, 48, 30, 30, 49, 50, 8,
628 8, 51, 53, 54, 55, 56, 57, 58, 59, 53,
629 54, 55, 56, 57, 58, 59, 53, 54, 55, 56,
630 57, 58, 59, 53, 54, 55, 56, 57, 58, 59,
631 62, 69, 62, 71, 89, 90, 228, 52, 441, 75,
633 70, 72, 73, 76, 74, 74, 74, 161, 161, 77,
634 147, 52, 67, 85, 79, 63, 80, 80, 80, 79,
635 135, 80, 80, 80, 79, 313, 80, 80, 80, 314,
636 86, 87, 91, 91, 91, 91, 81, 170, 171, 62,
637 449, 81, 91, 91, 91, 91, 81, 91, 91, 91,
638 91, 92, 93, 82, 136, 99, 451, 83, 504, 67,
639 467, 92, 93, 504, 100, 102, 105, 93, 91, 91,
640 91, 91, 131, 101, 106, 103, 92, 92, 92, 107,
641 228, 109, 92, 448, 108, 132, 104, 92, 93, 464,
642 92, 94, 92, 441, 147, 95, 62, 110, 441, 92,
644 428, 96, 92, 111, 112, 92, 114, 118, 113, 92,
645 115, 97, 92, 159, 98, 415, 92, 92, 117, 92,
646 92, 63, 119, 92, 116, 120, 235, 121, 92, 74,
647 74, 74, 122, 92, 161, 161, 92, 92, 92, 414,
648 147, 92, 413, 395, 126, 123, 124, 92, 125, 81,
649 92, 92, 127, 73, 394, 142, 142, 142, 92, 128,
650 92, 92, 449, 129, 92, 133, 134, 130, 92, 92,
651 92, 92, 393, 92, 110, 163, 163, 163, 366, 92,
652 111, 138, 92, 365, 69, 113, 139, 450, 140, 141,
653 141, 71, 139, 70, 140, 141, 141, 144, 449, 72,
655 149, 145, 150, 150, 150, 363, 149, 146, 150, 150,
656 150, 162, 162, 162, 149, 147, 150, 150, 150, 222,
657 222, 222, 151, 450, 156, 156, 156, 156, 151, 244,
658 92, 81, 91, 91, 91, 91, 151, 158, 320, 152,
659 92, 159, 319, 92, 318, 504, 92, 83, 172, 172,
660 172, 172, 93, 504, 92, 180, 92, 316, 177, 92,
661 92, 92, 178, 179, 92, 92, 182, 92, 92, 92,
662 92, 183, 181, 92, 92, 92, 237, 237, 237, 92,
663 92, 92, 92, 185, 173, 92, 174, 184, 92, 92,
664 92, 92, 315, 92, 92, 92, 186, 175, 244, 92,
666 92, 176, 92, 244, 92, 188, 187, 298, 92, 255,
667 92, 92, 189, 92, 92, 92, 92, 92, 254, 190,
668 92, 92, 253, 191, 92, 92, 92, 92, 92, 92,
669 92, 476, 192, 92, 193, 92, 92, 92, 252, 477,
670 92, 92, 92, 194, 195, 92, 92, 196, 92, 92,
671 485, 92, 199, 197, 92, 92, 92, 92, 486, 201,
672 200, 198, 92, 92, 92, 204, 92, 92, 92, 92,
673 92, 202, 92, 92, 92, 92, 203, 92, 92, 205,
674 207, 92, 92, 485, 251, 206, 250, 249, 92, 92,
675 92, 464, 92, 92, 92, 92, 208, 209, 92, 92,
677 92, 92, 92, 210, 92, 92, 244, 92, 214, 92,
678 92, 238, 211, 92, 213, 92, 212, 92, 92, 92,
679 504, 215, 92, 92, 216, 220, 169, 92, 92, 92,
680 92, 217, 168, 92, 167, 166, 92, 218, 92, 92,
681 164, 92, 92, 256, 92, 219, 221, 224, 504, 141,
682 141, 141, 244, 92, 92, 154, 92, 92, 66, 61,
683 194, 195, 224, 358, 141, 141, 141, 359, 153, 225,
684 142, 142, 142, 137, 229, 229, 156, 229, 236, 236,
685 236, 360, 262, 92, 225, 258, 226, 231, 88, 84,
686 151, 232, 92, 92, 68, 92, 92, 65, 151, 64,
688 60, 504, 162, 162, 162, 233, 161, 161, 156, 156,
689 156, 156, 156, 156, 156, 156, 163, 163, 163, 504,
690 52, 240, 81, 504, 92, 240, 504, 504, 257, 234,
691 234, 234, 234, 234, 92, 504, 504, 92, 234, 234,
692 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
693 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
694 234, 241, 241, 241, 241, 297, 297, 297, 444, 445,
695 444, 446, 504, 504, 242, 504, 504, 504, 243, 245,
696 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
697 245, 245, 245, 245, 245, 245, 245, 246, 246, 246,
699 245, 245, 245, 245, 246, 246, 246, 246, 246, 245,
700 504, 245, 504, 246, 246, 246, 246, 246, 246, 246,
701 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
702 246, 246, 246, 246, 246, 246, 245, 245, 245, 245,
703 245, 247, 247, 247, 247, 247, 247, 247, 247, 247,
704 247, 247, 247, 247, 247, 247, 247, 248, 247, 504,
705 504, 504, 247, 247, 247, 247, 92, 172, 172, 172,
706 172, 247, 504, 247, 92, 264, 92, 504, 504, 92,
707 504, 504, 259, 269, 92, 92, 504, 92, 92, 504,
708 260, 261, 504, 92, 504, 504, 92, 92, 247, 247,
710 247, 247, 247, 173, 92, 174, 504, 92, 263, 92,
711 92, 92, 504, 266, 92, 92, 175, 92, 265, 92,
712 176, 92, 92, 92, 92, 92, 504, 267, 92, 92,
713 92, 268, 270, 92, 92, 92, 92, 504, 504, 92,
714 92, 504, 92, 92, 271, 92, 92, 272, 92, 504,
715 274, 92, 273, 92, 504, 275, 92, 92, 92, 92,
716 504, 92, 92, 92, 92, 276, 92, 92, 277, 92,
717 92, 92, 92, 92, 92, 92, 504, 278, 279, 92,
718 92, 504, 92, 92, 92, 92, 92, 92, 504, 92,
719 282, 281, 280, 92, 92, 92, 92, 504, 92, 92,
721 285, 504, 92, 283, 92, 92, 92, 92, 504, 92,
722 92, 284, 504, 504, 504, 92, 92, 92, 92, 504,
723 92, 288, 286, 287, 92, 504, 92, 92, 289, 92,
724 92, 92, 92, 92, 92, 290, 504, 92, 92, 504,
725 504, 92, 92, 92, 92, 92, 92, 92, 292, 92,
726 291, 92, 504, 92, 504, 504, 293, 92, 504, 92,
727 92, 504, 92, 294, 504, 504, 92, 222, 222, 222,
728 296, 296, 296, 504, 504, 229, 229, 156, 229, 504,
729 229, 229, 156, 229, 236, 236, 236, 225, 301, 504,
730 225, 504, 302, 301, 237, 237, 237, 302, 504, 303,
732 303, 241, 303, 504, 151, 92, 233, 229, 229, 156,
733 229, 233, 304, 92, 504, 92, 305, 504, 92, 504,
734 301, 504, 321, 92, 307, 504, 92, 92, 504, 504,
735 306, 156, 156, 156, 156, 504, 504, 92, 233, 228,
736 92, 504, 92, 323, 240, 504, 504, 308, 308, 308,
737 308, 308, 92, 147, 504, 92, 308, 308, 308, 308,
738 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
739 308, 308, 308, 308, 308, 308, 308, 308, 308, 309,
740 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
741 309, 309, 309, 309, 309, 309, 309, 310, 310, 310,
743 309, 309, 309, 309, 310, 310, 310, 310, 310, 309,
744 504, 309, 504, 310, 310, 310, 310, 310, 310, 310,
745 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
746 310, 310, 310, 310, 310, 310, 309, 309, 309, 309,
747 309, 311, 311, 311, 311, 311, 311, 311, 311, 311,
748 311, 311, 311, 311, 311, 311, 311, 312, 311, 504,
749 504, 504, 311, 311, 311, 311, 241, 241, 241, 241,
750 504, 311, 504, 311, 156, 156, 156, 156, 504, 242,
751 92, 504, 92, 243, 504, 504, 504, 240, 504, 322,
752 92, 159, 92, 92, 504, 92, 92, 324, 311, 311,
754 311, 311, 311, 92, 325, 92, 92, 92, 504, 92,
755 504, 504, 504, 92, 92, 92, 92, 92, 92, 92,
756 92, 326, 327, 504, 92, 328, 92, 92, 92, 92,
757 330, 329, 92, 92, 504, 504, 92, 504, 331, 92,
758 504, 92, 504, 92, 92, 92, 92, 504, 333, 335,
759 332, 92, 504, 504, 92, 92, 504, 92, 92, 92,
760 334, 92, 92, 92, 92, 92, 336, 92, 444, 445,
761 444, 444, 92, 92, 504, 92, 92, 92, 92, 337,
762 92, 340, 92, 341, 338, 92, 504, 339, 92, 92,
763 92, 92, 342, 92, 92, 504, 92, 343, 92, 92,
765 92, 92, 92, 92, 92, 344, 92, 296, 296, 296,
766 504, 504, 345, 92, 92, 347, 92, 92, 92, 92,
767 92, 346, 92, 92, 92, 504, 92, 225, 92, 350,
768 92, 92, 92, 92, 92, 349, 92, 92, 348, 504,
769 92, 92, 92, 504, 351, 504, 92, 504, 504, 92,
770 92, 92, 92, 92, 92, 92, 297, 297, 297, 92,
771 352, 92, 444, 445, 444, 444, 504, 504, 504, 92,
772 504, 92, 92, 504, 92, 504, 504, 353, 353, 353,
773 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
774 353, 353, 353, 353, 353, 354, 354, 354, 353, 353,
776 353, 353, 354, 354, 354, 354, 354, 353, 504, 353,
777 504, 354, 354, 354, 354, 354, 354, 354, 354, 354,
778 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
779 354, 354, 354, 354, 353, 353, 353, 353, 353, 355,
780 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
781 355, 355, 355, 355, 355, 356, 355, 504, 504, 504,
782 355, 355, 355, 355, 229, 229, 156, 229, 504, 355,
783 92, 355, 156, 156, 156, 156, 504, 301, 92, 504,
784 92, 302, 504, 92, 504, 240, 504, 504, 92, 243,
785 504, 92, 504, 504, 504, 233, 355, 355, 355, 355,
787 355, 156, 156, 156, 156, 157, 157, 157, 157, 157,
788 157, 157, 157, 157, 240, 157, 157, 157, 157, 157,
789 157, 157, 157, 157, 157, 157, 361, 361, 361, 361,
790 361, 157, 157, 157, 157, 361, 361, 361, 361, 361,
791 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
792 361, 361, 361, 361, 361, 361, 361, 361, 157, 157,
793 157, 157, 157, 303, 303, 241, 303, 504, 229, 229,
794 156, 229, 504, 504, 92, 504, 304, 504, 92, 92,
795 305, 301, 504, 369, 92, 307, 367, 92, 368, 92,
796 504, 92, 92, 504, 306, 444, 445, 444, 446, 233,
798 229, 229, 156, 229, 230, 230, 230, 230, 230, 230,
799 230, 230, 230, 301, 230, 230, 230, 302, 230, 230,
800 230, 230, 230, 230, 230, 362, 362, 362, 362, 362,
801 230, 233, 230, 230, 362, 362, 362, 362, 362, 362,
802 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
803 362, 362, 362, 362, 362, 362, 362, 230, 230, 230,
804 230, 230, 92, 92, 92, 504, 371, 504, 92, 504,
805 370, 504, 92, 92, 92, 92, 92, 92, 372, 92,
806 92, 92, 504, 504, 92, 504, 92, 373, 504, 92,
807 92, 374, 92, 92, 92, 92, 92, 92, 376, 92,
809 377, 375, 92, 504, 504, 92, 504, 378, 92, 92,
810 92, 92, 92, 380, 504, 92, 379, 382, 381, 92,
811 92, 92, 92, 92, 92, 92, 92, 92, 384, 385,
812 504, 92, 504, 504, 504, 92, 92, 92, 92, 92,
813 92, 92, 383, 386, 92, 92, 92, 387, 504, 504,
814 92, 92, 504, 504, 504, 92, 92, 388, 92, 92,
815 92, 92, 92, 92, 92, 504, 92, 389, 92, 504,
816 92, 504, 92, 391, 390, 92, 92, 504, 92, 92,
817 92, 92, 504, 92, 229, 229, 156, 229, 504, 229,
818 229, 156, 229, 504, 92, 504, 504, 301, 504, 504,
820 504, 232, 301, 504, 92, 504, 305, 92, 229, 229,
821 156, 229, 396, 92, 92, 233, 504, 504, 504, 92,
822 233, 301, 504, 92, 92, 392, 92, 92, 504, 92,
823 397, 92, 92, 398, 504, 399, 92, 92, 92, 233,
824 504, 92, 402, 92, 92, 504, 92, 92, 92, 92,
825 401, 92, 92, 92, 403, 504, 92, 404, 400, 405,
826 504, 406, 92, 92, 504, 92, 504, 92, 504, 92,
827 92, 92, 92, 92, 92, 92, 92, 92, 407, 92,
828 504, 408, 504, 409, 92, 92, 92, 92, 92, 92,
829 92, 504, 92, 92, 92, 92, 92, 92, 504, 92,
831 92, 410, 92, 92, 92, 92, 92, 504, 92, 504,
832 92, 92, 92, 92, 92, 92, 411, 92, 92, 92,
833 92, 92, 412, 417, 92, 92, 92, 504, 92, 92,
834 92, 92, 92, 92, 92, 92, 92, 504, 92, 92,
835 92, 92, 504, 504, 92, 420, 418, 92, 92, 504,
836 92, 92, 419, 92, 92, 92, 504, 421, 422, 92,
837 92, 92, 423, 424, 92, 92, 92, 504, 92, 92,
838 92, 92, 92, 92, 92, 425, 92, 92, 92, 92,
839 504, 92, 426, 504, 92, 504, 92, 92, 92, 504,
840 504, 92, 427, 427, 427, 427, 92, 92, 92, 92,
842 92, 504, 504, 92, 444, 445, 444, 446, 92, 92,
843 92, 92, 504, 92, 432, 430, 431, 92, 92, 92,
844 92, 433, 92, 92, 504, 92, 92, 92, 92, 434,
845 92, 92, 504, 504, 92, 92, 92, 435, 92, 92,
846 427, 427, 427, 427, 92, 437, 92, 92, 92, 504,
847 438, 504, 504, 443, 92, 92, 92, 504, 92, 92,
848 439, 92, 442, 92, 92, 92, 504, 92, 92, 92,
849 504, 504, 504, 92, 504, 504, 92, 504, 504, 92,
850 504, 504, 92, 451, 452, 445, 452, 453, 457, 458,
851 457, 459, 92, 92, 455, 465, 466, 465, 465, 504,
853 504, 504, 92, 92, 504, 92, 92, 504, 452, 445,
854 452, 452, 504, 504, 456, 504, 504, 504, 449, 451,
855 452, 445, 452, 453, 460, 504, 461, 504, 504, 504,
856 455, 451, 452, 445, 452, 453, 504, 462, 467, 504,
857 504, 463, 455, 468, 469, 468, 470, 504, 504, 504,
858 456, 451, 452, 471, 452, 453, 457, 458, 457, 457,
859 504, 504, 456, 457, 458, 457, 457, 504, 457, 458,
860 457, 459, 444, 445, 444, 446, 444, 445, 444, 446,
861 444, 445, 444, 446, 444, 445, 444, 446, 465, 466,
862 465, 465, 173, 504, 174, 465, 466, 465, 465, 173,
864 504, 174, 504, 504, 460, 175, 461, 504, 504, 176,
865 504, 504, 175, 504, 504, 504, 176, 462, 472, 504,
866 504, 463, 473, 504, 475, 468, 469, 468, 468, 468,
867 469, 468, 468, 474, 468, 469, 468, 470, 452, 445,
868 452, 452, 444, 445, 444, 444, 504, 504, 449, 444,
869 445, 444, 446, 444, 445, 444, 446, 444, 445, 444,
870 446, 444, 445, 444, 444, 504, 504, 504, 467, 317,
871 478, 479, 478, 480, 481, 481, 481, 481, 481, 481,
872 481, 481, 481, 481, 481, 481, 481, 504, 504, 504,
873 481, 481, 481, 481, 483, 504, 504, 482, 484, 481,
875 504, 481, 444, 445, 444, 446, 444, 445, 444, 446,
876 444, 445, 444, 446, 444, 445, 444, 446, 444, 445,
877 444, 444, 444, 445, 444, 444, 481, 481, 481, 481,
878 481, 364, 487, 488, 487, 489, 490, 490, 490, 490,
879 490, 490, 490, 490, 490, 490, 490, 490, 490, 504,
880 504, 504, 490, 490, 490, 490, 504, 492, 504, 504,
881 491, 490, 504, 490, 444, 445, 444, 446, 444, 445,
882 444, 446, 444, 445, 444, 446, 444, 445, 444, 446,
883 444, 445, 444, 446, 444, 445, 444, 444, 490, 490,
884 490, 490, 490, 444, 445, 444, 444, 444, 445, 444,
886 446, 444, 445, 444, 446, 504, 504, 493, 444, 445,
887 444, 444, 504, 494, 444, 445, 444, 444, 504, 504,
888 495, 416, 496, 497, 496, 498, 499, 499, 499, 499,
889 499, 499, 499, 499, 499, 499, 499, 499, 499, 504,
890 504, 504, 499, 499, 499, 499, 444, 445, 444, 446,
891 504, 499, 504, 499, 444, 445, 444, 446, 504, 504,
892 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
893 504, 504, 504, 504, 504, 504, 504, 504, 499, 499,
894 499, 499, 499, 429, 500, 501, 500, 502, 503, 503,
895 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
897 503, 504, 504, 504, 503, 503, 503, 503, 504, 504,
898 504, 504, 504, 503, 504, 503, 504, 504, 504, 504,
899 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
900 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
901 503, 503, 503, 503, 503, 61, 61, 504, 61, 61,
902 61, 61, 61, 61, 61, 66, 66, 504, 66, 66,
903 66, 66, 66, 66, 66, 78, 78, 78, 78, 78,
904 78, 504, 504, 78, 78, 92, 92, 504, 504, 92,
905 92, 92, 92, 92, 143, 143, 504, 143, 143, 143,
906 143, 143, 143, 143, 148, 148, 148, 148, 148, 148,
908 504, 504, 148, 148, 155, 155, 155, 155, 155, 155,
909 504, 504, 155, 157, 157, 157, 157, 157, 157, 157,
910 157, 157, 157, 160, 160, 160, 160, 160, 160, 160,
911 160, 160, 160, 165, 165, 165, 504, 165, 165, 223,
912 223, 223, 223, 223, 223, 504, 504, 223, 223, 227,
913 227, 227, 227, 227, 227, 504, 504, 227, 230, 230,
914 230, 230, 230, 230, 230, 230, 230, 230, 239, 239,
915 239, 504, 239, 239, 156, 156, 156, 156, 156, 156,
916 156, 156, 156, 156, 295, 295, 295, 295, 295, 295,
917 504, 504, 295, 299, 299, 299, 504, 299, 299, 300,
919 504, 300, 300, 229, 229, 229, 229, 229, 229, 229,
920 229, 229, 229, 244, 244, 244, 244, 244, 244, 244,
921 244, 244, 244, 317, 317, 317, 317, 317, 357, 357,
922 357, 357, 357, 357, 357, 357, 357, 357, 364, 364,
923 364, 364, 364, 416, 416, 416, 416, 416, 429, 429,
924 429, 429, 429, 436, 436, 436, 436, 436, 436, 436,
925 436, 436, 436, 440, 440, 440, 440, 440, 440, 440,
926 440, 440, 440, 447, 447, 447, 447, 447, 447, 447,
927 447, 447, 448, 448, 504, 448, 448, 448, 448, 448,
928 448, 448, 454, 454, 454, 454, 454, 454, 454, 454,
930 454, 454, 451, 451, 504, 451, 451, 451, 451, 451,
931 451, 451, 7, 504, 504, 504, 504, 504, 504, 504,
932 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
933 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
934 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
935 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
936 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
937 504, 504, 504, 504, 504
940 static yyconst flex_int16_t yy_chk[2876] =
942 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
943 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
944 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
945 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
946 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
947 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
948 1, 1, 3, 3, 3, 3, 3, 3, 3, 4,
949 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
950 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
951 12, 19, 16, 20, 29, 29, 143, 4, 485, 22,
953 19, 20, 21, 22, 21, 21, 21, 76, 76, 22,
954 143, 6, 16, 27, 23, 12, 23, 23, 23, 24,
955 49, 24, 24, 24, 25, 240, 25, 25, 25, 240,
956 27, 27, 30, 30, 30, 30, 23, 90, 90, 66,
957 451, 24, 32, 32, 32, 32, 25, 33, 33, 33,
958 33, 35, 30, 23, 49, 35, 467, 25, 24, 66,
959 451, 35, 32, 25, 35, 36, 37, 33, 34, 34,
960 34, 34, 47, 35, 37, 36, 37, 38, 36, 37,
961 146, 38, 47, 450, 37, 47, 36, 38, 34, 441,
962 38, 32, 39, 440, 146, 33, 61, 39, 428, 41,
964 414, 34, 39, 39, 39, 39, 40, 42, 39, 41,
965 40, 34, 41, 413, 34, 394, 40, 42, 41, 40,
966 42, 61, 42, 43, 40, 42, 147, 43, 44, 74,
967 74, 74, 44, 43, 160, 160, 43, 45, 44, 393,
968 147, 44, 392, 366, 45, 44, 44, 45, 44, 74,
969 45, 46, 45, 55, 365, 55, 55, 55, 48, 45,
970 92, 46, 437, 46, 46, 48, 48, 46, 48, 52,
971 92, 48, 363, 92, 52, 81, 81, 81, 320, 52,
972 52, 52, 52, 319, 53, 52, 53, 437, 53, 53,
973 53, 54, 54, 53, 54, 54, 54, 56, 448, 54,
975 57, 56, 57, 57, 57, 316, 58, 56, 58, 58,
976 58, 79, 79, 79, 59, 56, 59, 59, 59, 139,
977 139, 139, 57, 448, 75, 75, 75, 75, 58, 305,
978 94, 79, 91, 91, 91, 91, 59, 75, 255, 57,
979 94, 75, 254, 94, 253, 58, 96, 59, 93, 93,
980 93, 93, 91, 59, 95, 97, 96, 250, 95, 96,
981 98, 99, 96, 96, 95, 97, 99, 95, 97, 100,
982 98, 99, 98, 98, 99, 101, 151, 151, 151, 100,
983 103, 102, 100, 102, 93, 101, 93, 101, 101, 104,
984 103, 102, 249, 103, 102, 105, 103, 93, 243, 104,
986 106, 93, 104, 232, 107, 105, 104, 226, 105, 176,
987 106, 108, 106, 106, 107, 109, 110, 107, 175, 107,
988 111, 108, 174, 108, 108, 109, 110, 112, 109, 110,
989 111, 464, 109, 111, 111, 113, 114, 112, 173, 464,
990 112, 115, 116, 112, 112, 113, 114, 114, 113, 114,
991 477, 115, 116, 114, 115, 116, 117, 118, 477, 118,
992 117, 115, 121, 119, 120, 120, 117, 118, 122, 117,
993 118, 119, 121, 119, 120, 121, 119, 120, 122, 121,
994 123, 122, 124, 486, 171, 122, 167, 166, 126, 125,
995 123, 486, 124, 123, 127, 124, 124, 125, 126, 125,
997 128, 126, 125, 126, 127, 129, 159, 127, 129, 131,
998 128, 152, 127, 128, 128, 129, 127, 130, 129, 131,
999 150, 130, 131, 132, 131, 137, 88, 130, 134, 133,
1000 130, 132, 86, 132, 85, 83, 132, 133, 134, 133,
1001 82, 134, 133, 177, 138, 134, 138, 140, 80, 140,
1002 140, 140, 301, 177, 138, 73, 177, 138, 67, 63,
1003 138, 138, 141, 301, 141, 141, 141, 301, 60, 140,
1004 142, 142, 142, 51, 144, 144, 144, 144, 149, 149,
1005 149, 301, 182, 179, 141, 179, 140, 144, 28, 26,
1006 142, 144, 182, 179, 18, 182, 179, 15, 149, 14,
1008 11, 141, 162, 162, 162, 144, 145, 145, 156, 156,
1009 156, 156, 157, 157, 157, 157, 163, 163, 163, 7,
1010 2, 156, 162, 0, 178, 157, 0, 0, 178, 145,
1011 145, 145, 145, 145, 178, 0, 163, 178, 145, 145,
1012 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1013 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1014 145, 158, 158, 158, 158, 225, 225, 225, 436, 436,
1015 436, 436, 0, 0, 158, 0, 0, 0, 158, 164,
1016 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1017 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1019 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1020 0, 164, 0, 164, 164, 164, 164, 164, 164, 164,
1021 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1022 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1023 164, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1024 165, 165, 165, 165, 165, 165, 165, 165, 165, 0,
1025 0, 0, 165, 165, 165, 165, 180, 172, 172, 172,
1026 172, 165, 0, 165, 181, 184, 180, 0, 0, 180,
1027 0, 0, 180, 189, 181, 184, 0, 181, 184, 0,
1028 181, 181, 0, 189, 0, 0, 189, 190, 165, 165,
1030 165, 165, 165, 172, 183, 172, 0, 190, 183, 186,
1031 190, 185, 0, 186, 183, 188, 172, 183, 185, 186,
1032 172, 185, 186, 187, 185, 188, 0, 187, 188, 192,
1033 191, 188, 191, 187, 193, 194, 187, 0, 0, 192,
1034 191, 0, 192, 191, 193, 194, 195, 193, 194, 0,
1035 195, 196, 194, 198, 0, 196, 195, 197, 199, 195,
1036 0, 196, 200, 198, 196, 197, 198, 197, 199, 201,
1037 197, 199, 200, 202, 203, 200, 0, 200, 201, 201,
1038 204, 0, 201, 202, 203, 205, 202, 203, 0, 206,
1039 204, 203, 202, 204, 207, 205, 208, 0, 205, 206,
1041 208, 0, 206, 205, 207, 209, 208, 207, 0, 208,
1042 210, 207, 0, 0, 0, 209, 212, 211, 209, 0,
1043 210, 211, 209, 210, 213, 0, 212, 211, 213, 212,
1044 211, 214, 215, 216, 213, 214, 0, 213, 218, 0,
1045 0, 214, 215, 216, 214, 215, 216, 217, 218, 219,
1046 217, 218, 0, 221, 0, 0, 219, 217, 0, 219,
1047 217, 0, 219, 221, 0, 0, 221, 222, 222, 222,
1048 224, 224, 224, 0, 0, 229, 229, 229, 229, 0,
1049 230, 230, 230, 230, 236, 236, 236, 222, 229, 0,
1050 224, 0, 229, 230, 237, 237, 237, 230, 0, 231,
1052 231, 231, 231, 0, 236, 257, 229, 233, 233, 233,
1053 233, 230, 231, 256, 237, 257, 231, 0, 257, 0,
1054 233, 0, 256, 256, 233, 0, 256, 259, 0, 0,
1055 231, 241, 241, 241, 241, 0, 0, 259, 233, 235,
1056 259, 0, 265, 259, 241, 0, 0, 235, 235, 235,
1057 235, 235, 265, 235, 0, 265, 235, 235, 235, 235,
1058 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1059 235, 235, 235, 235, 235, 235, 235, 235, 235, 238,
1060 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1061 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1063 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1064 0, 238, 0, 238, 238, 238, 238, 238, 238, 238,
1065 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1066 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1067 238, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1068 239, 239, 239, 239, 239, 239, 239, 239, 239, 0,
1069 0, 0, 239, 239, 239, 239, 242, 242, 242, 242,
1070 0, 239, 0, 239, 244, 244, 244, 244, 0, 242,
1071 260, 0, 258, 242, 0, 0, 0, 244, 0, 258,
1072 260, 244, 258, 260, 0, 258, 261, 260, 239, 239,
1074 239, 239, 239, 262, 261, 263, 261, 266, 0, 261,
1075 0, 0, 0, 262, 264, 263, 262, 266, 263, 267,
1076 266, 262, 263, 0, 264, 264, 268, 264, 269, 267,
1077 268, 267, 267, 270, 0, 0, 268, 0, 269, 268,
1078 0, 269, 0, 270, 271, 272, 270, 0, 271, 273,
1079 270, 274, 0, 0, 271, 272, 0, 271, 272, 273,
1080 272, 274, 273, 275, 274, 276, 274, 277, 444, 444,
1081 444, 444, 278, 275, 0, 276, 275, 277, 276, 275,
1082 277, 279, 278, 280, 276, 278, 0, 278, 281, 282,
1083 283, 279, 281, 280, 279, 0, 280, 282, 281, 282,
1085 283, 281, 282, 283, 284, 283, 285, 296, 296, 296,
1086 0, 0, 284, 286, 284, 286, 285, 284, 287, 285,
1087 288, 285, 289, 286, 290, 0, 286, 296, 287, 290,
1088 288, 287, 289, 288, 290, 289, 291, 290, 287, 0,
1089 292, 293, 294, 0, 292, 0, 291, 0, 0, 291,
1090 292, 293, 294, 292, 293, 294, 297, 297, 297, 321,
1091 294, 322, 445, 445, 445, 445, 0, 0, 0, 321,
1092 0, 322, 321, 0, 322, 0, 297, 298, 298, 298,
1093 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1094 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1096 298, 298, 298, 298, 298, 298, 298, 298, 0, 298,
1097 0, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1098 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1099 298, 298, 298, 298, 298, 298, 298, 298, 298, 299,
1100 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
1101 299, 299, 299, 299, 299, 299, 299, 0, 0, 0,
1102 299, 299, 299, 299, 303, 303, 303, 303, 0, 299,
1103 323, 299, 313, 313, 313, 313, 0, 303, 324, 0,
1104 323, 303, 0, 323, 0, 313, 0, 0, 324, 313,
1105 0, 324, 0, 0, 0, 303, 299, 299, 299, 299,
1107 299, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1108 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1109 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1110 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1111 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1112 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1113 302, 302, 302, 304, 304, 304, 304, 0, 306, 306,
1114 306, 306, 0, 0, 325, 0, 304, 0, 326, 327,
1115 304, 306, 0, 327, 325, 306, 325, 325, 326, 327,
1116 0, 326, 327, 0, 304, 446, 446, 446, 446, 306,
1118 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1119 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1120 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1121 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1122 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1123 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1124 307, 307, 328, 329, 330, 0, 329, 0, 331, 0,
1125 328, 0, 328, 329, 330, 328, 329, 330, 331, 332,
1126 333, 331, 0, 0, 334, 0, 335, 332, 0, 332,
1127 333, 333, 332, 333, 334, 336, 335, 334, 335, 335,
1129 336, 334, 337, 0, 0, 336, 0, 336, 336, 338,
1130 339, 340, 337, 338, 0, 337, 337, 340, 339, 338,
1131 339, 340, 338, 339, 340, 341, 342, 343, 342, 343,
1132 0, 344, 0, 0, 0, 341, 342, 343, 341, 342,
1133 343, 344, 341, 344, 344, 345, 346, 345, 0, 0,
1134 347, 348, 0, 0, 0, 345, 346, 347, 345, 346,
1135 347, 348, 349, 347, 348, 0, 350, 349, 351, 0,
1136 352, 0, 349, 352, 350, 349, 350, 0, 351, 350,
1137 352, 351, 0, 352, 357, 357, 357, 357, 0, 358,
1138 358, 358, 358, 0, 367, 0, 0, 357, 0, 0,
1140 0, 357, 358, 0, 367, 0, 358, 367, 360, 360,
1141 360, 360, 367, 368, 369, 357, 0, 0, 0, 371,
1142 358, 360, 0, 368, 369, 360, 368, 369, 0, 371,
1143 368, 370, 371, 370, 0, 371, 372, 373, 374, 360,
1144 0, 370, 374, 375, 370, 0, 372, 373, 374, 372,
1145 373, 374, 376, 375, 376, 0, 375, 377, 372, 378,
1146 0, 379, 376, 380, 0, 376, 0, 377, 0, 378,
1147 377, 379, 378, 380, 379, 381, 380, 382, 381, 383,
1148 0, 382, 0, 383, 384, 381, 385, 382, 381, 383,
1149 382, 0, 383, 386, 384, 387, 385, 384, 0, 385,
1151 388, 384, 389, 386, 390, 387, 386, 0, 387, 0,
1152 388, 397, 389, 388, 390, 389, 390, 390, 391, 396,
1153 398, 397, 391, 396, 397, 399, 400, 0, 391, 396,
1154 398, 391, 396, 398, 401, 399, 400, 0, 399, 400,
1155 402, 403, 0, 0, 401, 403, 401, 401, 405, 0,
1156 402, 403, 402, 402, 403, 404, 0, 404, 405, 407,
1157 406, 405, 406, 407, 408, 404, 409, 0, 404, 407,
1158 406, 410, 407, 406, 408, 410, 409, 408, 411, 409,
1159 0, 410, 411, 0, 410, 0, 417, 418, 411, 0,
1160 0, 411, 412, 412, 412, 412, 417, 418, 419, 417,
1162 418, 0, 0, 420, 447, 447, 447, 447, 419, 422,
1163 421, 419, 0, 420, 421, 419, 420, 423, 424, 422,
1164 421, 423, 422, 421, 0, 412, 425, 423, 424, 425,
1165 423, 424, 0, 0, 426, 412, 425, 426, 412, 425,
1166 427, 427, 427, 427, 426, 427, 430, 426, 431, 0,
1167 427, 0, 0, 431, 432, 433, 430, 0, 431, 430,
1168 427, 431, 430, 434, 432, 433, 0, 432, 433, 435,
1169 0, 0, 0, 434, 0, 0, 434, 0, 0, 435,
1170 0, 0, 435, 438, 438, 438, 438, 438, 439, 439,
1171 439, 439, 442, 443, 438, 449, 449, 449, 449, 0,
1173 0, 0, 442, 443, 0, 442, 443, 0, 452, 452,
1174 452, 452, 0, 0, 438, 0, 0, 0, 452, 453,
1175 453, 453, 453, 453, 439, 0, 439, 0, 0, 0,
1176 453, 454, 454, 454, 454, 454, 0, 439, 452, 0,
1177 0, 439, 454, 455, 455, 455, 455, 0, 0, 0,
1178 453, 456, 456, 456, 456, 456, 457, 457, 457, 457,
1179 0, 0, 454, 458, 458, 458, 458, 0, 459, 459,
1180 459, 459, 460, 460, 460, 460, 461, 461, 461, 461,
1181 462, 462, 462, 462, 463, 463, 463, 463, 465, 465,
1182 465, 465, 457, 0, 457, 466, 466, 466, 466, 458,
1184 0, 458, 0, 0, 459, 457, 459, 0, 0, 457,
1185 0, 0, 458, 0, 0, 0, 458, 459, 460, 0,
1186 0, 459, 461, 0, 463, 468, 468, 468, 468, 469,
1187 469, 469, 469, 462, 470, 470, 470, 470, 471, 471,
1188 471, 471, 478, 478, 478, 478, 0, 0, 471, 473,
1189 473, 473, 473, 474, 474, 474, 474, 475, 475, 475,
1190 475, 479, 479, 479, 479, 0, 0, 0, 471, 472,
1191 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
1192 472, 472, 472, 472, 472, 472, 472, 0, 0, 0,
1193 472, 472, 472, 472, 474, 0, 0, 473, 475, 472,
1195 0, 472, 480, 480, 480, 480, 481, 481, 481, 481,
1196 483, 483, 483, 483, 484, 484, 484, 484, 487, 487,
1197 487, 487, 488, 488, 488, 488, 472, 472, 472, 472,
1198 472, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1199 482, 482, 482, 482, 482, 482, 482, 482, 482, 0,
1200 0, 0, 482, 482, 482, 482, 0, 484, 0, 0,
1201 483, 482, 0, 482, 489, 489, 489, 489, 490, 490,
1202 490, 490, 491, 491, 491, 491, 492, 492, 492, 492,
1203 493, 493, 493, 493, 496, 496, 496, 496, 482, 482,
1204 482, 482, 482, 497, 497, 497, 497, 498, 498, 498,
1206 498, 499, 499, 499, 499, 0, 0, 491, 500, 500,
1207 500, 500, 0, 492, 501, 501, 501, 501, 0, 0,
1208 493, 494, 494, 494, 494, 494, 494, 494, 494, 494,
1209 494, 494, 494, 494, 494, 494, 494, 494, 494, 0,
1210 0, 0, 494, 494, 494, 494, 502, 502, 502, 502,
1211 0, 494, 0, 494, 503, 503, 503, 503, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 494, 494,
1214 494, 494, 494, 495, 495, 495, 495, 495, 495, 495,
1215 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
1217 495, 0, 0, 0, 495, 495, 495, 495, 0, 0,
1218 0, 0, 0, 495, 0, 495, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 495, 495, 495, 495, 495, 505, 505, 0, 505, 505,
1222 505, 505, 505, 505, 505, 506, 506, 0, 506, 506,
1223 506, 506, 506, 506, 506, 507, 507, 507, 507, 507,
1224 507, 0, 0, 507, 507, 508, 508, 0, 0, 508,
1225 508, 508, 508, 508, 509, 509, 0, 509, 509, 509,
1226 509, 509, 509, 509, 510, 510, 510, 510, 510, 510,
1228 0, 0, 510, 510, 511, 511, 511, 511, 511, 511,
1229 0, 0, 511, 512, 512, 512, 512, 512, 512, 512,
1230 512, 512, 512, 513, 513, 513, 513, 513, 513, 513,
1231 513, 513, 513, 514, 514, 514, 0, 514, 514, 515,
1232 515, 515, 515, 515, 515, 0, 0, 515, 515, 516,
1233 516, 516, 516, 516, 516, 0, 0, 516, 517, 517,
1234 517, 517, 517, 517, 517, 517, 517, 517, 518, 518,
1235 518, 0, 518, 518, 519, 519, 519, 519, 519, 519,
1236 519, 519, 519, 519, 520, 520, 520, 520, 520, 520,
1237 0, 0, 520, 521, 521, 521, 0, 521, 521, 522,
1239 0, 522, 522, 523, 523, 523, 523, 523, 523, 523,
1240 523, 523, 523, 524, 524, 524, 524, 524, 524, 524,
1241 524, 524, 524, 525, 525, 525, 525, 525, 526, 526,
1242 526, 526, 526, 526, 526, 526, 526, 526, 527, 527,
1243 527, 527, 527, 528, 528, 528, 528, 528, 529, 529,
1244 529, 529, 529, 530, 530, 530, 530, 530, 530, 530,
1245 530, 530, 530, 531, 531, 531, 531, 531, 531, 531,
1246 531, 531, 531, 532, 532, 532, 532, 532, 532, 532,
1247 532, 532, 533, 533, 0, 533, 533, 533, 533, 533,
1248 533, 533, 534, 534, 534, 534, 534, 534, 534, 534,
1250 534, 534, 535, 535, 0, 535, 535, 535, 535, 535,
1251 535, 535, 504, 504, 504, 504, 504, 504, 504, 504,
1252 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1253 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1254 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1255 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1256 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1257 504, 504, 504, 504, 504
1260 static yy_state_type yy_last_accepting_state;
1261 static char *yy_last_accepting_cpos;
1263 extern int as3__flex_debug;
1264 int as3__flex_debug = 0;
1266 /* The intent behind this definition is that it'll catch
1267 * any uses of REJECT which flex missed.
1269 #define REJECT reject_used_but_not_detected
1270 #define yymore() yymore_used_but_not_detected
1271 #define YY_MORE_ADJ 0
1272 #define YY_RESTORE_YY_MORE_OFFSET
1274 #line 1 "tokenizer.lex"
1277 Routines for compiling Flash2 AVM2 ABC Actionscript
1279 Extension module for the rfxswf library.
1280 Part of the swftools package.
1282 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1284 This program is free software; you can redistribute it and/or modify
1285 it under the terms of the GNU General Public License as published by
1286 the Free Software Foundation; either version 2 of the License, or
1287 (at your option) any later version.
1289 This program is distributed in the hope that it will be useful,
1290 but WITHOUT ANY WARRANTY; without even the implied warranty of
1291 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1292 GNU General Public License for more details.
1294 You should have received a copy of the GNU General Public License
1295 along with this program; if not, write to the Free Software
1296 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1297 #line 24 "tokenizer.lex"
1304 #include "../utf8.h"
1305 #include "tokenizer.h"
1309 int as3_verbosity = 1;
1310 unsigned int as3_tokencount = 0;
1312 void as3_error(const char*format, ...)
1319 va_start(arglist, format);
1320 vsprintf(buf, format, arglist);
1322 fprintf(stderr, "%s:%d:%d: error: %s\n", current_filename_short, current_line, current_column, buf);
1326 void as3_warning(const char*format, ...)
1333 va_start(arglist, format);
1334 vsprintf(buf, format, arglist);
1336 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1339 void as3_softwarning(const char*format, ...)
1346 va_start(arglist, format);
1347 vsprintf(buf, format, arglist);
1349 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1352 static void dbg(const char*format, ...)
1359 va_start(arglist, format);
1360 vsprintf(buf, format, arglist);
1363 while(l && buf[l-1]=='\n') {
1367 printf("(tokenizer) ");
1368 printf("%s\n", buf);
1372 #ifndef YY_CURRENT_BUFFER
1373 #define YY_CURRENT_BUFFER yy_current_buffer
1376 static void*as3_buffer=0;
1377 static int as3_buffer_pos=0;
1378 static int as3_buffer_len=0;
1379 void as3_file_input(FILE*fi)
1384 void as3_buffer_input(void*buffer, int len)
1387 syntaxerror("trying to parse zero bytearray");
1388 as3_buffer = buffer;
1389 as3_buffer_len = len;
1394 #define YY_INPUT(buf,result,max_size) { \
1397 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1398 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1399 errno=0; clearerr(as3_in); \
1402 int to_read = max_size; \
1403 if(to_read + as3_buffer_pos > as3_buffer_len) \
1404 to_read = as3_buffer_len - as3_buffer_pos; \
1405 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1406 as3_buffer_pos += to_read; \
1411 void handleInclude(char*text, int len, char quotes)
1415 char*p1 = strchr(text, '"');
1416 char*p2 = strrchr(text, '"');
1417 if(!p1 || !p2 || p1==p2) {
1418 syntaxerror("Invalid include in line %d\n", current_line);
1421 filename = strdup(p1+1);
1425 while(!strchr(" \n\r\t", text[i1])) i1++;
1427 while(strchr(" \n\r\t", text[i1])) i1++;
1428 while(strchr(" \n\r\t", text[i2-1])) i2--;
1429 if(i2!=len) text[i2]=0;
1430 filename = strdup(&text[i1]);
1433 char*fullfilename = find_file(filename);
1434 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1435 as3_in = fopen(fullfilename, "rb");
1437 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1440 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1441 //BEGIN(INITIAL); keep context
1444 static int do_unescape(const char*s, const char*end, char*n)
1450 if(o) o[len] = *s;len++;
1454 s++; //skip past '\'
1455 if(s==end) syntaxerror("invalid \\ at end of string");
1457 /* handle the various line endings (mac, dos, unix) */
1470 case '\\': if(o) o[len] = '\\';s++;len++; break;
1471 case '"': if(o) o[len] = '"';s++;len++; break;
1472 case '\'': if(o) o[len] = '\'';s++;len++; break;
1473 case 'b': if(o) o[len] = '\b';s++;len++; break;
1474 case 'f': if(o) o[len] = '\f';s++;len++; break;
1475 case 'n': if(o) o[len] = '\n';s++;len++; break;
1476 case 'r': if(o) o[len] = '\r';s++;len++; break;
1477 case 't': if(o) o[len] = '\t';s++;len++; break;
1478 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1481 while(strchr("01234567", *s) && nr<3 && s<end) {
1488 syntaxerror("octal number out of range (0-255): %d", num);
1489 if(o) o[len] = num;len++;
1492 case 'x': case 'u': {
1501 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1504 if(s==end) syntaxerror("invalid \\u{ at end of string");
1509 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1511 if(*s>='0' && *s<='9') num |= *s - '0';
1512 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1513 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1518 if(*s=='}' && s<end) {
1521 syntaxerror("missing terminating '}'");
1525 char*utf8 = getUTF8(num);
1527 if(o) o[len] = *utf8;utf8++;len++;
1531 syntaxerror("byte out of range (0-255): %d", num);
1532 if(o) o[len] = num;len++;
1537 syntaxerror("unknown escape sequence: \"\\%c\"", *s);
1544 static string_t string_unescape(const char*in, int l)
1547 const char*end = &in[l];
1549 int len = do_unescape(s, end, 0);
1550 char*n = (char*)malloc(len+1);
1551 do_unescape(s, end, n);
1552 string_t out = string_new(n, len);
1556 static void handleCData(char*s, int len)
1558 a3_lval.str.str = s+9; // <![CDATA[
1559 a3_lval.str.len = len-9-3;// ]]>
1560 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1563 static void handleString(char*s, int len)
1566 // don't bother decoding strings in pass 1
1567 memset(&a3_lval, 0, sizeof(a3_lval));
1572 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1575 else if(s[0]=='\'') {
1576 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1579 else syntaxerror("String incorrectly terminated");
1582 a3_lval.str = string_unescape(s, len);
1586 char start_of_expression;
1588 static inline int m(int type)
1590 a3_lval.token = type;
1595 static char numberbuf[64];
1598 if(as3_leng>sizeof(numberbuf)-1)
1599 syntaxerror("decimal number overflow");
1601 memcpy(s, as3_text, as3_leng);
1606 static inline int setint(int v)
1608 a3_lval.number_int = v;
1616 static inline int setuint(unsigned int v)
1618 a3_lval.number_uint = v;
1626 static inline int setfloat(double v)
1628 a3_lval.number_float = v;
1632 static inline int handlefloat()
1635 a3_lval.number_float = atof(s);
1639 static inline int handleint()
1642 char l = (as3_text[0]=='-');
1644 char*max = l?"1073741824":"2147483647";
1646 as3_warning("integer overflow: %s (converted to Number)", s);
1647 return handlefloat();
1649 if(as3_leng-l==10) {
1651 for(t=0;t<as3_leng-l;t++) {
1652 if(as3_text[l+t]>max[t]) {
1653 as3_warning("integer overflow: %s (converted to Number)", s);
1654 return handlefloat();
1656 else if(as3_text[l+t]<max[t])
1660 if(as3_text[0]=='-') {
1666 for(t=0;t<as3_leng;t++) {
1674 static inline int handlehexfloat()
1676 char l = (as3_text[0]=='-')+2;
1681 for(t=l;t<as3_leng;t++) {
1682 char c = as3_text[t];
1692 if(c>='0' && c<='9')
1694 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1695 d+=((c&0x0f)+9)*base;
1699 static inline int handlehex()
1701 char l = (as3_text[0]=='-')+2;
1706 syntaxerror("integer overflow %s", s);
1711 for(t=l;t<len;t++) {
1713 char c = as3_text[t];
1714 if(c>='0' && c<='9')
1716 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1719 if(l && v>1073741824) {
1721 as3_warning("signed integer overflow: %s (converted to Number)", s);
1724 if(!l && v>2147483647) {
1726 as3_warning("unsigned integer overflow: %s (converted to Number)", s);
1731 return setint(-(int)v);
1737 void handleLabel(char*text, int len)
1740 for(t=len-1;t>=0;--t) {
1745 char*s = malloc(t+1);
1746 memcpy(s, as3_text, t);
1751 static int handleregexp()
1753 char*s = malloc(as3_leng);
1755 memcpy(s, as3_text+1, len);
1758 for(t=len;t>=0;--t) {
1764 a3_lval.regexp.pattern = s;
1766 a3_lval.regexp.options = 0;
1768 a3_lval.regexp.options = s+t+1;
1773 void initialize_scanner();
1774 #define YY_USER_INIT initialize_scanner();
1776 /* count the number of lines+columns consumed by this token */
1777 static inline void l() {
1779 for(t=0;t<as3_leng;t++) {
1780 if(as3_text[t]=='\n') {
1788 /* count the number of columns consumed by this token */
1789 static inline void c() {
1790 current_column+=as3_leng;
1793 static trie_t*namespaces = 0;
1794 void tokenizer_register_namespace(const char*id)
1796 trie_put(&namespaces, id);
1798 static inline tokenizer_is_namespace(const char*id)
1800 return trie_lookup(namespaces, id);
1803 static inline int handleIdentifier()
1805 char*s = malloc(as3_leng+1);
1806 memcpy(s, as3_text, as3_leng);
1809 if(tokenizer_is_namespace(s))
1812 return T_IDENTIFIER;
1816 //Boolean {c();return m(KW_BOOLEAN);}
1817 //int {c();return m(KW_INT);}
1818 //uint {c();return m(KW_UINT);}
1819 //Number {c();return m(KW_NUMBER);}
1823 #line 1824 "tokenizer.yy.c"
1829 #ifndef YY_NO_UNISTD_H
1830 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1831 * down here because we want the user's section 1 to have been scanned first.
1832 * The user has a chance to override it with an option.
1837 #ifndef YY_EXTRA_TYPE
1838 #define YY_EXTRA_TYPE void *
1841 static int yy_init_globals (void );
1843 /* Accessor methods to globals.
1844 These are made visible to non-reentrant scanners for convenience. */
1846 int as3_lex_destroy (void );
1848 int as3_get_debug (void );
1850 void as3_set_debug (int debug_flag );
1852 YY_EXTRA_TYPE as3_get_extra (void );
1854 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1856 FILE *as3_get_in (void );
1858 void as3_set_in (FILE * in_str );
1860 FILE *as3_get_out (void );
1862 void as3_set_out (FILE * out_str );
1864 int as3_get_leng (void );
1866 char *as3_get_text (void );
1868 int as3_get_lineno (void );
1870 void as3_set_lineno (int line_number );
1872 /* Macros after this point can all be overridden by user definitions in
1876 #ifndef YY_SKIP_YYWRAP
1878 extern "C" int as3_wrap (void );
1880 extern int as3_wrap (void );
1884 static void yyunput (int c,char *buf_ptr );
1887 static void yy_flex_strncpy (char *,yyconst char *,int );
1890 #ifdef YY_NEED_STRLEN
1891 static int yy_flex_strlen (yyconst char * );
1897 static int yyinput (void );
1899 static int input (void );
1904 /* Amount of stuff to slurp up with each read. */
1905 #ifndef YY_READ_BUF_SIZE
1906 #define YY_READ_BUF_SIZE 8192
1909 /* Copy whatever the last rule matched to the standard output. */
1911 /* This used to be an fputs(), but since the string might contain NUL's,
1912 * we now use fwrite().
1914 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1917 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1918 * is returned in "result".
1921 #define YY_INPUT(buf,result,max_size) \
1922 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1926 for ( n = 0; n < max_size && \
1927 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1928 buf[n] = (char) c; \
1930 buf[n++] = (char) c; \
1931 if ( c == EOF && ferror( as3_in ) ) \
1932 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1938 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1940 if( errno != EINTR) \
1942 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1953 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1954 * we don't want an extra ';' after the "return" because that will cause
1955 * some compilers to complain about unreachable statements.
1958 #define yyterminate() return YY_NULL
1961 /* Number of entries by which start-condition stack grows. */
1962 #ifndef YY_START_STACK_INCR
1963 #define YY_START_STACK_INCR 25
1966 /* Report a fatal error. */
1967 #ifndef YY_FATAL_ERROR
1968 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1971 /* end tables serialization structures and prototypes */
1973 /* Default declaration of generated scanner - a define so the user can
1974 * easily add parameters.
1977 #define YY_DECL_IS_OURS 1
1979 extern int as3_lex (void);
1981 #define YY_DECL int as3_lex (void)
1982 #endif /* !YY_DECL */
1984 /* Code executed at the beginning of each rule, after as3_text and as3_leng
1987 #ifndef YY_USER_ACTION
1988 #define YY_USER_ACTION
1991 /* Code executed at the end of each rule. */
1993 #define YY_BREAK break;
1996 #define YY_RULE_SETUP \
1997 if ( as3_leng > 0 ) \
1998 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1999 (as3_text[as3_leng - 1] == '\n'); \
2002 /** The main scanner function which does all the work.
2006 register yy_state_type yy_current_state;
2007 register char *yy_cp, *yy_bp;
2008 register int yy_act;
2010 #line 571 "tokenizer.lex"
2014 #line 2015 "tokenizer.yy.c"
2025 (yy_start) = 1; /* first start state */
2033 if ( ! YY_CURRENT_BUFFER ) {
2034 as3_ensure_buffer_stack ();
2035 YY_CURRENT_BUFFER_LVALUE =
2036 as3__create_buffer(as3_in,YY_BUF_SIZE );
2039 as3__load_buffer_state( );
2042 while ( 1 ) /* loops until end-of-file is reached */
2044 yy_cp = (yy_c_buf_p);
2046 /* Support of as3_text. */
2047 *yy_cp = (yy_hold_char);
2049 /* yy_bp points to the position in yy_ch_buf of the start of
2054 yy_current_state = (yy_start);
2055 yy_current_state += YY_AT_BOL();
2059 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2060 if ( yy_accept[yy_current_state] )
2062 (yy_last_accepting_state) = yy_current_state;
2063 (yy_last_accepting_cpos) = yy_cp;
2065 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2067 yy_current_state = (int) yy_def[yy_current_state];
2068 if ( yy_current_state >= 505 )
2069 yy_c = yy_meta[(unsigned int) yy_c];
2071 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2074 while ( yy_current_state != 504 );
2075 yy_cp = (yy_last_accepting_cpos);
2076 yy_current_state = (yy_last_accepting_state);
2079 yy_act = yy_accept[yy_current_state];
2081 YY_DO_BEFORE_ACTION;
2083 do_action: /* This label is used only to access EOF actions. */
2086 { /* beginning of action switch */
2087 case 0: /* must back up */
2088 /* undo the effects of YY_DO_BEFORE_ACTION */
2089 *yy_cp = (yy_hold_char);
2090 yy_cp = (yy_last_accepting_cpos);
2091 yy_current_state = (yy_last_accepting_state);
2092 goto yy_find_action;
2095 /* rule 1 can match eol */
2097 #line 574 "tokenizer.lex"
2098 {l(); /* single line comment */}
2101 /* rule 2 can match eol */
2103 #line 575 "tokenizer.lex"
2104 {l(); /* multi line comment */}
2108 #line 576 "tokenizer.lex"
2109 {syntaxerror("syntax error: unterminated comment", as3_text);}
2112 /* rule 4 can match eol */
2113 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2114 (yy_c_buf_p) = yy_cp -= 1;
2115 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2117 #line 578 "tokenizer.lex"
2118 {l();handleInclude(as3_text, as3_leng, 1);}
2121 /* rule 5 can match eol */
2122 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2123 (yy_c_buf_p) = yy_cp -= 1;
2124 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2126 #line 579 "tokenizer.lex"
2127 {l();handleInclude(as3_text, as3_leng, 0);}
2130 /* rule 6 can match eol */
2132 #line 580 "tokenizer.lex"
2133 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2136 /* rule 7 can match eol */
2138 #line 581 "tokenizer.lex"
2139 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2144 #line 584 "tokenizer.lex"
2145 {c(); BEGIN(INITIAL);return handleregexp();}
2148 /* rule 9 can match eol */
2149 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2150 (yy_c_buf_p) = yy_cp -= 1;
2151 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2153 #line 585 "tokenizer.lex"
2154 {c(); BEGIN(INITIAL);return handlehex();}
2157 /* rule 10 can match eol */
2158 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2159 (yy_c_buf_p) = yy_cp -= 1;
2160 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2162 #line 586 "tokenizer.lex"
2163 {c(); BEGIN(INITIAL);return handlehexfloat();}
2166 /* rule 11 can match eol */
2167 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2168 (yy_c_buf_p) = yy_cp -= 1;
2169 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2171 #line 587 "tokenizer.lex"
2172 {c(); BEGIN(INITIAL);return handleint();}
2175 /* rule 12 can match eol */
2176 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2177 (yy_c_buf_p) = yy_cp -= 1;
2178 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2180 #line 588 "tokenizer.lex"
2181 {c(); BEGIN(INITIAL);return handlefloat();}
2186 #line 591 "tokenizer.lex"
2190 /* rule 14 can match eol */
2192 #line 592 "tokenizer.lex"
2196 /* rule 15 can match eol */
2197 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2198 (yy_c_buf_p) = yy_cp -= 1;
2199 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2201 #line 594 "tokenizer.lex"
2202 {c(); BEGIN(INITIAL);return handlehex();}
2205 /* rule 16 can match eol */
2206 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2207 (yy_c_buf_p) = yy_cp -= 1;
2208 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2210 #line 595 "tokenizer.lex"
2211 {c(); BEGIN(INITIAL);return handlehexfloat();}
2214 /* rule 17 can match eol */
2215 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2216 (yy_c_buf_p) = yy_cp -= 1;
2217 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2219 #line 596 "tokenizer.lex"
2220 {c(); BEGIN(INITIAL);return handleint();}
2223 /* rule 18 can match eol */
2224 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2225 (yy_c_buf_p) = yy_cp -= 1;
2226 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2228 #line 597 "tokenizer.lex"
2229 {c(); BEGIN(INITIAL);return handlefloat();}
2233 #line 599 "tokenizer.lex"
2234 {/* for debugging: generates a tokenizer-level error */
2235 syntaxerror("3rr0r");}
2238 /* rule 20 can match eol */
2239 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2240 (yy_c_buf_p) = yy_cp -= 1;
2241 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2243 #line 602 "tokenizer.lex"
2244 {l();handleLabel(as3_text, as3_leng-3);return T_FOR;}
2247 /* rule 21 can match eol */
2248 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2249 (yy_c_buf_p) = yy_cp -= 1;
2250 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2252 #line 603 "tokenizer.lex"
2253 {l();handleLabel(as3_text, as3_leng-2);return T_DO;}
2256 /* rule 22 can match eol */
2257 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2258 (yy_c_buf_p) = yy_cp -= 1;
2259 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2261 #line 604 "tokenizer.lex"
2262 {l();handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2265 /* rule 23 can match eol */
2266 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2267 (yy_c_buf_p) = yy_cp -= 1;
2268 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2270 #line 605 "tokenizer.lex"
2271 {l();handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2275 #line 606 "tokenizer.lex"
2276 {c();a3_lval.id="";return T_FOR;}
2280 #line 607 "tokenizer.lex"
2281 {c();a3_lval.id="";return T_DO;}
2285 #line 608 "tokenizer.lex"
2286 {c();a3_lval.id="";return T_WHILE;}
2290 #line 609 "tokenizer.lex"
2291 {c();a3_lval.id="";return T_SWITCH;}
2295 #line 611 "tokenizer.lex"
2296 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2300 #line 612 "tokenizer.lex"
2301 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2305 #line 613 "tokenizer.lex"
2306 {c();BEGIN(REGEXPOK);return m(T_NE);}
2310 #line 614 "tokenizer.lex"
2311 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2315 #line 615 "tokenizer.lex"
2316 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2320 #line 616 "tokenizer.lex"
2321 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2325 #line 617 "tokenizer.lex"
2326 {c();return m(T_GE);}
2330 #line 618 "tokenizer.lex"
2331 {c();return m(T_LE);}
2335 #line 619 "tokenizer.lex"
2336 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2340 #line 620 "tokenizer.lex"
2341 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2345 #line 621 "tokenizer.lex"
2346 {c();return m(T_PLUSBY);}
2350 #line 622 "tokenizer.lex"
2351 {c();return m(T_MINUSBY);}
2355 #line 623 "tokenizer.lex"
2356 {c();return m(T_DIVBY);}
2360 #line 624 "tokenizer.lex"
2361 {c();return m(T_MODBY);}
2365 #line 625 "tokenizer.lex"
2366 {c();return m(T_MULBY);}
2370 #line 626 "tokenizer.lex"
2371 {c();return m(T_ORBY);}
2375 #line 627 "tokenizer.lex"
2376 {c();return m(T_SHRBY);}
2380 #line 628 "tokenizer.lex"
2381 {c();return m(T_SHLBY);}
2385 #line 629 "tokenizer.lex"
2386 {c();return m(T_USHRBY);}
2390 #line 630 "tokenizer.lex"
2391 {c();return m(T_SHL);}
2395 #line 631 "tokenizer.lex"
2396 {c();return m(T_USHR);}
2400 #line 632 "tokenizer.lex"
2401 {c();return m(T_SHR);}
2405 #line 633 "tokenizer.lex"
2406 {c();return m(T_DOTDOTDOT);}
2410 #line 634 "tokenizer.lex"
2411 {c();return m(T_DOTDOT);}
2415 #line 635 "tokenizer.lex"
2416 {c();return m('.');}
2420 #line 636 "tokenizer.lex"
2421 {c();return m(T_COLONCOLON);}
2425 #line 637 "tokenizer.lex"
2426 {c();return m(':');}
2430 #line 638 "tokenizer.lex"
2431 {c();return m(KW_INSTANCEOF);}
2435 #line 639 "tokenizer.lex"
2436 {c();return m(KW_IMPLEMENTS);}
2440 #line 640 "tokenizer.lex"
2441 {c();return m(KW_INTERFACE);}
2445 #line 641 "tokenizer.lex"
2446 {c();return m(KW_NAMESPACE);}
2450 #line 642 "tokenizer.lex"
2451 {c();return m(KW_PROTECTED);}
2455 #line 643 "tokenizer.lex"
2456 {c();return m(KW_UNDEFINED);}
2460 #line 644 "tokenizer.lex"
2461 {c();return m(KW_CONTINUE);}
2465 #line 645 "tokenizer.lex"
2466 {c();return m(KW_OVERRIDE);}
2470 #line 646 "tokenizer.lex"
2471 {c();return m(KW_INTERNAL);}
2475 #line 647 "tokenizer.lex"
2476 {c();return m(KW_FUNCTION);}
2480 #line 648 "tokenizer.lex"
2481 {c();return m(KW_FINALLY);}
2485 #line 649 "tokenizer.lex"
2486 {c();return m(KW_DEFAULT);}
2490 #line 650 "tokenizer.lex"
2491 {c();return m(KW_PACKAGE);}
2495 #line 651 "tokenizer.lex"
2496 {c();return m(KW_PRIVATE);}
2500 #line 652 "tokenizer.lex"
2501 {c();return m(KW_DYNAMIC);}
2505 #line 653 "tokenizer.lex"
2506 {c();return m(KW_EXTENDS);}
2510 #line 654 "tokenizer.lex"
2511 {c();return m(KW_DELETE);}
2515 #line 655 "tokenizer.lex"
2516 {c();return m(KW_RETURN);}
2520 #line 656 "tokenizer.lex"
2521 {c();return m(KW_PUBLIC);}
2525 #line 657 "tokenizer.lex"
2526 {c();return m(KW_NATIVE);}
2530 #line 658 "tokenizer.lex"
2531 {c();return m(KW_STATIC);}
2535 #line 659 "tokenizer.lex"
2536 {c();return m(KW_IMPORT);}
2540 #line 660 "tokenizer.lex"
2541 {c();return m(KW_TYPEOF);}
2545 #line 661 "tokenizer.lex"
2546 {c();return m(KW_THROW);}
2550 #line 662 "tokenizer.lex"
2551 {c();return m(KW_CLASS);}
2555 #line 663 "tokenizer.lex"
2556 {c();return m(KW_CONST);}
2560 #line 664 "tokenizer.lex"
2561 {c();return m(KW_CATCH);}
2565 #line 665 "tokenizer.lex"
2566 {c();return m(KW_FINAL);}
2570 #line 666 "tokenizer.lex"
2571 {c();return m(KW_FALSE);}
2575 #line 667 "tokenizer.lex"
2576 {c();return m(KW_BREAK);}
2580 #line 668 "tokenizer.lex"
2581 {c();return m(KW_SUPER);}
2585 #line 669 "tokenizer.lex"
2586 {c();return m(KW_EACH);}
2590 #line 670 "tokenizer.lex"
2591 {c();return m(KW_VOID);}
2595 #line 671 "tokenizer.lex"
2596 {c();return m(KW_TRUE);}
2600 #line 672 "tokenizer.lex"
2601 {c();return m(KW_NULL);}
2605 #line 673 "tokenizer.lex"
2606 {c();return m(KW_ELSE);}
2610 #line 674 "tokenizer.lex"
2611 {c();return m(KW_CASE);}
2615 #line 675 "tokenizer.lex"
2616 {c();return m(KW_WITH);}
2620 #line 676 "tokenizer.lex"
2621 {c();return m(KW_USE);}
2625 #line 677 "tokenizer.lex"
2626 {c();return m(KW_NEW);}
2630 #line 678 "tokenizer.lex"
2631 {c();return m(KW_GET);}
2635 #line 679 "tokenizer.lex"
2636 {c();return m(KW_SET);}
2640 #line 680 "tokenizer.lex"
2641 {c();return m(KW_VAR);}
2645 #line 681 "tokenizer.lex"
2646 {c();return m(KW_TRY);}
2650 #line 682 "tokenizer.lex"
2651 {c();return m(KW_IS) ;}
2655 #line 683 "tokenizer.lex"
2656 {c();return m(KW_IN) ;}
2660 #line 684 "tokenizer.lex"
2661 {c();return m(KW_IF) ;}
2665 #line 685 "tokenizer.lex"
2666 {c();return m(KW_AS);}
2670 #line 686 "tokenizer.lex"
2671 {c();BEGIN(INITIAL);return handleIdentifier();}
2675 #line 688 "tokenizer.lex"
2676 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2680 #line 689 "tokenizer.lex"
2681 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2685 #line 690 "tokenizer.lex"
2686 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2690 #line 692 "tokenizer.lex"
2692 char c1=as3_text[0];
2694 buf[0] = as3_text[0];
2696 for(t=1;t<128;t++) {
2697 char c = buf[t]=input();
2698 if(c=='\n' || c==EOF) {
2703 if(c1>='0' && c1<='9')
2704 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2706 syntaxerror("syntax error: %s", buf);
2712 case YY_STATE_EOF(INITIAL):
2713 case YY_STATE_EOF(REGEXPOK):
2714 case YY_STATE_EOF(BEGINNING):
2715 #line 712 "tokenizer.lex"
2717 void*b = leave_file();
2720 as3__delete_buffer(YY_CURRENT_BUFFER);
2723 as3__delete_buffer(YY_CURRENT_BUFFER);
2724 as3__switch_to_buffer(b);
2730 #line 724 "tokenizer.lex"
2733 #line 2734 "tokenizer.yy.c"
2735 case YY_END_OF_BUFFER:
2737 /* Amount of text matched not including the EOB char. */
2738 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2740 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2741 *yy_cp = (yy_hold_char);
2742 YY_RESTORE_YY_MORE_OFFSET
2744 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2746 /* We're scanning a new file or input source. It's
2747 * possible that this happened because the user
2748 * just pointed as3_in at a new source and called
2749 * as3_lex(). If so, then we have to assure
2750 * consistency between YY_CURRENT_BUFFER and our
2751 * globals. Here is the right place to do so, because
2752 * this is the first action (other than possibly a
2753 * back-up) that will match for the new input source.
2755 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2756 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2757 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2760 /* Note that here we test for yy_c_buf_p "<=" to the position
2761 * of the first EOB in the buffer, since yy_c_buf_p will
2762 * already have been incremented past the NUL character
2763 * (since all states make transitions on EOB to the
2764 * end-of-buffer state). Contrast this with the test
2767 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2768 { /* This was really a NUL. */
2769 yy_state_type yy_next_state;
2771 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2773 yy_current_state = yy_get_previous_state( );
2775 /* Okay, we're now positioned to make the NUL
2776 * transition. We couldn't have
2777 * yy_get_previous_state() go ahead and do it
2778 * for us because it doesn't know how to deal
2779 * with the possibility of jamming (and we don't
2780 * want to build jamming into it because then it
2781 * will run more slowly).
2784 yy_next_state = yy_try_NUL_trans( yy_current_state );
2786 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2788 if ( yy_next_state )
2790 /* Consume the NUL. */
2791 yy_cp = ++(yy_c_buf_p);
2792 yy_current_state = yy_next_state;
2798 yy_cp = (yy_last_accepting_cpos);
2799 yy_current_state = (yy_last_accepting_state);
2800 goto yy_find_action;
2804 else switch ( yy_get_next_buffer( ) )
2806 case EOB_ACT_END_OF_FILE:
2808 (yy_did_buffer_switch_on_eof) = 0;
2812 /* Note: because we've taken care in
2813 * yy_get_next_buffer() to have set up
2814 * as3_text, we can now set up
2815 * yy_c_buf_p so that if some total
2816 * hoser (like flex itself) wants to
2817 * call the scanner after we return the
2818 * YY_NULL, it'll still work - another
2819 * YY_NULL will get returned.
2821 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2823 yy_act = YY_STATE_EOF(YY_START);
2829 if ( ! (yy_did_buffer_switch_on_eof) )
2835 case EOB_ACT_CONTINUE_SCAN:
2837 (yytext_ptr) + yy_amount_of_matched_text;
2839 yy_current_state = yy_get_previous_state( );
2841 yy_cp = (yy_c_buf_p);
2842 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2845 case EOB_ACT_LAST_MATCH:
2847 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2849 yy_current_state = yy_get_previous_state( );
2851 yy_cp = (yy_c_buf_p);
2852 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2853 goto yy_find_action;
2860 "fatal flex scanner internal error--no action found" );
2861 } /* end of action switch */
2862 } /* end of scanning one token */
2863 } /* end of as3_lex */
2865 /* yy_get_next_buffer - try to read in a new buffer
2867 * Returns a code representing an action:
2868 * EOB_ACT_LAST_MATCH -
2869 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2870 * EOB_ACT_END_OF_FILE - end of file
2872 static int yy_get_next_buffer (void)
2874 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2875 register char *source = (yytext_ptr);
2876 register int number_to_move, i;
2879 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2881 "fatal flex scanner internal error--end of buffer missed" );
2883 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2884 { /* Don't try to fill the buffer, so this is an EOF. */
2885 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2887 /* We matched a single character, the EOB, so
2888 * treat this as a final EOF.
2890 return EOB_ACT_END_OF_FILE;
2895 /* We matched some text prior to the EOB, first
2898 return EOB_ACT_LAST_MATCH;
2902 /* Try to read more data. */
2904 /* First move last chars to start of buffer. */
2905 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2907 for ( i = 0; i < number_to_move; ++i )
2908 *(dest++) = *(source++);
2910 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2911 /* don't do the read, it's not guaranteed to return an EOF,
2914 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2919 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2921 while ( num_to_read <= 0 )
2922 { /* Not enough room in the buffer - grow it. */
2924 /* just a shorter name for the current buffer */
2925 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2927 int yy_c_buf_p_offset =
2928 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2930 if ( b->yy_is_our_buffer )
2932 int new_size = b->yy_buf_size * 2;
2934 if ( new_size <= 0 )
2935 b->yy_buf_size += b->yy_buf_size / 8;
2937 b->yy_buf_size *= 2;
2939 b->yy_ch_buf = (char *)
2940 /* Include room in for 2 EOB chars. */
2941 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2944 /* Can't grow it, we don't own it. */
2947 if ( ! b->yy_ch_buf )
2949 "fatal error - scanner input buffer overflow" );
2951 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2953 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2958 if ( num_to_read > YY_READ_BUF_SIZE )
2959 num_to_read = YY_READ_BUF_SIZE;
2961 /* Read in more data. */
2962 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2963 (yy_n_chars), (size_t) num_to_read );
2965 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2968 if ( (yy_n_chars) == 0 )
2970 if ( number_to_move == YY_MORE_ADJ )
2972 ret_val = EOB_ACT_END_OF_FILE;
2973 as3_restart(as3_in );
2978 ret_val = EOB_ACT_LAST_MATCH;
2979 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2980 YY_BUFFER_EOF_PENDING;
2985 ret_val = EOB_ACT_CONTINUE_SCAN;
2987 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2988 /* Extend the array by 50%, plus the number we really need. */
2989 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2990 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2991 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2992 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2995 (yy_n_chars) += number_to_move;
2996 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2997 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2999 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3004 /* yy_get_previous_state - get the state just before the EOB char was reached */
3006 static yy_state_type yy_get_previous_state (void)
3008 register yy_state_type yy_current_state;
3009 register char *yy_cp;
3011 yy_current_state = (yy_start);
3012 yy_current_state += YY_AT_BOL();
3014 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3016 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3017 if ( yy_accept[yy_current_state] )
3019 (yy_last_accepting_state) = yy_current_state;
3020 (yy_last_accepting_cpos) = yy_cp;
3022 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3024 yy_current_state = (int) yy_def[yy_current_state];
3025 if ( yy_current_state >= 505 )
3026 yy_c = yy_meta[(unsigned int) yy_c];
3028 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3031 return yy_current_state;
3034 /* yy_try_NUL_trans - try to make a transition on the NUL character
3037 * next_state = yy_try_NUL_trans( current_state );
3039 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3041 register int yy_is_jam;
3042 register char *yy_cp = (yy_c_buf_p);
3044 register YY_CHAR yy_c = 1;
3045 if ( yy_accept[yy_current_state] )
3047 (yy_last_accepting_state) = yy_current_state;
3048 (yy_last_accepting_cpos) = yy_cp;
3050 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3052 yy_current_state = (int) yy_def[yy_current_state];
3053 if ( yy_current_state >= 505 )
3054 yy_c = yy_meta[(unsigned int) yy_c];
3056 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3057 yy_is_jam = (yy_current_state == 504);
3059 return yy_is_jam ? 0 : yy_current_state;
3062 static void yyunput (int c, register char * yy_bp )
3064 register char *yy_cp;
3066 yy_cp = (yy_c_buf_p);
3068 /* undo effects of setting up as3_text */
3069 *yy_cp = (yy_hold_char);
3071 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3072 { /* need to shift things up to make room */
3073 /* +2 for EOB chars. */
3074 register int number_to_move = (yy_n_chars) + 2;
3075 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3076 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3077 register char *source =
3078 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3080 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3081 *--dest = *--source;
3083 yy_cp += (int) (dest - source);
3084 yy_bp += (int) (dest - source);
3085 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3086 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3088 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3089 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3092 *--yy_cp = (char) c;
3094 (yytext_ptr) = yy_bp;
3095 (yy_hold_char) = *yy_cp;
3096 (yy_c_buf_p) = yy_cp;
3101 static int yyinput (void)
3103 static int input (void)
3109 *(yy_c_buf_p) = (yy_hold_char);
3111 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3113 /* yy_c_buf_p now points to the character we want to return.
3114 * If this occurs *before* the EOB characters, then it's a
3115 * valid NUL; if not, then we've hit the end of the buffer.
3117 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3118 /* This was really a NUL. */
3119 *(yy_c_buf_p) = '\0';
3122 { /* need more input */
3123 int offset = (yy_c_buf_p) - (yytext_ptr);
3126 switch ( yy_get_next_buffer( ) )
3128 case EOB_ACT_LAST_MATCH:
3129 /* This happens because yy_g_n_b()
3130 * sees that we've accumulated a
3131 * token and flags that we need to
3132 * try matching the token before
3133 * proceeding. But for input(),
3134 * there's no matching to consider.
3135 * So convert the EOB_ACT_LAST_MATCH
3136 * to EOB_ACT_END_OF_FILE.
3139 /* Reset buffer status. */
3140 as3_restart(as3_in );
3144 case EOB_ACT_END_OF_FILE:
3149 if ( ! (yy_did_buffer_switch_on_eof) )
3158 case EOB_ACT_CONTINUE_SCAN:
3159 (yy_c_buf_p) = (yytext_ptr) + offset;
3165 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3166 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3167 (yy_hold_char) = *++(yy_c_buf_p);
3169 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3173 #endif /* ifndef YY_NO_INPUT */
3175 /** Immediately switch to a different input stream.
3176 * @param input_file A readable stream.
3178 * @note This function does not reset the start condition to @c INITIAL .
3180 void as3_restart (FILE * input_file )
3183 if ( ! YY_CURRENT_BUFFER ){
3184 as3_ensure_buffer_stack ();
3185 YY_CURRENT_BUFFER_LVALUE =
3186 as3__create_buffer(as3_in,YY_BUF_SIZE );
3189 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3190 as3__load_buffer_state( );
3193 /** Switch to a different input buffer.
3194 * @param new_buffer The new input buffer.
3197 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3200 /* TODO. We should be able to replace this entire function body
3202 * as3_pop_buffer_state();
3203 * as3_push_buffer_state(new_buffer);
3205 as3_ensure_buffer_stack ();
3206 if ( YY_CURRENT_BUFFER == new_buffer )
3209 if ( YY_CURRENT_BUFFER )
3211 /* Flush out information for old buffer. */
3212 *(yy_c_buf_p) = (yy_hold_char);
3213 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3214 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3217 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3218 as3__load_buffer_state( );
3220 /* We don't actually know whether we did this switch during
3221 * EOF (as3_wrap()) processing, but the only time this flag
3222 * is looked at is after as3_wrap() is called, so it's safe
3223 * to go ahead and always set it.
3225 (yy_did_buffer_switch_on_eof) = 1;
3228 static void as3__load_buffer_state (void)
3230 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3231 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3232 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3233 (yy_hold_char) = *(yy_c_buf_p);
3236 /** Allocate and initialize an input buffer state.
3237 * @param file A readable stream.
3238 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3240 * @return the allocated buffer state.
3242 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3246 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3248 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3250 b->yy_buf_size = size;
3252 /* yy_ch_buf has to be 2 characters longer than the size given because
3253 * we need to put in 2 end-of-buffer characters.
3255 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3256 if ( ! b->yy_ch_buf )
3257 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3259 b->yy_is_our_buffer = 1;
3261 as3__init_buffer(b,file );
3266 /** Destroy the buffer.
3267 * @param b a buffer created with as3__create_buffer()
3270 void as3__delete_buffer (YY_BUFFER_STATE b )
3276 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3277 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3279 if ( b->yy_is_our_buffer )
3280 as3_free((void *) b->yy_ch_buf );
3282 as3_free((void *) b );
3285 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3289 #ifdef __THROW /* this is a gnuism */
3290 extern int isatty (int ) __THROW;
3292 extern int isatty (int );
3299 /* Initializes or reinitializes a buffer.
3300 * This function is sometimes called more than once on the same buffer,
3301 * such as during a as3_restart() or at EOF.
3303 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3308 as3__flush_buffer(b );
3310 b->yy_input_file = file;
3311 b->yy_fill_buffer = 1;
3313 /* If b is the current buffer, then as3__init_buffer was _probably_
3314 * called from as3_restart() or through yy_get_next_buffer.
3315 * In that case, we don't want to reset the lineno or column.
3317 if (b != YY_CURRENT_BUFFER){
3318 b->yy_bs_lineno = 1;
3319 b->yy_bs_column = 0;
3322 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3327 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3328 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3331 void as3__flush_buffer (YY_BUFFER_STATE b )
3338 /* We always need two end-of-buffer characters. The first causes
3339 * a transition to the end-of-buffer state. The second causes
3340 * a jam in that state.
3342 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3343 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3345 b->yy_buf_pos = &b->yy_ch_buf[0];
3348 b->yy_buffer_status = YY_BUFFER_NEW;
3350 if ( b == YY_CURRENT_BUFFER )
3351 as3__load_buffer_state( );
3354 /** Pushes the new state onto the stack. The new state becomes
3355 * the current state. This function will allocate the stack
3357 * @param new_buffer The new state.
3360 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3362 if (new_buffer == NULL)
3365 as3_ensure_buffer_stack();
3367 /* This block is copied from as3__switch_to_buffer. */
3368 if ( YY_CURRENT_BUFFER )
3370 /* Flush out information for old buffer. */
3371 *(yy_c_buf_p) = (yy_hold_char);
3372 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3373 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3376 /* Only push if top exists. Otherwise, replace top. */
3377 if (YY_CURRENT_BUFFER)
3378 (yy_buffer_stack_top)++;
3379 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3381 /* copied from as3__switch_to_buffer. */
3382 as3__load_buffer_state( );
3383 (yy_did_buffer_switch_on_eof) = 1;
3386 /** Removes and deletes the top of the stack, if present.
3387 * The next element becomes the new top.
3390 void as3_pop_buffer_state (void)
3392 if (!YY_CURRENT_BUFFER)
3395 as3__delete_buffer(YY_CURRENT_BUFFER );
3396 YY_CURRENT_BUFFER_LVALUE = NULL;
3397 if ((yy_buffer_stack_top) > 0)
3398 --(yy_buffer_stack_top);
3400 if (YY_CURRENT_BUFFER) {
3401 as3__load_buffer_state( );
3402 (yy_did_buffer_switch_on_eof) = 1;
3406 /* Allocates the stack if it does not exist.
3407 * Guarantees space for at least one push.
3409 static void as3_ensure_buffer_stack (void)
3413 if (!(yy_buffer_stack)) {
3415 /* First allocation is just for 2 elements, since we don't know if this
3416 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3417 * immediate realloc on the next call.
3420 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3421 (num_to_alloc * sizeof(struct yy_buffer_state*)
3423 if ( ! (yy_buffer_stack) )
3424 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3426 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3428 (yy_buffer_stack_max) = num_to_alloc;
3429 (yy_buffer_stack_top) = 0;
3433 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3435 /* Increase the buffer to prepare for a possible push. */
3436 int grow_size = 8 /* arbitrary grow size */;
3438 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3439 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3441 num_to_alloc * sizeof(struct yy_buffer_state*)
3443 if ( ! (yy_buffer_stack) )
3444 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3446 /* zero only the new slots.*/
3447 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3448 (yy_buffer_stack_max) = num_to_alloc;
3452 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3453 * @param base the character buffer
3454 * @param size the size in bytes of the character buffer
3456 * @return the newly allocated buffer state object.
3458 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3463 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3464 base[size-1] != YY_END_OF_BUFFER_CHAR )
3465 /* They forgot to leave room for the EOB's. */
3468 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3470 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3472 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3473 b->yy_buf_pos = b->yy_ch_buf = base;
3474 b->yy_is_our_buffer = 0;
3475 b->yy_input_file = 0;
3476 b->yy_n_chars = b->yy_buf_size;
3477 b->yy_is_interactive = 0;
3479 b->yy_fill_buffer = 0;
3480 b->yy_buffer_status = YY_BUFFER_NEW;
3482 as3__switch_to_buffer(b );
3487 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3488 * scan from a @e copy of @a str.
3489 * @param yystr a NUL-terminated string to scan
3491 * @return the newly allocated buffer state object.
3492 * @note If you want to scan bytes that may contain NUL values, then use
3493 * as3__scan_bytes() instead.
3495 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3498 return as3__scan_bytes(yystr,strlen(yystr) );
3501 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3502 * scan from a @e copy of @a bytes.
3503 * @param bytes the byte buffer to scan
3504 * @param len the number of bytes in the buffer pointed to by @a bytes.
3506 * @return the newly allocated buffer state object.
3508 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3515 /* Get memory for full buffer, including space for trailing EOB's. */
3516 n = _yybytes_len + 2;
3517 buf = (char *) as3_alloc(n );
3519 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3521 for ( i = 0; i < _yybytes_len; ++i )
3522 buf[i] = yybytes[i];
3524 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3526 b = as3__scan_buffer(buf,n );
3528 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3530 /* It's okay to grow etc. this buffer, and we should throw it
3531 * away when we're done.
3533 b->yy_is_our_buffer = 1;
3538 #ifndef YY_EXIT_FAILURE
3539 #define YY_EXIT_FAILURE 2
3542 static void yy_fatal_error (yyconst char* msg )
3544 (void) fprintf( stderr, "%s\n", msg );
3545 exit( YY_EXIT_FAILURE );
3548 /* Redefine yyless() so it works in section 3 code. */
3554 /* Undo effects of setting up as3_text. */ \
3555 int yyless_macro_arg = (n); \
3556 YY_LESS_LINENO(yyless_macro_arg);\
3557 as3_text[as3_leng] = (yy_hold_char); \
3558 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3559 (yy_hold_char) = *(yy_c_buf_p); \
3560 *(yy_c_buf_p) = '\0'; \
3561 as3_leng = yyless_macro_arg; \
3565 /* Accessor methods (get/set functions) to struct members. */
3567 /** Get the current line number.
3570 int as3_get_lineno (void)
3576 /** Get the input stream.
3579 FILE *as3_get_in (void)
3584 /** Get the output stream.
3587 FILE *as3_get_out (void)
3592 /** Get the length of the current token.
3595 int as3_get_leng (void)
3600 /** Get the current token.
3604 char *as3_get_text (void)
3609 /** Set the current line number.
3610 * @param line_number
3613 void as3_set_lineno (int line_number )
3616 as3_lineno = line_number;
3619 /** Set the input stream. This does not discard the current
3621 * @param in_str A readable stream.
3623 * @see as3__switch_to_buffer
3625 void as3_set_in (FILE * in_str )
3630 void as3_set_out (FILE * out_str )
3635 int as3_get_debug (void)
3637 return as3__flex_debug;
3640 void as3_set_debug (int bdebug )
3642 as3__flex_debug = bdebug ;
3645 static int yy_init_globals (void)
3647 /* Initialization is the same as for the non-reentrant scanner.
3648 * This function is called from as3_lex_destroy(), so don't allocate here.
3651 (yy_buffer_stack) = 0;
3652 (yy_buffer_stack_top) = 0;
3653 (yy_buffer_stack_max) = 0;
3654 (yy_c_buf_p) = (char *) 0;
3658 /* Defined in main.c */
3663 as3_in = (FILE *) 0;
3664 as3_out = (FILE *) 0;
3667 /* For future reference: Set errno on error, since we are called by
3673 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3674 int as3_lex_destroy (void)
3677 /* Pop the buffer stack, destroying each element. */
3678 while(YY_CURRENT_BUFFER){
3679 as3__delete_buffer(YY_CURRENT_BUFFER );
3680 YY_CURRENT_BUFFER_LVALUE = NULL;
3681 as3_pop_buffer_state();
3684 /* Destroy the stack itself. */
3685 as3_free((yy_buffer_stack) );
3686 (yy_buffer_stack) = NULL;
3688 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3689 * as3_lex() is called, initialization will occur. */
3696 * Internal utility routines.
3700 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3703 for ( i = 0; i < n; ++i )
3708 #ifdef YY_NEED_STRLEN
3709 static int yy_flex_strlen (yyconst char * s )
3712 for ( n = 0; s[n]; ++n )
3719 void *as3_alloc (yy_size_t size )
3721 return (void *) malloc( size );
3724 void *as3_realloc (void * ptr, yy_size_t size )
3726 /* The cast to (char *) in the following accommodates both
3727 * implementations that use char* generic pointers, and those
3728 * that use void* generic pointers. It works with the latter
3729 * because both ANSI C and C++ allow castless assignment from
3730 * any pointer type to void*, and deal with argument conversions
3731 * as though doing an assignment.
3733 return (void *) realloc( (char *) ptr, size );
3736 void as3_free (void * ptr )
3738 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3741 #define YYTABLES_NAME "yytables"
3743 #line 724 "tokenizer.lex"
3752 static char mbuf[256];
3753 char*token2string(enum yytokentype nr, YYSTYPE v)
3756 char*s = malloc(v.str.len+10);
3757 strcpy(s, "<string>");
3758 memcpy(s+8, v.str.str, v.str.len);
3759 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
3762 else if(nr==T_REGEXP) {
3763 char*s = malloc(strlen(v.regexp.pattern)+10);
3764 sprintf(s, "<regexp>%s", v.regexp.pattern);
3767 else if(nr==T_IDENTIFIER) {
3768 char*s = malloc(strlen(v.id)+10);
3769 sprintf(s, "<ID>%s", v.id);
3772 else if(nr==T_INT) return "<int>";
3773 else if(nr==T_UINT) return "<uint>";
3774 else if(nr==T_BYTE) return "<byte>";
3775 else if(nr==T_FLOAT) return "<float>";
3776 else if(nr==T_EOF) return "***END***";
3777 else if(nr==T_GE) return ">=";
3778 else if(nr==T_LE) return "<=";
3779 else if(nr==T_MINUSMINUS) return "--";
3780 else if(nr==T_PLUSPLUS) return "++";
3781 else if(nr==KW_IMPLEMENTS) return "implements";
3782 else if(nr==KW_INTERFACE) return "interface";
3783 else if(nr==KW_NAMESPACE) return "namespace";
3784 else if(nr==KW_PROTECTED) return "protected";
3785 else if(nr==KW_OVERRIDE) return "override";
3786 else if(nr==KW_INTERNAL) return "internal";
3787 else if(nr==KW_FUNCTION) return "function";
3788 else if(nr==KW_PACKAGE) return "package";
3789 else if(nr==KW_PRIVATE) return "private";
3790 else if(nr==KW_BOOLEAN) return "Boolean";
3791 else if(nr==KW_DYNAMIC) return "dynamic";
3792 else if(nr==KW_EXTENDS) return "extends";
3793 else if(nr==KW_PUBLIC) return "public";
3794 else if(nr==KW_NATIVE) return "native";
3795 else if(nr==KW_STATIC) return "static";
3796 else if(nr==KW_IMPORT) return "import";
3797 else if(nr==KW_NUMBER) return "number";
3798 else if(nr==KW_CLASS) return "class";
3799 else if(nr==KW_CONST) return "const";
3800 else if(nr==KW_FINAL) return "final";
3801 else if(nr==KW_FALSE) return "False";
3802 else if(nr==KW_TRUE) return "True";
3803 else if(nr==KW_UINT) return "uint";
3804 else if(nr==KW_NULL) return "null";
3805 else if(nr==KW_ELSE) return "else";
3806 else if(nr==KW_USE) return "use";
3807 else if(nr==KW_INT) return "int";
3808 else if(nr==KW_NEW) return "new";
3809 else if(nr==KW_GET) return "get";
3810 else if(nr==KW_SET) return "set";
3811 else if(nr==KW_VAR) return "var";
3812 else if(nr==KW_IS) return "is";
3813 else if(nr==KW_AS) return "as";
3815 sprintf(mbuf, "%d", nr);
3820 void initialize_scanner()