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 112
383 #define YY_END_OF_BUFFER 113
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[515] =
393 0, 0, 0, 0, 0, 0, 113, 111, 16, 16,
394 109, 111, 109, 109, 109, 111, 109, 110, 108, 109,
395 109, 56, 109, 111, 111, 111, 58, 109, 109, 109,
396 107, 107, 108, 109, 107, 107, 107, 107, 107, 107,
397 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
398 107, 14, 109, 108, 111, 107, 109, 109, 56, 109,
399 111, 111, 111, 13, 33, 0, 6, 0, 107, 45,
400 31, 0, 0, 46, 40, 41, 39, 43, 55, 0,
401 3, 0, 44, 19, 19, 0, 0, 0, 0, 57,
402 0, 51, 38, 36, 37, 53, 0, 107, 0, 107,
404 42, 106, 107, 107, 107, 107, 107, 28, 107, 107,
405 107, 107, 107, 107, 107, 107, 107, 105, 107, 104,
406 103, 107, 107, 107, 107, 107, 107, 107, 107, 107,
407 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
408 107, 107, 47, 32, 0, 104, 0, 0, 0, 0,
409 0, 3, 8, 44, 0, 11, 11, 0, 0, 0,
410 34, 107, 54, 20, 0, 0, 0, 0, 0, 1,
411 0, 0, 0, 0, 0, 0, 49, 35, 48, 52,
412 0, 0, 0, 0, 0, 21, 107, 107, 107, 107,
413 107, 107, 107, 107, 107, 107, 107, 107, 107, 27,
415 107, 99, 107, 107, 107, 107, 107, 98, 107, 107,
416 107, 107, 107, 107, 107, 100, 107, 107, 107, 107,
417 107, 102, 107, 107, 97, 101, 107, 107, 107, 15,
418 107, 0, 11, 11, 0, 0, 12, 8, 0, 0,
419 0, 8, 0, 8, 8, 0, 0, 0, 0, 0,
420 0, 0, 2, 0, 18, 0, 17, 17, 0, 0,
421 50, 0, 0, 0, 0, 107, 95, 107, 107, 107,
422 107, 107, 107, 107, 90, 94, 107, 107, 107, 107,
423 107, 107, 107, 107, 107, 107, 93, 107, 107, 107,
424 107, 107, 107, 107, 107, 107, 107, 92, 107, 107,
426 91, 107, 96, 107, 12, 0, 0, 0, 0, 8,
427 0, 8, 0, 0, 2, 0, 8, 8, 10, 0,
428 9, 9, 0, 2, 22, 0, 24, 0, 0, 0,
429 88, 85, 83, 84, 107, 107, 107, 107, 107, 87,
430 86, 107, 107, 107, 107, 107, 107, 107, 107, 107,
431 107, 107, 107, 107, 107, 89, 107, 82, 107, 107,
432 29, 107, 10, 0, 9, 9, 0, 0, 2, 0,
433 8, 8, 0, 23, 0, 0, 107, 107, 75, 107,
434 107, 107, 107, 107, 80, 107, 107, 107, 107, 78,
435 107, 107, 107, 107, 77, 76, 79, 30, 81, 107,
437 107, 8, 0, 0, 0, 107, 70, 73, 74, 69,
438 107, 107, 107, 107, 107, 107, 107, 71, 72, 107,
439 107, 107, 8, 0, 0, 25, 65, 68, 107, 107,
440 107, 67, 107, 66, 107, 107, 0, 0, 26, 107,
441 107, 61, 62, 63, 64, 0, 0, 0, 0, 0,
442 0, 60, 59, 0, 5, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
444 0, 0, 0, 0, 0, 4, 0, 0, 4, 0,
445 5, 0, 0, 0, 0, 7, 0, 24, 5, 24,
446 24, 0, 0, 0, 7, 0, 23, 5, 23, 23,
448 0, 0, 0, 0, 0, 25, 5, 25, 25, 26,
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, 31, 28, 28,
462 28, 28, 28, 32, 28, 28, 28, 28, 28, 28,
463 33, 34, 35, 36, 37, 8, 38, 39, 40, 41,
465 42, 43, 44, 45, 46, 28, 47, 48, 49, 50,
466 51, 52, 28, 53, 54, 55, 56, 57, 58, 59,
467 60, 28, 61, 62, 63, 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, 64, 8, 8, 8,
474 65, 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, 66, 8,
480 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
484 static yyconst flex_int32_t yy_meta[67] =
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, 7, 4, 8, 4, 4, 9, 7, 7, 7,
490 7, 10, 7, 7, 7, 7, 7, 7, 7, 7,
491 7, 7, 7, 7, 7, 7, 7, 7, 11, 7,
495 static yyconst flex_int16_t yy_base[548] =
497 0, 527, 51, 58, 65, 72, 568, 2903, 2903, 2903,
498 542, 88, 0, 540, 548, 86, 2903, 2903, 533, 80,
499 82, 88, 96, 105, 110, 115, 530, 118, 519, 75,
500 136, 158, 2903, 514, 168, 174, 180, 107, 142, 154,
501 156, 186, 200, 168, 161, 201, 212, 221, 207, 65,
502 175, 2903, 72, 2903, 460, 235, 272, 278, 284, 131,
503 289, 294, 299, 2903, 495, 95, 2903, 516, 0, 2903,
504 2903, 132, 514, 2903, 2903, 2903, 2903, 2903, 498, 166,
505 323, 150, 2903, 2903, 308, 325, 255, 473, 430, 2903,
506 439, 446, 2903, 439, 2903, 207, 352, 284, 357, 332,
508 2903, 326, 330, 331, 351, 353, 369, 357, 368, 383,
509 376, 384, 390, 395, 399, 406, 410, 411, 415, 422,
510 430, 431, 436, 437, 451, 452, 458, 459, 457, 463,
511 475, 477, 484, 483, 489, 495, 500, 512, 504, 518,
512 524, 523, 2903, 2903, 390, 539, 372, 562, 577, 580,
513 196, 605, 637, 228, 245, 2903, 590, 595, 605, 433,
514 2903, 0, 2903, 2903, 627, 642, 697, 423, 330, 2903,
515 613, 628, 716, 782, 420, 407, 2903, 2903, 2903, 404,
516 808, 375, 374, 355, 365, 538, 623, 778, 783, 771,
517 802, 776, 790, 804, 816, 821, 832, 827, 820, 838,
519 839, 844, 846, 850, 858, 865, 864, 866, 870, 881,
520 888, 889, 890, 882, 904, 905, 906, 920, 921, 926,
521 937, 932, 944, 949, 951, 955, 960, 956, 967, 2903,
522 971, 631, 2903, 1003, 638, 391, 2903, 0, 1025, 1031,
523 1051, 371, 1059, 0, 1075, 1016, 1027, 1135, 1201, 272,
524 1080, 1227, 357, 1237, 2903, 0, 2903, 0, 320, 341,
525 2903, 0, 313, 319, 305, 1029, 1041, 1206, 1207, 1221,
526 1050, 1222, 1233, 1184, 1049, 1239, 1241, 1255, 1247, 1256,
527 1267, 1248, 1262, 1274, 1278, 1282, 1283, 1290, 1297, 1298,
528 1302, 1309, 1313, 1321, 1320, 1314, 1332, 1336, 1337, 1338,
530 1344, 1355, 1353, 1360, 2903, 1357, 1392, 1434, 1500, 0,
531 1519, 1566, 1526, 1632, 325, 1637, 1671, 0, 2903, 0,
532 2903, 0, 1642, 2903, 2903, 312, 2903, 0, 282, 275,
533 1367, 1369, 1371, 1499, 1501, 1506, 1611, 1612, 1700, 1508,
534 1616, 1701, 1705, 1707, 1719, 1723, 1617, 1730, 1737, 1738,
535 1739, 1753, 1757, 1761, 1762, 1712, 1769, 1768, 1780, 1784,
536 1786, 1788, 2903, 0, 2903, 0, 1839, 1844, 0, 1849,
537 0, 0, 286, 2903, 273, 266, 1818, 1824, 1819, 1842,
538 1833, 1838, 1853, 1854, 1859, 1868, 1861, 1873, 1875, 1877,
539 1879, 1891, 1893, 1898, 1899, 1900, 1907, 1914, 1916, 1918,
541 1932, 282, 255, 235, 0, 1933, 1925, 1934, 1939, 1940,
542 1948, 1954, 1955, 1969, 1962, 1974, 1973, 1978, 1980, 1985,
543 1992, 2042, 246, 220, 0, 2903, 2000, 2001, 2012, 2017,
544 2024, 2023, 2031, 2038, 2040, 2046, 2096, 211, 2903, 2058,
545 2067, 2066, 2073, 2075, 2082, 700, 141, 2133, 2137, 206,
546 160, 2105, 2106, 704, 920, 945, 1245, 237, 1421, 148,
547 177, 2147, 2159, 2171, 1425, 2183, 2194, 2199, 2204, 2208,
548 2212, 2216, 2220, 314, 2054, 2224, 114, 2228, 2264, 2268,
549 2273, 2307, 2284, 2288, 2292, 2903, 361, 2277, 2296, 2300,
550 2342, 2373, 2346, 2352, 79, 362, 2356, 2360, 2400, 2408,
552 2412, 2416, 2420, 2465, 2531, 2424, 2428, 2438, 2442, 2446,
553 2451, 2457, 2490, 2903, 2597, 2602, 2613, 2624, 2634, 2645,
554 2656, 2662, 2673, 2683, 2694, 2701, 2712, 2723, 2733, 2740,
555 2751, 2762, 2768, 2773, 2784, 2795, 2806, 2811, 2822, 2827,
556 2832, 2837, 2848, 2858, 2869, 2880, 2891
559 static yyconst flex_int16_t yy_def[548] =
561 514, 1, 1, 1, 1, 1, 514, 514, 514, 514,
562 514, 515, 516, 514, 514, 517, 514, 514, 514, 514,
563 514, 514, 514, 518, 518, 518, 514, 514, 514, 514,
564 519, 519, 514, 514, 519, 519, 519, 37, 37, 37,
565 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
566 37, 514, 514, 514, 514, 37, 514, 514, 514, 520,
567 521, 521, 521, 514, 514, 515, 514, 515, 522, 514,
568 514, 517, 517, 514, 514, 514, 514, 514, 514, 523,
569 524, 525, 514, 514, 523, 518, 514, 526, 514, 514,
570 514, 514, 514, 514, 514, 514, 514, 37, 514, 37,
572 514, 37, 37, 37, 37, 37, 37, 37, 37, 37,
573 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
574 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
575 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
576 37, 37, 514, 514, 514, 37, 514, 527, 527, 528,
577 520, 529, 525, 520, 520, 514, 528, 521, 514, 530,
578 514, 522, 514, 514, 524, 524, 531, 514, 525, 514,
579 523, 523, 514, 526, 514, 514, 514, 514, 514, 514,
580 514, 514, 514, 514, 514, 37, 37, 37, 37, 37,
581 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
583 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
584 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
585 37, 37, 37, 37, 37, 37, 37, 37, 37, 514,
586 37, 532, 514, 532, 514, 533, 514, 534, 529, 529,
587 535, 534, 529, 153, 520, 528, 528, 514, 530, 536,
588 524, 531, 514, 524, 514, 173, 514, 173, 514, 514,
589 514, 537, 514, 514, 514, 37, 37, 37, 37, 37,
590 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
591 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
592 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
594 37, 37, 37, 37, 514, 532, 532, 514, 533, 534,
595 538, 514, 529, 535, 534, 529, 514, 245, 514, 248,
596 514, 248, 524, 514, 514, 514, 514, 539, 514, 514,
597 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
598 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
599 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
600 37, 37, 514, 308, 514, 308, 529, 529, 534, 529,
601 312, 317, 514, 514, 514, 514, 37, 37, 37, 37,
602 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
603 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
605 37, 245, 514, 514, 540, 37, 37, 37, 37, 37,
606 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
607 37, 37, 312, 514, 541, 514, 37, 37, 37, 37,
608 37, 37, 37, 37, 37, 37, 542, 543, 514, 37,
609 37, 37, 37, 37, 37, 544, 545, 546, 544, 543,
610 543, 37, 37, 514, 514, 544, 544, 545, 514, 545,
611 547, 547, 546, 546, 544, 546, 514, 514, 544, 544,
612 544, 544, 544, 543, 514, 514, 547, 514, 514, 544,
613 547, 544, 544, 544, 544, 514, 543, 514, 514, 544,
614 544, 544, 544, 544, 543, 543, 514, 514, 544, 544,
616 544, 544, 544, 544, 544, 514, 514, 544, 544, 514,
617 514, 544, 544, 0, 514, 514, 514, 514, 514, 514,
618 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
619 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
620 514, 514, 514, 514, 514, 514, 514
623 static yyconst flex_int16_t yy_nxt[2970] =
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 32, 31, 17, 8, 33, 34, 31, 35, 36, 37,
629 38, 39, 40, 41, 31, 42, 31, 31, 31, 43,
630 44, 45, 46, 47, 48, 49, 50, 51, 31, 31,
631 52, 53, 54, 8, 8, 55, 57, 58, 59, 60,
632 61, 62, 63, 57, 58, 59, 60, 61, 62, 63,
633 57, 58, 59, 60, 61, 62, 63, 57, 58, 59,
634 60, 61, 62, 63, 67, 75, 143, 67, 77, 95,
636 96, 67, 139, 56, 76, 79, 78, 80, 80, 80,
637 81, 64, 98, 451, 82, 140, 461, 56, 64, 73,
638 83, 68, 85, 91, 86, 86, 86, 85, 68, 86,
639 86, 86, 85, 144, 86, 86, 86, 97, 97, 97,
640 97, 92, 93, 67, 98, 152, 87, 459, 107, 153,
641 458, 87, 170, 170, 98, 154, 87, 108, 99, 97,
642 97, 97, 97, 88, 155, 73, 109, 89, 514, 97,
643 97, 97, 97, 514, 460, 97, 97, 97, 97, 110,
644 99, 97, 97, 97, 97, 80, 80, 80, 459, 111,
645 99, 113, 98, 98, 474, 100, 99, 117, 126, 114,
647 112, 98, 99, 98, 115, 98, 98, 87, 98, 116,
648 477, 98, 98, 127, 238, 98, 128, 104, 98, 141,
649 142, 102, 98, 98, 125, 98, 103, 105, 118, 155,
650 106, 179, 180, 98, 119, 120, 98, 122, 98, 121,
651 451, 123, 129, 459, 98, 451, 238, 98, 98, 98,
652 98, 98, 438, 130, 98, 124, 137, 98, 98, 98,
653 138, 155, 98, 245, 168, 134, 131, 132, 98, 133,
654 460, 98, 98, 135, 172, 172, 172, 118, 155, 425,
655 136, 424, 98, 119, 146, 98, 323, 75, 121, 147,
656 324, 148, 149, 149, 77, 147, 76, 148, 149, 149,
658 423, 79, 78, 150, 150, 150, 157, 405, 158, 158,
659 158, 157, 404, 158, 158, 158, 157, 403, 158, 158,
660 158, 98, 376, 165, 165, 165, 165, 171, 171, 171,
661 159, 98, 170, 170, 98, 159, 375, 167, 373, 486,
662 159, 168, 85, 254, 86, 86, 86, 160, 487, 87,
663 330, 89, 514, 97, 97, 97, 97, 514, 181, 181,
664 181, 181, 186, 98, 329, 328, 87, 98, 98, 98,
665 326, 187, 325, 98, 99, 254, 98, 98, 98, 98,
666 98, 98, 98, 514, 188, 189, 495, 495, 190, 254,
667 98, 232, 232, 232, 98, 496, 474, 182, 98, 183,
669 98, 98, 191, 98, 98, 98, 98, 98, 308, 265,
670 184, 192, 264, 98, 185, 98, 193, 194, 98, 98,
671 98, 98, 195, 98, 263, 262, 98, 98, 261, 196,
672 98, 98, 98, 98, 98, 260, 98, 198, 197, 259,
673 98, 254, 98, 98, 199, 98, 98, 98, 98, 98,
674 248, 200, 98, 98, 230, 201, 98, 98, 98, 98,
675 98, 98, 98, 178, 202, 98, 203, 98, 98, 98,
676 177, 176, 98, 98, 98, 204, 205, 98, 98, 206,
677 98, 98, 175, 98, 209, 207, 98, 98, 98, 98,
678 173, 211, 210, 208, 98, 98, 98, 214, 98, 98,
680 98, 98, 98, 212, 98, 98, 98, 98, 213, 98,
681 98, 215, 217, 98, 98, 163, 72, 216, 66, 161,
682 98, 98, 98, 145, 98, 98, 98, 98, 218, 219,
683 98, 98, 98, 98, 98, 220, 98, 98, 101, 98,
684 224, 98, 98, 94, 221, 98, 223, 98, 222, 98,
685 98, 98, 90, 225, 98, 98, 226, 74, 71, 98,
686 98, 98, 98, 227, 70, 98, 65, 514, 98, 228,
687 98, 98, 56, 98, 98, 98, 98, 229, 231, 234,
688 514, 149, 149, 149, 514, 98, 98, 514, 98, 98,
689 514, 514, 204, 205, 234, 514, 149, 149, 149, 150,
691 150, 150, 514, 235, 514, 239, 239, 165, 239, 246,
692 246, 246, 157, 514, 158, 158, 158, 514, 235, 241,
693 236, 159, 514, 242, 247, 247, 247, 165, 165, 165,
694 165, 159, 171, 171, 171, 514, 159, 514, 243, 170,
695 170, 250, 165, 165, 165, 165, 514, 172, 172, 172,
696 232, 232, 232, 514, 87, 514, 250, 307, 307, 307,
697 266, 514, 514, 244, 244, 244, 244, 244, 244, 514,
698 98, 514, 235, 98, 244, 244, 244, 244, 244, 244,
699 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
700 244, 244, 244, 244, 244, 244, 244, 251, 251, 251,
702 251, 454, 455, 454, 456, 454, 455, 454, 454, 514,
703 514, 252, 514, 514, 514, 253, 255, 255, 255, 255,
704 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
705 255, 255, 255, 255, 255, 256, 256, 256, 255, 255,
706 255, 255, 256, 256, 256, 256, 256, 256, 255, 514,
707 255, 255, 514, 256, 256, 256, 256, 256, 256, 256,
708 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
709 256, 256, 256, 256, 256, 256, 255, 255, 255, 255,
710 255, 255, 257, 257, 257, 257, 257, 257, 257, 257,
711 257, 257, 257, 257, 257, 257, 257, 257, 257, 258,
713 257, 514, 514, 514, 257, 257, 257, 257, 98, 181,
714 181, 181, 181, 272, 257, 98, 257, 257, 98, 267,
715 98, 98, 268, 98, 269, 98, 98, 98, 98, 514,
716 98, 273, 514, 98, 514, 514, 514, 98, 514, 98,
717 98, 274, 257, 257, 257, 257, 257, 257, 182, 98,
718 183, 98, 98, 98, 98, 270, 271, 279, 98, 514,
719 275, 184, 276, 98, 98, 185, 98, 98, 98, 98,
720 98, 98, 514, 277, 98, 98, 98, 98, 280, 98,
721 278, 98, 98, 98, 514, 98, 98, 98, 98, 98,
722 514, 98, 514, 281, 98, 98, 282, 98, 514, 284,
724 98, 98, 98, 98, 283, 98, 285, 98, 98, 286,
725 514, 98, 98, 98, 98, 98, 98, 287, 98, 98,
726 98, 454, 455, 454, 454, 98, 98, 98, 98, 292,
727 514, 98, 98, 288, 289, 98, 98, 98, 98, 98,
728 98, 98, 98, 98, 291, 290, 454, 455, 454, 456,
729 514, 98, 98, 98, 98, 98, 98, 98, 98, 293,
730 294, 295, 514, 98, 514, 514, 514, 98, 98, 98,
731 98, 98, 514, 98, 98, 296, 297, 514, 298, 98,
732 514, 98, 98, 514, 98, 299, 98, 98, 98, 514,
733 300, 98, 98, 98, 98, 514, 98, 98, 98, 98,
735 301, 98, 98, 302, 98, 98, 98, 98, 98, 514,
736 98, 303, 514, 514, 98, 514, 514, 98, 304, 514,
737 514, 98, 306, 306, 306, 239, 239, 165, 239, 514,
738 514, 239, 239, 165, 239, 246, 246, 246, 514, 311,
739 514, 514, 514, 312, 235, 311, 247, 247, 247, 312,
740 514, 313, 313, 251, 313, 514, 514, 159, 243, 239,
741 239, 165, 239, 514, 243, 314, 98, 514, 514, 315,
742 514, 514, 514, 311, 514, 331, 98, 317, 98, 98,
743 165, 165, 165, 165, 316, 514, 98, 98, 98, 514,
744 514, 98, 243, 238, 250, 335, 98, 98, 514, 98,
746 98, 318, 318, 318, 318, 318, 318, 514, 155, 514,
747 514, 514, 318, 318, 318, 318, 318, 318, 318, 318,
748 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
749 318, 318, 318, 318, 318, 319, 319, 319, 319, 319,
750 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
751 319, 319, 319, 319, 320, 320, 320, 319, 319, 319,
752 319, 320, 320, 320, 320, 320, 320, 319, 514, 319,
753 319, 514, 320, 320, 320, 320, 320, 320, 320, 320,
754 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
755 320, 320, 320, 320, 320, 319, 319, 319, 319, 319,
757 319, 321, 321, 321, 321, 321, 321, 321, 321, 321,
758 321, 321, 321, 321, 321, 321, 321, 321, 322, 321,
759 514, 98, 514, 321, 321, 321, 321, 251, 251, 251,
760 251, 98, 338, 321, 98, 321, 321, 165, 165, 165,
761 165, 252, 514, 98, 98, 253, 454, 455, 454, 456,
762 332, 250, 514, 98, 98, 168, 98, 98, 98, 98,
763 333, 321, 321, 321, 321, 321, 321, 514, 98, 98,
764 98, 98, 98, 514, 514, 334, 98, 336, 98, 514,
765 98, 514, 514, 98, 98, 98, 98, 337, 98, 98,
766 339, 98, 98, 98, 341, 98, 340, 98, 98, 345,
768 344, 514, 98, 98, 98, 98, 98, 514, 343, 98,
769 342, 98, 98, 514, 98, 98, 514, 98, 514, 98,
770 98, 98, 514, 514, 98, 98, 346, 98, 98, 98,
771 98, 347, 98, 98, 350, 351, 514, 98, 348, 98,
772 98, 514, 349, 352, 98, 98, 98, 98, 98, 98,
773 98, 98, 98, 357, 353, 514, 98, 98, 98, 98,
774 98, 98, 514, 98, 98, 354, 355, 98, 98, 98,
775 98, 98, 356, 98, 98, 98, 306, 306, 306, 98,
776 360, 98, 98, 98, 98, 98, 98, 359, 98, 358,
777 98, 98, 98, 514, 98, 514, 361, 98, 235, 514,
779 98, 514, 98, 98, 98, 98, 98, 98, 98, 514,
780 98, 307, 307, 307, 98, 362, 98, 98, 98, 98,
781 514, 98, 475, 476, 475, 475, 478, 479, 478, 480,
782 514, 514, 514, 514, 363, 363, 363, 363, 363, 363,
783 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
784 363, 363, 363, 364, 364, 364, 363, 363, 363, 363,
785 364, 364, 364, 364, 364, 364, 363, 514, 363, 363,
786 514, 364, 364, 364, 364, 364, 364, 364, 364, 364,
787 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
788 364, 364, 364, 364, 363, 363, 363, 363, 363, 363,
790 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
791 365, 365, 365, 365, 365, 365, 365, 366, 365, 514,
792 514, 254, 365, 365, 365, 365, 239, 239, 165, 239,
793 514, 514, 365, 368, 365, 365, 98, 369, 98, 514,
794 311, 514, 514, 98, 312, 98, 98, 514, 98, 98,
795 377, 98, 370, 378, 514, 98, 98, 514, 98, 243,
796 365, 365, 365, 365, 365, 365, 165, 165, 165, 165,
797 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
798 250, 166, 166, 166, 166, 166, 166, 166, 166, 166,
799 166, 166, 371, 371, 371, 371, 371, 371, 166, 166,
801 166, 166, 166, 371, 371, 371, 371, 371, 371, 371,
802 371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
803 371, 371, 371, 371, 371, 371, 166, 166, 166, 166,
804 166, 166, 313, 313, 251, 313, 514, 239, 239, 165,
805 239, 514, 165, 165, 165, 165, 314, 514, 98, 98,
806 315, 311, 379, 98, 98, 317, 250, 380, 98, 98,
807 253, 98, 98, 382, 98, 316, 98, 98, 389, 514,
808 243, 239, 239, 165, 239, 240, 240, 240, 240, 240,
809 240, 240, 240, 240, 240, 311, 240, 240, 240, 312,
810 240, 240, 240, 240, 240, 240, 240, 372, 372, 372,
812 372, 372, 372, 240, 243, 240, 240, 240, 372, 372,
813 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
814 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
815 372, 240, 240, 240, 240, 240, 240, 98, 98, 514,
816 381, 514, 98, 514, 98, 514, 383, 98, 98, 98,
817 98, 98, 98, 384, 98, 98, 98, 98, 514, 98,
818 98, 385, 98, 514, 514, 387, 98, 98, 386, 98,
819 98, 390, 388, 98, 98, 98, 98, 98, 514, 514,
820 98, 392, 391, 514, 98, 98, 98, 98, 98, 98,
821 98, 514, 394, 393, 98, 514, 395, 514, 98, 98,
823 98, 397, 514, 98, 98, 98, 98, 98, 98, 98,
824 396, 98, 98, 398, 514, 98, 98, 98, 98, 98,
825 514, 98, 399, 98, 514, 98, 514, 98, 401, 400,
826 98, 98, 514, 98, 98, 98, 98, 514, 98, 239,
827 239, 165, 239, 514, 239, 239, 165, 239, 514, 239,
828 239, 165, 239, 311, 514, 98, 98, 242, 311, 514,
829 514, 98, 315, 311, 514, 98, 98, 402, 98, 98,
830 98, 98, 243, 406, 98, 98, 514, 243, 407, 98,
831 98, 408, 243, 98, 514, 98, 409, 514, 98, 98,
832 98, 98, 98, 514, 514, 412, 98, 410, 414, 514,
834 98, 98, 514, 411, 98, 98, 98, 413, 98, 98,
835 415, 98, 416, 514, 98, 98, 98, 514, 98, 417,
836 98, 514, 98, 98, 98, 98, 98, 98, 98, 98,
837 98, 514, 418, 514, 419, 98, 98, 98, 98, 514,
838 98, 98, 514, 98, 98, 98, 98, 98, 98, 98,
839 98, 98, 420, 98, 98, 98, 514, 98, 514, 514,
840 514, 98, 98, 98, 98, 98, 98, 421, 98, 98,
841 98, 98, 98, 422, 427, 98, 98, 98, 514, 98,
842 98, 98, 98, 98, 98, 98, 98, 98, 514, 98,
843 98, 98, 98, 514, 514, 98, 430, 428, 98, 98,
845 514, 98, 98, 429, 98, 98, 98, 514, 431, 432,
846 98, 98, 98, 433, 434, 98, 98, 98, 514, 98,
847 98, 98, 98, 98, 98, 98, 435, 98, 98, 98,
848 98, 514, 98, 436, 514, 98, 514, 98, 98, 98,
849 514, 514, 98, 437, 437, 437, 437, 98, 98, 98,
850 98, 98, 514, 514, 98, 475, 476, 475, 475, 98,
851 98, 98, 98, 514, 98, 442, 440, 441, 98, 514,
852 98, 98, 443, 98, 98, 98, 514, 98, 98, 98,
853 444, 98, 514, 98, 514, 98, 445, 98, 98, 98,
854 98, 514, 98, 98, 514, 98, 98, 437, 437, 437,
856 437, 514, 447, 98, 98, 98, 514, 448, 98, 453,
857 98, 452, 98, 98, 98, 514, 98, 98, 449, 98,
858 98, 514, 98, 98, 514, 98, 514, 514, 514, 98,
859 514, 514, 98, 461, 462, 455, 462, 463, 467, 468,
860 467, 469, 98, 98, 465, 514, 514, 514, 462, 455,
861 462, 462, 98, 98, 514, 98, 98, 514, 459, 461,
862 462, 455, 462, 463, 514, 514, 466, 514, 514, 514,
863 465, 461, 462, 455, 462, 463, 514, 470, 514, 471,
864 477, 514, 465, 461, 462, 481, 462, 463, 514, 514,
865 472, 514, 466, 514, 473, 467, 468, 467, 467, 514,
867 467, 468, 467, 467, 466, 467, 468, 467, 469, 454,
868 455, 454, 456, 454, 455, 454, 456, 454, 455, 454,
869 456, 454, 455, 454, 456, 475, 476, 475, 475, 478,
870 479, 478, 478, 514, 182, 514, 183, 514, 514, 182,
871 514, 183, 514, 514, 470, 514, 471, 184, 514, 514,
872 514, 185, 184, 514, 514, 514, 185, 472, 482, 514,
873 514, 473, 483, 514, 485, 478, 479, 478, 478, 478,
874 479, 478, 480, 484, 462, 455, 462, 462, 454, 455,
875 454, 454, 514, 514, 459, 454, 455, 454, 456, 454,
876 455, 454, 456, 454, 455, 454, 456, 454, 455, 454,
878 454, 454, 455, 454, 456, 514, 477, 327, 488, 489,
879 488, 490, 491, 491, 491, 491, 491, 491, 491, 491,
880 491, 491, 491, 491, 491, 491, 514, 514, 514, 491,
881 491, 491, 491, 493, 514, 514, 492, 494, 514, 491,
882 514, 491, 491, 454, 455, 454, 456, 454, 455, 454,
883 456, 514, 514, 454, 455, 454, 456, 454, 455, 454,
884 454, 454, 455, 454, 454, 514, 514, 491, 491, 491,
885 491, 491, 491, 374, 497, 498, 497, 499, 500, 500,
886 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
887 500, 500, 514, 514, 514, 500, 500, 500, 500, 502,
889 501, 454, 455, 454, 456, 500, 514, 500, 500, 454,
890 455, 454, 456, 454, 455, 454, 456, 454, 455, 454,
891 456, 454, 455, 454, 456, 454, 455, 454, 454, 454,
892 455, 454, 454, 500, 500, 500, 500, 500, 500, 454,
893 455, 454, 456, 454, 455, 454, 456, 454, 455, 454,
894 454, 503, 454, 455, 454, 454, 514, 504, 454, 455,
895 454, 456, 514, 514, 505, 426, 506, 507, 506, 508,
896 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
897 509, 509, 509, 509, 514, 514, 514, 509, 509, 509,
898 509, 454, 455, 454, 456, 514, 514, 509, 514, 509,
900 509, 514, 514, 514, 514, 514, 514, 514, 514, 514,
901 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
902 514, 514, 514, 514, 514, 509, 509, 509, 509, 509,
903 509, 439, 510, 511, 510, 512, 513, 513, 513, 513,
904 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
905 514, 514, 514, 513, 513, 513, 513, 514, 514, 514,
906 514, 514, 514, 513, 514, 513, 513, 514, 514, 514,
907 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
908 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
909 514, 513, 513, 513, 513, 513, 513, 66, 66, 514,
911 66, 66, 66, 66, 66, 66, 66, 66, 69, 514,
912 69, 69, 69, 72, 72, 514, 72, 72, 72, 72,
913 72, 72, 72, 72, 84, 84, 84, 84, 84, 84,
914 514, 514, 514, 84, 84, 98, 98, 514, 514, 98,
915 98, 98, 98, 98, 98, 151, 151, 514, 151, 151,
916 151, 151, 151, 151, 151, 151, 156, 156, 156, 156,
917 156, 156, 514, 514, 514, 156, 156, 162, 162, 162,
918 162, 162, 162, 164, 164, 164, 164, 164, 164, 514,
919 514, 514, 164, 166, 166, 166, 166, 166, 166, 166,
920 166, 166, 166, 166, 169, 169, 169, 169, 169, 169,
922 169, 169, 169, 169, 169, 174, 174, 174, 514, 514,
923 174, 174, 233, 233, 233, 233, 233, 233, 514, 514,
924 514, 233, 233, 237, 237, 237, 237, 237, 237, 514,
925 514, 514, 237, 240, 240, 240, 240, 240, 240, 240,
926 240, 240, 240, 240, 249, 249, 249, 514, 514, 249,
927 249, 165, 165, 165, 165, 165, 165, 165, 165, 165,
928 165, 165, 305, 305, 305, 305, 305, 305, 514, 514,
929 514, 305, 309, 309, 309, 514, 514, 309, 309, 310,
930 514, 514, 310, 310, 239, 239, 239, 239, 239, 239,
931 239, 239, 239, 239, 239, 254, 254, 254, 254, 254,
933 254, 254, 254, 254, 254, 254, 327, 327, 327, 327,
934 327, 367, 367, 367, 367, 367, 367, 367, 367, 367,
935 367, 367, 374, 374, 374, 374, 374, 426, 426, 426,
936 426, 426, 439, 439, 439, 439, 439, 446, 446, 446,
937 446, 446, 446, 446, 446, 446, 446, 446, 450, 450,
938 450, 450, 450, 450, 450, 450, 450, 450, 450, 457,
939 457, 457, 457, 457, 457, 457, 457, 457, 457, 458,
940 458, 514, 458, 458, 458, 458, 458, 458, 458, 458,
941 464, 464, 464, 464, 464, 464, 464, 464, 464, 464,
942 464, 461, 461, 514, 461, 461, 461, 461, 461, 461,
944 461, 461, 7, 514, 514, 514, 514, 514, 514, 514,
945 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
946 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
947 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
948 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
949 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
950 514, 514, 514, 514, 514, 514, 514, 514, 514
953 static yyconst flex_int16_t yy_chk[2970] =
955 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
956 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
957 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
958 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
959 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
962 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
963 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
964 6, 6, 6, 6, 12, 20, 53, 16, 21, 30,
966 30, 66, 50, 4, 20, 22, 21, 22, 22, 22,
967 23, 3, 50, 495, 23, 50, 477, 6, 4, 16,
968 23, 12, 24, 28, 24, 24, 24, 25, 66, 25,
969 25, 25, 26, 53, 26, 26, 26, 31, 31, 31,
970 31, 28, 28, 72, 38, 60, 24, 447, 38, 60,
971 460, 25, 82, 82, 38, 60, 26, 38, 31, 32,
972 32, 32, 32, 24, 60, 72, 38, 26, 25, 35,
973 35, 35, 35, 26, 447, 36, 36, 36, 36, 39,
974 32, 37, 37, 37, 37, 80, 80, 80, 461, 39,
975 35, 40, 39, 41, 451, 32, 36, 41, 45, 40,
977 39, 40, 37, 41, 40, 44, 41, 80, 45, 40,
978 461, 45, 51, 45, 151, 44, 45, 37, 44, 51,
979 51, 35, 51, 42, 44, 51, 36, 37, 42, 151,
980 37, 96, 96, 42, 42, 42, 42, 43, 46, 42,
981 450, 43, 46, 458, 49, 438, 154, 43, 46, 47,
982 43, 46, 424, 47, 49, 43, 49, 49, 48, 47,
983 49, 154, 47, 155, 423, 48, 47, 47, 48, 47,
984 458, 48, 56, 48, 87, 87, 87, 56, 155, 404,
985 48, 403, 56, 56, 56, 56, 250, 57, 56, 57,
986 250, 57, 57, 57, 58, 58, 57, 58, 58, 58,
988 402, 59, 58, 59, 59, 59, 61, 376, 61, 61,
989 61, 62, 375, 62, 62, 62, 63, 373, 63, 63,
990 63, 98, 330, 81, 81, 81, 81, 85, 85, 85,
991 61, 98, 169, 169, 98, 62, 329, 81, 326, 474,
992 63, 81, 86, 315, 86, 86, 86, 61, 474, 85,
993 265, 63, 62, 97, 97, 97, 97, 63, 99, 99,
994 99, 99, 100, 102, 264, 263, 86, 103, 104, 100,
995 260, 103, 259, 102, 97, 253, 102, 103, 104, 100,
996 103, 104, 100, 86, 104, 104, 487, 496, 105, 242,
997 106, 147, 147, 147, 108, 487, 496, 99, 105, 99,
999 106, 105, 106, 106, 108, 109, 107, 108, 236, 185,
1000 99, 107, 184, 111, 99, 109, 107, 109, 109, 107,
1001 110, 112, 110, 111, 183, 182, 111, 113, 180, 111,
1002 110, 112, 114, 110, 112, 176, 115, 113, 112, 175,
1003 113, 168, 114, 116, 114, 114, 115, 117, 118, 115,
1004 160, 115, 119, 116, 145, 116, 116, 117, 118, 120,
1005 117, 118, 119, 94, 117, 119, 119, 121, 122, 120,
1006 92, 91, 120, 123, 124, 120, 120, 121, 122, 122,
1007 121, 122, 89, 123, 124, 122, 123, 124, 125, 126,
1008 88, 126, 125, 123, 129, 127, 128, 128, 125, 126,
1010 130, 125, 126, 127, 129, 127, 128, 129, 127, 128,
1011 130, 129, 131, 130, 132, 79, 73, 130, 68, 65,
1012 134, 133, 131, 55, 132, 131, 135, 132, 132, 133,
1013 134, 133, 136, 134, 133, 134, 135, 137, 34, 135,
1014 137, 139, 136, 29, 135, 136, 136, 137, 135, 138,
1015 137, 139, 27, 138, 139, 140, 139, 19, 15, 138,
1016 142, 141, 138, 140, 14, 140, 11, 7, 140, 141,
1017 142, 141, 2, 142, 141, 186, 146, 142, 146, 148,
1018 0, 148, 148, 148, 0, 186, 146, 0, 186, 146,
1019 0, 0, 146, 146, 149, 0, 149, 149, 149, 150,
1021 150, 150, 0, 148, 0, 152, 152, 152, 152, 157,
1022 157, 157, 158, 0, 158, 158, 158, 0, 149, 152,
1023 148, 150, 0, 152, 159, 159, 159, 165, 165, 165,
1024 165, 157, 171, 171, 171, 149, 158, 0, 152, 153,
1025 153, 165, 166, 166, 166, 166, 0, 172, 172, 172,
1026 232, 232, 232, 158, 171, 0, 166, 235, 235, 235,
1027 187, 0, 0, 153, 153, 153, 153, 153, 153, 172,
1028 187, 0, 232, 187, 153, 153, 153, 153, 153, 153,
1029 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1030 153, 153, 153, 153, 153, 153, 153, 167, 167, 167,
1032 167, 446, 446, 446, 446, 454, 454, 454, 454, 0,
1033 0, 167, 0, 0, 0, 167, 173, 173, 173, 173,
1034 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
1035 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
1036 173, 173, 173, 173, 173, 173, 173, 173, 173, 0,
1037 173, 173, 0, 173, 173, 173, 173, 173, 173, 173,
1038 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
1039 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
1040 173, 173, 174, 174, 174, 174, 174, 174, 174, 174,
1041 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1043 174, 0, 0, 0, 174, 174, 174, 174, 190, 181,
1044 181, 181, 181, 192, 174, 188, 174, 174, 190, 188,
1045 189, 190, 189, 192, 190, 188, 192, 193, 188, 0,
1046 189, 193, 0, 189, 0, 0, 0, 193, 0, 191,
1047 193, 194, 174, 174, 174, 174, 174, 174, 181, 191,
1048 181, 194, 191, 195, 194, 191, 191, 199, 196, 0,
1049 195, 181, 196, 195, 198, 181, 195, 199, 196, 197,
1050 199, 196, 0, 197, 198, 200, 201, 198, 201, 197,
1051 198, 202, 197, 203, 0, 200, 201, 204, 200, 201,
1052 0, 202, 0, 203, 202, 205, 203, 204, 0, 205,
1054 204, 207, 206, 208, 204, 205, 206, 209, 205, 207,
1055 0, 207, 206, 208, 207, 206, 208, 209, 210, 214,
1056 209, 455, 455, 455, 455, 211, 212, 213, 210, 214,
1057 0, 210, 214, 210, 211, 211, 212, 213, 211, 212,
1058 213, 215, 216, 217, 213, 212, 456, 456, 456, 456,
1059 0, 215, 216, 217, 215, 216, 217, 218, 219, 215,
1060 217, 218, 0, 220, 0, 0, 0, 218, 219, 222,
1061 218, 219, 0, 220, 221, 219, 220, 0, 221, 222,
1062 0, 223, 222, 0, 221, 223, 224, 221, 225, 0,
1063 224, 223, 226, 228, 223, 0, 224, 227, 225, 224,
1065 227, 225, 226, 228, 229, 226, 228, 227, 231, 0,
1066 227, 229, 0, 0, 229, 0, 0, 229, 231, 0,
1067 0, 231, 234, 234, 234, 239, 239, 239, 239, 0,
1068 0, 240, 240, 240, 240, 246, 246, 246, 0, 239,
1069 0, 0, 0, 239, 234, 240, 247, 247, 247, 240,
1070 0, 241, 241, 241, 241, 0, 0, 246, 239, 243,
1071 243, 243, 243, 0, 240, 241, 266, 0, 247, 241,
1072 0, 0, 0, 243, 0, 266, 266, 243, 267, 266,
1073 251, 251, 251, 251, 241, 0, 275, 271, 267, 0,
1074 0, 267, 243, 245, 251, 271, 275, 271, 0, 275,
1076 271, 245, 245, 245, 245, 245, 245, 0, 245, 0,
1077 0, 0, 245, 245, 245, 245, 245, 245, 245, 245,
1078 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1079 245, 245, 245, 245, 245, 248, 248, 248, 248, 248,
1080 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1081 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1082 248, 248, 248, 248, 248, 248, 248, 248, 0, 248,
1083 248, 0, 248, 248, 248, 248, 248, 248, 248, 248,
1084 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1085 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1087 248, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1088 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1089 0, 274, 0, 249, 249, 249, 249, 252, 252, 252,
1090 252, 274, 274, 249, 274, 249, 249, 254, 254, 254,
1091 254, 252, 0, 268, 269, 252, 457, 457, 457, 457,
1092 268, 254, 0, 268, 269, 254, 268, 269, 270, 272,
1093 269, 249, 249, 249, 249, 249, 249, 0, 270, 272,
1094 273, 270, 272, 0, 0, 270, 276, 272, 277, 0,
1095 273, 0, 0, 273, 279, 282, 276, 273, 277, 276,
1096 277, 277, 278, 280, 279, 282, 278, 279, 282, 283,
1098 282, 0, 278, 280, 281, 278, 280, 0, 281, 283,
1099 280, 284, 283, 0, 281, 285, 0, 281, 0, 286,
1100 287, 284, 0, 0, 284, 285, 284, 288, 285, 286,
1101 287, 285, 286, 287, 289, 290, 0, 288, 286, 291,
1102 288, 0, 288, 291, 289, 290, 292, 289, 290, 291,
1103 293, 296, 291, 296, 292, 0, 292, 295, 294, 292,
1104 293, 296, 0, 293, 296, 293, 294, 295, 294, 297,
1105 295, 294, 295, 298, 299, 300, 306, 306, 306, 297,
1106 300, 301, 297, 298, 299, 300, 298, 299, 300, 297,
1107 303, 301, 302, 0, 301, 0, 302, 304, 306, 0,
1109 303, 0, 302, 303, 331, 302, 332, 304, 333, 0,
1110 304, 307, 307, 307, 331, 304, 332, 331, 333, 332,
1111 0, 333, 459, 459, 459, 459, 465, 465, 465, 465,
1112 0, 0, 0, 307, 308, 308, 308, 308, 308, 308,
1113 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1114 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1115 308, 308, 308, 308, 308, 308, 308, 0, 308, 308,
1116 0, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1117 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1118 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1120 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1121 309, 309, 309, 309, 309, 309, 309, 309, 309, 0,
1122 0, 311, 309, 309, 309, 309, 313, 313, 313, 313,
1123 0, 0, 309, 311, 309, 309, 334, 311, 335, 0,
1124 313, 0, 0, 336, 313, 340, 334, 0, 335, 334,
1125 335, 335, 311, 336, 0, 340, 336, 0, 340, 313,
1126 309, 309, 309, 309, 309, 309, 312, 312, 312, 312,
1127 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1128 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1129 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1131 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1132 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1133 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1134 312, 312, 314, 314, 314, 314, 0, 316, 316, 316,
1135 316, 0, 323, 323, 323, 323, 314, 0, 337, 338,
1136 314, 316, 337, 341, 347, 316, 323, 338, 337, 338,
1137 323, 337, 338, 341, 347, 314, 341, 347, 347, 0,
1138 316, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1139 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1140 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1142 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1143 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1144 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1145 317, 317, 317, 317, 317, 317, 317, 339, 342, 0,
1146 339, 0, 343, 0, 344, 0, 342, 339, 342, 356,
1147 339, 342, 343, 343, 344, 343, 345, 344, 0, 356,
1148 346, 344, 356, 0, 0, 346, 345, 348, 345, 345,
1149 346, 348, 346, 346, 349, 350, 351, 348, 0, 0,
1150 348, 350, 349, 0, 349, 350, 351, 349, 350, 351,
1151 352, 0, 352, 351, 353, 0, 353, 0, 354, 355,
1153 352, 355, 0, 352, 353, 358, 357, 353, 354, 355,
1154 354, 354, 355, 357, 0, 358, 357, 359, 358, 357,
1155 0, 360, 359, 361, 0, 362, 0, 359, 362, 360,
1156 359, 360, 0, 361, 360, 362, 361, 0, 362, 367,
1157 367, 367, 367, 0, 368, 368, 368, 368, 0, 370,
1158 370, 370, 370, 367, 0, 377, 379, 367, 368, 0,
1159 0, 378, 368, 370, 0, 377, 379, 370, 377, 379,
1160 381, 378, 367, 377, 378, 382, 0, 368, 378, 380,
1161 381, 380, 370, 381, 0, 382, 381, 0, 382, 380,
1162 383, 384, 380, 0, 0, 384, 385, 382, 387, 0,
1164 383, 384, 0, 383, 384, 386, 385, 386, 387, 385,
1165 388, 387, 389, 0, 390, 386, 391, 0, 386, 391,
1166 388, 0, 389, 388, 390, 389, 391, 390, 392, 391,
1167 393, 0, 392, 0, 393, 394, 395, 396, 392, 0,
1168 393, 392, 0, 393, 397, 394, 395, 396, 394, 395,
1169 396, 398, 394, 399, 397, 400, 0, 397, 0, 0,
1170 0, 398, 407, 399, 398, 400, 399, 400, 400, 401,
1171 406, 408, 407, 401, 406, 407, 409, 410, 0, 401,
1172 406, 408, 401, 406, 408, 411, 409, 410, 0, 409,
1173 410, 412, 413, 0, 0, 411, 413, 411, 411, 415,
1175 0, 412, 413, 412, 412, 413, 414, 0, 414, 415,
1176 417, 416, 415, 416, 417, 418, 414, 419, 0, 414,
1177 417, 416, 420, 417, 416, 418, 420, 419, 418, 421,
1178 419, 0, 420, 421, 0, 420, 0, 427, 428, 421,
1179 0, 0, 421, 422, 422, 422, 422, 427, 428, 429,
1180 427, 428, 0, 0, 430, 475, 475, 475, 475, 429,
1181 432, 431, 429, 0, 430, 431, 429, 430, 433, 0,
1182 432, 431, 433, 432, 431, 434, 0, 435, 433, 422,
1183 435, 433, 0, 436, 0, 434, 436, 435, 434, 422,
1184 435, 0, 422, 436, 0, 440, 436, 437, 437, 437,
1186 437, 0, 437, 442, 441, 440, 0, 437, 440, 441,
1187 443, 440, 444, 442, 441, 0, 442, 441, 437, 445,
1188 443, 0, 444, 443, 0, 444, 0, 0, 0, 445,
1189 0, 0, 445, 448, 448, 448, 448, 448, 449, 449,
1190 449, 449, 452, 453, 448, 0, 0, 0, 462, 462,
1191 462, 462, 452, 453, 0, 452, 453, 0, 462, 463,
1192 463, 463, 463, 463, 0, 0, 448, 0, 0, 0,
1193 463, 464, 464, 464, 464, 464, 0, 449, 0, 449,
1194 462, 0, 464, 466, 466, 466, 466, 466, 0, 0,
1195 449, 0, 463, 0, 449, 467, 467, 467, 467, 0,
1197 468, 468, 468, 468, 464, 469, 469, 469, 469, 470,
1198 470, 470, 470, 471, 471, 471, 471, 472, 472, 472,
1199 472, 473, 473, 473, 473, 476, 476, 476, 476, 478,
1200 478, 478, 478, 0, 467, 0, 467, 0, 0, 468,
1201 0, 468, 0, 0, 469, 0, 469, 467, 0, 0,
1202 0, 467, 468, 0, 0, 0, 468, 469, 470, 0,
1203 0, 469, 471, 0, 473, 479, 479, 479, 479, 480,
1204 480, 480, 480, 472, 481, 481, 481, 481, 488, 488,
1205 488, 488, 0, 0, 481, 483, 483, 483, 483, 484,
1206 484, 484, 484, 485, 485, 485, 485, 489, 489, 489,
1208 489, 490, 490, 490, 490, 0, 481, 482, 482, 482,
1209 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1210 482, 482, 482, 482, 482, 482, 0, 0, 0, 482,
1211 482, 482, 482, 484, 0, 0, 483, 485, 0, 482,
1212 0, 482, 482, 491, 491, 491, 491, 493, 493, 493,
1213 493, 0, 0, 494, 494, 494, 494, 497, 497, 497,
1214 497, 498, 498, 498, 498, 0, 0, 482, 482, 482,
1215 482, 482, 482, 492, 492, 492, 492, 492, 492, 492,
1216 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1217 492, 492, 0, 0, 0, 492, 492, 492, 492, 494,
1219 493, 499, 499, 499, 499, 492, 0, 492, 492, 500,
1220 500, 500, 500, 501, 501, 501, 501, 502, 502, 502,
1221 502, 503, 503, 503, 503, 506, 506, 506, 506, 507,
1222 507, 507, 507, 492, 492, 492, 492, 492, 492, 508,
1223 508, 508, 508, 509, 509, 509, 509, 510, 510, 510,
1224 510, 501, 511, 511, 511, 511, 0, 502, 512, 512,
1225 512, 512, 0, 0, 503, 504, 504, 504, 504, 504,
1226 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1227 504, 504, 504, 504, 0, 0, 0, 504, 504, 504,
1228 504, 513, 513, 513, 513, 0, 0, 504, 0, 504,
1230 504, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 0, 504, 504, 504, 504, 504,
1233 504, 505, 505, 505, 505, 505, 505, 505, 505, 505,
1234 505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
1235 0, 0, 0, 505, 505, 505, 505, 0, 0, 0,
1236 0, 0, 0, 505, 0, 505, 505, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 505, 505, 505, 505, 505, 505, 515, 515, 0,
1241 515, 515, 515, 515, 515, 515, 515, 515, 516, 0,
1242 516, 516, 516, 517, 517, 0, 517, 517, 517, 517,
1243 517, 517, 517, 517, 518, 518, 518, 518, 518, 518,
1244 0, 0, 0, 518, 518, 519, 519, 0, 0, 519,
1245 519, 519, 519, 519, 519, 520, 520, 0, 520, 520,
1246 520, 520, 520, 520, 520, 520, 521, 521, 521, 521,
1247 521, 521, 0, 0, 0, 521, 521, 522, 522, 522,
1248 522, 522, 522, 523, 523, 523, 523, 523, 523, 0,
1249 0, 0, 523, 524, 524, 524, 524, 524, 524, 524,
1250 524, 524, 524, 524, 525, 525, 525, 525, 525, 525,
1252 525, 525, 525, 525, 525, 526, 526, 526, 0, 0,
1253 526, 526, 527, 527, 527, 527, 527, 527, 0, 0,
1254 0, 527, 527, 528, 528, 528, 528, 528, 528, 0,
1255 0, 0, 528, 529, 529, 529, 529, 529, 529, 529,
1256 529, 529, 529, 529, 530, 530, 530, 0, 0, 530,
1257 530, 531, 531, 531, 531, 531, 531, 531, 531, 531,
1258 531, 531, 532, 532, 532, 532, 532, 532, 0, 0,
1259 0, 532, 533, 533, 533, 0, 0, 533, 533, 534,
1260 0, 0, 534, 534, 535, 535, 535, 535, 535, 535,
1261 535, 535, 535, 535, 535, 536, 536, 536, 536, 536,
1263 536, 536, 536, 536, 536, 536, 537, 537, 537, 537,
1264 537, 538, 538, 538, 538, 538, 538, 538, 538, 538,
1265 538, 538, 539, 539, 539, 539, 539, 540, 540, 540,
1266 540, 540, 541, 541, 541, 541, 541, 542, 542, 542,
1267 542, 542, 542, 542, 542, 542, 542, 542, 543, 543,
1268 543, 543, 543, 543, 543, 543, 543, 543, 543, 544,
1269 544, 544, 544, 544, 544, 544, 544, 544, 544, 545,
1270 545, 0, 545, 545, 545, 545, 545, 545, 545, 545,
1271 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
1272 546, 547, 547, 0, 547, 547, 547, 547, 547, 547,
1274 547, 547, 514, 514, 514, 514, 514, 514, 514, 514,
1275 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1276 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1277 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1278 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1279 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
1280 514, 514, 514, 514, 514, 514, 514, 514, 514
1283 static yy_state_type yy_last_accepting_state;
1284 static char *yy_last_accepting_cpos;
1286 extern int as3__flex_debug;
1287 int as3__flex_debug = 0;
1289 /* The intent behind this definition is that it'll catch
1290 * any uses of REJECT which flex missed.
1292 #define REJECT reject_used_but_not_detected
1293 #define yymore() yymore_used_but_not_detected
1294 #define YY_MORE_ADJ 0
1295 #define YY_RESTORE_YY_MORE_OFFSET
1297 #line 1 "tokenizer.lex"
1300 Routines for compiling Flash2 AVM2 ABC Actionscript
1302 Extension module for the rfxswf library.
1303 Part of the swftools package.
1305 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1307 This program is free software; you can redistribute it and/or modify
1308 it under the terms of the GNU General Public License as published by
1309 the Free Software Foundation; either version 2 of the License, or
1310 (at your option) any later version.
1312 This program is distributed in the hope that it will be useful,
1313 but WITHOUT ANY WARRANTY; without even the implied warranty of
1314 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1315 GNU General Public License for more details.
1317 You should have received a copy of the GNU General Public License
1318 along with this program; if not, write to the Free Software
1319 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1320 #line 24 "tokenizer.lex"
1327 #include "../utf8.h"
1329 #include "tokenizer.h"
1332 unsigned int as3_tokencount = 0;
1334 static void dbg(const char*format, ...)
1341 va_start(arglist, format);
1342 vsprintf(buf, format, arglist);
1345 while(l && buf[l-1]=='\n') {
1349 printf("(tokenizer) ");
1350 printf("%s\n", buf);
1354 #ifndef YY_CURRENT_BUFFER
1355 #define YY_CURRENT_BUFFER yy_current_buffer
1358 static void*as3_buffer=0;
1359 static int as3_buffer_pos=0;
1360 static int as3_buffer_len=0;
1361 void as3_file_input(FILE*fi)
1366 void as3_buffer_input(void*buffer, int len)
1369 syntaxerror("trying to parse zero bytearray");
1370 as3_buffer = buffer;
1371 as3_buffer_len = len;
1376 #define YY_INPUT(buf,result,max_size) { \
1379 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1380 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1381 errno=0; clearerr(as3_in); \
1384 int to_read = max_size; \
1385 if(to_read + as3_buffer_pos > as3_buffer_len) \
1386 to_read = as3_buffer_len - as3_buffer_pos; \
1387 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1388 as3_buffer_pos += to_read; \
1393 void handleInclude(char*text, int len, char quotes)
1397 char*p1 = strchr(text, '"');
1398 char*p2 = strrchr(text, '"');
1399 if(!p1 || !p2 || p1==p2) {
1400 syntaxerror("Invalid include in line %d\n", current_line);
1403 filename = strdup(p1+1);
1407 while(!strchr(" \n\r\t", text[i1])) i1++;
1409 while(strchr(" \n\r\t", text[i1])) i1++;
1410 while(strchr(" \n\r\t", text[i2-1])) i2--;
1411 if(i2!=len) text[i2]=0;
1412 filename = strdup(&text[i1]);
1415 char*fullfilename = find_file(filename, 1);
1416 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1417 as3_in = fopen(fullfilename, "rb");
1419 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1422 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1423 //BEGIN(INITIAL); keep context
1426 static int do_unescape(const char*s, const char*end, char*n)
1432 if(o) o[len] = *s;len++;
1436 s++; //skip past '\'
1437 if(s==end) syntaxerror("invalid \\ at end of string");
1439 /* handle the various line endings (mac, dos, unix) */
1452 case '\\': if(o) o[len] = '\\';s++;len++; break;
1453 case '"': if(o) o[len] = '"';s++;len++; break;
1454 case '\'': if(o) o[len] = '\'';s++;len++; break;
1455 case 'b': if(o) o[len] = '\b';s++;len++; break;
1456 case 'f': if(o) o[len] = '\f';s++;len++; break;
1457 case 'n': if(o) o[len] = '\n';s++;len++; break;
1458 case 'r': if(o) o[len] = '\r';s++;len++; break;
1459 case 't': if(o) o[len] = '\t';s++;len++; break;
1460 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1463 while(strchr("01234567", *s) && nr<3 && s<end) {
1470 syntaxerror("octal number out of range (0-255): %d", num);
1471 if(o) o[len] = num;len++;
1474 case 'x': case 'u': {
1483 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1486 if(s==end) syntaxerror("invalid \\u{ at end of string");
1491 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1493 if(*s>='0' && *s<='9') num |= *s - '0';
1494 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1495 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1500 if(*s=='}' && s<end) {
1503 syntaxerror("missing terminating '}'");
1507 char*utf8 = getUTF8(num);
1509 if(o) o[len] = *utf8;utf8++;len++;
1513 syntaxerror("byte out of range (0-255): %d", num);
1514 if(o) o[len] = num;len++;
1533 static string_t string_unescape(const char*in, int l)
1536 const char*end = &in[l];
1538 int len = do_unescape(s, end, 0);
1539 char*n = (char*)malloc(len+1);
1540 do_unescape(s, end, n);
1541 string_t out = string_new(n, len);
1545 static void handleCData(char*s, int len)
1547 a3_lval.str.str = s+9; // <![CDATA[
1548 a3_lval.str.len = len-9-3;// ]]>
1549 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1552 static void handleString(char*s, int len)
1555 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1558 else if(s[0]=='\'') {
1559 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1562 else syntaxerror("String incorrectly terminated");
1564 a3_lval.str = string_unescape(s, len);
1568 char start_of_expression;
1570 static inline int m(int type)
1572 a3_lval.token = type;
1577 static char numberbuf[64];
1580 if(as3_leng>sizeof(numberbuf)-1)
1581 syntaxerror("decimal number overflow");
1583 memcpy(s, as3_text, as3_leng);
1588 static inline int setint(int v)
1590 a3_lval.number_int = v;
1593 static inline int setfloat(double v)
1595 a3_lval.number_float = v;
1599 static inline int handlefloat()
1602 a3_lval.number_float = atof(s);
1606 static inline int handleint()
1609 char l = (as3_text[0]=='-');
1611 //char*max = l?"1073741824":"2147483647";
1612 char*max = l?"2147483648":"2147483647";
1615 as3_softwarning("integer overflow: %s (converted to Number)", s);
1616 return handlefloat();
1618 if(as3_leng-l==10) {
1620 for(t=0;t<as3_leng-l;t++) {
1621 if(as3_text[l+t]>max[t]) {
1622 as3_softwarning("integer overflow: %s (converted to Number)", s);
1623 return handlefloat();
1625 else if(as3_text[l+t]<max[t])
1629 if(as3_text[0]=='-') {
1635 for(t=0;t<as3_leng;t++) {
1643 static inline int handlehexfloat()
1645 char l = (as3_text[0]=='-')+2;
1650 for(t=l;t<as3_leng;t++) {
1651 char c = as3_text[t];
1661 if(c>='0' && c<='9')
1663 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1664 d+=((c&0x0f)+9)*base;
1668 static inline int handlehex()
1670 char l = (as3_text[0]=='-')+2;
1675 syntaxerror("integer overflow %s", s);
1680 for(t=l;t<len;t++) {
1682 char c = as3_text[t];
1683 if(c>='0' && c<='9')
1685 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1688 if(l && v>=0x80000000) {
1690 as3_softwarning("integer overflow: %s (converted to Number)", s);
1693 if(!l && v>0x7fffffff) {
1695 as3_softwarning("integer overflow: %s (converted to Number)", s);
1700 return setint(-(int)v);
1706 void handleLabel(char*text, int len)
1709 for(t=len-1;t>=0;--t) {
1714 char*s = malloc(t+1);
1715 memcpy(s, as3_text, t);
1720 static int handleregexp()
1722 char*s = malloc(as3_leng);
1724 memcpy(s, as3_text+1, len);
1727 for(t=len;t>=0;--t) {
1733 a3_lval.regexp.pattern = s;
1735 a3_lval.regexp.options = 0;
1737 a3_lval.regexp.options = s+t+1;
1742 void initialize_scanner();
1743 #define YY_USER_INIT initialize_scanner();
1745 /* count the number of lines+columns consumed by this token */
1746 static inline void l() {
1748 for(t=0;t<as3_leng;t++) {
1749 if(as3_text[t]=='\n') {
1757 /* count the number of columns consumed by this token */
1758 static inline void c() {
1759 current_column+=as3_leng;
1762 trie_t*active_namespaces = 0;
1763 /*void tokenizer_register_namespace(const char*id)
1765 trie_put(namespaces, id, 0);
1767 void tokenizer_unregister_namespace(const char*id)
1769 trie_remove(namespaces, id);
1771 static inline tokenizer_is_namespace(const char*id)
1773 return trie_contains(active_namespaces, id);
1776 static inline int handleIdentifier()
1778 char*s = malloc(as3_leng+1);
1779 memcpy(s, as3_text, as3_leng);
1782 if(tokenizer_is_namespace(s))
1785 return T_IDENTIFIER;
1789 //Boolean {c();return m(KW_BOOLEAN);}
1790 //int {c();return m(KW_INT);}
1791 //uint {c();return m(KW_UINT);}
1792 //Number {c();return m(KW_NUMBER);}
1796 #line 1797 "tokenizer.yy.c"
1802 #ifndef YY_NO_UNISTD_H
1803 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1804 * down here because we want the user's section 1 to have been scanned first.
1805 * The user has a chance to override it with an option.
1810 #ifndef YY_EXTRA_TYPE
1811 #define YY_EXTRA_TYPE void *
1814 static int yy_init_globals (void );
1816 /* Accessor methods to globals.
1817 These are made visible to non-reentrant scanners for convenience. */
1819 int as3_lex_destroy (void );
1821 int as3_get_debug (void );
1823 void as3_set_debug (int debug_flag );
1825 YY_EXTRA_TYPE as3_get_extra (void );
1827 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1829 FILE *as3_get_in (void );
1831 void as3_set_in (FILE * in_str );
1833 FILE *as3_get_out (void );
1835 void as3_set_out (FILE * out_str );
1837 int as3_get_leng (void );
1839 char *as3_get_text (void );
1841 int as3_get_lineno (void );
1843 void as3_set_lineno (int line_number );
1845 /* Macros after this point can all be overridden by user definitions in
1849 #ifndef YY_SKIP_YYWRAP
1851 extern "C" int as3_wrap (void );
1853 extern int as3_wrap (void );
1857 static void yyunput (int c,char *buf_ptr );
1860 static void yy_flex_strncpy (char *,yyconst char *,int );
1863 #ifdef YY_NEED_STRLEN
1864 static int yy_flex_strlen (yyconst char * );
1870 static int yyinput (void );
1872 static int input (void );
1877 /* Amount of stuff to slurp up with each read. */
1878 #ifndef YY_READ_BUF_SIZE
1879 #define YY_READ_BUF_SIZE 8192
1882 /* Copy whatever the last rule matched to the standard output. */
1884 /* This used to be an fputs(), but since the string might contain NUL's,
1885 * we now use fwrite().
1887 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1890 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1891 * is returned in "result".
1894 #define YY_INPUT(buf,result,max_size) \
1895 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1899 for ( n = 0; n < max_size && \
1900 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1901 buf[n] = (char) c; \
1903 buf[n++] = (char) c; \
1904 if ( c == EOF && ferror( as3_in ) ) \
1905 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1911 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1913 if( errno != EINTR) \
1915 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1926 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1927 * we don't want an extra ';' after the "return" because that will cause
1928 * some compilers to complain about unreachable statements.
1931 #define yyterminate() return YY_NULL
1934 /* Number of entries by which start-condition stack grows. */
1935 #ifndef YY_START_STACK_INCR
1936 #define YY_START_STACK_INCR 25
1939 /* Report a fatal error. */
1940 #ifndef YY_FATAL_ERROR
1941 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1944 /* end tables serialization structures and prototypes */
1946 /* Default declaration of generated scanner - a define so the user can
1947 * easily add parameters.
1950 #define YY_DECL_IS_OURS 1
1952 extern int as3_lex (void);
1954 #define YY_DECL int as3_lex (void)
1955 #endif /* !YY_DECL */
1957 /* Code executed at the beginning of each rule, after as3_text and as3_leng
1960 #ifndef YY_USER_ACTION
1961 #define YY_USER_ACTION
1964 /* Code executed at the end of each rule. */
1966 #define YY_BREAK break;
1969 #define YY_RULE_SETUP \
1970 if ( as3_leng > 0 ) \
1971 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1972 (as3_text[as3_leng - 1] == '\n'); \
1975 /** The main scanner function which does all the work.
1979 register yy_state_type yy_current_state;
1980 register char *yy_cp, *yy_bp;
1981 register int yy_act;
1983 #line 521 "tokenizer.lex"
1987 #line 1988 "tokenizer.yy.c"
1998 (yy_start) = 1; /* first start state */
2006 if ( ! YY_CURRENT_BUFFER ) {
2007 as3_ensure_buffer_stack ();
2008 YY_CURRENT_BUFFER_LVALUE =
2009 as3__create_buffer(as3_in,YY_BUF_SIZE );
2012 as3__load_buffer_state( );
2015 while ( 1 ) /* loops until end-of-file is reached */
2017 yy_cp = (yy_c_buf_p);
2019 /* Support of as3_text. */
2020 *yy_cp = (yy_hold_char);
2022 /* yy_bp points to the position in yy_ch_buf of the start of
2027 yy_current_state = (yy_start);
2028 yy_current_state += YY_AT_BOL();
2032 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2033 if ( yy_accept[yy_current_state] )
2035 (yy_last_accepting_state) = yy_current_state;
2036 (yy_last_accepting_cpos) = yy_cp;
2038 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2040 yy_current_state = (int) yy_def[yy_current_state];
2041 if ( yy_current_state >= 515 )
2042 yy_c = yy_meta[(unsigned int) yy_c];
2044 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2047 while ( yy_current_state != 514 );
2048 yy_cp = (yy_last_accepting_cpos);
2049 yy_current_state = (yy_last_accepting_state);
2052 yy_act = yy_accept[yy_current_state];
2054 YY_DO_BEFORE_ACTION;
2056 do_action: /* This label is used only to access EOF actions. */
2059 { /* beginning of action switch */
2060 case 0: /* must back up */
2061 /* undo the effects of YY_DO_BEFORE_ACTION */
2062 *yy_cp = (yy_hold_char);
2063 yy_cp = (yy_last_accepting_cpos);
2064 yy_current_state = (yy_last_accepting_state);
2065 goto yy_find_action;
2068 /* rule 1 can match eol */
2070 #line 524 "tokenizer.lex"
2071 {l(); /* single line comment */}
2074 /* rule 2 can match eol */
2076 #line 525 "tokenizer.lex"
2077 {l(); /* multi line comment */}
2081 #line 526 "tokenizer.lex"
2082 {syntaxerror("syntax error: unterminated comment", as3_text);}
2085 /* rule 4 can match eol */
2086 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2087 (yy_c_buf_p) = yy_cp -= 1;
2088 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2090 #line 528 "tokenizer.lex"
2091 {l();handleInclude(as3_text, as3_leng, 1);}
2094 /* rule 5 can match eol */
2095 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2096 (yy_c_buf_p) = yy_cp -= 1;
2097 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2099 #line 529 "tokenizer.lex"
2100 {l();handleInclude(as3_text, as3_leng, 0);}
2103 /* rule 6 can match eol */
2105 #line 530 "tokenizer.lex"
2106 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2109 /* rule 7 can match eol */
2111 #line 531 "tokenizer.lex"
2112 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2117 #line 534 "tokenizer.lex"
2118 {c(); BEGIN(INITIAL);return handleregexp();}
2121 /* rule 9 can match eol */
2122 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2123 (yy_c_buf_p) = yy_cp -= 1;
2124 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2126 #line 535 "tokenizer.lex"
2127 {c(); BEGIN(INITIAL);return handlehex();}
2130 /* rule 10 can match eol */
2131 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2132 (yy_c_buf_p) = yy_cp -= 1;
2133 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2135 #line 536 "tokenizer.lex"
2136 {c(); BEGIN(INITIAL);return handlehexfloat();}
2139 /* rule 11 can match eol */
2140 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2141 (yy_c_buf_p) = yy_cp -= 1;
2142 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2144 #line 537 "tokenizer.lex"
2145 {c(); BEGIN(INITIAL);return handleint();}
2148 /* rule 12 can match eol */
2149 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2150 (yy_c_buf_p) = yy_cp -= 1;
2151 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2153 #line 538 "tokenizer.lex"
2154 {c(); BEGIN(INITIAL);return handlefloat();}
2159 #line 541 "tokenizer.lex"
2160 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2164 #line 542 "tokenizer.lex"
2165 {c(); BEGIN(INITIAL); return m('{');}
2169 #line 544 "tokenizer.lex"
2173 /* rule 16 can match eol */
2175 #line 545 "tokenizer.lex"
2179 /* rule 17 can match eol */
2180 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2181 (yy_c_buf_p) = yy_cp -= 1;
2182 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2184 #line 547 "tokenizer.lex"
2185 {c(); BEGIN(INITIAL);return handlehex();}
2188 /* rule 18 can match eol */
2189 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2190 (yy_c_buf_p) = yy_cp -= 1;
2191 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2193 #line 548 "tokenizer.lex"
2194 {c(); BEGIN(INITIAL);return handlehexfloat();}
2197 /* rule 19 can match eol */
2198 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2199 (yy_c_buf_p) = yy_cp -= 1;
2200 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2202 #line 549 "tokenizer.lex"
2203 {c(); BEGIN(INITIAL);return handleint();}
2206 /* rule 20 can match eol */
2207 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2208 (yy_c_buf_p) = yy_cp -= 1;
2209 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2211 #line 550 "tokenizer.lex"
2212 {c(); BEGIN(INITIAL);return handlefloat();}
2216 #line 551 "tokenizer.lex"
2217 {c(); BEGIN(INITIAL);return m(KW_NAN);}
2221 #line 553 "tokenizer.lex"
2222 {/* for debugging: generates a tokenizer-level error */
2223 syntaxerror("3rr0r");}
2226 /* rule 23 can match eol */
2227 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2228 (yy_c_buf_p) = yy_cp -= 1;
2229 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2231 #line 556 "tokenizer.lex"
2232 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2235 /* rule 24 can match eol */
2236 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2237 (yy_c_buf_p) = yy_cp -= 1;
2238 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2240 #line 557 "tokenizer.lex"
2241 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-2);return T_DO;}
2244 /* rule 25 can match eol */
2245 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2246 (yy_c_buf_p) = yy_cp -= 1;
2247 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2249 #line 558 "tokenizer.lex"
2250 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2253 /* rule 26 can match eol */
2254 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2255 (yy_c_buf_p) = yy_cp -= 1;
2256 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2258 #line 559 "tokenizer.lex"
2259 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2263 #line 560 "tokenizer.lex"
2264 {c();BEGIN(INITIAL);a3_lval.id="";return T_FOR;}
2268 #line 561 "tokenizer.lex"
2269 {c();BEGIN(INITIAL);a3_lval.id="";return T_DO;}
2273 #line 562 "tokenizer.lex"
2274 {c();BEGIN(INITIAL);a3_lval.id="";return T_WHILE;}
2278 #line 563 "tokenizer.lex"
2279 {c();BEGIN(INITIAL);a3_lval.id="";return T_SWITCH;}
2283 #line 565 "tokenizer.lex"
2284 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2288 #line 566 "tokenizer.lex"
2289 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2293 #line 567 "tokenizer.lex"
2294 {c();BEGIN(REGEXPOK);return m(T_NE);}
2298 #line 568 "tokenizer.lex"
2299 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2303 #line 569 "tokenizer.lex"
2304 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2308 #line 570 "tokenizer.lex"
2309 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2313 #line 571 "tokenizer.lex"
2314 {c();BEGIN(REGEXPOK);return m(T_GE);}
2318 #line 572 "tokenizer.lex"
2319 {c();BEGIN(REGEXPOK);return m(T_LE);}
2323 #line 573 "tokenizer.lex"
2324 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2328 #line 574 "tokenizer.lex"
2329 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2333 #line 575 "tokenizer.lex"
2334 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2338 #line 576 "tokenizer.lex"
2339 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2343 #line 577 "tokenizer.lex"
2344 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2348 #line 578 "tokenizer.lex"
2349 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2353 #line 579 "tokenizer.lex"
2354 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2358 #line 580 "tokenizer.lex"
2359 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2363 #line 581 "tokenizer.lex"
2364 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2368 #line 582 "tokenizer.lex"
2369 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2373 #line 583 "tokenizer.lex"
2374 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2378 #line 584 "tokenizer.lex"
2379 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2383 #line 585 "tokenizer.lex"
2384 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2388 #line 586 "tokenizer.lex"
2389 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2393 #line 587 "tokenizer.lex"
2394 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2398 #line 588 "tokenizer.lex"
2399 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2403 #line 589 "tokenizer.lex"
2404 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2408 #line 590 "tokenizer.lex"
2409 {c();BEGIN(REGEXPOK);return m('.');}
2413 #line 591 "tokenizer.lex"
2414 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2418 #line 592 "tokenizer.lex"
2419 {c();BEGIN(REGEXPOK);return m(':');}
2423 #line 593 "tokenizer.lex"
2424 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2428 #line 594 "tokenizer.lex"
2429 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2433 #line 595 "tokenizer.lex"
2434 {c();BEGIN(INITIAL);return m(KW_INTERFACE);}
2438 #line 596 "tokenizer.lex"
2439 {c();BEGIN(INITIAL);return m(KW_NAMESPACE);}
2443 #line 597 "tokenizer.lex"
2444 {c();BEGIN(INITIAL);return m(KW_PROTECTED);}
2448 #line 598 "tokenizer.lex"
2449 {c();BEGIN(INITIAL);return m(KW_UNDEFINED);}
2453 #line 599 "tokenizer.lex"
2454 {c();BEGIN(INITIAL);return m(KW_CONTINUE);}
2458 #line 600 "tokenizer.lex"
2459 {c();BEGIN(INITIAL);return m(KW_OVERRIDE);}
2463 #line 601 "tokenizer.lex"
2464 {c();BEGIN(INITIAL);return m(KW_INTERNAL);}
2468 #line 602 "tokenizer.lex"
2469 {c();BEGIN(INITIAL);return m(KW_FUNCTION);}
2473 #line 603 "tokenizer.lex"
2474 {c();BEGIN(INITIAL);return m(KW_FINALLY);}
2478 #line 604 "tokenizer.lex"
2479 {c();BEGIN(INITIAL);return m(KW_DEFAULT);}
2483 #line 605 "tokenizer.lex"
2484 {c();BEGIN(INITIAL);return m(KW_PACKAGE);}
2488 #line 606 "tokenizer.lex"
2489 {c();BEGIN(INITIAL);return m(KW_PRIVATE);}
2493 #line 607 "tokenizer.lex"
2494 {c();BEGIN(INITIAL);return m(KW_DYNAMIC);}
2498 #line 608 "tokenizer.lex"
2499 {c();BEGIN(INITIAL);return m(KW_EXTENDS);}
2503 #line 609 "tokenizer.lex"
2504 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2508 #line 610 "tokenizer.lex"
2509 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2513 #line 611 "tokenizer.lex"
2514 {c();BEGIN(INITIAL);return m(KW_PUBLIC);}
2518 #line 612 "tokenizer.lex"
2519 {c();BEGIN(INITIAL);return m(KW_NATIVE);}
2523 #line 613 "tokenizer.lex"
2524 {c();BEGIN(INITIAL);return m(KW_STATIC);}
2528 #line 614 "tokenizer.lex"
2529 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2533 #line 615 "tokenizer.lex"
2534 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2538 #line 616 "tokenizer.lex"
2539 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2543 #line 617 "tokenizer.lex"
2544 {c();BEGIN(INITIAL);return m(KW_CLASS);}
2548 #line 618 "tokenizer.lex"
2549 {c();BEGIN(INITIAL);return m(KW_CONST);}
2553 #line 619 "tokenizer.lex"
2554 {c();BEGIN(INITIAL);return m(KW_CATCH);}
2558 #line 620 "tokenizer.lex"
2559 {c();BEGIN(INITIAL);return m(KW_FINAL);}
2563 #line 621 "tokenizer.lex"
2564 {c();BEGIN(INITIAL);return m(KW_FALSE);}
2568 #line 622 "tokenizer.lex"
2569 {c();BEGIN(INITIAL);return m(KW_BREAK);}
2573 #line 623 "tokenizer.lex"
2574 {c();BEGIN(INITIAL);return m(KW_SUPER);}
2578 #line 624 "tokenizer.lex"
2579 {c();BEGIN(INITIAL);return m(KW_EACH);}
2583 #line 625 "tokenizer.lex"
2584 {c();BEGIN(INITIAL);return m(KW_VOID);}
2588 #line 626 "tokenizer.lex"
2589 {c();BEGIN(INITIAL);return m(KW_TRUE);}
2593 #line 627 "tokenizer.lex"
2594 {c();BEGIN(INITIAL);return m(KW_NULL);}
2598 #line 628 "tokenizer.lex"
2599 {c();BEGIN(INITIAL);return m(KW_ELSE);}
2603 #line 629 "tokenizer.lex"
2604 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
2608 #line 630 "tokenizer.lex"
2609 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
2613 #line 631 "tokenizer.lex"
2614 {c();BEGIN(REGEXPOK);return m(KW_USE);}
2618 #line 632 "tokenizer.lex"
2619 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
2623 #line 633 "tokenizer.lex"
2624 {c();BEGIN(INITIAL);return m(KW_GET);}
2628 #line 634 "tokenizer.lex"
2629 {c();BEGIN(INITIAL);return m(KW_SET);}
2633 #line 635 "tokenizer.lex"
2634 {c();BEGIN(INITIAL);return m(KW_VAR);}
2638 #line 636 "tokenizer.lex"
2639 {c();BEGIN(INITIAL);return m(KW_TRY);}
2643 #line 637 "tokenizer.lex"
2644 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
2648 #line 638 "tokenizer.lex"
2649 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
2653 #line 639 "tokenizer.lex"
2654 {c();BEGIN(INITIAL);return m(KW_IF) ;}
2658 #line 640 "tokenizer.lex"
2659 {c();BEGIN(REGEXPOK);return m(KW_AS);}
2663 #line 641 "tokenizer.lex"
2664 {c();BEGIN(INITIAL);return handleIdentifier();}
2668 #line 643 "tokenizer.lex"
2669 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2673 #line 644 "tokenizer.lex"
2674 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2678 #line 645 "tokenizer.lex"
2679 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2683 #line 647 "tokenizer.lex"
2685 char c1=as3_text[0];
2687 buf[0] = as3_text[0];
2689 for(t=1;t<128;t++) {
2690 char c = buf[t]=input();
2691 if(c=='\n' || c==EOF) {
2696 if(c1>='0' && c1<='9')
2697 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2699 syntaxerror("syntax error: %s", buf);
2705 case YY_STATE_EOF(INITIAL):
2706 case YY_STATE_EOF(REGEXPOK):
2707 case YY_STATE_EOF(BEGINNING):
2708 #line 667 "tokenizer.lex"
2710 void*b = leave_file();
2713 as3__delete_buffer(YY_CURRENT_BUFFER);
2716 as3__delete_buffer(YY_CURRENT_BUFFER);
2717 as3__switch_to_buffer(b);
2723 #line 679 "tokenizer.lex"
2726 #line 2727 "tokenizer.yy.c"
2728 case YY_END_OF_BUFFER:
2730 /* Amount of text matched not including the EOB char. */
2731 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2733 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2734 *yy_cp = (yy_hold_char);
2735 YY_RESTORE_YY_MORE_OFFSET
2737 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2739 /* We're scanning a new file or input source. It's
2740 * possible that this happened because the user
2741 * just pointed as3_in at a new source and called
2742 * as3_lex(). If so, then we have to assure
2743 * consistency between YY_CURRENT_BUFFER and our
2744 * globals. Here is the right place to do so, because
2745 * this is the first action (other than possibly a
2746 * back-up) that will match for the new input source.
2748 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2749 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2750 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2753 /* Note that here we test for yy_c_buf_p "<=" to the position
2754 * of the first EOB in the buffer, since yy_c_buf_p will
2755 * already have been incremented past the NUL character
2756 * (since all states make transitions on EOB to the
2757 * end-of-buffer state). Contrast this with the test
2760 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2761 { /* This was really a NUL. */
2762 yy_state_type yy_next_state;
2764 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2766 yy_current_state = yy_get_previous_state( );
2768 /* Okay, we're now positioned to make the NUL
2769 * transition. We couldn't have
2770 * yy_get_previous_state() go ahead and do it
2771 * for us because it doesn't know how to deal
2772 * with the possibility of jamming (and we don't
2773 * want to build jamming into it because then it
2774 * will run more slowly).
2777 yy_next_state = yy_try_NUL_trans( yy_current_state );
2779 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2781 if ( yy_next_state )
2783 /* Consume the NUL. */
2784 yy_cp = ++(yy_c_buf_p);
2785 yy_current_state = yy_next_state;
2791 yy_cp = (yy_last_accepting_cpos);
2792 yy_current_state = (yy_last_accepting_state);
2793 goto yy_find_action;
2797 else switch ( yy_get_next_buffer( ) )
2799 case EOB_ACT_END_OF_FILE:
2801 (yy_did_buffer_switch_on_eof) = 0;
2805 /* Note: because we've taken care in
2806 * yy_get_next_buffer() to have set up
2807 * as3_text, we can now set up
2808 * yy_c_buf_p so that if some total
2809 * hoser (like flex itself) wants to
2810 * call the scanner after we return the
2811 * YY_NULL, it'll still work - another
2812 * YY_NULL will get returned.
2814 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2816 yy_act = YY_STATE_EOF(YY_START);
2822 if ( ! (yy_did_buffer_switch_on_eof) )
2828 case EOB_ACT_CONTINUE_SCAN:
2830 (yytext_ptr) + yy_amount_of_matched_text;
2832 yy_current_state = yy_get_previous_state( );
2834 yy_cp = (yy_c_buf_p);
2835 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2838 case EOB_ACT_LAST_MATCH:
2840 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2842 yy_current_state = yy_get_previous_state( );
2844 yy_cp = (yy_c_buf_p);
2845 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2846 goto yy_find_action;
2853 "fatal flex scanner internal error--no action found" );
2854 } /* end of action switch */
2855 } /* end of scanning one token */
2856 } /* end of as3_lex */
2858 /* yy_get_next_buffer - try to read in a new buffer
2860 * Returns a code representing an action:
2861 * EOB_ACT_LAST_MATCH -
2862 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2863 * EOB_ACT_END_OF_FILE - end of file
2865 static int yy_get_next_buffer (void)
2867 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2868 register char *source = (yytext_ptr);
2869 register int number_to_move, i;
2872 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2874 "fatal flex scanner internal error--end of buffer missed" );
2876 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2877 { /* Don't try to fill the buffer, so this is an EOF. */
2878 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2880 /* We matched a single character, the EOB, so
2881 * treat this as a final EOF.
2883 return EOB_ACT_END_OF_FILE;
2888 /* We matched some text prior to the EOB, first
2891 return EOB_ACT_LAST_MATCH;
2895 /* Try to read more data. */
2897 /* First move last chars to start of buffer. */
2898 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2900 for ( i = 0; i < number_to_move; ++i )
2901 *(dest++) = *(source++);
2903 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2904 /* don't do the read, it's not guaranteed to return an EOF,
2907 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2912 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2914 while ( num_to_read <= 0 )
2915 { /* Not enough room in the buffer - grow it. */
2917 /* just a shorter name for the current buffer */
2918 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2920 int yy_c_buf_p_offset =
2921 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2923 if ( b->yy_is_our_buffer )
2925 int new_size = b->yy_buf_size * 2;
2927 if ( new_size <= 0 )
2928 b->yy_buf_size += b->yy_buf_size / 8;
2930 b->yy_buf_size *= 2;
2932 b->yy_ch_buf = (char *)
2933 /* Include room in for 2 EOB chars. */
2934 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2937 /* Can't grow it, we don't own it. */
2940 if ( ! b->yy_ch_buf )
2942 "fatal error - scanner input buffer overflow" );
2944 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2946 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2951 if ( num_to_read > YY_READ_BUF_SIZE )
2952 num_to_read = YY_READ_BUF_SIZE;
2954 /* Read in more data. */
2955 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2956 (yy_n_chars), (size_t) num_to_read );
2958 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2961 if ( (yy_n_chars) == 0 )
2963 if ( number_to_move == YY_MORE_ADJ )
2965 ret_val = EOB_ACT_END_OF_FILE;
2966 as3_restart(as3_in );
2971 ret_val = EOB_ACT_LAST_MATCH;
2972 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2973 YY_BUFFER_EOF_PENDING;
2978 ret_val = EOB_ACT_CONTINUE_SCAN;
2980 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2981 /* Extend the array by 50%, plus the number we really need. */
2982 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2983 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2984 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2985 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2988 (yy_n_chars) += number_to_move;
2989 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2990 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2992 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2997 /* yy_get_previous_state - get the state just before the EOB char was reached */
2999 static yy_state_type yy_get_previous_state (void)
3001 register yy_state_type yy_current_state;
3002 register char *yy_cp;
3004 yy_current_state = (yy_start);
3005 yy_current_state += YY_AT_BOL();
3007 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3009 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3010 if ( yy_accept[yy_current_state] )
3012 (yy_last_accepting_state) = yy_current_state;
3013 (yy_last_accepting_cpos) = yy_cp;
3015 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3017 yy_current_state = (int) yy_def[yy_current_state];
3018 if ( yy_current_state >= 515 )
3019 yy_c = yy_meta[(unsigned int) yy_c];
3021 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3024 return yy_current_state;
3027 /* yy_try_NUL_trans - try to make a transition on the NUL character
3030 * next_state = yy_try_NUL_trans( current_state );
3032 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3034 register int yy_is_jam;
3035 register char *yy_cp = (yy_c_buf_p);
3037 register YY_CHAR yy_c = 1;
3038 if ( yy_accept[yy_current_state] )
3040 (yy_last_accepting_state) = yy_current_state;
3041 (yy_last_accepting_cpos) = yy_cp;
3043 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3045 yy_current_state = (int) yy_def[yy_current_state];
3046 if ( yy_current_state >= 515 )
3047 yy_c = yy_meta[(unsigned int) yy_c];
3049 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3050 yy_is_jam = (yy_current_state == 514);
3052 return yy_is_jam ? 0 : yy_current_state;
3055 static void yyunput (int c, register char * yy_bp )
3057 register char *yy_cp;
3059 yy_cp = (yy_c_buf_p);
3061 /* undo effects of setting up as3_text */
3062 *yy_cp = (yy_hold_char);
3064 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3065 { /* need to shift things up to make room */
3066 /* +2 for EOB chars. */
3067 register int number_to_move = (yy_n_chars) + 2;
3068 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3069 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3070 register char *source =
3071 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3073 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3074 *--dest = *--source;
3076 yy_cp += (int) (dest - source);
3077 yy_bp += (int) (dest - source);
3078 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3079 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3081 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3082 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3085 *--yy_cp = (char) c;
3087 (yytext_ptr) = yy_bp;
3088 (yy_hold_char) = *yy_cp;
3089 (yy_c_buf_p) = yy_cp;
3094 static int yyinput (void)
3096 static int input (void)
3102 *(yy_c_buf_p) = (yy_hold_char);
3104 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3106 /* yy_c_buf_p now points to the character we want to return.
3107 * If this occurs *before* the EOB characters, then it's a
3108 * valid NUL; if not, then we've hit the end of the buffer.
3110 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3111 /* This was really a NUL. */
3112 *(yy_c_buf_p) = '\0';
3115 { /* need more input */
3116 int offset = (yy_c_buf_p) - (yytext_ptr);
3119 switch ( yy_get_next_buffer( ) )
3121 case EOB_ACT_LAST_MATCH:
3122 /* This happens because yy_g_n_b()
3123 * sees that we've accumulated a
3124 * token and flags that we need to
3125 * try matching the token before
3126 * proceeding. But for input(),
3127 * there's no matching to consider.
3128 * So convert the EOB_ACT_LAST_MATCH
3129 * to EOB_ACT_END_OF_FILE.
3132 /* Reset buffer status. */
3133 as3_restart(as3_in );
3137 case EOB_ACT_END_OF_FILE:
3142 if ( ! (yy_did_buffer_switch_on_eof) )
3151 case EOB_ACT_CONTINUE_SCAN:
3152 (yy_c_buf_p) = (yytext_ptr) + offset;
3158 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3159 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3160 (yy_hold_char) = *++(yy_c_buf_p);
3162 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3166 #endif /* ifndef YY_NO_INPUT */
3168 /** Immediately switch to a different input stream.
3169 * @param input_file A readable stream.
3171 * @note This function does not reset the start condition to @c INITIAL .
3173 void as3_restart (FILE * input_file )
3176 if ( ! YY_CURRENT_BUFFER ){
3177 as3_ensure_buffer_stack ();
3178 YY_CURRENT_BUFFER_LVALUE =
3179 as3__create_buffer(as3_in,YY_BUF_SIZE );
3182 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3183 as3__load_buffer_state( );
3186 /** Switch to a different input buffer.
3187 * @param new_buffer The new input buffer.
3190 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3193 /* TODO. We should be able to replace this entire function body
3195 * as3_pop_buffer_state();
3196 * as3_push_buffer_state(new_buffer);
3198 as3_ensure_buffer_stack ();
3199 if ( YY_CURRENT_BUFFER == new_buffer )
3202 if ( YY_CURRENT_BUFFER )
3204 /* Flush out information for old buffer. */
3205 *(yy_c_buf_p) = (yy_hold_char);
3206 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3207 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3210 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3211 as3__load_buffer_state( );
3213 /* We don't actually know whether we did this switch during
3214 * EOF (as3_wrap()) processing, but the only time this flag
3215 * is looked at is after as3_wrap() is called, so it's safe
3216 * to go ahead and always set it.
3218 (yy_did_buffer_switch_on_eof) = 1;
3221 static void as3__load_buffer_state (void)
3223 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3224 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3225 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3226 (yy_hold_char) = *(yy_c_buf_p);
3229 /** Allocate and initialize an input buffer state.
3230 * @param file A readable stream.
3231 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3233 * @return the allocated buffer state.
3235 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3239 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3241 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3243 b->yy_buf_size = size;
3245 /* yy_ch_buf has to be 2 characters longer than the size given because
3246 * we need to put in 2 end-of-buffer characters.
3248 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3249 if ( ! b->yy_ch_buf )
3250 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3252 b->yy_is_our_buffer = 1;
3254 as3__init_buffer(b,file );
3259 /** Destroy the buffer.
3260 * @param b a buffer created with as3__create_buffer()
3263 void as3__delete_buffer (YY_BUFFER_STATE b )
3269 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3270 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3272 if ( b->yy_is_our_buffer )
3273 as3_free((void *) b->yy_ch_buf );
3275 as3_free((void *) b );
3278 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3282 #ifdef __THROW /* this is a gnuism */
3283 extern int isatty (int ) __THROW;
3285 extern int isatty (int );
3292 /* Initializes or reinitializes a buffer.
3293 * This function is sometimes called more than once on the same buffer,
3294 * such as during a as3_restart() or at EOF.
3296 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3301 as3__flush_buffer(b );
3303 b->yy_input_file = file;
3304 b->yy_fill_buffer = 1;
3306 /* If b is the current buffer, then as3__init_buffer was _probably_
3307 * called from as3_restart() or through yy_get_next_buffer.
3308 * In that case, we don't want to reset the lineno or column.
3310 if (b != YY_CURRENT_BUFFER){
3311 b->yy_bs_lineno = 1;
3312 b->yy_bs_column = 0;
3315 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3320 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3321 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3324 void as3__flush_buffer (YY_BUFFER_STATE b )
3331 /* We always need two end-of-buffer characters. The first causes
3332 * a transition to the end-of-buffer state. The second causes
3333 * a jam in that state.
3335 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3336 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3338 b->yy_buf_pos = &b->yy_ch_buf[0];
3341 b->yy_buffer_status = YY_BUFFER_NEW;
3343 if ( b == YY_CURRENT_BUFFER )
3344 as3__load_buffer_state( );
3347 /** Pushes the new state onto the stack. The new state becomes
3348 * the current state. This function will allocate the stack
3350 * @param new_buffer The new state.
3353 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3355 if (new_buffer == NULL)
3358 as3_ensure_buffer_stack();
3360 /* This block is copied from as3__switch_to_buffer. */
3361 if ( YY_CURRENT_BUFFER )
3363 /* Flush out information for old buffer. */
3364 *(yy_c_buf_p) = (yy_hold_char);
3365 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3366 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3369 /* Only push if top exists. Otherwise, replace top. */
3370 if (YY_CURRENT_BUFFER)
3371 (yy_buffer_stack_top)++;
3372 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3374 /* copied from as3__switch_to_buffer. */
3375 as3__load_buffer_state( );
3376 (yy_did_buffer_switch_on_eof) = 1;
3379 /** Removes and deletes the top of the stack, if present.
3380 * The next element becomes the new top.
3383 void as3_pop_buffer_state (void)
3385 if (!YY_CURRENT_BUFFER)
3388 as3__delete_buffer(YY_CURRENT_BUFFER );
3389 YY_CURRENT_BUFFER_LVALUE = NULL;
3390 if ((yy_buffer_stack_top) > 0)
3391 --(yy_buffer_stack_top);
3393 if (YY_CURRENT_BUFFER) {
3394 as3__load_buffer_state( );
3395 (yy_did_buffer_switch_on_eof) = 1;
3399 /* Allocates the stack if it does not exist.
3400 * Guarantees space for at least one push.
3402 static void as3_ensure_buffer_stack (void)
3406 if (!(yy_buffer_stack)) {
3408 /* First allocation is just for 2 elements, since we don't know if this
3409 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3410 * immediate realloc on the next call.
3413 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3414 (num_to_alloc * sizeof(struct yy_buffer_state*)
3416 if ( ! (yy_buffer_stack) )
3417 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3419 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3421 (yy_buffer_stack_max) = num_to_alloc;
3422 (yy_buffer_stack_top) = 0;
3426 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3428 /* Increase the buffer to prepare for a possible push. */
3429 int grow_size = 8 /* arbitrary grow size */;
3431 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3432 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3434 num_to_alloc * sizeof(struct yy_buffer_state*)
3436 if ( ! (yy_buffer_stack) )
3437 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3439 /* zero only the new slots.*/
3440 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3441 (yy_buffer_stack_max) = num_to_alloc;
3445 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3446 * @param base the character buffer
3447 * @param size the size in bytes of the character buffer
3449 * @return the newly allocated buffer state object.
3451 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3456 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3457 base[size-1] != YY_END_OF_BUFFER_CHAR )
3458 /* They forgot to leave room for the EOB's. */
3461 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3463 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3465 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3466 b->yy_buf_pos = b->yy_ch_buf = base;
3467 b->yy_is_our_buffer = 0;
3468 b->yy_input_file = 0;
3469 b->yy_n_chars = b->yy_buf_size;
3470 b->yy_is_interactive = 0;
3472 b->yy_fill_buffer = 0;
3473 b->yy_buffer_status = YY_BUFFER_NEW;
3475 as3__switch_to_buffer(b );
3480 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3481 * scan from a @e copy of @a str.
3482 * @param yystr a NUL-terminated string to scan
3484 * @return the newly allocated buffer state object.
3485 * @note If you want to scan bytes that may contain NUL values, then use
3486 * as3__scan_bytes() instead.
3488 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3491 return as3__scan_bytes(yystr,strlen(yystr) );
3494 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3495 * scan from a @e copy of @a bytes.
3496 * @param bytes the byte buffer to scan
3497 * @param len the number of bytes in the buffer pointed to by @a bytes.
3499 * @return the newly allocated buffer state object.
3501 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3508 /* Get memory for full buffer, including space for trailing EOB's. */
3509 n = _yybytes_len + 2;
3510 buf = (char *) as3_alloc(n );
3512 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3514 for ( i = 0; i < _yybytes_len; ++i )
3515 buf[i] = yybytes[i];
3517 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3519 b = as3__scan_buffer(buf,n );
3521 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3523 /* It's okay to grow etc. this buffer, and we should throw it
3524 * away when we're done.
3526 b->yy_is_our_buffer = 1;
3531 #ifndef YY_EXIT_FAILURE
3532 #define YY_EXIT_FAILURE 2
3535 static void yy_fatal_error (yyconst char* msg )
3537 (void) fprintf( stderr, "%s\n", msg );
3538 exit( YY_EXIT_FAILURE );
3541 /* Redefine yyless() so it works in section 3 code. */
3547 /* Undo effects of setting up as3_text. */ \
3548 int yyless_macro_arg = (n); \
3549 YY_LESS_LINENO(yyless_macro_arg);\
3550 as3_text[as3_leng] = (yy_hold_char); \
3551 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3552 (yy_hold_char) = *(yy_c_buf_p); \
3553 *(yy_c_buf_p) = '\0'; \
3554 as3_leng = yyless_macro_arg; \
3558 /* Accessor methods (get/set functions) to struct members. */
3560 /** Get the current line number.
3563 int as3_get_lineno (void)
3569 /** Get the input stream.
3572 FILE *as3_get_in (void)
3577 /** Get the output stream.
3580 FILE *as3_get_out (void)
3585 /** Get the length of the current token.
3588 int as3_get_leng (void)
3593 /** Get the current token.
3597 char *as3_get_text (void)
3602 /** Set the current line number.
3603 * @param line_number
3606 void as3_set_lineno (int line_number )
3609 as3_lineno = line_number;
3612 /** Set the input stream. This does not discard the current
3614 * @param in_str A readable stream.
3616 * @see as3__switch_to_buffer
3618 void as3_set_in (FILE * in_str )
3623 void as3_set_out (FILE * out_str )
3628 int as3_get_debug (void)
3630 return as3__flex_debug;
3633 void as3_set_debug (int bdebug )
3635 as3__flex_debug = bdebug ;
3638 static int yy_init_globals (void)
3640 /* Initialization is the same as for the non-reentrant scanner.
3641 * This function is called from as3_lex_destroy(), so don't allocate here.
3644 (yy_buffer_stack) = 0;
3645 (yy_buffer_stack_top) = 0;
3646 (yy_buffer_stack_max) = 0;
3647 (yy_c_buf_p) = (char *) 0;
3651 /* Defined in main.c */
3656 as3_in = (FILE *) 0;
3657 as3_out = (FILE *) 0;
3660 /* For future reference: Set errno on error, since we are called by
3666 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3667 int as3_lex_destroy (void)
3670 /* Pop the buffer stack, destroying each element. */
3671 while(YY_CURRENT_BUFFER){
3672 as3__delete_buffer(YY_CURRENT_BUFFER );
3673 YY_CURRENT_BUFFER_LVALUE = NULL;
3674 as3_pop_buffer_state();
3677 /* Destroy the stack itself. */
3678 as3_free((yy_buffer_stack) );
3679 (yy_buffer_stack) = NULL;
3681 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3682 * as3_lex() is called, initialization will occur. */
3689 * Internal utility routines.
3693 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3696 for ( i = 0; i < n; ++i )
3701 #ifdef YY_NEED_STRLEN
3702 static int yy_flex_strlen (yyconst char * s )
3705 for ( n = 0; s[n]; ++n )
3712 void *as3_alloc (yy_size_t size )
3714 return (void *) malloc( size );
3717 void *as3_realloc (void * ptr, yy_size_t size )
3719 /* The cast to (char *) in the following accommodates both
3720 * implementations that use char* generic pointers, and those
3721 * that use void* generic pointers. It works with the latter
3722 * because both ANSI C and C++ allow castless assignment from
3723 * any pointer type to void*, and deal with argument conversions
3724 * as though doing an assignment.
3726 return (void *) realloc( (char *) ptr, size );
3729 void as3_free (void * ptr )
3731 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3734 #define YYTABLES_NAME "yytables"
3736 #line 679 "tokenizer.lex"
3745 static char mbuf[256];
3746 char*token2string(enum yytokentype nr, YYSTYPE v)
3749 char*s = malloc(v.str.len+10);
3750 strcpy(s, "<string>");
3751 memcpy(s+8, v.str.str, v.str.len);
3752 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
3755 else if(nr==T_REGEXP) {
3756 char*s = malloc(strlen(v.regexp.pattern)+10);
3757 sprintf(s, "<regexp>%s", v.regexp.pattern);
3760 else if(nr==T_IDENTIFIER) {
3761 char*s = malloc(strlen(v.id)+10);
3762 sprintf(s, "<ID>%s", v.id);
3765 else if(nr==T_INT) return "<int>";
3766 else if(nr==T_UINT) return "<uint>";
3767 else if(nr==T_FLOAT) return "<float>";
3768 else if(nr==T_EOF) return "***END***";
3769 else if(nr==T_GE) return ">=";
3770 else if(nr==T_LE) return "<=";
3771 else if(nr==T_MINUSMINUS) return "--";
3772 else if(nr==T_PLUSPLUS) return "++";
3773 else if(nr==KW_IMPLEMENTS) return "implements";
3774 else if(nr==KW_INTERFACE) return "interface";
3775 else if(nr==KW_NAMESPACE) return "namespace";
3776 else if(nr==KW_PROTECTED) return "protected";
3777 else if(nr==KW_OVERRIDE) return "override";
3778 else if(nr==KW_INTERNAL) return "internal";
3779 else if(nr==KW_FUNCTION) return "function";
3780 else if(nr==KW_PACKAGE) return "package";
3781 else if(nr==KW_PRIVATE) return "private";
3782 else if(nr==KW_BOOLEAN) return "Boolean";
3783 else if(nr==KW_DYNAMIC) return "dynamic";
3784 else if(nr==KW_EXTENDS) return "extends";
3785 else if(nr==KW_PUBLIC) return "public";
3786 else if(nr==KW_NATIVE) return "native";
3787 else if(nr==KW_STATIC) return "static";
3788 else if(nr==KW_IMPORT) return "import";
3789 else if(nr==KW_NUMBER) return "number";
3790 else if(nr==KW_CLASS) return "class";
3791 else if(nr==KW_CONST) return "const";
3792 else if(nr==KW_FINAL) return "final";
3793 else if(nr==KW_FALSE) return "False";
3794 else if(nr==KW_TRUE) return "True";
3795 else if(nr==KW_UINT) return "uint";
3796 else if(nr==KW_NULL) return "null";
3797 else if(nr==KW_ELSE) return "else";
3798 else if(nr==KW_USE) return "use";
3799 else if(nr==KW_INT) return "int";
3800 else if(nr==KW_NEW) return "new";
3801 else if(nr==KW_GET) return "get";
3802 else if(nr==KW_SET) return "set";
3803 else if(nr==KW_VAR) return "var";
3804 else if(nr==KW_IS) return "is";
3805 else if(nr==KW_AS) return "as";
3807 sprintf(mbuf, "%d", nr);
3812 void initialize_scanner()