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 111
383 #define YY_END_OF_BUFFER 112
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[512] =
393 0, 0, 0, 0, 0, 0, 112, 110, 16, 16,
394 108, 110, 108, 108, 108, 110, 108, 109, 107, 108,
395 108, 55, 108, 110, 110, 110, 57, 108, 108, 108,
396 106, 107, 108, 106, 106, 106, 106, 106, 106, 106,
397 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
398 14, 108, 107, 110, 106, 108, 108, 55, 108, 110,
399 110, 110, 13, 32, 0, 6, 0, 106, 44, 30,
400 0, 0, 45, 39, 40, 38, 42, 54, 0, 3,
401 0, 43, 19, 19, 0, 0, 0, 0, 56, 0,
402 50, 37, 35, 36, 52, 0, 106, 0, 41, 105,
404 106, 106, 106, 106, 106, 27, 106, 106, 106, 106,
405 106, 106, 106, 106, 106, 104, 106, 103, 102, 106,
406 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
407 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
408 46, 31, 0, 103, 0, 0, 0, 0, 0, 3,
409 8, 43, 0, 11, 11, 0, 0, 0, 33, 106,
410 53, 20, 0, 0, 0, 0, 0, 1, 0, 0,
411 0, 0, 0, 0, 48, 34, 47, 51, 0, 0,
412 0, 0, 0, 106, 106, 106, 106, 106, 106, 106,
413 106, 106, 106, 106, 106, 106, 26, 106, 98, 106,
415 106, 106, 106, 106, 97, 106, 106, 106, 106, 106,
416 106, 106, 99, 106, 106, 106, 106, 106, 101, 106,
417 106, 96, 100, 106, 106, 106, 15, 106, 0, 11,
418 11, 0, 0, 12, 8, 0, 0, 0, 8, 0,
419 8, 8, 0, 0, 0, 0, 0, 0, 0, 2,
420 0, 18, 0, 17, 17, 0, 0, 49, 0, 0,
421 0, 0, 106, 94, 106, 106, 106, 106, 106, 106,
422 106, 89, 93, 106, 106, 106, 106, 106, 106, 106,
423 106, 106, 106, 92, 106, 106, 106, 106, 106, 106,
424 106, 106, 106, 106, 91, 106, 106, 90, 106, 95,
426 106, 12, 0, 0, 0, 0, 8, 0, 8, 0,
427 0, 2, 0, 8, 8, 10, 0, 9, 9, 0,
428 2, 21, 0, 23, 0, 0, 0, 87, 84, 82,
429 83, 106, 106, 106, 106, 106, 86, 85, 106, 106,
430 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
431 106, 106, 88, 106, 81, 106, 106, 28, 106, 10,
432 0, 9, 9, 0, 0, 2, 0, 8, 8, 0,
433 22, 0, 0, 106, 106, 74, 106, 106, 106, 106,
434 106, 79, 106, 106, 106, 106, 77, 106, 106, 106,
435 106, 76, 75, 78, 29, 80, 106, 106, 8, 0,
437 0, 0, 106, 69, 72, 73, 68, 106, 106, 106,
438 106, 106, 106, 106, 70, 71, 106, 106, 106, 8,
439 0, 0, 24, 64, 67, 106, 106, 106, 66, 106,
440 65, 106, 106, 0, 0, 25, 106, 106, 60, 61,
441 62, 63, 0, 0, 0, 0, 0, 0, 59, 58,
442 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 5, 0, 0, 0, 0, 0,
444 0, 0, 4, 0, 0, 4, 0, 5, 0, 0,
445 0, 0, 7, 0, 23, 5, 23, 23, 0, 0,
446 0, 7, 0, 22, 5, 22, 22, 0, 0, 0,
448 0, 0, 24, 5, 24, 24, 25, 5, 25, 25,
452 static yyconst flex_int32_t yy_ec[256] =
454 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
455 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
458 14, 15, 16, 13, 17, 18, 19, 20, 21, 21,
459 22, 21, 21, 21, 21, 21, 21, 23, 13, 24,
460 25, 26, 13, 13, 27, 28, 29, 30, 28, 28,
461 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
462 28, 28, 28, 31, 28, 28, 28, 28, 28, 28,
463 32, 33, 34, 35, 36, 8, 37, 38, 39, 40,
465 41, 42, 43, 44, 45, 28, 46, 47, 48, 49,
466 50, 51, 28, 52, 53, 54, 55, 56, 57, 58,
467 59, 28, 60, 61, 62, 13, 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, 8, 8, 8, 8,
473 8, 8, 8, 8, 8, 8, 63, 8, 8, 8,
474 64, 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, 8, 8,
479 8, 8, 8, 8, 8, 8, 8, 8, 65, 8,
480 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
484 static yyconst flex_int32_t yy_meta[66] =
486 1, 2, 3, 2, 2, 4, 4, 4, 4, 4,
487 4, 4, 4, 4, 4, 4, 4, 5, 4, 6,
488 6, 6, 2, 4, 4, 4, 7, 7, 7, 7,
489 7, 4, 8, 4, 4, 9, 7, 7, 7, 7,
490 10, 7, 7, 7, 7, 7, 7, 7, 7, 7,
491 7, 7, 7, 7, 7, 7, 7, 11, 7, 4,
495 static yyconst flex_int16_t yy_base[545] =
497 0, 530, 50, 57, 64, 71, 572, 2984, 2984, 2984,
498 545, 87, 0, 543, 556, 85, 2984, 2984, 539, 79,
499 81, 87, 96, 104, 109, 114, 526, 113, 521, 74,
500 137, 2984, 516, 154, 166, 176, 145, 96, 138, 150,
501 161, 165, 180, 182, 194, 201, 202, 210, 114, 225,
502 2984, 87, 2984, 470, 229, 265, 271, 277, 285, 285,
503 291, 299, 2984, 505, 116, 2984, 525, 0, 2984, 2984,
504 132, 523, 2984, 2984, 2984, 2984, 2984, 507, 294, 326,
505 110, 2984, 2984, 303, 332, 316, 501, 465, 2984, 481,
506 483, 2984, 476, 2984, 127, 356, 126, 360, 2984, 203,
508 330, 331, 319, 339, 345, 346, 354, 360, 361, 368,
509 369, 383, 384, 388, 392, 403, 404, 410, 411, 419,
510 415, 431, 433, 438, 439, 453, 445, 457, 459, 465,
511 473, 477, 484, 485, 500, 501, 507, 508, 515, 519,
512 2984, 2984, 434, 524, 326, 561, 566, 569, 261, 593,
513 624, 289, 390, 2984, 579, 666, 406, 475, 2984, 0,
514 2984, 2984, 602, 628, 689, 468, 218, 2984, 593, 601,
515 724, 789, 439, 420, 2984, 2984, 2984, 399, 853, 362,
516 344, 318, 330, 588, 599, 600, 648, 652, 663, 822,
517 672, 823, 824, 838, 831, 839, 840, 855, 854, 861,
519 862, 876, 877, 883, 882, 884, 888, 899, 900, 904,
520 905, 916, 920, 922, 927, 928, 936, 943, 942, 944,
521 958, 950, 951, 966, 965, 967, 2984, 972, 1003, 2984,
522 1006, 423, 354, 2984, 0, 1030, 1035, 1054, 351, 1063,
523 0, 1078, 1020, 1031, 1137, 1202, 175, 1073, 1267, 336,
524 1272, 2984, 0, 2984, 0, 290, 309, 2984, 0, 282,
525 288, 286, 1033, 1034, 1048, 1242, 1243, 1054, 1251, 1257,
526 1262, 1053, 1266, 1268, 1282, 1277, 1283, 1284, 1289, 1298,
527 1303, 1307, 1309, 1314, 1321, 1325, 1329, 1333, 1340, 1341,
528 1347, 1349, 1361, 1365, 1366, 1367, 1381, 1382, 1383, 1388,
530 1389, 2984, 1420, 1425, 1466, 1531, 0, 1594, 1627, 1692,
531 1697, 283, 1702, 1735, 0, 2984, 0, 2984, 0, 1597,
532 2984, 2984, 274, 2984, 0, 230, 227, 1406, 1412, 1413,
533 1567, 1571, 1672, 1673, 1681, 1764, 1765, 1766, 1772, 1773,
534 1781, 1787, 1796, 1802, 1807, 1813, 1818, 1819, 1825, 1837,
535 1830, 1844, 1845, 1849, 1851, 1860, 1866, 1867, 1868, 2984,
536 0, 2984, 0, 1918, 1923, 0, 1928, 0, 0, 237,
537 2984, 228, 223, 1898, 1912, 1907, 1913, 1918, 1927, 1932,
538 1943, 1938, 1944, 1950, 1952, 1958, 1959, 1964, 1966, 1978,
539 1973, 1984, 1985, 1989, 1993, 2000, 2004, 2005, 226, 216,
541 184, 0, 2019, 2011, 2012, 2020, 2026, 2028, 2034, 2045,
542 2050, 2043, 2057, 2061, 2062, 2066, 2073, 2078, 2127, 182,
543 164, 0, 2984, 2087, 2089, 2096, 2098, 2110, 2105, 2112,
544 2119, 2121, 2133, 2182, 140, 2984, 2128, 2151, 2145, 2153,
545 2159, 2160, 654, 464, 2210, 2214, 113, 94, 2183, 2184,
546 712, 1620, 1803, 2221, 472, 2233, 100, 172, 2237, 2243,
547 2256, 2248, 2261, 2270, 2275, 2280, 2288, 2292, 2296, 2300,
548 190, 2304, 2343, 98, 2347, 2352, 2356, 2360, 2393, 2371,
549 2375, 2379, 2984, 199, 2364, 2383, 2387, 2427, 2458, 2431,
550 2439, 62, 239, 2435, 2443, 2447, 2492, 2496, 2500, 2504,
552 2548, 2613, 2508, 2512, 2522, 2526, 2534, 2540, 2573, 2582,
553 2984, 2678, 2683, 2694, 2705, 2715, 2726, 2737, 2743, 2754,
554 2764, 2775, 2782, 2793, 2804, 2814, 2821, 2832, 2843, 2849,
555 2854, 2865, 2876, 2887, 2892, 2903, 2908, 2913, 2918, 2929,
556 2939, 2950, 2961, 2972
559 static yyconst flex_int16_t yy_def[545] =
561 511, 1, 1, 1, 1, 1, 511, 511, 511, 511,
562 511, 512, 513, 511, 511, 514, 511, 511, 511, 511,
563 511, 511, 511, 515, 515, 515, 511, 511, 511, 511,
564 516, 511, 511, 516, 516, 516, 36, 36, 36, 36,
565 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
566 511, 511, 511, 511, 36, 511, 511, 511, 517, 518,
567 518, 518, 511, 511, 512, 511, 512, 519, 511, 511,
568 514, 514, 511, 511, 511, 511, 511, 511, 520, 521,
569 522, 511, 511, 520, 515, 511, 523, 511, 511, 511,
570 511, 511, 511, 511, 511, 511, 36, 511, 511, 36,
572 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
573 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
574 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
575 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
576 511, 511, 511, 36, 511, 524, 524, 525, 517, 526,
577 522, 517, 517, 511, 525, 518, 511, 527, 511, 519,
578 511, 511, 521, 521, 528, 511, 522, 511, 520, 520,
579 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
580 511, 511, 511, 36, 36, 36, 36, 36, 36, 36,
581 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
583 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
584 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
585 36, 36, 36, 36, 36, 36, 511, 36, 529, 511,
586 529, 511, 530, 511, 531, 526, 526, 532, 531, 526,
587 151, 517, 525, 525, 511, 511, 533, 521, 528, 511,
588 521, 511, 171, 511, 171, 511, 511, 511, 534, 511,
589 511, 511, 36, 36, 36, 36, 36, 36, 36, 36,
590 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
591 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
592 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
594 36, 511, 529, 529, 511, 511, 531, 535, 511, 526,
595 532, 531, 526, 511, 242, 511, 245, 511, 245, 521,
596 511, 511, 511, 511, 536, 511, 511, 36, 36, 36,
597 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
598 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
599 36, 36, 36, 36, 36, 36, 36, 36, 36, 511,
600 305, 511, 305, 526, 526, 531, 526, 309, 314, 511,
601 511, 511, 511, 36, 36, 36, 36, 36, 36, 36,
602 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
603 36, 36, 36, 36, 36, 36, 36, 36, 242, 511,
605 511, 537, 36, 36, 36, 36, 36, 36, 36, 36,
606 36, 36, 36, 36, 36, 36, 36, 36, 36, 309,
607 511, 538, 511, 36, 36, 36, 36, 36, 36, 36,
608 36, 36, 36, 539, 540, 511, 36, 36, 36, 36,
609 36, 36, 541, 542, 543, 541, 540, 540, 36, 36,
610 511, 511, 541, 541, 542, 511, 542, 544, 544, 543,
611 543, 541, 543, 511, 511, 541, 541, 541, 541, 541,
612 540, 511, 511, 544, 511, 511, 541, 544, 541, 541,
613 541, 541, 511, 540, 511, 511, 541, 541, 541, 541,
614 541, 540, 540, 511, 511, 541, 541, 541, 541, 541,
616 541, 541, 511, 511, 541, 541, 511, 511, 541, 541,
617 0, 511, 511, 511, 511, 511, 511, 511, 511, 511,
618 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
619 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
623 static yyconst flex_int16_t yy_nxt[3050] =
625 8, 9, 10, 9, 9, 11, 12, 8, 13, 14,
626 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
627 25, 26, 27, 28, 29, 30, 31, 31, 31, 31,
628 31, 17, 8, 32, 33, 31, 34, 35, 36, 37,
629 38, 39, 40, 31, 41, 31, 31, 31, 42, 43,
630 44, 45, 46, 47, 48, 49, 50, 31, 31, 51,
631 52, 53, 8, 8, 54, 56, 57, 58, 59, 60,
632 61, 62, 56, 57, 58, 59, 60, 61, 62, 56,
633 57, 58, 59, 60, 61, 62, 56, 57, 58, 59,
634 60, 61, 62, 66, 74, 448, 66, 76, 94, 95,
636 458, 55, 455, 75, 78, 77, 79, 79, 79, 63,
637 80, 141, 168, 168, 81, 55, 63, 72, 90, 67,
638 82, 84, 66, 85, 85, 85, 84, 471, 85, 85,
639 85, 84, 108, 85, 85, 85, 91, 92, 96, 96,
640 96, 96, 109, 66, 86, 97, 448, 142, 67, 86,
641 137, 177, 178, 110, 86, 96, 96, 96, 96, 98,
642 97, 87, 97, 138, 72, 88, 511, 96, 96, 96,
643 96, 511, 97, 448, 111, 97, 98, 96, 96, 96,
644 96, 97, 112, 456, 97, 105, 97, 113, 98, 320,
645 115, 97, 114, 321, 106, 435, 97, 97, 98, 97,
647 166, 120, 116, 107, 474, 121, 100, 97, 117, 118,
648 97, 97, 102, 119, 97, 483, 97, 101, 124, 122,
649 168, 168, 103, 484, 492, 104, 97, 422, 97, 97,
650 97, 97, 493, 125, 127, 123, 126, 97, 97, 97,
651 97, 128, 421, 97, 420, 132, 97, 97, 97, 97,
652 97, 97, 97, 133, 129, 130, 97, 131, 135, 97,
653 134, 97, 136, 402, 492, 97, 401, 400, 139, 140,
654 116, 97, 471, 373, 97, 97, 117, 144, 97, 235,
655 74, 119, 145, 372, 146, 147, 147, 76, 145, 75,
656 146, 147, 147, 153, 78, 77, 148, 148, 148, 150,
658 370, 251, 155, 151, 156, 156, 156, 235, 155, 152,
659 156, 156, 156, 79, 79, 79, 155, 153, 156, 156,
660 156, 153, 169, 169, 169, 157, 163, 163, 163, 163,
661 327, 157, 326, 325, 86, 170, 170, 170, 323, 157,
662 165, 322, 158, 86, 166, 229, 229, 229, 511, 84,
663 88, 85, 85, 85, 251, 187, 511, 96, 96, 96,
664 96, 179, 179, 179, 179, 97, 97, 97, 97, 251,
665 184, 305, 86, 262, 261, 97, 97, 97, 98, 97,
666 97, 97, 97, 185, 186, 97, 189, 188, 97, 511,
667 97, 190, 97, 260, 97, 97, 97, 97, 192, 180,
669 97, 181, 191, 97, 97, 97, 97, 97, 242, 97,
670 97, 259, 182, 193, 97, 195, 183, 97, 97, 97,
671 97, 194, 153, 258, 97, 244, 244, 244, 97, 97,
672 97, 196, 97, 97, 97, 197, 198, 97, 97, 97,
673 97, 97, 304, 304, 304, 199, 97, 97, 257, 97,
674 97, 97, 97, 97, 200, 97, 97, 97, 256, 97,
675 97, 97, 201, 202, 97, 97, 203, 97, 97, 97,
676 456, 205, 204, 207, 97, 97, 208, 206, 456, 97,
677 97, 97, 97, 209, 97, 97, 251, 97, 210, 97,
678 211, 97, 245, 97, 97, 214, 457, 227, 212, 97,
680 176, 97, 97, 97, 457, 97, 97, 175, 97, 97,
681 213, 97, 174, 97, 97, 215, 173, 216, 171, 97,
682 97, 97, 97, 97, 161, 71, 97, 65, 217, 159,
683 97, 97, 143, 97, 97, 220, 97, 97, 218, 221,
684 99, 222, 219, 97, 97, 93, 97, 97, 89, 97,
685 97, 97, 224, 97, 97, 97, 97, 97, 223, 225,
686 97, 97, 228, 73, 97, 97, 70, 69, 97, 64,
687 97, 511, 226, 97, 55, 511, 201, 202, 231, 511,
688 147, 147, 147, 231, 511, 147, 147, 147, 148, 148,
689 148, 511, 511, 236, 236, 163, 236, 511, 243, 243,
691 243, 232, 163, 163, 163, 163, 232, 238, 511, 157,
692 511, 239, 169, 169, 169, 511, 247, 511, 233, 157,
693 170, 170, 170, 511, 263, 240, 168, 168, 163, 163,
694 163, 163, 511, 86, 97, 97, 97, 97, 265, 264,
695 511, 511, 247, 511, 511, 97, 97, 511, 97, 97,
696 241, 241, 241, 241, 241, 451, 452, 451, 453, 511,
697 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
698 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
699 241, 241, 241, 155, 97, 156, 156, 156, 97, 248,
700 248, 248, 248, 511, 97, 511, 511, 97, 97, 269,
702 266, 97, 511, 249, 267, 268, 157, 250, 271, 97,
703 511, 511, 97, 451, 452, 451, 451, 511, 97, 511,
704 511, 97, 511, 511, 252, 252, 252, 252, 252, 252,
705 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
706 252, 252, 252, 253, 253, 253, 252, 252, 252, 252,
707 253, 253, 253, 253, 253, 252, 511, 252, 252, 511,
708 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
709 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
710 253, 253, 253, 252, 252, 252, 252, 252, 252, 254,
711 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
713 254, 254, 254, 254, 254, 254, 255, 254, 172, 172,
714 172, 254, 254, 254, 254, 172, 172, 172, 172, 172,
715 254, 511, 254, 254, 511, 172, 172, 172, 172, 172,
716 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
717 172, 172, 172, 172, 172, 172, 172, 172, 254, 254,
718 254, 254, 254, 254, 179, 179, 179, 179, 97, 97,
719 97, 511, 270, 511, 273, 511, 272, 97, 97, 97,
720 97, 97, 97, 97, 97, 276, 97, 97, 274, 511,
721 97, 511, 511, 275, 97, 97, 97, 97, 97, 97,
722 97, 97, 180, 277, 181, 511, 511, 97, 97, 511,
724 97, 97, 511, 97, 97, 182, 511, 278, 97, 183,
725 279, 97, 97, 97, 511, 280, 281, 282, 97, 97,
726 97, 511, 97, 97, 97, 97, 97, 283, 97, 97,
727 284, 97, 97, 97, 97, 97, 97, 97, 511, 285,
728 97, 97, 511, 511, 286, 97, 97, 511, 97, 97,
729 97, 289, 97, 97, 97, 287, 97, 288, 97, 511,
730 511, 511, 97, 97, 97, 97, 97, 292, 97, 97,
731 290, 97, 97, 97, 97, 291, 97, 97, 97, 97,
732 97, 293, 97, 295, 296, 294, 97, 97, 97, 97,
733 97, 97, 97, 97, 97, 511, 97, 97, 297, 97,
735 97, 97, 97, 97, 97, 298, 511, 97, 97, 511,
736 300, 299, 97, 97, 97, 97, 97, 511, 301, 511,
737 511, 97, 229, 229, 229, 303, 303, 303, 511, 511,
738 236, 236, 163, 236, 511, 236, 236, 163, 236, 243,
739 243, 243, 511, 232, 308, 511, 232, 511, 309, 308,
740 244, 244, 244, 309, 310, 310, 248, 310, 511, 511,
741 157, 511, 240, 236, 236, 163, 236, 240, 311, 97,
742 97, 511, 312, 163, 163, 163, 163, 308, 328, 97,
743 97, 314, 97, 97, 97, 511, 313, 247, 511, 97,
744 97, 329, 511, 511, 97, 240, 235, 97, 332, 97,
746 97, 511, 97, 97, 315, 315, 315, 315, 315, 511,
747 153, 511, 511, 511, 315, 315, 315, 315, 315, 315,
748 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
749 315, 315, 315, 315, 315, 315, 315, 316, 316, 316,
750 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
751 316, 316, 316, 316, 316, 316, 317, 317, 317, 316,
752 316, 316, 316, 317, 317, 317, 317, 317, 316, 511,
753 316, 316, 511, 317, 317, 317, 317, 317, 317, 317,
754 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
755 317, 317, 317, 317, 317, 317, 316, 316, 316, 316,
757 316, 316, 318, 318, 318, 318, 318, 318, 318, 318,
758 318, 318, 318, 318, 318, 318, 318, 318, 318, 319,
759 318, 246, 246, 246, 318, 318, 318, 318, 246, 246,
760 246, 246, 246, 318, 511, 318, 318, 511, 246, 246,
761 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
762 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
763 246, 318, 318, 318, 318, 318, 318, 248, 248, 248,
764 248, 511, 163, 163, 163, 163, 511, 511, 97, 97,
765 511, 249, 511, 511, 511, 250, 247, 97, 97, 97,
766 166, 97, 97, 97, 330, 511, 331, 97, 97, 511,
768 97, 511, 97, 97, 97, 333, 97, 511, 97, 335,
769 334, 97, 97, 97, 97, 97, 336, 97, 97, 97,
770 97, 511, 337, 338, 340, 97, 97, 511, 97, 97,
771 97, 97, 97, 97, 342, 97, 339, 511, 97, 97,
772 341, 511, 511, 97, 97, 97, 511, 97, 511, 97,
773 97, 511, 97, 97, 343, 97, 97, 97, 97, 344,
774 97, 347, 511, 97, 345, 348, 511, 97, 511, 97,
775 97, 97, 346, 349, 97, 97, 97, 97, 97, 97,
776 511, 511, 97, 97, 350, 97, 97, 97, 511, 97,
777 97, 352, 351, 97, 511, 97, 97, 97, 97, 354,
779 353, 97, 97, 97, 511, 511, 511, 97, 511, 511,
780 97, 97, 97, 97, 97, 97, 356, 97, 97, 97,
781 511, 355, 357, 358, 97, 97, 511, 97, 97, 97,
782 97, 97, 97, 511, 97, 97, 511, 97, 97, 303,
783 303, 303, 97, 359, 304, 304, 304, 511, 97, 97,
784 511, 511, 97, 511, 511, 97, 511, 511, 97, 97,
785 232, 97, 97, 511, 511, 511, 360, 360, 360, 360,
786 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
787 360, 360, 360, 360, 360, 361, 361, 361, 360, 360,
788 360, 360, 361, 361, 361, 361, 361, 360, 511, 360,
790 360, 511, 361, 361, 361, 361, 361, 361, 361, 361,
791 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
792 361, 361, 361, 361, 361, 360, 360, 360, 360, 360,
793 360, 362, 362, 362, 362, 362, 362, 362, 362, 362,
794 362, 362, 362, 362, 362, 362, 362, 362, 363, 362,
795 306, 306, 306, 362, 362, 362, 362, 306, 306, 306,
796 306, 306, 362, 511, 362, 362, 511, 306, 306, 306,
797 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
798 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
799 362, 362, 362, 362, 362, 362, 251, 163, 163, 163,
801 163, 511, 511, 97, 511, 511, 511, 97, 365, 511,
802 511, 247, 366, 97, 511, 250, 97, 97, 511, 374,
803 97, 451, 452, 451, 451, 511, 367, 163, 163, 163,
804 163, 164, 164, 164, 164, 164, 164, 164, 164, 164,
805 164, 247, 164, 164, 164, 164, 164, 164, 164, 164,
806 164, 164, 164, 368, 368, 368, 368, 368, 164, 164,
807 164, 164, 164, 368, 368, 368, 368, 368, 368, 368,
808 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
809 368, 368, 368, 368, 368, 368, 164, 164, 164, 164,
810 164, 164, 236, 236, 163, 236, 511, 310, 310, 248,
812 310, 511, 236, 236, 163, 236, 308, 511, 97, 97,
813 309, 311, 511, 376, 511, 312, 308, 97, 375, 97,
814 314, 97, 97, 511, 240, 377, 511, 97, 511, 313,
815 97, 511, 511, 511, 240, 236, 236, 163, 236, 237,
816 237, 237, 237, 237, 237, 237, 237, 237, 237, 308,
817 237, 237, 237, 309, 237, 237, 237, 237, 237, 237,
818 237, 369, 369, 369, 369, 369, 237, 240, 237, 237,
819 237, 369, 369, 369, 369, 369, 369, 369, 369, 369,
820 369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
821 369, 369, 369, 369, 237, 237, 237, 237, 237, 237,
823 97, 97, 97, 378, 451, 452, 451, 453, 97, 97,
824 97, 97, 379, 97, 97, 97, 380, 97, 97, 97,
825 381, 97, 97, 97, 511, 511, 511, 97, 511, 511,
826 97, 511, 97, 97, 382, 383, 97, 384, 97, 511,
827 511, 511, 97, 97, 385, 97, 511, 387, 97, 97,
828 511, 97, 386, 97, 97, 97, 97, 388, 511, 97,
829 389, 97, 97, 391, 97, 97, 97, 97, 97, 511,
830 511, 97, 390, 97, 97, 392, 97, 511, 393, 97,
831 97, 97, 394, 97, 511, 97, 97, 97, 511, 511,
832 97, 97, 395, 97, 97, 97, 97, 97, 97, 511,
834 97, 396, 97, 97, 97, 511, 97, 398, 511, 97,
835 397, 511, 97, 97, 97, 97, 97, 97, 236, 236,
836 163, 236, 511, 236, 236, 163, 236, 511, 236, 236,
837 163, 236, 308, 511, 97, 511, 239, 308, 511, 511,
838 511, 312, 308, 97, 97, 511, 399, 97, 97, 97,
839 240, 405, 403, 97, 97, 240, 97, 511, 97, 97,
840 240, 97, 97, 97, 97, 404, 511, 97, 97, 511,
841 406, 511, 511, 97, 97, 511, 97, 511, 97, 97,
842 97, 408, 410, 409, 97, 407, 411, 97, 412, 97,
843 97, 511, 97, 97, 413, 97, 97, 511, 97, 97,
845 97, 97, 97, 414, 97, 97, 415, 97, 97, 97,
846 97, 511, 97, 97, 97, 97, 511, 511, 416, 97,
847 97, 97, 97, 511, 97, 97, 417, 97, 511, 97,
848 97, 97, 511, 97, 97, 97, 97, 511, 97, 97,
849 97, 97, 97, 511, 511, 419, 97, 97, 97, 97,
850 97, 97, 418, 97, 97, 97, 97, 97, 97, 424,
851 97, 97, 97, 511, 97, 97, 97, 511, 97, 97,
852 97, 511, 97, 511, 97, 97, 425, 97, 511, 97,
853 97, 97, 426, 97, 511, 427, 97, 511, 428, 429,
854 511, 97, 97, 97, 97, 430, 97, 97, 97, 97,
856 511, 431, 97, 97, 511, 511, 97, 97, 97, 97,
857 97, 97, 97, 432, 97, 97, 511, 511, 433, 97,
858 511, 511, 97, 97, 97, 97, 511, 97, 434, 434,
859 434, 434, 97, 97, 97, 97, 97, 511, 97, 511,
860 511, 97, 97, 511, 97, 97, 97, 438, 97, 437,
861 439, 97, 440, 511, 97, 97, 97, 97, 97, 97,
862 441, 97, 511, 97, 97, 97, 511, 97, 97, 97,
863 97, 511, 442, 97, 97, 511, 97, 97, 511, 97,
864 449, 97, 97, 434, 434, 434, 434, 97, 444, 97,
865 511, 97, 450, 445, 97, 97, 97, 97, 511, 97,
867 97, 511, 97, 511, 446, 97, 97, 511, 97, 97,
868 458, 459, 452, 459, 460, 464, 465, 464, 466, 97,
869 97, 462, 451, 452, 451, 453, 511, 511, 511, 97,
870 97, 511, 97, 97, 472, 473, 472, 472, 459, 452,
871 459, 459, 463, 458, 459, 452, 459, 460, 456, 475,
872 476, 475, 477, 467, 462, 468, 458, 459, 452, 459,
873 460, 458, 459, 478, 459, 460, 469, 462, 511, 474,
874 470, 464, 465, 464, 464, 463, 464, 465, 464, 464,
875 511, 464, 465, 464, 466, 511, 511, 511, 463, 451,
876 452, 451, 453, 451, 452, 451, 453, 451, 452, 451,
878 453, 451, 452, 451, 453, 472, 473, 472, 472, 180,
879 511, 181, 511, 511, 180, 511, 181, 511, 511, 467,
880 511, 468, 182, 511, 511, 511, 183, 182, 511, 511,
881 511, 183, 469, 511, 511, 511, 470, 479, 511, 511,
882 511, 480, 511, 482, 472, 473, 472, 472, 475, 476,
883 475, 475, 481, 475, 476, 475, 475, 475, 476, 475,
884 477, 459, 452, 459, 459, 451, 452, 451, 451, 511,
885 511, 456, 451, 452, 451, 453, 451, 452, 451, 453,
886 451, 452, 451, 453, 451, 452, 451, 451, 451, 452,
887 451, 453, 474, 324, 485, 486, 485, 487, 488, 488,
889 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
890 488, 488, 511, 511, 511, 488, 488, 488, 488, 490,
891 511, 511, 489, 491, 488, 511, 488, 488, 451, 452,
892 451, 453, 451, 452, 451, 453, 451, 452, 451, 451,
893 451, 452, 451, 453, 451, 452, 451, 451, 451, 452,
894 451, 453, 488, 488, 488, 488, 488, 488, 371, 494,
895 495, 494, 496, 497, 497, 497, 497, 497, 497, 497,
896 497, 497, 497, 497, 497, 497, 497, 511, 511, 511,
897 497, 497, 497, 497, 498, 499, 511, 511, 511, 497,
898 511, 497, 497, 451, 452, 451, 453, 451, 452, 451,
900 453, 451, 452, 451, 453, 451, 452, 451, 453, 451,
901 452, 451, 451, 451, 452, 451, 451, 497, 497, 497,
902 497, 497, 497, 451, 452, 451, 453, 451, 452, 451,
903 453, 511, 511, 511, 500, 451, 452, 451, 451, 511,
904 501, 451, 452, 451, 451, 511, 511, 502, 423, 503,
905 504, 503, 505, 506, 506, 506, 506, 506, 506, 506,
906 506, 506, 506, 506, 506, 506, 506, 511, 511, 511,
907 506, 506, 506, 506, 451, 452, 451, 453, 511, 506,
908 511, 506, 506, 451, 452, 451, 453, 511, 511, 511,
909 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
911 511, 511, 511, 511, 511, 511, 511, 506, 506, 506,
912 506, 506, 506, 436, 507, 508, 507, 509, 510, 510,
913 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
914 510, 510, 511, 511, 511, 510, 510, 510, 510, 511,
915 511, 511, 511, 511, 510, 511, 510, 510, 511, 511,
916 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
917 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
918 511, 511, 510, 510, 510, 510, 510, 510, 65, 65,
919 511, 65, 65, 65, 65, 65, 65, 65, 65, 68,
920 511, 68, 68, 68, 71, 71, 511, 71, 71, 71,
922 71, 71, 71, 71, 71, 83, 83, 83, 83, 83,
923 83, 511, 511, 511, 83, 83, 97, 97, 511, 511,
924 97, 97, 97, 97, 97, 97, 149, 149, 511, 149,
925 149, 149, 149, 149, 149, 149, 149, 154, 154, 154,
926 154, 154, 154, 511, 511, 511, 154, 154, 160, 160,
927 160, 160, 160, 160, 162, 162, 162, 162, 162, 162,
928 511, 511, 511, 162, 164, 164, 164, 164, 164, 164,
929 164, 164, 164, 164, 164, 167, 167, 167, 167, 167,
930 167, 167, 167, 167, 167, 167, 172, 172, 172, 511,
931 511, 172, 172, 230, 230, 230, 230, 230, 230, 511,
933 511, 511, 230, 230, 234, 234, 234, 234, 234, 234,
934 511, 511, 511, 234, 237, 237, 237, 237, 237, 237,
935 237, 237, 237, 237, 237, 246, 246, 246, 511, 511,
936 246, 246, 163, 163, 163, 163, 163, 163, 163, 163,
937 163, 163, 163, 302, 302, 302, 302, 302, 302, 511,
938 511, 511, 302, 306, 306, 306, 511, 511, 306, 306,
939 307, 511, 511, 307, 307, 236, 236, 236, 236, 236,
940 236, 236, 236, 236, 236, 236, 251, 251, 251, 251,
941 251, 251, 251, 251, 251, 251, 251, 324, 324, 324,
942 324, 324, 364, 364, 364, 364, 364, 364, 364, 364,
944 364, 364, 364, 371, 371, 371, 371, 371, 423, 423,
945 423, 423, 423, 436, 436, 436, 436, 436, 443, 443,
946 443, 443, 443, 443, 443, 443, 443, 443, 443, 447,
947 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
948 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
949 455, 455, 511, 455, 455, 455, 455, 455, 455, 455,
950 455, 461, 461, 461, 461, 461, 461, 461, 461, 461,
951 461, 461, 458, 458, 511, 458, 458, 458, 458, 458,
952 458, 458, 458, 7, 511, 511, 511, 511, 511, 511,
953 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
955 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
956 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
957 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
958 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
959 511, 511, 511, 511, 511, 511, 511, 511, 511
962 static yyconst flex_int16_t yy_chk[3050] =
964 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
965 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
971 3, 3, 4, 4, 4, 4, 4, 4, 4, 5,
972 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
973 6, 6, 6, 12, 20, 492, 16, 21, 30, 30,
975 474, 4, 457, 20, 22, 21, 22, 22, 22, 3,
976 23, 52, 81, 81, 23, 6, 4, 16, 28, 12,
977 23, 24, 65, 24, 24, 24, 25, 448, 25, 25,
978 25, 26, 38, 26, 26, 26, 28, 28, 31, 31,
979 31, 31, 38, 71, 24, 38, 447, 52, 65, 25,
980 49, 95, 95, 38, 26, 34, 34, 34, 34, 31,
981 49, 24, 97, 49, 71, 26, 25, 35, 35, 35,
982 35, 26, 97, 435, 39, 97, 34, 36, 36, 36,
983 36, 37, 39, 458, 39, 37, 40, 39, 35, 247,
984 40, 37, 39, 247, 37, 421, 40, 41, 36, 40,
986 420, 42, 41, 37, 458, 42, 34, 41, 41, 41,
987 41, 42, 36, 41, 42, 471, 43, 35, 44, 42,
988 167, 167, 36, 471, 484, 36, 43, 401, 44, 43,
989 45, 44, 484, 44, 45, 43, 44, 46, 47, 100,
990 45, 46, 400, 45, 399, 47, 48, 46, 47, 100,
991 46, 47, 100, 47, 46, 46, 48, 46, 48, 48,
992 47, 50, 48, 373, 493, 55, 372, 370, 50, 50,
993 55, 50, 493, 327, 50, 55, 55, 55, 55, 149,
994 56, 55, 56, 326, 56, 56, 56, 57, 57, 56,
995 57, 57, 57, 149, 58, 57, 58, 58, 58, 59,
997 323, 312, 60, 59, 60, 60, 60, 152, 61, 59,
998 61, 61, 61, 79, 79, 79, 62, 59, 62, 62,
999 62, 152, 84, 84, 84, 60, 80, 80, 80, 80,
1000 262, 61, 261, 260, 79, 86, 86, 86, 257, 62,
1001 80, 256, 60, 84, 80, 145, 145, 145, 61, 85,
1002 62, 85, 85, 85, 250, 103, 62, 96, 96, 96,
1003 96, 98, 98, 98, 98, 103, 101, 102, 103, 239,
1004 101, 233, 85, 183, 182, 104, 101, 102, 96, 101,
1005 102, 105, 106, 102, 102, 104, 105, 104, 104, 85,
1006 107, 105, 106, 181, 105, 106, 108, 109, 108, 98,
1008 107, 98, 107, 107, 110, 111, 108, 109, 153, 108,
1009 109, 180, 98, 109, 110, 111, 98, 110, 111, 112,
1010 113, 110, 153, 178, 114, 157, 157, 157, 115, 112,
1011 113, 112, 112, 113, 114, 113, 114, 114, 115, 116,
1012 117, 115, 232, 232, 232, 115, 118, 119, 174, 116,
1013 117, 121, 116, 117, 117, 120, 118, 119, 173, 118,
1014 119, 121, 118, 118, 121, 120, 120, 122, 120, 123,
1015 444, 121, 120, 123, 124, 125, 124, 122, 455, 123,
1016 122, 127, 123, 125, 124, 125, 166, 124, 125, 126,
1017 126, 127, 158, 128, 127, 129, 444, 143, 127, 126,
1019 93, 130, 126, 128, 455, 129, 128, 91, 129, 131,
1020 128, 130, 90, 132, 130, 130, 88, 131, 87, 131,
1021 133, 134, 131, 132, 78, 72, 132, 67, 132, 64,
1022 133, 134, 54, 133, 134, 134, 135, 136, 133, 135,
1023 33, 136, 133, 137, 138, 29, 135, 136, 27, 135,
1024 136, 139, 138, 137, 138, 140, 137, 138, 137, 139,
1025 144, 139, 144, 19, 139, 140, 15, 14, 140, 11,
1026 144, 7, 140, 144, 2, 0, 144, 144, 146, 0,
1027 146, 146, 146, 147, 0, 147, 147, 147, 148, 148,
1028 148, 0, 0, 150, 150, 150, 150, 0, 155, 155,
1030 155, 146, 163, 163, 163, 163, 147, 150, 0, 148,
1031 0, 150, 169, 169, 169, 0, 163, 0, 146, 155,
1032 170, 170, 170, 147, 184, 150, 151, 151, 164, 164,
1033 164, 164, 0, 169, 184, 185, 186, 184, 186, 185,
1034 0, 170, 164, 0, 0, 185, 186, 0, 185, 186,
1035 151, 151, 151, 151, 151, 443, 443, 443, 443, 0,
1036 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1037 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1038 151, 151, 151, 156, 187, 156, 156, 156, 188, 165,
1039 165, 165, 165, 0, 187, 0, 0, 187, 188, 189,
1041 187, 188, 0, 165, 188, 188, 156, 165, 191, 189,
1042 0, 0, 189, 451, 451, 451, 451, 0, 191, 0,
1043 0, 191, 0, 156, 171, 171, 171, 171, 171, 171,
1044 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1045 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1046 171, 171, 171, 171, 171, 171, 0, 171, 171, 0,
1047 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1048 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1049 171, 171, 171, 171, 171, 171, 171, 171, 171, 172,
1050 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1052 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1053 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1054 172, 0, 172, 172, 0, 172, 172, 172, 172, 172,
1055 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1056 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1057 172, 172, 172, 172, 179, 179, 179, 179, 190, 192,
1058 193, 0, 190, 0, 193, 0, 192, 195, 190, 192,
1059 193, 190, 192, 193, 194, 196, 197, 195, 194, 0,
1060 195, 0, 0, 195, 194, 196, 197, 194, 196, 197,
1061 199, 198, 179, 198, 179, 0, 0, 200, 201, 0,
1063 199, 198, 0, 199, 198, 179, 0, 200, 201, 179,
1064 200, 201, 202, 203, 0, 201, 202, 203, 205, 204,
1065 206, 0, 202, 203, 207, 202, 203, 204, 205, 204,
1066 206, 205, 204, 206, 207, 208, 209, 207, 0, 207,
1067 210, 211, 0, 0, 208, 208, 209, 0, 208, 209,
1068 210, 211, 212, 210, 211, 209, 213, 210, 214, 0,
1069 0, 0, 212, 215, 216, 212, 213, 215, 214, 213,
1070 212, 214, 217, 215, 216, 214, 215, 216, 219, 218,
1071 220, 216, 217, 218, 220, 217, 222, 223, 219, 218,
1072 220, 219, 218, 220, 221, 0, 222, 223, 221, 222,
1074 223, 225, 224, 226, 221, 224, 0, 221, 228, 0,
1075 226, 225, 224, 226, 225, 224, 226, 0, 228, 0,
1076 0, 228, 229, 229, 229, 231, 231, 231, 0, 0,
1077 236, 236, 236, 236, 0, 237, 237, 237, 237, 243,
1078 243, 243, 0, 229, 236, 0, 231, 0, 236, 237,
1079 244, 244, 244, 237, 238, 238, 238, 238, 0, 0,
1080 243, 0, 236, 240, 240, 240, 240, 237, 238, 263,
1081 264, 244, 238, 248, 248, 248, 248, 240, 263, 263,
1082 264, 240, 263, 264, 265, 0, 238, 248, 0, 272,
1083 268, 265, 0, 0, 265, 240, 242, 265, 268, 272,
1085 268, 0, 272, 268, 242, 242, 242, 242, 242, 0,
1086 242, 0, 0, 0, 242, 242, 242, 242, 242, 242,
1087 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
1088 242, 242, 242, 242, 242, 242, 242, 245, 245, 245,
1089 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1090 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1091 245, 245, 245, 245, 245, 245, 245, 245, 245, 0,
1092 245, 245, 0, 245, 245, 245, 245, 245, 245, 245,
1093 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1094 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1096 245, 245, 246, 246, 246, 246, 246, 246, 246, 246,
1097 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1098 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1099 246, 246, 246, 246, 0, 246, 246, 0, 246, 246,
1100 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1101 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1102 246, 246, 246, 246, 246, 246, 246, 249, 249, 249,
1103 249, 0, 251, 251, 251, 251, 0, 0, 266, 267,
1104 0, 249, 0, 0, 0, 249, 251, 269, 266, 267,
1105 251, 266, 267, 270, 266, 0, 267, 269, 271, 0,
1107 269, 0, 273, 270, 274, 269, 270, 0, 271, 271,
1108 270, 271, 273, 276, 274, 273, 274, 274, 275, 277,
1109 278, 0, 275, 276, 278, 279, 276, 0, 275, 277,
1110 278, 275, 277, 278, 280, 279, 277, 0, 279, 281,
1111 279, 0, 0, 282, 280, 283, 0, 280, 0, 281,
1112 284, 0, 281, 282, 281, 283, 282, 285, 283, 282,
1113 284, 286, 0, 284, 283, 287, 0, 285, 0, 288,
1114 285, 286, 285, 288, 286, 287, 289, 290, 287, 288,
1115 0, 0, 288, 291, 289, 292, 289, 290, 0, 289,
1116 290, 291, 290, 291, 0, 292, 291, 293, 292, 293,
1118 292, 294, 295, 296, 0, 0, 0, 293, 0, 0,
1119 293, 294, 295, 296, 294, 295, 296, 297, 298, 299,
1120 0, 294, 297, 299, 300, 301, 0, 297, 298, 299,
1121 297, 298, 299, 0, 300, 301, 0, 300, 301, 303,
1122 303, 303, 328, 301, 304, 304, 304, 0, 329, 330,
1123 0, 0, 328, 0, 0, 328, 0, 0, 329, 330,
1124 303, 329, 330, 0, 0, 304, 305, 305, 305, 305,
1125 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
1126 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
1127 305, 305, 305, 305, 305, 305, 305, 305, 0, 305,
1129 305, 0, 305, 305, 305, 305, 305, 305, 305, 305,
1130 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
1131 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
1132 305, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1133 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1134 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1135 306, 306, 306, 0, 306, 306, 0, 306, 306, 306,
1136 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1137 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1138 306, 306, 306, 306, 306, 306, 308, 320, 320, 320,
1140 320, 0, 0, 331, 0, 0, 0, 332, 308, 0,
1141 0, 320, 308, 331, 0, 320, 331, 332, 0, 332,
1142 332, 452, 452, 452, 452, 0, 308, 309, 309, 309,
1143 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1144 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1145 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1146 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1147 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1148 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1149 309, 309, 310, 310, 310, 310, 0, 311, 311, 311,
1151 311, 0, 313, 313, 313, 313, 310, 0, 333, 334,
1152 310, 311, 0, 334, 0, 311, 313, 335, 333, 334,
1153 313, 333, 334, 0, 310, 335, 0, 335, 0, 311,
1154 335, 0, 0, 0, 313, 314, 314, 314, 314, 314,
1155 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1156 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1157 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1158 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1159 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1160 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1162 336, 337, 338, 336, 453, 453, 453, 453, 339, 340,
1163 336, 337, 338, 336, 337, 338, 339, 341, 339, 340,
1164 340, 339, 340, 342, 0, 0, 0, 341, 0, 0,
1165 341, 0, 343, 342, 341, 342, 342, 343, 344, 0,
1166 0, 0, 343, 345, 343, 343, 0, 345, 344, 346,
1167 0, 344, 344, 345, 347, 348, 345, 346, 0, 346,
1168 347, 349, 346, 349, 347, 348, 351, 347, 348, 0,
1169 0, 349, 348, 350, 349, 350, 351, 0, 351, 351,
1170 352, 353, 352, 350, 0, 354, 350, 355, 0, 0,
1171 352, 353, 354, 352, 353, 354, 356, 355, 354, 0,
1173 355, 356, 357, 358, 359, 0, 356, 359, 0, 356,
1174 357, 0, 357, 358, 359, 357, 358, 359, 364, 364,
1175 364, 364, 0, 365, 365, 365, 365, 0, 367, 367,
1176 367, 367, 364, 0, 374, 0, 364, 365, 0, 0,
1177 0, 365, 367, 376, 374, 0, 367, 374, 375, 377,
1178 364, 377, 374, 376, 378, 365, 376, 0, 375, 377,
1179 367, 375, 377, 379, 378, 375, 0, 378, 380, 0,
1180 378, 0, 0, 379, 382, 0, 379, 0, 380, 381,
1181 383, 380, 383, 381, 382, 379, 384, 382, 385, 381,
1182 383, 0, 381, 383, 386, 387, 384, 0, 385, 384,
1184 388, 385, 389, 388, 386, 387, 389, 386, 387, 391,
1185 388, 0, 389, 388, 390, 389, 0, 0, 390, 391,
1186 392, 393, 391, 0, 390, 394, 391, 390, 0, 395,
1187 392, 393, 0, 392, 393, 394, 396, 0, 394, 395,
1188 397, 398, 395, 0, 0, 398, 396, 404, 405, 396,
1189 397, 398, 397, 397, 398, 403, 406, 404, 405, 403,
1190 404, 405, 407, 0, 408, 403, 406, 0, 403, 406,
1191 409, 0, 407, 0, 408, 407, 408, 408, 0, 412,
1192 409, 410, 409, 409, 0, 410, 411, 0, 411, 412,
1193 0, 410, 412, 413, 410, 413, 411, 414, 415, 411,
1195 0, 414, 416, 413, 0, 0, 413, 414, 415, 417,
1196 414, 415, 416, 417, 418, 416, 0, 0, 418, 417,
1197 0, 0, 417, 424, 418, 425, 0, 418, 419, 419,
1198 419, 419, 426, 424, 427, 425, 424, 0, 425, 0,
1199 0, 429, 426, 0, 427, 426, 428, 427, 430, 426,
1200 428, 429, 430, 0, 429, 431, 428, 432, 430, 428,
1201 432, 430, 0, 419, 437, 431, 0, 432, 431, 433,
1202 432, 0, 433, 419, 437, 0, 419, 437, 0, 433,
1203 437, 439, 433, 434, 434, 434, 434, 438, 434, 440,
1204 0, 439, 438, 434, 439, 441, 442, 438, 0, 440,
1206 438, 0, 440, 0, 434, 441, 442, 0, 441, 442,
1207 445, 445, 445, 445, 445, 446, 446, 446, 446, 449,
1208 450, 445, 454, 454, 454, 454, 0, 0, 0, 449,
1209 450, 0, 449, 450, 456, 456, 456, 456, 459, 459,
1210 459, 459, 445, 460, 460, 460, 460, 460, 459, 462,
1211 462, 462, 462, 446, 460, 446, 461, 461, 461, 461,
1212 461, 463, 463, 463, 463, 463, 446, 461, 0, 459,
1213 446, 464, 464, 464, 464, 460, 465, 465, 465, 465,
1214 0, 466, 466, 466, 466, 0, 0, 0, 461, 467,
1215 467, 467, 467, 468, 468, 468, 468, 469, 469, 469,
1217 469, 470, 470, 470, 470, 472, 472, 472, 472, 464,
1218 0, 464, 0, 0, 465, 0, 465, 0, 0, 466,
1219 0, 466, 464, 0, 0, 0, 464, 465, 0, 0,
1220 0, 465, 466, 0, 0, 0, 466, 467, 0, 0,
1221 0, 468, 0, 470, 473, 473, 473, 473, 475, 475,
1222 475, 475, 469, 476, 476, 476, 476, 477, 477, 477,
1223 477, 478, 478, 478, 478, 485, 485, 485, 485, 0,
1224 0, 478, 480, 480, 480, 480, 481, 481, 481, 481,
1225 482, 482, 482, 482, 486, 486, 486, 486, 487, 487,
1226 487, 487, 478, 479, 479, 479, 479, 479, 479, 479,
1228 479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
1229 479, 479, 0, 0, 0, 479, 479, 479, 479, 481,
1230 0, 0, 480, 482, 479, 0, 479, 479, 488, 488,
1231 488, 488, 490, 490, 490, 490, 494, 494, 494, 494,
1232 491, 491, 491, 491, 495, 495, 495, 495, 496, 496,
1233 496, 496, 479, 479, 479, 479, 479, 479, 489, 489,
1234 489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
1235 489, 489, 489, 489, 489, 489, 489, 0, 0, 0,
1236 489, 489, 489, 489, 490, 491, 0, 0, 0, 489,
1237 0, 489, 489, 497, 497, 497, 497, 498, 498, 498,
1239 498, 499, 499, 499, 499, 500, 500, 500, 500, 503,
1240 503, 503, 503, 504, 504, 504, 504, 489, 489, 489,
1241 489, 489, 489, 505, 505, 505, 505, 506, 506, 506,
1242 506, 0, 0, 0, 498, 507, 507, 507, 507, 0,
1243 499, 508, 508, 508, 508, 0, 0, 500, 501, 501,
1244 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
1245 501, 501, 501, 501, 501, 501, 501, 0, 0, 0,
1246 501, 501, 501, 501, 509, 509, 509, 509, 0, 501,
1247 0, 501, 501, 510, 510, 510, 510, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 501, 501, 501,
1251 501, 501, 501, 502, 502, 502, 502, 502, 502, 502,
1252 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
1253 502, 502, 0, 0, 0, 502, 502, 502, 502, 0,
1254 0, 0, 0, 0, 502, 0, 502, 502, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 502, 502, 502, 502, 502, 502, 512, 512,
1258 0, 512, 512, 512, 512, 512, 512, 512, 512, 513,
1259 0, 513, 513, 513, 514, 514, 0, 514, 514, 514,
1261 514, 514, 514, 514, 514, 515, 515, 515, 515, 515,
1262 515, 0, 0, 0, 515, 515, 516, 516, 0, 0,
1263 516, 516, 516, 516, 516, 516, 517, 517, 0, 517,
1264 517, 517, 517, 517, 517, 517, 517, 518, 518, 518,
1265 518, 518, 518, 0, 0, 0, 518, 518, 519, 519,
1266 519, 519, 519, 519, 520, 520, 520, 520, 520, 520,
1267 0, 0, 0, 520, 521, 521, 521, 521, 521, 521,
1268 521, 521, 521, 521, 521, 522, 522, 522, 522, 522,
1269 522, 522, 522, 522, 522, 522, 523, 523, 523, 0,
1270 0, 523, 523, 524, 524, 524, 524, 524, 524, 0,
1272 0, 0, 524, 524, 525, 525, 525, 525, 525, 525,
1273 0, 0, 0, 525, 526, 526, 526, 526, 526, 526,
1274 526, 526, 526, 526, 526, 527, 527, 527, 0, 0,
1275 527, 527, 528, 528, 528, 528, 528, 528, 528, 528,
1276 528, 528, 528, 529, 529, 529, 529, 529, 529, 0,
1277 0, 0, 529, 530, 530, 530, 0, 0, 530, 530,
1278 531, 0, 0, 531, 531, 532, 532, 532, 532, 532,
1279 532, 532, 532, 532, 532, 532, 533, 533, 533, 533,
1280 533, 533, 533, 533, 533, 533, 533, 534, 534, 534,
1281 534, 534, 535, 535, 535, 535, 535, 535, 535, 535,
1283 535, 535, 535, 536, 536, 536, 536, 536, 537, 537,
1284 537, 537, 537, 538, 538, 538, 538, 538, 539, 539,
1285 539, 539, 539, 539, 539, 539, 539, 539, 539, 540,
1286 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
1287 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
1288 542, 542, 0, 542, 542, 542, 542, 542, 542, 542,
1289 542, 543, 543, 543, 543, 543, 543, 543, 543, 543,
1290 543, 543, 544, 544, 0, 544, 544, 544, 544, 544,
1291 544, 544, 544, 511, 511, 511, 511, 511, 511, 511,
1292 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
1294 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
1295 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
1296 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
1297 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
1298 511, 511, 511, 511, 511, 511, 511, 511, 511
1301 static yy_state_type yy_last_accepting_state;
1302 static char *yy_last_accepting_cpos;
1304 extern int as3__flex_debug;
1305 int as3__flex_debug = 0;
1307 /* The intent behind this definition is that it'll catch
1308 * any uses of REJECT which flex missed.
1310 #define REJECT reject_used_but_not_detected
1311 #define yymore() yymore_used_but_not_detected
1312 #define YY_MORE_ADJ 0
1313 #define YY_RESTORE_YY_MORE_OFFSET
1315 #line 1 "tokenizer.lex"
1318 Routines for compiling Flash2 AVM2 ABC Actionscript
1320 Extension module for the rfxswf library.
1321 Part of the swftools package.
1323 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1325 This program is free software; you can redistribute it and/or modify
1326 it under the terms of the GNU General Public License as published by
1327 the Free Software Foundation; either version 2 of the License, or
1328 (at your option) any later version.
1330 This program is distributed in the hope that it will be useful,
1331 but WITHOUT ANY WARRANTY; without even the implied warranty of
1332 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1333 GNU General Public License for more details.
1335 You should have received a copy of the GNU General Public License
1336 along with this program; if not, write to the Free Software
1337 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1338 #line 24 "tokenizer.lex"
1345 #include "../utf8.h"
1346 #include "tokenizer.h"
1350 int as3_verbosity = 1;
1351 unsigned int as3_tokencount = 0;
1353 void as3_error(const char*format, ...)
1360 va_start(arglist, format);
1361 vsprintf(buf, format, arglist);
1363 fprintf(stderr, "%s:%d:%d: error: %s\n", current_filename_short, current_line, current_column, buf);
1367 void as3_warning(const char*format, ...)
1374 va_start(arglist, format);
1375 vsprintf(buf, format, arglist);
1377 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1380 void as3_softwarning(const char*format, ...)
1387 va_start(arglist, format);
1388 vsprintf(buf, format, arglist);
1390 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1393 static void dbg(const char*format, ...)
1400 va_start(arglist, format);
1401 vsprintf(buf, format, arglist);
1404 while(l && buf[l-1]=='\n') {
1408 printf("(tokenizer) ");
1409 printf("%s\n", buf);
1413 #ifndef YY_CURRENT_BUFFER
1414 #define YY_CURRENT_BUFFER yy_current_buffer
1417 static void*as3_buffer=0;
1418 static int as3_buffer_pos=0;
1419 static int as3_buffer_len=0;
1420 void as3_file_input(FILE*fi)
1425 void as3_buffer_input(void*buffer, int len)
1428 syntaxerror("trying to parse zero bytearray");
1429 as3_buffer = buffer;
1430 as3_buffer_len = len;
1435 #define YY_INPUT(buf,result,max_size) { \
1438 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1439 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1440 errno=0; clearerr(as3_in); \
1443 int to_read = max_size; \
1444 if(to_read + as3_buffer_pos > as3_buffer_len) \
1445 to_read = as3_buffer_len - as3_buffer_pos; \
1446 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1447 as3_buffer_pos += to_read; \
1452 void handleInclude(char*text, int len, char quotes)
1456 char*p1 = strchr(text, '"');
1457 char*p2 = strrchr(text, '"');
1458 if(!p1 || !p2 || p1==p2) {
1459 syntaxerror("Invalid include in line %d\n", current_line);
1462 filename = strdup(p1+1);
1466 while(!strchr(" \n\r\t", text[i1])) i1++;
1468 while(strchr(" \n\r\t", text[i1])) i1++;
1469 while(strchr(" \n\r\t", text[i2-1])) i2--;
1470 if(i2!=len) text[i2]=0;
1471 filename = strdup(&text[i1]);
1474 char*fullfilename = find_file(filename, 1);
1475 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1476 as3_in = fopen(fullfilename, "rb");
1478 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1481 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1482 //BEGIN(INITIAL); keep context
1485 static int do_unescape(const char*s, const char*end, char*n)
1491 if(o) o[len] = *s;len++;
1495 s++; //skip past '\'
1496 if(s==end) syntaxerror("invalid \\ at end of string");
1498 /* handle the various line endings (mac, dos, unix) */
1511 case '\\': if(o) o[len] = '\\';s++;len++; break;
1512 case '"': if(o) o[len] = '"';s++;len++; break;
1513 case '\'': if(o) o[len] = '\'';s++;len++; break;
1514 case 'b': if(o) o[len] = '\b';s++;len++; break;
1515 case 'f': if(o) o[len] = '\f';s++;len++; break;
1516 case 'n': if(o) o[len] = '\n';s++;len++; break;
1517 case 'r': if(o) o[len] = '\r';s++;len++; break;
1518 case 't': if(o) o[len] = '\t';s++;len++; break;
1519 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1522 while(strchr("01234567", *s) && nr<3 && s<end) {
1529 syntaxerror("octal number out of range (0-255): %d", num);
1530 if(o) o[len] = num;len++;
1533 case 'x': case 'u': {
1542 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1545 if(s==end) syntaxerror("invalid \\u{ at end of string");
1550 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1552 if(*s>='0' && *s<='9') num |= *s - '0';
1553 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1554 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1559 if(*s=='}' && s<end) {
1562 syntaxerror("missing terminating '}'");
1566 char*utf8 = getUTF8(num);
1568 if(o) o[len] = *utf8;utf8++;len++;
1572 syntaxerror("byte out of range (0-255): %d", num);
1573 if(o) o[len] = num;len++;
1578 syntaxerror("unknown escape sequence: \"\\%c\"", *s);
1585 static string_t string_unescape(const char*in, int l)
1588 const char*end = &in[l];
1590 int len = do_unescape(s, end, 0);
1591 char*n = (char*)malloc(len+1);
1592 do_unescape(s, end, n);
1593 string_t out = string_new(n, len);
1597 static void handleCData(char*s, int len)
1599 a3_lval.str.str = s+9; // <![CDATA[
1600 a3_lval.str.len = len-9-3;// ]]>
1601 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1604 static void handleString(char*s, int len)
1607 // don't bother decoding strings in pass 1
1608 memset(&a3_lval, 0, sizeof(a3_lval));
1613 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1616 else if(s[0]=='\'') {
1617 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1620 else syntaxerror("String incorrectly terminated");
1623 a3_lval.str = string_unescape(s, len);
1627 char start_of_expression;
1629 static inline int m(int type)
1631 a3_lval.token = type;
1636 static char numberbuf[64];
1639 if(as3_leng>sizeof(numberbuf)-1)
1640 syntaxerror("decimal number overflow");
1642 memcpy(s, as3_text, as3_leng);
1647 static inline int setint(int v)
1649 a3_lval.number_int = v;
1657 static inline int setuint(unsigned int v)
1659 a3_lval.number_uint = v;
1667 static inline int setfloat(double v)
1669 a3_lval.number_float = v;
1673 static inline int handlefloat()
1676 a3_lval.number_float = atof(s);
1680 static inline int handleint()
1683 char l = (as3_text[0]=='-');
1685 char*max = l?"1073741824":"2147483647";
1687 as3_softwarning("integer overflow: %s (converted to Number)", s);
1688 return handlefloat();
1690 if(as3_leng-l==10) {
1692 for(t=0;t<as3_leng-l;t++) {
1693 if(as3_text[l+t]>max[t]) {
1694 as3_softwarning("integer overflow: %s (converted to Number)", s);
1695 return handlefloat();
1697 else if(as3_text[l+t]<max[t])
1701 if(as3_text[0]=='-') {
1707 for(t=0;t<as3_leng;t++) {
1715 static inline int handlehexfloat()
1717 char l = (as3_text[0]=='-')+2;
1722 for(t=l;t<as3_leng;t++) {
1723 char c = as3_text[t];
1733 if(c>='0' && c<='9')
1735 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1736 d+=((c&0x0f)+9)*base;
1740 static inline int handlehex()
1742 char l = (as3_text[0]=='-')+2;
1747 syntaxerror("integer overflow %s", s);
1752 for(t=l;t<len;t++) {
1754 char c = as3_text[t];
1755 if(c>='0' && c<='9')
1757 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1760 if(l && v>1073741824) {
1762 as3_softwarning("signed integer overflow: %s (converted to Number)", s);
1765 if(!l && v>2147483647) {
1767 as3_softwarning("unsigned integer overflow: %s (converted to Number)", s);
1772 return setint(-(int)v);
1778 void handleLabel(char*text, int len)
1781 for(t=len-1;t>=0;--t) {
1786 char*s = malloc(t+1);
1787 memcpy(s, as3_text, t);
1792 static int handleregexp()
1794 char*s = malloc(as3_leng);
1796 memcpy(s, as3_text+1, len);
1799 for(t=len;t>=0;--t) {
1805 a3_lval.regexp.pattern = s;
1807 a3_lval.regexp.options = 0;
1809 a3_lval.regexp.options = s+t+1;
1814 void initialize_scanner();
1815 #define YY_USER_INIT initialize_scanner();
1817 /* count the number of lines+columns consumed by this token */
1818 static inline void l() {
1820 for(t=0;t<as3_leng;t++) {
1821 if(as3_text[t]=='\n') {
1829 /* count the number of columns consumed by this token */
1830 static inline void c() {
1831 current_column+=as3_leng;
1834 static trie_t*namespaces = 0;
1835 void tokenizer_register_namespace(const char*id)
1837 trie_put(&namespaces, id);
1839 static inline tokenizer_is_namespace(const char*id)
1841 return trie_lookup(namespaces, id);
1844 static inline int handleIdentifier()
1846 char*s = malloc(as3_leng+1);
1847 memcpy(s, as3_text, as3_leng);
1850 if(tokenizer_is_namespace(s))
1853 return T_IDENTIFIER;
1857 //Boolean {c();return m(KW_BOOLEAN);}
1858 //int {c();return m(KW_INT);}
1859 //uint {c();return m(KW_UINT);}
1860 //Number {c();return m(KW_NUMBER);}
1864 #line 1865 "tokenizer.yy.c"
1870 #ifndef YY_NO_UNISTD_H
1871 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1872 * down here because we want the user's section 1 to have been scanned first.
1873 * The user has a chance to override it with an option.
1878 #ifndef YY_EXTRA_TYPE
1879 #define YY_EXTRA_TYPE void *
1882 static int yy_init_globals (void );
1884 /* Accessor methods to globals.
1885 These are made visible to non-reentrant scanners for convenience. */
1887 int as3_lex_destroy (void );
1889 int as3_get_debug (void );
1891 void as3_set_debug (int debug_flag );
1893 YY_EXTRA_TYPE as3_get_extra (void );
1895 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1897 FILE *as3_get_in (void );
1899 void as3_set_in (FILE * in_str );
1901 FILE *as3_get_out (void );
1903 void as3_set_out (FILE * out_str );
1905 int as3_get_leng (void );
1907 char *as3_get_text (void );
1909 int as3_get_lineno (void );
1911 void as3_set_lineno (int line_number );
1913 /* Macros after this point can all be overridden by user definitions in
1917 #ifndef YY_SKIP_YYWRAP
1919 extern "C" int as3_wrap (void );
1921 extern int as3_wrap (void );
1925 static void yyunput (int c,char *buf_ptr );
1928 static void yy_flex_strncpy (char *,yyconst char *,int );
1931 #ifdef YY_NEED_STRLEN
1932 static int yy_flex_strlen (yyconst char * );
1938 static int yyinput (void );
1940 static int input (void );
1945 /* Amount of stuff to slurp up with each read. */
1946 #ifndef YY_READ_BUF_SIZE
1947 #define YY_READ_BUF_SIZE 8192
1950 /* Copy whatever the last rule matched to the standard output. */
1952 /* This used to be an fputs(), but since the string might contain NUL's,
1953 * we now use fwrite().
1955 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1958 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1959 * is returned in "result".
1962 #define YY_INPUT(buf,result,max_size) \
1963 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1967 for ( n = 0; n < max_size && \
1968 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1969 buf[n] = (char) c; \
1971 buf[n++] = (char) c; \
1972 if ( c == EOF && ferror( as3_in ) ) \
1973 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1979 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1981 if( errno != EINTR) \
1983 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1994 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1995 * we don't want an extra ';' after the "return" because that will cause
1996 * some compilers to complain about unreachable statements.
1999 #define yyterminate() return YY_NULL
2002 /* Number of entries by which start-condition stack grows. */
2003 #ifndef YY_START_STACK_INCR
2004 #define YY_START_STACK_INCR 25
2007 /* Report a fatal error. */
2008 #ifndef YY_FATAL_ERROR
2009 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2012 /* end tables serialization structures and prototypes */
2014 /* Default declaration of generated scanner - a define so the user can
2015 * easily add parameters.
2018 #define YY_DECL_IS_OURS 1
2020 extern int as3_lex (void);
2022 #define YY_DECL int as3_lex (void)
2023 #endif /* !YY_DECL */
2025 /* Code executed at the beginning of each rule, after as3_text and as3_leng
2028 #ifndef YY_USER_ACTION
2029 #define YY_USER_ACTION
2032 /* Code executed at the end of each rule. */
2034 #define YY_BREAK break;
2037 #define YY_RULE_SETUP \
2038 if ( as3_leng > 0 ) \
2039 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2040 (as3_text[as3_leng - 1] == '\n'); \
2043 /** The main scanner function which does all the work.
2047 register yy_state_type yy_current_state;
2048 register char *yy_cp, *yy_bp;
2049 register int yy_act;
2051 #line 571 "tokenizer.lex"
2055 #line 2056 "tokenizer.yy.c"
2066 (yy_start) = 1; /* first start state */
2074 if ( ! YY_CURRENT_BUFFER ) {
2075 as3_ensure_buffer_stack ();
2076 YY_CURRENT_BUFFER_LVALUE =
2077 as3__create_buffer(as3_in,YY_BUF_SIZE );
2080 as3__load_buffer_state( );
2083 while ( 1 ) /* loops until end-of-file is reached */
2085 yy_cp = (yy_c_buf_p);
2087 /* Support of as3_text. */
2088 *yy_cp = (yy_hold_char);
2090 /* yy_bp points to the position in yy_ch_buf of the start of
2095 yy_current_state = (yy_start);
2096 yy_current_state += YY_AT_BOL();
2100 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2101 if ( yy_accept[yy_current_state] )
2103 (yy_last_accepting_state) = yy_current_state;
2104 (yy_last_accepting_cpos) = yy_cp;
2106 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2108 yy_current_state = (int) yy_def[yy_current_state];
2109 if ( yy_current_state >= 512 )
2110 yy_c = yy_meta[(unsigned int) yy_c];
2112 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2115 while ( yy_current_state != 511 );
2116 yy_cp = (yy_last_accepting_cpos);
2117 yy_current_state = (yy_last_accepting_state);
2120 yy_act = yy_accept[yy_current_state];
2122 YY_DO_BEFORE_ACTION;
2124 do_action: /* This label is used only to access EOF actions. */
2127 { /* beginning of action switch */
2128 case 0: /* must back up */
2129 /* undo the effects of YY_DO_BEFORE_ACTION */
2130 *yy_cp = (yy_hold_char);
2131 yy_cp = (yy_last_accepting_cpos);
2132 yy_current_state = (yy_last_accepting_state);
2133 goto yy_find_action;
2136 /* rule 1 can match eol */
2138 #line 574 "tokenizer.lex"
2139 {l(); /* single line comment */}
2142 /* rule 2 can match eol */
2144 #line 575 "tokenizer.lex"
2145 {l(); /* multi line comment */}
2149 #line 576 "tokenizer.lex"
2150 {syntaxerror("syntax error: unterminated comment", as3_text);}
2153 /* rule 4 can match eol */
2154 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2155 (yy_c_buf_p) = yy_cp -= 1;
2156 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2158 #line 578 "tokenizer.lex"
2159 {l();handleInclude(as3_text, as3_leng, 1);}
2162 /* rule 5 can match eol */
2163 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2164 (yy_c_buf_p) = yy_cp -= 1;
2165 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2167 #line 579 "tokenizer.lex"
2168 {l();handleInclude(as3_text, as3_leng, 0);}
2171 /* rule 6 can match eol */
2173 #line 580 "tokenizer.lex"
2174 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2177 /* rule 7 can match eol */
2179 #line 581 "tokenizer.lex"
2180 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2185 #line 584 "tokenizer.lex"
2186 {c(); BEGIN(INITIAL);return handleregexp();}
2189 /* rule 9 can match eol */
2190 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2191 (yy_c_buf_p) = yy_cp -= 1;
2192 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2194 #line 585 "tokenizer.lex"
2195 {c(); BEGIN(INITIAL);return handlehex();}
2198 /* rule 10 can match eol */
2199 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2200 (yy_c_buf_p) = yy_cp -= 1;
2201 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2203 #line 586 "tokenizer.lex"
2204 {c(); BEGIN(INITIAL);return handlehexfloat();}
2207 /* rule 11 can match eol */
2208 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2209 (yy_c_buf_p) = yy_cp -= 1;
2210 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2212 #line 587 "tokenizer.lex"
2213 {c(); BEGIN(INITIAL);return handleint();}
2216 /* rule 12 can match eol */
2217 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2218 (yy_c_buf_p) = yy_cp -= 1;
2219 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2221 #line 588 "tokenizer.lex"
2222 {c(); BEGIN(INITIAL);return handlefloat();}
2227 #line 591 "tokenizer.lex"
2228 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2232 #line 592 "tokenizer.lex"
2233 {c(); BEGIN(INITIAL); return m('{');}
2237 #line 594 "tokenizer.lex"
2241 /* rule 16 can match eol */
2243 #line 595 "tokenizer.lex"
2247 /* rule 17 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 597 "tokenizer.lex"
2253 {c(); BEGIN(INITIAL);return handlehex();}
2256 /* rule 18 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 598 "tokenizer.lex"
2262 {c(); BEGIN(INITIAL);return handlehexfloat();}
2265 /* rule 19 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 599 "tokenizer.lex"
2271 {c(); BEGIN(INITIAL);return handleint();}
2274 /* rule 20 can match eol */
2275 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2276 (yy_c_buf_p) = yy_cp -= 1;
2277 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2279 #line 600 "tokenizer.lex"
2280 {c(); BEGIN(INITIAL);return handlefloat();}
2284 #line 602 "tokenizer.lex"
2285 {/* for debugging: generates a tokenizer-level error */
2286 syntaxerror("3rr0r");}
2289 /* rule 22 can match eol */
2290 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2291 (yy_c_buf_p) = yy_cp -= 1;
2292 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2294 #line 605 "tokenizer.lex"
2295 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2298 /* rule 23 can match eol */
2299 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2300 (yy_c_buf_p) = yy_cp -= 1;
2301 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2303 #line 606 "tokenizer.lex"
2304 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-2);return T_DO;}
2307 /* rule 24 can match eol */
2308 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2309 (yy_c_buf_p) = yy_cp -= 1;
2310 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2312 #line 607 "tokenizer.lex"
2313 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2316 /* rule 25 can match eol */
2317 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2318 (yy_c_buf_p) = yy_cp -= 1;
2319 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2321 #line 608 "tokenizer.lex"
2322 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2326 #line 609 "tokenizer.lex"
2327 {c();BEGIN(INITIAL);a3_lval.id="";return T_FOR;}
2331 #line 610 "tokenizer.lex"
2332 {c();BEGIN(INITIAL);a3_lval.id="";return T_DO;}
2336 #line 611 "tokenizer.lex"
2337 {c();BEGIN(INITIAL);a3_lval.id="";return T_WHILE;}
2341 #line 612 "tokenizer.lex"
2342 {c();BEGIN(INITIAL);a3_lval.id="";return T_SWITCH;}
2346 #line 614 "tokenizer.lex"
2347 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2351 #line 615 "tokenizer.lex"
2352 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2356 #line 616 "tokenizer.lex"
2357 {c();BEGIN(REGEXPOK);return m(T_NE);}
2361 #line 617 "tokenizer.lex"
2362 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2366 #line 618 "tokenizer.lex"
2367 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2371 #line 619 "tokenizer.lex"
2372 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2376 #line 620 "tokenizer.lex"
2377 {c();BEGIN(REGEXPOK);return m(T_GE);}
2381 #line 621 "tokenizer.lex"
2382 {c();BEGIN(REGEXPOK);return m(T_LE);}
2386 #line 622 "tokenizer.lex"
2387 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2391 #line 623 "tokenizer.lex"
2392 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2396 #line 624 "tokenizer.lex"
2397 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2401 #line 625 "tokenizer.lex"
2402 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2406 #line 626 "tokenizer.lex"
2407 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2411 #line 627 "tokenizer.lex"
2412 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2416 #line 628 "tokenizer.lex"
2417 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2421 #line 629 "tokenizer.lex"
2422 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2426 #line 630 "tokenizer.lex"
2427 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2431 #line 631 "tokenizer.lex"
2432 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2436 #line 632 "tokenizer.lex"
2437 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2441 #line 633 "tokenizer.lex"
2442 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2446 #line 634 "tokenizer.lex"
2447 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2451 #line 635 "tokenizer.lex"
2452 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2456 #line 636 "tokenizer.lex"
2457 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2461 #line 637 "tokenizer.lex"
2462 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2466 #line 638 "tokenizer.lex"
2467 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2471 #line 639 "tokenizer.lex"
2472 {c();BEGIN(REGEXPOK);return m('.');}
2476 #line 640 "tokenizer.lex"
2477 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2481 #line 641 "tokenizer.lex"
2482 {c();BEGIN(REGEXPOK);return m(':');}
2486 #line 642 "tokenizer.lex"
2487 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2491 #line 643 "tokenizer.lex"
2492 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2496 #line 644 "tokenizer.lex"
2497 {c();BEGIN(INITIAL);return m(KW_INTERFACE);}
2501 #line 645 "tokenizer.lex"
2502 {c();BEGIN(INITIAL);return m(KW_NAMESPACE);}
2506 #line 646 "tokenizer.lex"
2507 {c();BEGIN(INITIAL);return m(KW_PROTECTED);}
2511 #line 647 "tokenizer.lex"
2512 {c();BEGIN(INITIAL);return m(KW_UNDEFINED);}
2516 #line 648 "tokenizer.lex"
2517 {c();BEGIN(INITIAL);return m(KW_CONTINUE);}
2521 #line 649 "tokenizer.lex"
2522 {c();BEGIN(INITIAL);return m(KW_OVERRIDE);}
2526 #line 650 "tokenizer.lex"
2527 {c();BEGIN(INITIAL);return m(KW_INTERNAL);}
2531 #line 651 "tokenizer.lex"
2532 {c();BEGIN(INITIAL);return m(KW_FUNCTION);}
2536 #line 652 "tokenizer.lex"
2537 {c();BEGIN(INITIAL);return m(KW_FINALLY);}
2541 #line 653 "tokenizer.lex"
2542 {c();BEGIN(INITIAL);return m(KW_DEFAULT);}
2546 #line 654 "tokenizer.lex"
2547 {c();BEGIN(INITIAL);return m(KW_PACKAGE);}
2551 #line 655 "tokenizer.lex"
2552 {c();BEGIN(INITIAL);return m(KW_PRIVATE);}
2556 #line 656 "tokenizer.lex"
2557 {c();BEGIN(INITIAL);return m(KW_DYNAMIC);}
2561 #line 657 "tokenizer.lex"
2562 {c();BEGIN(INITIAL);return m(KW_EXTENDS);}
2566 #line 658 "tokenizer.lex"
2567 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2571 #line 659 "tokenizer.lex"
2572 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2576 #line 660 "tokenizer.lex"
2577 {c();BEGIN(INITIAL);return m(KW_PUBLIC);}
2581 #line 661 "tokenizer.lex"
2582 {c();BEGIN(INITIAL);return m(KW_NATIVE);}
2586 #line 662 "tokenizer.lex"
2587 {c();BEGIN(INITIAL);return m(KW_STATIC);}
2591 #line 663 "tokenizer.lex"
2592 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2596 #line 664 "tokenizer.lex"
2597 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2601 #line 665 "tokenizer.lex"
2602 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2606 #line 666 "tokenizer.lex"
2607 {c();BEGIN(INITIAL);return m(KW_CLASS);}
2611 #line 667 "tokenizer.lex"
2612 {c();BEGIN(INITIAL);return m(KW_CONST);}
2616 #line 668 "tokenizer.lex"
2617 {c();BEGIN(INITIAL);return m(KW_CATCH);}
2621 #line 669 "tokenizer.lex"
2622 {c();BEGIN(INITIAL);return m(KW_FINAL);}
2626 #line 670 "tokenizer.lex"
2627 {c();BEGIN(INITIAL);return m(KW_FALSE);}
2631 #line 671 "tokenizer.lex"
2632 {c();BEGIN(INITIAL);return m(KW_BREAK);}
2636 #line 672 "tokenizer.lex"
2637 {c();BEGIN(INITIAL);return m(KW_SUPER);}
2641 #line 673 "tokenizer.lex"
2642 {c();BEGIN(INITIAL);return m(KW_EACH);}
2646 #line 674 "tokenizer.lex"
2647 {c();BEGIN(INITIAL);return m(KW_VOID);}
2651 #line 675 "tokenizer.lex"
2652 {c();BEGIN(INITIAL);return m(KW_TRUE);}
2656 #line 676 "tokenizer.lex"
2657 {c();BEGIN(INITIAL);return m(KW_NULL);}
2661 #line 677 "tokenizer.lex"
2662 {c();BEGIN(INITIAL);return m(KW_ELSE);}
2666 #line 678 "tokenizer.lex"
2667 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
2671 #line 679 "tokenizer.lex"
2672 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
2676 #line 680 "tokenizer.lex"
2677 {c();BEGIN(REGEXPOK);return m(KW_USE);}
2681 #line 681 "tokenizer.lex"
2682 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
2686 #line 682 "tokenizer.lex"
2687 {c();BEGIN(INITIAL);return m(KW_GET);}
2691 #line 683 "tokenizer.lex"
2692 {c();BEGIN(INITIAL);return m(KW_SET);}
2696 #line 684 "tokenizer.lex"
2697 {c();BEGIN(INITIAL);return m(KW_VAR);}
2701 #line 685 "tokenizer.lex"
2702 {c();BEGIN(INITIAL);return m(KW_TRY);}
2706 #line 686 "tokenizer.lex"
2707 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
2711 #line 687 "tokenizer.lex"
2712 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
2716 #line 688 "tokenizer.lex"
2717 {c();BEGIN(INITIAL);return m(KW_IF) ;}
2721 #line 689 "tokenizer.lex"
2722 {c();BEGIN(REGEXPOK);return m(KW_AS);}
2726 #line 690 "tokenizer.lex"
2727 {c();BEGIN(INITIAL);return handleIdentifier();}
2731 #line 692 "tokenizer.lex"
2732 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2736 #line 693 "tokenizer.lex"
2737 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2741 #line 694 "tokenizer.lex"
2742 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2746 #line 696 "tokenizer.lex"
2748 char c1=as3_text[0];
2750 buf[0] = as3_text[0];
2752 for(t=1;t<128;t++) {
2753 char c = buf[t]=input();
2754 if(c=='\n' || c==EOF) {
2759 if(c1>='0' && c1<='9')
2760 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2762 syntaxerror("syntax error: %s", buf);
2768 case YY_STATE_EOF(INITIAL):
2769 case YY_STATE_EOF(REGEXPOK):
2770 case YY_STATE_EOF(BEGINNING):
2771 #line 716 "tokenizer.lex"
2773 void*b = leave_file();
2776 as3__delete_buffer(YY_CURRENT_BUFFER);
2779 as3__delete_buffer(YY_CURRENT_BUFFER);
2780 as3__switch_to_buffer(b);
2786 #line 728 "tokenizer.lex"
2789 #line 2790 "tokenizer.yy.c"
2791 case YY_END_OF_BUFFER:
2793 /* Amount of text matched not including the EOB char. */
2794 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2796 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2797 *yy_cp = (yy_hold_char);
2798 YY_RESTORE_YY_MORE_OFFSET
2800 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2802 /* We're scanning a new file or input source. It's
2803 * possible that this happened because the user
2804 * just pointed as3_in at a new source and called
2805 * as3_lex(). If so, then we have to assure
2806 * consistency between YY_CURRENT_BUFFER and our
2807 * globals. Here is the right place to do so, because
2808 * this is the first action (other than possibly a
2809 * back-up) that will match for the new input source.
2811 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2812 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2813 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2816 /* Note that here we test for yy_c_buf_p "<=" to the position
2817 * of the first EOB in the buffer, since yy_c_buf_p will
2818 * already have been incremented past the NUL character
2819 * (since all states make transitions on EOB to the
2820 * end-of-buffer state). Contrast this with the test
2823 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2824 { /* This was really a NUL. */
2825 yy_state_type yy_next_state;
2827 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2829 yy_current_state = yy_get_previous_state( );
2831 /* Okay, we're now positioned to make the NUL
2832 * transition. We couldn't have
2833 * yy_get_previous_state() go ahead and do it
2834 * for us because it doesn't know how to deal
2835 * with the possibility of jamming (and we don't
2836 * want to build jamming into it because then it
2837 * will run more slowly).
2840 yy_next_state = yy_try_NUL_trans( yy_current_state );
2842 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2844 if ( yy_next_state )
2846 /* Consume the NUL. */
2847 yy_cp = ++(yy_c_buf_p);
2848 yy_current_state = yy_next_state;
2854 yy_cp = (yy_last_accepting_cpos);
2855 yy_current_state = (yy_last_accepting_state);
2856 goto yy_find_action;
2860 else switch ( yy_get_next_buffer( ) )
2862 case EOB_ACT_END_OF_FILE:
2864 (yy_did_buffer_switch_on_eof) = 0;
2868 /* Note: because we've taken care in
2869 * yy_get_next_buffer() to have set up
2870 * as3_text, we can now set up
2871 * yy_c_buf_p so that if some total
2872 * hoser (like flex itself) wants to
2873 * call the scanner after we return the
2874 * YY_NULL, it'll still work - another
2875 * YY_NULL will get returned.
2877 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2879 yy_act = YY_STATE_EOF(YY_START);
2885 if ( ! (yy_did_buffer_switch_on_eof) )
2891 case EOB_ACT_CONTINUE_SCAN:
2893 (yytext_ptr) + yy_amount_of_matched_text;
2895 yy_current_state = yy_get_previous_state( );
2897 yy_cp = (yy_c_buf_p);
2898 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2901 case EOB_ACT_LAST_MATCH:
2903 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2905 yy_current_state = yy_get_previous_state( );
2907 yy_cp = (yy_c_buf_p);
2908 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2909 goto yy_find_action;
2916 "fatal flex scanner internal error--no action found" );
2917 } /* end of action switch */
2918 } /* end of scanning one token */
2919 } /* end of as3_lex */
2921 /* yy_get_next_buffer - try to read in a new buffer
2923 * Returns a code representing an action:
2924 * EOB_ACT_LAST_MATCH -
2925 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2926 * EOB_ACT_END_OF_FILE - end of file
2928 static int yy_get_next_buffer (void)
2930 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2931 register char *source = (yytext_ptr);
2932 register int number_to_move, i;
2935 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2937 "fatal flex scanner internal error--end of buffer missed" );
2939 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2940 { /* Don't try to fill the buffer, so this is an EOF. */
2941 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2943 /* We matched a single character, the EOB, so
2944 * treat this as a final EOF.
2946 return EOB_ACT_END_OF_FILE;
2951 /* We matched some text prior to the EOB, first
2954 return EOB_ACT_LAST_MATCH;
2958 /* Try to read more data. */
2960 /* First move last chars to start of buffer. */
2961 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2963 for ( i = 0; i < number_to_move; ++i )
2964 *(dest++) = *(source++);
2966 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2967 /* don't do the read, it's not guaranteed to return an EOF,
2970 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2975 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2977 while ( num_to_read <= 0 )
2978 { /* Not enough room in the buffer - grow it. */
2980 /* just a shorter name for the current buffer */
2981 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2983 int yy_c_buf_p_offset =
2984 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2986 if ( b->yy_is_our_buffer )
2988 int new_size = b->yy_buf_size * 2;
2990 if ( new_size <= 0 )
2991 b->yy_buf_size += b->yy_buf_size / 8;
2993 b->yy_buf_size *= 2;
2995 b->yy_ch_buf = (char *)
2996 /* Include room in for 2 EOB chars. */
2997 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3000 /* Can't grow it, we don't own it. */
3003 if ( ! b->yy_ch_buf )
3005 "fatal error - scanner input buffer overflow" );
3007 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3009 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3014 if ( num_to_read > YY_READ_BUF_SIZE )
3015 num_to_read = YY_READ_BUF_SIZE;
3017 /* Read in more data. */
3018 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3019 (yy_n_chars), (size_t) num_to_read );
3021 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3024 if ( (yy_n_chars) == 0 )
3026 if ( number_to_move == YY_MORE_ADJ )
3028 ret_val = EOB_ACT_END_OF_FILE;
3029 as3_restart(as3_in );
3034 ret_val = EOB_ACT_LAST_MATCH;
3035 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3036 YY_BUFFER_EOF_PENDING;
3041 ret_val = EOB_ACT_CONTINUE_SCAN;
3043 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3044 /* Extend the array by 50%, plus the number we really need. */
3045 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3046 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
3047 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3048 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3051 (yy_n_chars) += number_to_move;
3052 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3053 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3055 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3060 /* yy_get_previous_state - get the state just before the EOB char was reached */
3062 static yy_state_type yy_get_previous_state (void)
3064 register yy_state_type yy_current_state;
3065 register char *yy_cp;
3067 yy_current_state = (yy_start);
3068 yy_current_state += YY_AT_BOL();
3070 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3072 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3073 if ( yy_accept[yy_current_state] )
3075 (yy_last_accepting_state) = yy_current_state;
3076 (yy_last_accepting_cpos) = yy_cp;
3078 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3080 yy_current_state = (int) yy_def[yy_current_state];
3081 if ( yy_current_state >= 512 )
3082 yy_c = yy_meta[(unsigned int) yy_c];
3084 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3087 return yy_current_state;
3090 /* yy_try_NUL_trans - try to make a transition on the NUL character
3093 * next_state = yy_try_NUL_trans( current_state );
3095 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3097 register int yy_is_jam;
3098 register char *yy_cp = (yy_c_buf_p);
3100 register YY_CHAR yy_c = 1;
3101 if ( yy_accept[yy_current_state] )
3103 (yy_last_accepting_state) = yy_current_state;
3104 (yy_last_accepting_cpos) = yy_cp;
3106 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3108 yy_current_state = (int) yy_def[yy_current_state];
3109 if ( yy_current_state >= 512 )
3110 yy_c = yy_meta[(unsigned int) yy_c];
3112 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3113 yy_is_jam = (yy_current_state == 511);
3115 return yy_is_jam ? 0 : yy_current_state;
3118 static void yyunput (int c, register char * yy_bp )
3120 register char *yy_cp;
3122 yy_cp = (yy_c_buf_p);
3124 /* undo effects of setting up as3_text */
3125 *yy_cp = (yy_hold_char);
3127 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3128 { /* need to shift things up to make room */
3129 /* +2 for EOB chars. */
3130 register int number_to_move = (yy_n_chars) + 2;
3131 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3132 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3133 register char *source =
3134 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3136 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3137 *--dest = *--source;
3139 yy_cp += (int) (dest - source);
3140 yy_bp += (int) (dest - source);
3141 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3142 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3144 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3145 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3148 *--yy_cp = (char) c;
3150 (yytext_ptr) = yy_bp;
3151 (yy_hold_char) = *yy_cp;
3152 (yy_c_buf_p) = yy_cp;
3157 static int yyinput (void)
3159 static int input (void)
3165 *(yy_c_buf_p) = (yy_hold_char);
3167 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3169 /* yy_c_buf_p now points to the character we want to return.
3170 * If this occurs *before* the EOB characters, then it's a
3171 * valid NUL; if not, then we've hit the end of the buffer.
3173 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3174 /* This was really a NUL. */
3175 *(yy_c_buf_p) = '\0';
3178 { /* need more input */
3179 int offset = (yy_c_buf_p) - (yytext_ptr);
3182 switch ( yy_get_next_buffer( ) )
3184 case EOB_ACT_LAST_MATCH:
3185 /* This happens because yy_g_n_b()
3186 * sees that we've accumulated a
3187 * token and flags that we need to
3188 * try matching the token before
3189 * proceeding. But for input(),
3190 * there's no matching to consider.
3191 * So convert the EOB_ACT_LAST_MATCH
3192 * to EOB_ACT_END_OF_FILE.
3195 /* Reset buffer status. */
3196 as3_restart(as3_in );
3200 case EOB_ACT_END_OF_FILE:
3205 if ( ! (yy_did_buffer_switch_on_eof) )
3214 case EOB_ACT_CONTINUE_SCAN:
3215 (yy_c_buf_p) = (yytext_ptr) + offset;
3221 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3222 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3223 (yy_hold_char) = *++(yy_c_buf_p);
3225 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3229 #endif /* ifndef YY_NO_INPUT */
3231 /** Immediately switch to a different input stream.
3232 * @param input_file A readable stream.
3234 * @note This function does not reset the start condition to @c INITIAL .
3236 void as3_restart (FILE * input_file )
3239 if ( ! YY_CURRENT_BUFFER ){
3240 as3_ensure_buffer_stack ();
3241 YY_CURRENT_BUFFER_LVALUE =
3242 as3__create_buffer(as3_in,YY_BUF_SIZE );
3245 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3246 as3__load_buffer_state( );
3249 /** Switch to a different input buffer.
3250 * @param new_buffer The new input buffer.
3253 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3256 /* TODO. We should be able to replace this entire function body
3258 * as3_pop_buffer_state();
3259 * as3_push_buffer_state(new_buffer);
3261 as3_ensure_buffer_stack ();
3262 if ( YY_CURRENT_BUFFER == new_buffer )
3265 if ( YY_CURRENT_BUFFER )
3267 /* Flush out information for old buffer. */
3268 *(yy_c_buf_p) = (yy_hold_char);
3269 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3270 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3273 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3274 as3__load_buffer_state( );
3276 /* We don't actually know whether we did this switch during
3277 * EOF (as3_wrap()) processing, but the only time this flag
3278 * is looked at is after as3_wrap() is called, so it's safe
3279 * to go ahead and always set it.
3281 (yy_did_buffer_switch_on_eof) = 1;
3284 static void as3__load_buffer_state (void)
3286 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3287 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3288 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3289 (yy_hold_char) = *(yy_c_buf_p);
3292 /** Allocate and initialize an input buffer state.
3293 * @param file A readable stream.
3294 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3296 * @return the allocated buffer state.
3298 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3302 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3304 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3306 b->yy_buf_size = size;
3308 /* yy_ch_buf has to be 2 characters longer than the size given because
3309 * we need to put in 2 end-of-buffer characters.
3311 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3312 if ( ! b->yy_ch_buf )
3313 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3315 b->yy_is_our_buffer = 1;
3317 as3__init_buffer(b,file );
3322 /** Destroy the buffer.
3323 * @param b a buffer created with as3__create_buffer()
3326 void as3__delete_buffer (YY_BUFFER_STATE b )
3332 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3333 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3335 if ( b->yy_is_our_buffer )
3336 as3_free((void *) b->yy_ch_buf );
3338 as3_free((void *) b );
3341 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3345 #ifdef __THROW /* this is a gnuism */
3346 extern int isatty (int ) __THROW;
3348 extern int isatty (int );
3355 /* Initializes or reinitializes a buffer.
3356 * This function is sometimes called more than once on the same buffer,
3357 * such as during a as3_restart() or at EOF.
3359 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3364 as3__flush_buffer(b );
3366 b->yy_input_file = file;
3367 b->yy_fill_buffer = 1;
3369 /* If b is the current buffer, then as3__init_buffer was _probably_
3370 * called from as3_restart() or through yy_get_next_buffer.
3371 * In that case, we don't want to reset the lineno or column.
3373 if (b != YY_CURRENT_BUFFER){
3374 b->yy_bs_lineno = 1;
3375 b->yy_bs_column = 0;
3378 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3383 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3384 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3387 void as3__flush_buffer (YY_BUFFER_STATE b )
3394 /* We always need two end-of-buffer characters. The first causes
3395 * a transition to the end-of-buffer state. The second causes
3396 * a jam in that state.
3398 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3399 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3401 b->yy_buf_pos = &b->yy_ch_buf[0];
3404 b->yy_buffer_status = YY_BUFFER_NEW;
3406 if ( b == YY_CURRENT_BUFFER )
3407 as3__load_buffer_state( );
3410 /** Pushes the new state onto the stack. The new state becomes
3411 * the current state. This function will allocate the stack
3413 * @param new_buffer The new state.
3416 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3418 if (new_buffer == NULL)
3421 as3_ensure_buffer_stack();
3423 /* This block is copied from as3__switch_to_buffer. */
3424 if ( YY_CURRENT_BUFFER )
3426 /* Flush out information for old buffer. */
3427 *(yy_c_buf_p) = (yy_hold_char);
3428 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3429 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3432 /* Only push if top exists. Otherwise, replace top. */
3433 if (YY_CURRENT_BUFFER)
3434 (yy_buffer_stack_top)++;
3435 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3437 /* copied from as3__switch_to_buffer. */
3438 as3__load_buffer_state( );
3439 (yy_did_buffer_switch_on_eof) = 1;
3442 /** Removes and deletes the top of the stack, if present.
3443 * The next element becomes the new top.
3446 void as3_pop_buffer_state (void)
3448 if (!YY_CURRENT_BUFFER)
3451 as3__delete_buffer(YY_CURRENT_BUFFER );
3452 YY_CURRENT_BUFFER_LVALUE = NULL;
3453 if ((yy_buffer_stack_top) > 0)
3454 --(yy_buffer_stack_top);
3456 if (YY_CURRENT_BUFFER) {
3457 as3__load_buffer_state( );
3458 (yy_did_buffer_switch_on_eof) = 1;
3462 /* Allocates the stack if it does not exist.
3463 * Guarantees space for at least one push.
3465 static void as3_ensure_buffer_stack (void)
3469 if (!(yy_buffer_stack)) {
3471 /* First allocation is just for 2 elements, since we don't know if this
3472 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3473 * immediate realloc on the next call.
3476 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3477 (num_to_alloc * sizeof(struct yy_buffer_state*)
3479 if ( ! (yy_buffer_stack) )
3480 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3482 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3484 (yy_buffer_stack_max) = num_to_alloc;
3485 (yy_buffer_stack_top) = 0;
3489 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3491 /* Increase the buffer to prepare for a possible push. */
3492 int grow_size = 8 /* arbitrary grow size */;
3494 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3495 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3497 num_to_alloc * sizeof(struct yy_buffer_state*)
3499 if ( ! (yy_buffer_stack) )
3500 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3502 /* zero only the new slots.*/
3503 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3504 (yy_buffer_stack_max) = num_to_alloc;
3508 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3509 * @param base the character buffer
3510 * @param size the size in bytes of the character buffer
3512 * @return the newly allocated buffer state object.
3514 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3519 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3520 base[size-1] != YY_END_OF_BUFFER_CHAR )
3521 /* They forgot to leave room for the EOB's. */
3524 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3526 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3528 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3529 b->yy_buf_pos = b->yy_ch_buf = base;
3530 b->yy_is_our_buffer = 0;
3531 b->yy_input_file = 0;
3532 b->yy_n_chars = b->yy_buf_size;
3533 b->yy_is_interactive = 0;
3535 b->yy_fill_buffer = 0;
3536 b->yy_buffer_status = YY_BUFFER_NEW;
3538 as3__switch_to_buffer(b );
3543 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3544 * scan from a @e copy of @a str.
3545 * @param yystr a NUL-terminated string to scan
3547 * @return the newly allocated buffer state object.
3548 * @note If you want to scan bytes that may contain NUL values, then use
3549 * as3__scan_bytes() instead.
3551 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3554 return as3__scan_bytes(yystr,strlen(yystr) );
3557 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3558 * scan from a @e copy of @a bytes.
3559 * @param bytes the byte buffer to scan
3560 * @param len the number of bytes in the buffer pointed to by @a bytes.
3562 * @return the newly allocated buffer state object.
3564 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3571 /* Get memory for full buffer, including space for trailing EOB's. */
3572 n = _yybytes_len + 2;
3573 buf = (char *) as3_alloc(n );
3575 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3577 for ( i = 0; i < _yybytes_len; ++i )
3578 buf[i] = yybytes[i];
3580 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3582 b = as3__scan_buffer(buf,n );
3584 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3586 /* It's okay to grow etc. this buffer, and we should throw it
3587 * away when we're done.
3589 b->yy_is_our_buffer = 1;
3594 #ifndef YY_EXIT_FAILURE
3595 #define YY_EXIT_FAILURE 2
3598 static void yy_fatal_error (yyconst char* msg )
3600 (void) fprintf( stderr, "%s\n", msg );
3601 exit( YY_EXIT_FAILURE );
3604 /* Redefine yyless() so it works in section 3 code. */
3610 /* Undo effects of setting up as3_text. */ \
3611 int yyless_macro_arg = (n); \
3612 YY_LESS_LINENO(yyless_macro_arg);\
3613 as3_text[as3_leng] = (yy_hold_char); \
3614 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3615 (yy_hold_char) = *(yy_c_buf_p); \
3616 *(yy_c_buf_p) = '\0'; \
3617 as3_leng = yyless_macro_arg; \
3621 /* Accessor methods (get/set functions) to struct members. */
3623 /** Get the current line number.
3626 int as3_get_lineno (void)
3632 /** Get the input stream.
3635 FILE *as3_get_in (void)
3640 /** Get the output stream.
3643 FILE *as3_get_out (void)
3648 /** Get the length of the current token.
3651 int as3_get_leng (void)
3656 /** Get the current token.
3660 char *as3_get_text (void)
3665 /** Set the current line number.
3666 * @param line_number
3669 void as3_set_lineno (int line_number )
3672 as3_lineno = line_number;
3675 /** Set the input stream. This does not discard the current
3677 * @param in_str A readable stream.
3679 * @see as3__switch_to_buffer
3681 void as3_set_in (FILE * in_str )
3686 void as3_set_out (FILE * out_str )
3691 int as3_get_debug (void)
3693 return as3__flex_debug;
3696 void as3_set_debug (int bdebug )
3698 as3__flex_debug = bdebug ;
3701 static int yy_init_globals (void)
3703 /* Initialization is the same as for the non-reentrant scanner.
3704 * This function is called from as3_lex_destroy(), so don't allocate here.
3707 (yy_buffer_stack) = 0;
3708 (yy_buffer_stack_top) = 0;
3709 (yy_buffer_stack_max) = 0;
3710 (yy_c_buf_p) = (char *) 0;
3714 /* Defined in main.c */
3719 as3_in = (FILE *) 0;
3720 as3_out = (FILE *) 0;
3723 /* For future reference: Set errno on error, since we are called by
3729 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3730 int as3_lex_destroy (void)
3733 /* Pop the buffer stack, destroying each element. */
3734 while(YY_CURRENT_BUFFER){
3735 as3__delete_buffer(YY_CURRENT_BUFFER );
3736 YY_CURRENT_BUFFER_LVALUE = NULL;
3737 as3_pop_buffer_state();
3740 /* Destroy the stack itself. */
3741 as3_free((yy_buffer_stack) );
3742 (yy_buffer_stack) = NULL;
3744 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3745 * as3_lex() is called, initialization will occur. */
3752 * Internal utility routines.
3756 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3759 for ( i = 0; i < n; ++i )
3764 #ifdef YY_NEED_STRLEN
3765 static int yy_flex_strlen (yyconst char * s )
3768 for ( n = 0; s[n]; ++n )
3775 void *as3_alloc (yy_size_t size )
3777 return (void *) malloc( size );
3780 void *as3_realloc (void * ptr, yy_size_t size )
3782 /* The cast to (char *) in the following accommodates both
3783 * implementations that use char* generic pointers, and those
3784 * that use void* generic pointers. It works with the latter
3785 * because both ANSI C and C++ allow castless assignment from
3786 * any pointer type to void*, and deal with argument conversions
3787 * as though doing an assignment.
3789 return (void *) realloc( (char *) ptr, size );
3792 void as3_free (void * ptr )
3794 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3797 #define YYTABLES_NAME "yytables"
3799 #line 728 "tokenizer.lex"
3808 static char mbuf[256];
3809 char*token2string(enum yytokentype nr, YYSTYPE v)
3812 char*s = malloc(v.str.len+10);
3813 strcpy(s, "<string>");
3814 memcpy(s+8, v.str.str, v.str.len);
3815 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
3818 else if(nr==T_REGEXP) {
3819 char*s = malloc(strlen(v.regexp.pattern)+10);
3820 sprintf(s, "<regexp>%s", v.regexp.pattern);
3823 else if(nr==T_IDENTIFIER) {
3824 char*s = malloc(strlen(v.id)+10);
3825 sprintf(s, "<ID>%s", v.id);
3828 else if(nr==T_INT) return "<int>";
3829 else if(nr==T_UINT) return "<uint>";
3830 else if(nr==T_BYTE) return "<byte>";
3831 else if(nr==T_FLOAT) return "<float>";
3832 else if(nr==T_EOF) return "***END***";
3833 else if(nr==T_GE) return ">=";
3834 else if(nr==T_LE) return "<=";
3835 else if(nr==T_MINUSMINUS) return "--";
3836 else if(nr==T_PLUSPLUS) return "++";
3837 else if(nr==KW_IMPLEMENTS) return "implements";
3838 else if(nr==KW_INTERFACE) return "interface";
3839 else if(nr==KW_NAMESPACE) return "namespace";
3840 else if(nr==KW_PROTECTED) return "protected";
3841 else if(nr==KW_OVERRIDE) return "override";
3842 else if(nr==KW_INTERNAL) return "internal";
3843 else if(nr==KW_FUNCTION) return "function";
3844 else if(nr==KW_PACKAGE) return "package";
3845 else if(nr==KW_PRIVATE) return "private";
3846 else if(nr==KW_BOOLEAN) return "Boolean";
3847 else if(nr==KW_DYNAMIC) return "dynamic";
3848 else if(nr==KW_EXTENDS) return "extends";
3849 else if(nr==KW_PUBLIC) return "public";
3850 else if(nr==KW_NATIVE) return "native";
3851 else if(nr==KW_STATIC) return "static";
3852 else if(nr==KW_IMPORT) return "import";
3853 else if(nr==KW_NUMBER) return "number";
3854 else if(nr==KW_CLASS) return "class";
3855 else if(nr==KW_CONST) return "const";
3856 else if(nr==KW_FINAL) return "final";
3857 else if(nr==KW_FALSE) return "False";
3858 else if(nr==KW_TRUE) return "True";
3859 else if(nr==KW_UINT) return "uint";
3860 else if(nr==KW_NULL) return "null";
3861 else if(nr==KW_ELSE) return "else";
3862 else if(nr==KW_USE) return "use";
3863 else if(nr==KW_INT) return "int";
3864 else if(nr==KW_NEW) return "new";
3865 else if(nr==KW_GET) return "get";
3866 else if(nr==KW_SET) return "set";
3867 else if(nr==KW_VAR) return "var";
3868 else if(nr==KW_IS) return "is";
3869 else if(nr==KW_AS) return "as";
3871 sprintf(mbuf, "%d", nr);
3876 void initialize_scanner()