1 #line 2 "tokenizer.yy.c"
3 #line 4 "tokenizer.yy.c"
5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
9 #define yy_create_buffer as3__create_buffer
10 #define yy_delete_buffer as3__delete_buffer
11 #define yy_flex_debug as3__flex_debug
12 #define yy_init_buffer as3__init_buffer
13 #define yy_flush_buffer as3__flush_buffer
14 #define yy_load_buffer_state as3__load_buffer_state
15 #define yy_switch_to_buffer as3__switch_to_buffer
17 #define yyleng as3_leng
19 #define yylineno as3_lineno
21 #define yyrestart as3_restart
22 #define yytext as3_text
23 #define yywrap as3_wrap
24 #define yyalloc as3_alloc
25 #define yyrealloc as3_realloc
26 #define yyfree as3_free
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
32 #if YY_FLEX_SUBMINOR_VERSION > 0
36 /* First, we deal with platform-specific or compiler-specific issues. */
38 /* begin standard C headers. */
44 /* end standard C headers. */
46 /* flex integer type definitions */
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
78 /* Limits of integral types. */
80 #define INT8_MIN (-128)
83 #define INT16_MIN (-32767-1)
86 #define INT32_MIN (-2147483647-1)
89 #define INT8_MAX (127)
92 #define INT16_MAX (32767)
95 #define INT32_MAX (2147483647)
98 #define UINT8_MAX (255U)
101 #define UINT16_MAX (65535U)
104 #define UINT32_MAX (4294967295U)
107 #endif /* ! FLEXINT_H */
111 /* The "const" storage-class-modifier is valid. */
114 #else /* ! __cplusplus */
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
121 #endif /* defined (__STDC__) */
122 #endif /* ! __cplusplus */
125 #define yyconst const
130 /* Returned upon end-of-file. */
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134 * integer for use as an array index. If the signed char is negative,
135 * we want to instead treat it as an 8-bit unsigned char, hence the
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 /* Enter a start condition. This macro really ought to take a parameter,
141 * but we do it the disgusting crufty way forced on us by the ()-less
142 * definition of BEGIN.
144 #define BEGIN (yy_start) = 1 + 2 *
146 /* Translate the current start state into a value that can be later handed
147 * to BEGIN to return to the state. The YYSTATE alias is for lex
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE as3_restart(as3_in )
159 #define YY_END_OF_BUFFER_CHAR 0
161 /* Size of default input buffer. */
163 #define YY_BUF_SIZE 16384
166 /* The state buf must be large enough to hold one state per character in the main buffer.
168 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
177 extern FILE *as3_in, *as3_out;
179 #define EOB_ACT_CONTINUE_SCAN 0
180 #define EOB_ACT_END_OF_FILE 1
181 #define EOB_ACT_LAST_MATCH 2
183 #define YY_LESS_LINENO(n)
185 /* Return all but the first "n" matched characters back to the input stream. */
189 /* Undo effects of setting up as3_text. */ \
190 int yyless_macro_arg = (n); \
191 YY_LESS_LINENO(yyless_macro_arg);\
192 *yy_cp = (yy_hold_char); \
193 YY_RESTORE_YY_MORE_OFFSET \
194 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195 YY_DO_BEFORE_ACTION; /* set up as3_text again */ \
199 #define unput(c) yyunput( c, (yytext_ptr) )
201 #ifndef YY_TYPEDEF_YY_SIZE_T
202 #define YY_TYPEDEF_YY_SIZE_T
203 typedef size_t yy_size_t;
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
212 char *yy_ch_buf; /* input buffer */
213 char *yy_buf_pos; /* current position in input buffer */
215 /* Size of input buffer in bytes, not including room for EOB
218 yy_size_t yy_buf_size;
220 /* Number of characters read into yy_ch_buf, not including EOB
225 /* Whether we "own" the buffer - i.e., we know we created it,
226 * and can realloc() it to grow it, and should free() it to
229 int yy_is_our_buffer;
231 /* Whether this is an "interactive" input source; if so, and
232 * if we're using stdio for input, then we want to use getc()
233 * instead of fread(), to make sure we stop fetching input after
236 int yy_is_interactive;
238 /* Whether we're considered to be at the beginning of a line.
239 * If so, '^' rules will be active on the next match, otherwise
244 int yy_bs_lineno; /**< The line count. */
245 int yy_bs_column; /**< The column count. */
247 /* Whether to try to fill the input buffer when we reach the
252 int yy_buffer_status;
254 #define YY_BUFFER_NEW 0
255 #define YY_BUFFER_NORMAL 1
256 /* When an EOF's been seen but there's still some text to process
257 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258 * shouldn't try reading from the input source any more. We might
259 * still have a bunch of tokens to match, though, because of
260 * possible backing-up.
262 * When we actually see the EOF, we change the status to "new"
263 * (via as3_restart()), so that the user can continue scanning by
264 * just pointing as3_in at a new input file.
266 #define YY_BUFFER_EOF_PENDING 2
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
271 /* Stack of input buffers. */
272 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
276 /* We provide macros for accessing buffer states in case in the
277 * future we want to put the buffer states in a more general
280 * Returns the top of the stack, or NULL.
282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
286 /* Same as previous macro, but useful when we know that the buffer stack is not
287 * NULL or when we need an lvalue. For internal use only.
289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
291 /* yy_hold_char holds the character lost when as3_text is formed. */
292 static char yy_hold_char;
293 static int yy_n_chars; /* number of characters read into yy_ch_buf */
296 /* Points to current character in buffer. */
297 static char *yy_c_buf_p = (char *) 0;
298 static int yy_init = 0; /* whether we need to initialize */
299 static int yy_start = 0; /* start state number */
301 /* Flag which is used to allow as3_wrap()'s to do buffer switches
302 * instead of setting up a fresh as3_in. A bit of a hack ...
304 static int yy_did_buffer_switch_on_eof;
306 void as3_restart (FILE *input_file );
307 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer );
308 YY_BUFFER_STATE as3__create_buffer (FILE *file,int size );
309 void as3__delete_buffer (YY_BUFFER_STATE b );
310 void as3__flush_buffer (YY_BUFFER_STATE b );
311 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer );
312 void as3_pop_buffer_state (void );
314 static void as3_ensure_buffer_stack (void );
315 static void as3__load_buffer_state (void );
316 static void as3__init_buffer (YY_BUFFER_STATE b,FILE *file );
318 #define YY_FLUSH_BUFFER as3__flush_buffer(YY_CURRENT_BUFFER )
320 YY_BUFFER_STATE as3__scan_buffer (char *base,yy_size_t size );
321 YY_BUFFER_STATE as3__scan_string (yyconst char *yy_str );
322 YY_BUFFER_STATE as3__scan_bytes (yyconst char *bytes,int len );
324 void *as3_alloc (yy_size_t );
325 void *as3_realloc (void *,yy_size_t );
326 void as3_free (void * );
328 #define yy_new_buffer as3__create_buffer
330 #define yy_set_interactive(is_interactive) \
332 if ( ! YY_CURRENT_BUFFER ){ \
333 as3_ensure_buffer_stack (); \
334 YY_CURRENT_BUFFER_LVALUE = \
335 as3__create_buffer(as3_in,YY_BUF_SIZE ); \
337 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
340 #define yy_set_bol(at_bol) \
342 if ( ! YY_CURRENT_BUFFER ){\
343 as3_ensure_buffer_stack (); \
344 YY_CURRENT_BUFFER_LVALUE = \
345 as3__create_buffer(as3_in,YY_BUF_SIZE ); \
347 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
352 /* Begin user sect3 */
354 typedef unsigned char YY_CHAR;
356 FILE *as3_in = (FILE *) 0, *as3_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int as3_lineno;
364 extern char *as3_text;
365 #define yytext_ptr as3_text
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[] );
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up as3_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 as3_leng = (size_t) (yy_cp - yy_bp); \
378 (yy_hold_char) = *yy_cp; \
380 (yy_c_buf_p) = yy_cp;
382 #define YY_NUM_RULES 108
383 #define YY_END_OF_BUFFER 109
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify;
391 static yyconst flex_int16_t yy_accept[505] =
393 0, 0, 0, 0, 0, 0, 109, 107, 14, 14,
394 105, 107, 105, 105, 105, 107, 106, 105, 105, 105,
395 52, 105, 107, 107, 107, 54, 105, 105, 105, 103,
396 104, 103, 103, 103, 103, 103, 103, 103, 103, 103,
397 103, 103, 103, 103, 103, 103, 103, 103, 105, 104,
398 107, 103, 105, 105, 52, 105, 107, 107, 107, 30,
399 0, 6, 0, 41, 28, 0, 0, 42, 37, 38,
400 36, 39, 51, 0, 3, 0, 40, 17, 17, 0,
401 0, 0, 0, 53, 0, 47, 35, 33, 34, 49,
402 0, 103, 0, 102, 103, 103, 103, 103, 103, 25,
404 103, 103, 103, 103, 103, 103, 103, 103, 103, 101,
405 103, 100, 99, 103, 103, 103, 103, 103, 103, 103,
406 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
407 103, 103, 103, 103, 43, 29, 0, 100, 0, 0,
408 0, 0, 0, 3, 8, 40, 0, 11, 11, 0,
409 0, 0, 31, 50, 18, 0, 0, 0, 0, 0,
410 1, 0, 0, 0, 0, 0, 0, 45, 32, 44,
411 48, 0, 0, 0, 0, 0, 103, 103, 103, 103,
412 103, 103, 103, 103, 103, 103, 103, 103, 103, 24,
413 103, 95, 103, 103, 103, 103, 103, 94, 103, 103,
415 103, 103, 103, 103, 103, 96, 103, 103, 103, 103,
416 103, 98, 103, 103, 93, 97, 103, 103, 103, 13,
417 103, 0, 11, 11, 0, 0, 12, 8, 0, 0,
418 0, 8, 0, 8, 8, 0, 0, 0, 0, 0,
419 0, 0, 2, 0, 16, 0, 15, 15, 0, 0,
420 46, 0, 0, 0, 0, 103, 91, 103, 103, 103,
421 103, 103, 103, 103, 86, 90, 103, 103, 103, 103,
422 103, 103, 103, 103, 103, 103, 89, 103, 103, 103,
423 103, 103, 103, 103, 103, 103, 103, 88, 103, 103,
424 87, 103, 92, 103, 12, 0, 0, 0, 0, 8,
426 0, 8, 0, 0, 2, 0, 8, 8, 10, 0,
427 9, 9, 0, 2, 19, 0, 21, 0, 0, 0,
428 84, 81, 79, 80, 103, 103, 103, 103, 103, 83,
429 82, 103, 103, 103, 103, 103, 103, 103, 103, 103,
430 103, 103, 103, 103, 103, 85, 103, 78, 103, 103,
431 26, 103, 10, 0, 9, 9, 0, 0, 2, 0,
432 8, 8, 0, 20, 0, 0, 103, 103, 71, 103,
433 103, 103, 103, 103, 76, 103, 103, 103, 103, 74,
434 103, 103, 103, 103, 73, 72, 75, 27, 77, 103,
435 103, 8, 0, 0, 0, 103, 66, 69, 70, 65,
437 103, 103, 103, 103, 103, 103, 103, 67, 68, 103,
438 103, 103, 8, 0, 0, 22, 61, 64, 103, 103,
439 103, 63, 103, 62, 103, 103, 0, 0, 23, 103,
440 103, 57, 58, 59, 60, 0, 0, 0, 0, 0,
441 0, 56, 55, 0, 5, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
443 0, 0, 0, 0, 0, 4, 0, 0, 4, 0,
444 5, 0, 0, 0, 0, 7, 0, 21, 5, 21,
445 21, 0, 0, 0, 7, 0, 20, 5, 20, 20,
446 0, 0, 0, 0, 0, 22, 5, 22, 22, 23,
451 static yyconst flex_int32_t yy_ec[256] =
453 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
454 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 4, 5, 6, 7, 8, 9, 10, 11, 8,
457 12, 13, 14, 8, 15, 16, 17, 18, 19, 19,
458 20, 19, 19, 19, 19, 19, 19, 21, 8, 22,
459 23, 24, 8, 8, 25, 26, 27, 28, 26, 26,
460 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
461 26, 26, 26, 29, 26, 26, 26, 26, 26, 26,
462 30, 31, 32, 8, 33, 7, 34, 35, 36, 37,
464 38, 39, 40, 41, 42, 26, 43, 44, 45, 46,
465 47, 48, 26, 49, 50, 51, 52, 53, 54, 55,
466 56, 26, 8, 57, 58, 8, 7, 7, 7, 7,
467 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
468 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
469 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
470 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
471 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
472 7, 7, 7, 7, 7, 7, 59, 7, 7, 7,
473 60, 7, 7, 7, 7, 7, 7, 7, 7, 7,
475 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
476 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
477 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
478 7, 7, 7, 7, 7, 7, 7, 7, 61, 7,
479 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
483 static yyconst flex_int32_t yy_meta[62] =
485 1, 2, 3, 2, 4, 4, 4, 4, 4, 4,
486 4, 4, 4, 4, 4, 5, 4, 6, 6, 6,
487 2, 4, 4, 4, 7, 7, 7, 7, 7, 4,
488 8, 4, 8, 7, 7, 7, 7, 9, 7, 7,
489 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
490 7, 7, 7, 7, 10, 7, 4, 4, 4, 4,
494 static yyconst flex_int16_t yy_base[536] =
496 0, 500, 48, 55, 62, 69, 541, 2955, 2955, 2955,
497 514, 84, 2955, 508, 516, 81, 2955, 501, 77, 78,
498 86, 86, 98, 103, 108, 495, 108, 484, 71, 130,
499 2955, 135, 140, 146, 162, 167, 173, 170, 193, 179,
500 182, 199, 202, 218, 232, 153, 203, 244, 97, 2955,
501 444, 451, 279, 285, 186, 240, 291, 296, 301, 469,
502 104, 2955, 481, 2955, 2955, 114, 480, 2955, 2955, 2955,
503 2955, 2955, 457, 304, 324, 463, 2955, 2955, 325, 416,
504 257, 427, 376, 2955, 393, 392, 2955, 389, 2955, 84,
505 328, 244, 350, 316, 319, 328, 334, 338, 346, 356,
507 364, 372, 374, 382, 390, 392, 400, 402, 412, 414,
508 422, 430, 432, 440, 448, 460, 450, 472, 467, 478,
509 481, 487, 493, 502, 509, 513, 524, 525, 541, 547,
510 548, 562, 564, 568, 2955, 2955, 347, 582, 352, 606,
511 618, 436, 151, 628, 671, 211, 230, 2955, 628, 356,
512 379, 378, 2955, 2955, 2955, 649, 652, 666, 376, 379,
513 2955, 652, 657, 727, 788, 362, 348, 2955, 2955, 2955,
514 337, 804, 312, 301, 293, 299, 779, 781, 780, 507,
515 562, 783, 817, 810, 819, 834, 836, 524, 833, 845,
516 848, 857, 859, 868, 874, 880, 883, 889, 895, 904,
518 915, 918, 921, 932, 935, 941, 944, 947, 956, 958,
519 975, 972, 978, 994, 987, 1001, 1003, 1010, 1017, 2955,
520 1026, 666, 2955, 818, 662, 322, 2955, 0, 1064, 1073,
521 1081, 319, 1086, 0, 1101, 1073, 1082, 1157, 1218, 142,
522 690, 1106, 318, 1242, 2955, 0, 2955, 0, 284, 300,
523 2955, 0, 269, 271, 264, 1063, 1204, 1219, 1218, 1235,
524 1220, 1248, 1250, 1248, 1260, 1268, 1270, 1283, 1280, 1292,
525 1301, 1309, 1310, 1319, 1324, 1333, 1342, 1345, 1333, 1355,
526 1362, 1359, 1371, 1374, 1383, 1395, 1394, 1409, 1410, 1388,
527 1414, 1427, 1424, 1433, 2955, 1463, 1468, 1506, 1567, 0,
529 413, 1628, 1591, 1689, 275, 1692, 1723, 0, 2955, 0,
530 2955, 0, 1599, 2955, 2955, 257, 2955, 0, 229, 224,
531 1437, 1571, 1665, 1666, 1452, 1746, 1454, 1669, 1752, 1753,
532 1759, 1768, 1564, 1768, 1777, 1785, 1793, 1806, 1795, 1806,
533 1815, 1827, 1834, 1832, 1844, 1846, 1854, 1862, 1864, 1864,
534 1871, 1883, 2955, 0, 2955, 0, 1925, 1930, 0, 1938,
535 0, 0, 235, 2955, 222, 192, 1902, 1911, 1918, 1930,
536 1928, 1940, 1941, 1942, 1953, 1965, 1964, 1968, 1979, 1980,
537 1991, 2002, 2003, 2000, 2014, 2023, 2025, 2026, 2029, 1958,
538 2041, 206, 187, 169, 0, 2044, 2053, 2056, 2065, 2068,
540 2077, 2080, 2090, 2098, 2106, 2118, 2120, 2128, 2130, 2143,
541 2145, 2158, 167, 151, 0, 2955, 2155, 2167, 2170, 2176,
542 2188, 2177, 2199, 2197, 2208, 2219, 2261, 147, 2955, 2223,
543 2231, 2239, 2241, 2249, 2251, 685, 156, 2301, 2304, 120,
544 115, 2270, 2272, 941, 1332, 1492, 1583, 256, 1617, 126,
545 129, 2322, 2326, 2344, 1694, 2348, 2332, 2357, 2360, 2336,
546 2370, 2364, 2374, 154, 2129, 2183, 95, 2255, 2377, 2385,
547 2389, 2420, 2399, 2443, 2451, 2955, 195, 2402, 2436, 2454,
548 2457, 2493, 2460, 2468, 64, 235, 2463, 2471, 2480, 2484,
549 2488, 2517, 2524, 2565, 2626, 2527, 2530, 2533, 2536, 2539,
551 2542, 2545, 2554, 2955, 2687, 2697, 2707, 2716, 2726, 2736,
552 2746, 2755, 2765, 2771, 2781, 2791, 2800, 2806, 2816, 2826,
553 2831, 2835, 2845, 2855, 2865, 2870, 2880, 2885, 2890, 2895,
554 2905, 2914, 2924, 2934, 2944
557 static yyconst flex_int16_t yy_def[536] =
559 504, 1, 1, 1, 1, 1, 504, 504, 504, 504,
560 504, 505, 504, 504, 504, 506, 504, 504, 504, 504,
561 504, 504, 507, 507, 507, 504, 504, 504, 504, 508,
562 504, 508, 508, 508, 508, 508, 508, 508, 508, 37,
563 37, 37, 37, 37, 37, 39, 37, 37, 504, 504,
564 504, 39, 504, 504, 504, 509, 510, 510, 510, 504,
565 505, 504, 505, 504, 504, 506, 506, 504, 504, 504,
566 504, 504, 504, 511, 512, 513, 504, 504, 511, 25,
567 504, 514, 504, 504, 504, 504, 504, 504, 504, 504,
568 504, 39, 504, 39, 39, 39, 37, 39, 39, 39,
570 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
571 39, 39, 39, 39, 39, 39, 39, 39, 37, 37,
572 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
573 37, 37, 37, 37, 504, 504, 504, 39, 504, 515,
574 515, 516, 509, 517, 513, 509, 509, 504, 516, 59,
575 504, 518, 504, 504, 504, 512, 512, 519, 504, 513,
576 504, 511, 511, 504, 514, 504, 504, 504, 504, 504,
577 504, 504, 504, 504, 504, 504, 37, 37, 37, 39,
578 39, 37, 37, 37, 37, 37, 37, 39, 37, 37,
579 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
581 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
582 37, 37, 37, 37, 37, 37, 37, 37, 37, 504,
583 37, 520, 504, 520, 504, 521, 504, 522, 517, 517,
584 523, 522, 517, 145, 509, 516, 516, 504, 518, 524,
585 512, 519, 504, 512, 504, 164, 504, 164, 504, 504,
586 504, 525, 504, 504, 504, 37, 37, 37, 39, 39,
587 37, 37, 37, 39, 39, 39, 39, 39, 39, 39,
588 39, 39, 37, 37, 39, 39, 39, 39, 37, 37,
589 37, 37, 37, 37, 37, 37, 37, 37, 37, 39,
590 39, 39, 39, 37, 504, 520, 520, 504, 521, 522,
592 526, 504, 517, 523, 522, 517, 504, 235, 504, 238,
593 504, 238, 512, 504, 504, 504, 504, 527, 504, 504,
594 37, 37, 37, 37, 39, 39, 39, 37, 37, 37,
595 37, 37, 39, 39, 39, 39, 39, 39, 37, 37,
596 37, 37, 37, 39, 39, 39, 39, 39, 39, 37,
597 37, 37, 504, 298, 504, 298, 517, 517, 522, 517,
598 302, 307, 504, 504, 504, 504, 37, 37, 37, 37,
599 39, 39, 37, 37, 37, 37, 37, 37, 37, 37,
600 37, 37, 37, 37, 37, 37, 37, 37, 37, 39,
601 39, 235, 504, 504, 528, 39, 39, 39, 39, 39,
603 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
604 39, 39, 302, 504, 529, 504, 39, 39, 39, 37,
605 37, 37, 37, 37, 37, 37, 530, 531, 504, 39,
606 39, 39, 39, 39, 39, 532, 533, 534, 532, 531,
607 531, 39, 39, 504, 504, 532, 532, 533, 504, 533,
608 535, 535, 534, 534, 532, 534, 504, 504, 532, 532,
609 532, 532, 532, 531, 504, 504, 535, 504, 504, 532,
610 535, 532, 532, 532, 532, 504, 531, 504, 504, 532,
611 532, 532, 532, 532, 531, 531, 504, 504, 532, 532,
612 532, 532, 532, 532, 532, 504, 504, 532, 532, 504,
614 504, 532, 532, 0, 504, 504, 504, 504, 504, 504,
615 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
616 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
617 504, 504, 504, 504, 504
620 static yyconst flex_int16_t yy_nxt[3017] =
622 8, 9, 10, 9, 11, 12, 8, 13, 14, 15,
623 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
624 26, 27, 28, 29, 30, 30, 30, 30, 30, 13,
625 8, 31, 30, 32, 33, 34, 35, 36, 37, 38,
626 30, 39, 30, 30, 30, 40, 41, 42, 43, 44,
627 45, 46, 47, 48, 30, 30, 49, 50, 8, 8,
628 51, 53, 54, 55, 56, 57, 58, 59, 53, 54,
629 55, 56, 57, 58, 59, 53, 54, 55, 56, 57,
630 58, 59, 53, 54, 55, 56, 57, 58, 59, 62,
631 69, 62, 71, 89, 90, 441, 52, 451, 75, 70,
633 72, 73, 76, 74, 74, 74, 170, 171, 77, 62,
634 52, 67, 85, 79, 63, 80, 80, 80, 79, 135,
635 80, 80, 80, 79, 62, 80, 80, 80, 448, 86,
636 87, 91, 91, 91, 63, 81, 91, 91, 91, 449,
637 81, 91, 91, 91, 67, 81, 464, 91, 91, 91,
638 93, 441, 82, 136, 313, 93, 83, 504, 314, 467,
639 93, 449, 504, 91, 91, 91, 93, 228, 91, 91,
640 91, 91, 91, 91, 91, 91, 91, 476, 441, 96,
641 428, 147, 93, 159, 94, 477, 450, 93, 95, 97,
642 93, 92, 98, 93, 91, 91, 91, 92, 129, 99,
644 102, 73, 130, 142, 142, 142, 105, 109, 100, 415,
645 103, 414, 114, 93, 106, 92, 115, 101, 485, 107,
646 92, 104, 413, 92, 108, 92, 486, 228, 92, 395,
647 116, 110, 118, 92, 117, 92, 131, 111, 112, 121,
648 92, 147, 113, 92, 92, 92, 235, 119, 92, 132,
649 120, 92, 144, 92, 92, 122, 145, 394, 485, 92,
650 147, 449, 146, 393, 92, 92, 464, 366, 123, 124,
651 147, 125, 126, 92, 163, 163, 163, 92, 92, 365,
652 127, 363, 92, 92, 133, 134, 450, 128, 92, 92,
653 92, 244, 69, 92, 139, 92, 140, 141, 141, 71,
655 139, 70, 140, 141, 141, 320, 149, 72, 150, 150,
656 150, 149, 319, 150, 150, 150, 149, 318, 150, 150,
657 150, 74, 74, 74, 156, 156, 156, 316, 151, 91,
658 91, 91, 315, 151, 244, 244, 158, 298, 151, 255,
659 159, 81, 162, 162, 162, 152, 254, 253, 93, 83,
660 504, 172, 172, 172, 92, 504, 177, 92, 252, 251,
661 92, 92, 81, 92, 92, 92, 92, 180, 92, 222,
662 222, 222, 92, 92, 250, 92, 92, 178, 179, 249,
663 92, 161, 92, 181, 182, 92, 173, 92, 174, 183,
664 92, 92, 244, 238, 92, 92, 237, 237, 237, 175,
666 92, 92, 92, 176, 504, 92, 220, 185, 92, 184,
667 92, 169, 92, 92, 168, 244, 92, 92, 92, 92,
668 92, 92, 167, 186, 166, 358, 92, 92, 92, 359,
669 92, 92, 187, 188, 92, 92, 92, 189, 92, 92,
670 92, 92, 164, 360, 92, 92, 92, 191, 190, 92,
671 92, 92, 92, 142, 142, 142, 92, 92, 92, 92,
672 92, 92, 192, 92, 504, 161, 92, 92, 92, 193,
673 92, 92, 154, 151, 92, 92, 92, 92, 92, 194,
674 195, 92, 66, 61, 196, 92, 92, 200, 92, 92,
675 197, 153, 92, 92, 92, 92, 138, 92, 92, 92,
677 92, 198, 137, 199, 92, 92, 88, 201, 202, 92,
678 92, 92, 204, 203, 92, 84, 92, 92, 92, 92,
679 92, 92, 92, 68, 92, 65, 207, 92, 92, 92,
680 64, 205, 92, 92, 92, 92, 60, 206, 92, 92,
681 504, 52, 92, 92, 92, 92, 92, 504, 92, 208,
682 209, 92, 92, 92, 92, 92, 259, 92, 92, 92,
683 92, 210, 92, 504, 92, 92, 92, 504, 92, 92,
684 92, 92, 213, 268, 92, 211, 92, 214, 504, 212,
685 92, 92, 92, 504, 215, 504, 504, 92, 92, 92,
686 504, 504, 92, 92, 92, 92, 216, 92, 92, 92,
688 92, 92, 504, 217, 504, 218, 92, 92, 92, 92,
689 92, 260, 261, 92, 92, 92, 504, 221, 219, 92,
690 92, 224, 504, 141, 141, 141, 92, 92, 229, 229,
691 156, 194, 195, 224, 504, 141, 141, 141, 504, 504,
692 231, 504, 504, 225, 232, 236, 236, 236, 504, 156,
693 156, 156, 156, 156, 156, 225, 504, 504, 233, 504,
694 226, 240, 504, 504, 240, 151, 241, 241, 241, 162,
695 162, 162, 504, 161, 163, 163, 163, 504, 242, 297,
696 297, 297, 243, 222, 222, 222, 444, 445, 446, 81,
697 156, 156, 156, 504, 504, 234, 234, 234, 234, 234,
699 504, 504, 240, 225, 234, 234, 234, 234, 234, 234,
700 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
701 234, 234, 234, 234, 234, 234, 234, 245, 245, 245,
702 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
703 245, 245, 245, 245, 246, 246, 246, 245, 245, 245,
704 245, 246, 246, 246, 246, 246, 245, 504, 245, 504,
705 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
706 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
707 246, 246, 246, 245, 245, 245, 245, 245, 247, 247,
708 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
710 247, 247, 247, 248, 247, 172, 172, 172, 247, 247,
711 247, 247, 256, 92, 92, 258, 262, 247, 257, 247,
712 92, 92, 92, 504, 92, 92, 92, 92, 504, 92,
713 92, 92, 92, 504, 92, 296, 296, 296, 504, 504,
714 173, 504, 174, 264, 247, 247, 247, 247, 247, 504,
715 92, 92, 92, 175, 263, 225, 92, 176, 92, 265,
716 92, 92, 504, 92, 504, 92, 269, 92, 92, 92,
717 92, 266, 504, 267, 92, 92, 504, 92, 92, 92,
718 92, 92, 92, 270, 92, 92, 92, 92, 504, 92,
719 92, 92, 92, 504, 92, 504, 92, 504, 92, 92,
721 92, 92, 271, 92, 504, 272, 504, 92, 92, 92,
722 92, 274, 504, 92, 92, 92, 92, 275, 273, 92,
723 92, 92, 92, 504, 276, 92, 92, 504, 92, 92,
724 92, 92, 504, 504, 92, 92, 92, 92, 277, 504,
725 92, 92, 444, 445, 444, 92, 92, 504, 92, 504,
726 92, 92, 278, 504, 92, 92, 92, 279, 504, 92,
727 504, 92, 92, 504, 92, 92, 92, 92, 92, 92,
728 280, 281, 92, 92, 92, 282, 92, 92, 92, 504,
729 92, 92, 92, 92, 285, 92, 283, 92, 92, 92,
730 92, 92, 92, 92, 284, 92, 504, 92, 92, 92,
732 504, 504, 92, 504, 287, 92, 286, 92, 92, 92,
733 504, 92, 288, 92, 504, 289, 92, 504, 92, 92,
734 92, 92, 504, 92, 92, 504, 92, 92, 92, 92,
735 504, 290, 504, 92, 92, 92, 92, 504, 92, 291,
736 92, 504, 92, 92, 92, 92, 504, 92, 504, 92,
737 92, 92, 92, 292, 92, 504, 92, 293, 92, 92,
738 504, 92, 504, 92, 229, 229, 156, 92, 92, 294,
739 504, 504, 92, 229, 229, 156, 301, 92, 504, 504,
740 302, 303, 303, 241, 504, 301, 229, 229, 156, 302,
741 236, 236, 236, 304, 233, 504, 92, 305, 301, 237,
743 237, 237, 307, 233, 92, 321, 241, 241, 241, 92,
744 151, 306, 504, 504, 92, 504, 233, 228, 242, 504,
745 504, 504, 243, 504, 504, 308, 308, 308, 308, 308,
746 504, 147, 504, 504, 308, 308, 308, 308, 308, 308,
747 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
748 308, 308, 308, 308, 308, 308, 308, 309, 309, 309,
749 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
750 309, 309, 309, 309, 310, 310, 310, 309, 309, 309,
751 309, 310, 310, 310, 310, 310, 309, 504, 309, 504,
752 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
754 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
755 310, 310, 310, 309, 309, 309, 309, 309, 311, 311,
756 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
757 311, 311, 311, 312, 311, 504, 504, 92, 311, 311,
758 311, 311, 156, 156, 156, 92, 504, 311, 504, 311,
759 92, 504, 92, 92, 240, 92, 92, 504, 159, 322,
760 92, 325, 92, 92, 504, 92, 92, 323, 504, 504,
761 92, 92, 504, 92, 311, 311, 311, 311, 311, 92,
762 92, 92, 504, 92, 92, 324, 92, 504, 504, 92,
763 504, 92, 328, 92, 92, 504, 92, 92, 92, 326,
765 327, 92, 504, 504, 92, 92, 92, 504, 92, 92,
766 504, 504, 92, 92, 92, 329, 504, 92, 92, 92,
767 330, 92, 504, 331, 92, 92, 504, 92, 92, 92,
768 92, 504, 92, 444, 445, 444, 92, 92, 333, 92,
769 504, 92, 332, 335, 504, 92, 92, 92, 504, 504,
770 92, 92, 92, 92, 92, 504, 92, 334, 92, 504,
771 92, 92, 92, 504, 504, 92, 340, 336, 92, 92,
772 92, 92, 504, 337, 92, 504, 504, 92, 92, 92,
773 92, 504, 92, 92, 92, 338, 92, 92, 341, 92,
774 92, 92, 92, 339, 92, 92, 92, 504, 504, 342,
776 343, 92, 504, 92, 92, 92, 92, 92, 92, 504,
777 92, 504, 92, 92, 504, 345, 92, 92, 504, 344,
778 92, 504, 92, 504, 92, 92, 350, 92, 92, 92,
779 347, 346, 92, 92, 92, 92, 92, 92, 504, 504,
780 92, 92, 92, 92, 504, 92, 92, 348, 504, 504,
781 92, 92, 92, 504, 504, 92, 349, 504, 92, 92,
782 92, 92, 92, 92, 351, 92, 92, 504, 92, 92,
783 92, 92, 92, 92, 92, 504, 92, 504, 92, 92,
784 296, 296, 296, 92, 352, 297, 297, 297, 92, 504,
785 92, 369, 92, 444, 445, 446, 92, 367, 92, 92,
787 225, 92, 504, 92, 504, 504, 353, 353, 353, 353,
788 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
789 353, 353, 353, 354, 354, 354, 353, 353, 353, 353,
790 354, 354, 354, 354, 354, 353, 504, 353, 504, 354,
791 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
792 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
793 354, 354, 353, 353, 353, 353, 353, 355, 355, 355,
794 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
795 355, 355, 356, 355, 444, 445, 446, 355, 355, 355,
796 355, 229, 229, 156, 504, 504, 355, 504, 355, 156,
798 156, 156, 92, 301, 92, 504, 504, 302, 374, 92,
799 504, 240, 92, 92, 504, 243, 504, 92, 465, 466,
800 465, 233, 92, 355, 355, 355, 355, 355, 156, 156,
801 156, 157, 157, 157, 157, 157, 157, 157, 157, 157,
802 240, 157, 157, 157, 157, 157, 157, 157, 157, 157,
803 157, 157, 361, 361, 361, 361, 361, 157, 157, 157,
804 157, 361, 361, 361, 361, 361, 361, 361, 361, 361,
805 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
806 361, 361, 361, 361, 157, 157, 157, 157, 157, 303,
807 303, 241, 229, 229, 156, 468, 469, 470, 92, 92,
809 504, 304, 92, 504, 301, 305, 92, 92, 307, 504,
810 370, 92, 92, 504, 504, 92, 92, 92, 504, 306,
811 92, 504, 233, 229, 229, 156, 230, 230, 230, 230,
812 230, 230, 230, 230, 230, 301, 230, 230, 230, 302,
813 230, 230, 230, 230, 230, 230, 230, 362, 362, 362,
814 362, 362, 230, 233, 230, 230, 362, 362, 362, 362,
815 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
816 362, 362, 362, 362, 362, 362, 362, 362, 362, 230,
817 230, 230, 230, 230, 92, 92, 92, 504, 371, 368,
818 92, 92, 92, 92, 92, 92, 504, 504, 92, 92,
820 92, 92, 372, 92, 92, 92, 92, 504, 504, 373,
821 92, 504, 92, 92, 92, 92, 504, 92, 375, 92,
822 504, 92, 376, 377, 504, 504, 92, 504, 92, 92,
823 378, 92, 504, 504, 92, 504, 381, 92, 92, 92,
824 379, 92, 92, 380, 92, 382, 92, 92, 92, 504,
825 92, 92, 92, 504, 504, 92, 92, 92, 504, 504,
826 92, 92, 384, 504, 504, 383, 92, 92, 92, 385,
827 92, 504, 504, 92, 504, 92, 92, 386, 92, 387,
828 92, 92, 92, 504, 92, 92, 504, 504, 92, 92,
829 92, 92, 92, 92, 388, 92, 504, 92, 92, 92,
831 92, 504, 389, 92, 92, 390, 92, 92, 92, 92,
832 92, 92, 92, 92, 504, 92, 92, 92, 504, 391,
833 504, 504, 92, 504, 92, 229, 229, 156, 504, 92,
834 229, 229, 156, 504, 92, 92, 504, 301, 229, 229,
835 156, 232, 301, 92, 92, 504, 305, 504, 92, 504,
836 301, 92, 92, 396, 392, 233, 504, 92, 504, 92,
837 233, 397, 92, 92, 92, 398, 92, 504, 233, 92,
838 504, 92, 92, 92, 92, 92, 92, 399, 92, 402,
839 504, 92, 92, 92, 92, 92, 92, 401, 92, 92,
840 504, 504, 92, 92, 92, 400, 92, 404, 92, 92,
842 403, 405, 92, 411, 92, 92, 92, 92, 504, 92,
843 92, 92, 406, 92, 92, 92, 92, 504, 504, 92,
844 92, 92, 504, 504, 92, 92, 92, 407, 504, 504,
845 92, 92, 92, 92, 504, 92, 92, 92, 504, 408,
846 409, 92, 92, 92, 92, 504, 92, 92, 92, 92,
847 410, 92, 504, 92, 92, 92, 92, 504, 92, 92,
848 92, 504, 92, 504, 92, 92, 92, 92, 504, 92,
849 92, 92, 92, 504, 92, 92, 92, 92, 412, 92,
850 92, 417, 92, 504, 504, 92, 92, 504, 92, 92,
851 92, 92, 504, 92, 92, 504, 504, 92, 92, 504,
853 92, 92, 92, 92, 504, 92, 92, 504, 504, 92,
854 92, 504, 92, 92, 92, 92, 504, 92, 92, 504,
855 504, 92, 418, 504, 92, 419, 92, 420, 92, 92,
856 465, 466, 465, 421, 92, 92, 92, 504, 504, 92,
857 504, 504, 92, 92, 92, 504, 504, 92, 504, 422,
858 92, 92, 504, 423, 504, 92, 92, 424, 92, 427,
859 427, 427, 92, 92, 92, 92, 92, 92, 92, 92,
860 504, 504, 92, 92, 92, 92, 504, 92, 504, 92,
861 425, 92, 426, 92, 465, 466, 465, 92, 92, 92,
862 92, 504, 92, 92, 92, 504, 92, 504, 504, 92,
864 92, 504, 92, 92, 92, 92, 504, 92, 92, 92,
865 92, 92, 92, 504, 92, 92, 92, 92, 92, 92,
866 430, 92, 431, 92, 504, 432, 504, 92, 92, 92,
867 92, 504, 92, 504, 92, 504, 433, 504, 92, 92,
868 92, 92, 504, 92, 434, 92, 504, 504, 92, 92,
869 92, 504, 92, 504, 92, 435, 468, 469, 468, 92,
870 92, 92, 427, 427, 427, 92, 437, 92, 92, 443,
871 92, 438, 442, 504, 504, 92, 92, 92, 504, 92,
872 92, 439, 504, 92, 92, 92, 92, 92, 92, 92,
873 92, 504, 504, 92, 92, 92, 92, 504, 92, 504,
875 92, 451, 452, 445, 453, 457, 458, 459, 92, 504,
876 92, 455, 504, 504, 92, 92, 92, 92, 504, 92,
877 504, 92, 504, 452, 445, 452, 451, 452, 445, 453,
878 504, 456, 449, 457, 458, 457, 455, 444, 445, 446,
879 460, 504, 461, 504, 451, 452, 445, 453, 451, 452,
880 471, 453, 467, 462, 455, 504, 456, 463, 457, 458,
881 457, 457, 458, 459, 504, 444, 445, 446, 173, 504,
882 174, 444, 445, 446, 456, 444, 445, 446, 468, 469,
883 468, 175, 472, 504, 504, 176, 468, 469, 470, 504,
884 452, 445, 452, 173, 504, 174, 460, 504, 461, 449,
886 444, 445, 446, 444, 445, 444, 175, 504, 504, 462,
887 176, 504, 504, 463, 475, 504, 473, 474, 504, 467,
888 317, 478, 479, 480, 481, 481, 481, 481, 481, 481,
889 481, 481, 481, 481, 481, 481, 481, 444, 445, 444,
890 481, 481, 481, 481, 444, 445, 446, 482, 504, 481,
891 504, 481, 444, 445, 446, 444, 445, 446, 444, 445,
892 446, 444, 445, 446, 444, 445, 444, 504, 504, 444,
893 445, 446, 444, 445, 444, 504, 481, 481, 481, 481,
894 481, 444, 445, 446, 483, 444, 445, 446, 504, 444,
895 445, 446, 484, 364, 487, 488, 489, 490, 490, 490,
897 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
898 491, 492, 504, 490, 490, 490, 490, 504, 444, 445,
899 446, 504, 490, 493, 490, 444, 445, 446, 444, 445,
900 444, 444, 445, 444, 444, 445, 446, 444, 445, 446,
901 444, 445, 444, 444, 445, 444, 444, 445, 446, 490,
902 490, 490, 490, 490, 494, 444, 445, 446, 504, 504,
903 504, 504, 504, 504, 495, 416, 496, 497, 498, 499,
904 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
905 499, 499, 504, 504, 504, 499, 499, 499, 499, 504,
906 504, 504, 504, 504, 499, 504, 499, 504, 504, 504,
908 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
909 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
910 504, 499, 499, 499, 499, 499, 429, 500, 501, 502,
911 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
912 503, 503, 503, 504, 504, 504, 503, 503, 503, 503,
913 504, 504, 504, 504, 504, 503, 504, 503, 504, 504,
914 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
915 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
916 504, 504, 503, 503, 503, 503, 503, 61, 61, 504,
917 61, 61, 61, 61, 61, 61, 61, 66, 66, 504,
919 66, 66, 66, 66, 66, 66, 66, 78, 78, 78,
920 78, 78, 78, 504, 504, 78, 78, 92, 92, 504,
921 504, 92, 92, 92, 92, 92, 143, 143, 504, 143,
922 143, 143, 143, 143, 143, 143, 148, 148, 148, 148,
923 148, 148, 504, 504, 148, 148, 155, 155, 155, 155,
924 155, 155, 504, 504, 155, 157, 157, 157, 157, 157,
925 157, 157, 157, 157, 157, 160, 160, 160, 160, 160,
926 160, 160, 160, 160, 160, 165, 165, 165, 504, 165,
927 165, 223, 223, 223, 223, 223, 223, 504, 504, 223,
928 223, 227, 227, 227, 227, 227, 227, 504, 504, 227,
930 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
931 239, 239, 239, 504, 239, 239, 156, 156, 156, 156,
932 156, 156, 156, 156, 156, 156, 295, 295, 295, 295,
933 295, 295, 504, 504, 295, 299, 299, 299, 504, 299,
934 299, 300, 504, 300, 300, 229, 229, 229, 229, 229,
935 229, 229, 229, 229, 229, 244, 244, 244, 244, 244,
936 244, 244, 244, 244, 244, 317, 317, 317, 317, 317,
937 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
938 364, 364, 364, 364, 364, 416, 416, 416, 416, 416,
939 429, 429, 429, 429, 429, 436, 436, 436, 436, 436,
941 436, 436, 436, 436, 436, 440, 440, 440, 440, 440,
942 440, 440, 440, 440, 440, 447, 447, 447, 447, 447,
943 447, 447, 447, 447, 448, 448, 504, 448, 448, 448,
944 448, 448, 448, 448, 454, 454, 454, 454, 454, 454,
945 454, 454, 454, 454, 451, 451, 504, 451, 451, 451,
946 451, 451, 451, 451, 7, 504, 504, 504, 504, 504,
947 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
948 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
949 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
950 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
952 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
953 504, 504, 504, 504, 504, 504
956 static yyconst flex_int16_t yy_chk[3017] =
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, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 3, 3, 3, 3, 3, 3, 3, 4, 4,
965 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
966 5, 5, 6, 6, 6, 6, 6, 6, 6, 12,
967 19, 16, 20, 29, 29, 485, 4, 467, 22, 19,
969 20, 21, 22, 21, 21, 21, 90, 90, 22, 61,
970 6, 16, 27, 23, 12, 23, 23, 23, 24, 49,
971 24, 24, 24, 25, 66, 25, 25, 25, 450, 27,
972 27, 30, 30, 30, 61, 23, 32, 32, 32, 451,
973 24, 33, 33, 33, 66, 25, 441, 34, 34, 34,
974 30, 440, 23, 49, 240, 32, 25, 24, 240, 451,
975 33, 437, 25, 35, 35, 35, 34, 143, 36, 36,
976 36, 38, 38, 38, 37, 37, 37, 464, 428, 34,
977 414, 143, 35, 413, 32, 464, 437, 36, 33, 34,
978 38, 46, 34, 37, 39, 39, 39, 46, 46, 35,
980 36, 55, 46, 55, 55, 55, 37, 38, 35, 394,
981 36, 393, 40, 39, 37, 41, 40, 35, 477, 37,
982 40, 36, 392, 41, 37, 40, 477, 146, 41, 366,
983 40, 39, 42, 41, 41, 43, 47, 39, 39, 43,
984 42, 146, 39, 43, 47, 42, 147, 42, 43, 47,
985 42, 44, 56, 43, 47, 44, 56, 365, 486, 44,
986 147, 448, 56, 363, 44, 45, 486, 320, 44, 44,
987 56, 44, 45, 45, 81, 81, 81, 48, 45, 319,
988 45, 316, 92, 45, 48, 48, 448, 45, 92, 92,
989 48, 305, 53, 92, 53, 48, 53, 53, 53, 54,
991 54, 53, 54, 54, 54, 255, 57, 54, 57, 57,
992 57, 58, 254, 58, 58, 58, 59, 253, 59, 59,
993 59, 74, 74, 74, 75, 75, 75, 250, 57, 91,
994 91, 91, 249, 58, 243, 232, 75, 226, 59, 176,
995 75, 74, 79, 79, 79, 57, 175, 174, 91, 59,
996 58, 93, 93, 93, 94, 59, 95, 95, 173, 171,
997 94, 94, 79, 95, 95, 94, 96, 97, 95, 139,
998 139, 139, 96, 96, 167, 97, 98, 96, 96, 166,
999 97, 160, 98, 98, 99, 97, 93, 98, 93, 99,
1000 99, 99, 159, 152, 100, 99, 151, 151, 151, 93,
1002 100, 100, 101, 93, 150, 100, 137, 102, 101, 101,
1003 102, 88, 103, 101, 86, 301, 102, 102, 103, 103,
1004 104, 102, 85, 103, 83, 301, 104, 104, 105, 301,
1005 106, 104, 104, 105, 105, 105, 106, 106, 107, 105,
1006 108, 106, 82, 301, 107, 107, 108, 108, 107, 107,
1007 109, 108, 110, 142, 142, 142, 109, 109, 110, 110,
1008 111, 109, 109, 110, 80, 76, 111, 111, 112, 111,
1009 113, 111, 73, 142, 112, 112, 113, 113, 114, 112,
1010 112, 113, 67, 63, 114, 114, 115, 117, 117, 114,
1011 114, 60, 115, 115, 117, 117, 52, 115, 116, 117,
1013 119, 115, 51, 116, 116, 116, 28, 118, 119, 116,
1014 118, 120, 120, 119, 121, 26, 118, 118, 119, 120,
1015 122, 118, 121, 18, 120, 15, 123, 121, 122, 120,
1016 14, 121, 121, 122, 123, 124, 11, 122, 122, 123,
1017 7, 2, 125, 124, 123, 180, 126, 0, 124, 124,
1018 125, 180, 180, 124, 126, 125, 180, 127, 128, 126,
1019 125, 126, 188, 0, 126, 127, 128, 0, 188, 188,
1020 127, 128, 128, 188, 129, 127, 128, 129, 0, 127,
1021 130, 131, 129, 0, 130, 0, 0, 129, 130, 131,
1022 0, 0, 129, 130, 131, 132, 131, 133, 130, 131,
1024 181, 134, 0, 132, 0, 133, 181, 181, 132, 134,
1025 133, 181, 181, 132, 134, 133, 0, 138, 134, 134,
1026 138, 140, 0, 140, 140, 140, 138, 138, 144, 144,
1027 144, 138, 138, 141, 0, 141, 141, 141, 0, 0,
1028 144, 0, 0, 140, 144, 149, 149, 149, 0, 156,
1029 156, 156, 157, 157, 157, 141, 0, 0, 144, 0,
1030 140, 156, 0, 0, 157, 149, 158, 158, 158, 162,
1031 162, 162, 141, 145, 163, 163, 163, 0, 158, 225,
1032 225, 225, 158, 222, 222, 222, 436, 436, 436, 162,
1033 241, 241, 241, 0, 163, 145, 145, 145, 145, 145,
1035 0, 0, 241, 222, 145, 145, 145, 145, 145, 145,
1036 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1037 145, 145, 145, 145, 145, 145, 145, 164, 164, 164,
1038 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1039 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1040 164, 164, 164, 164, 164, 164, 164, 0, 164, 0,
1041 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1042 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1043 164, 164, 164, 164, 164, 164, 164, 164, 165, 165,
1044 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1046 165, 165, 165, 165, 165, 172, 172, 172, 165, 165,
1047 165, 165, 177, 179, 178, 179, 182, 165, 178, 165,
1048 177, 179, 178, 0, 182, 177, 179, 178, 0, 182,
1049 177, 179, 178, 0, 182, 224, 224, 224, 0, 0,
1050 172, 0, 172, 184, 165, 165, 165, 165, 165, 0,
1051 183, 184, 185, 172, 183, 224, 184, 172, 183, 185,
1052 185, 184, 0, 183, 0, 185, 189, 186, 183, 187,
1053 185, 186, 0, 187, 189, 186, 0, 187, 190, 189,
1054 186, 191, 187, 191, 189, 186, 190, 187, 0, 191,
1055 192, 190, 193, 0, 191, 0, 190, 0, 192, 191,
1057 193, 194, 193, 192, 0, 193, 0, 195, 192, 194,
1058 193, 195, 0, 196, 194, 195, 197, 196, 194, 194,
1059 195, 196, 198, 0, 197, 195, 196, 0, 199, 197,
1060 198, 196, 0, 0, 197, 198, 199, 200, 199, 0,
1061 198, 199, 444, 444, 444, 200, 199, 0, 201, 0,
1062 200, 202, 200, 0, 203, 200, 201, 201, 0, 202,
1063 0, 201, 203, 0, 202, 204, 201, 203, 205, 202,
1064 202, 203, 203, 204, 206, 204, 205, 207, 204, 0,
1065 208, 205, 206, 204, 208, 207, 205, 206, 208, 209,
1066 207, 210, 206, 208, 207, 207, 0, 209, 208, 210,
1068 0, 0, 209, 0, 210, 212, 209, 209, 211, 210,
1069 0, 213, 211, 212, 0, 213, 211, 0, 212, 213,
1070 215, 211, 0, 212, 213, 0, 211, 214, 215, 213,
1071 0, 214, 0, 215, 216, 214, 217, 0, 215, 217,
1072 214, 0, 216, 218, 217, 214, 0, 216, 0, 217,
1073 219, 218, 216, 218, 217, 0, 218, 219, 219, 221,
1074 0, 218, 0, 219, 229, 229, 229, 221, 219, 221,
1075 0, 0, 221, 230, 230, 230, 229, 221, 0, 0,
1076 229, 231, 231, 231, 0, 230, 233, 233, 233, 230,
1077 236, 236, 236, 231, 229, 0, 256, 231, 233, 237,
1079 237, 237, 233, 230, 256, 256, 242, 242, 242, 256,
1080 236, 231, 0, 0, 256, 0, 233, 235, 242, 237,
1081 0, 0, 242, 0, 0, 235, 235, 235, 235, 235,
1082 0, 235, 0, 0, 235, 235, 235, 235, 235, 235,
1083 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1084 235, 235, 235, 235, 235, 235, 235, 238, 238, 238,
1085 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1086 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1087 238, 238, 238, 238, 238, 238, 238, 0, 238, 0,
1088 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1090 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1091 238, 238, 238, 238, 238, 238, 238, 238, 239, 239,
1092 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1093 239, 239, 239, 239, 239, 0, 0, 257, 239, 239,
1094 239, 239, 244, 244, 244, 257, 0, 239, 0, 239,
1095 257, 0, 258, 261, 244, 257, 259, 0, 244, 258,
1096 258, 261, 259, 259, 0, 258, 261, 259, 0, 0,
1097 258, 261, 0, 260, 239, 239, 239, 239, 239, 260,
1098 260, 262, 0, 263, 260, 260, 264, 0, 0, 262,
1099 0, 263, 264, 264, 262, 0, 263, 264, 265, 262,
1101 263, 263, 0, 0, 265, 265, 266, 0, 267, 265,
1102 0, 0, 266, 266, 267, 267, 0, 266, 269, 267,
1103 268, 268, 0, 269, 269, 269, 0, 268, 268, 269,
1104 270, 0, 268, 445, 445, 445, 270, 270, 271, 271,
1105 0, 270, 270, 273, 0, 271, 271, 272, 0, 0,
1106 271, 273, 274, 272, 272, 0, 273, 272, 272, 0,
1107 274, 273, 275, 0, 0, 274, 279, 274, 275, 275,
1108 274, 276, 0, 275, 279, 0, 0, 276, 276, 279,
1109 277, 0, 276, 278, 279, 276, 277, 277, 280, 278,
1110 278, 277, 282, 278, 278, 281, 280, 0, 0, 281,
1112 282, 280, 0, 281, 283, 282, 280, 284, 281, 0,
1113 282, 0, 283, 281, 0, 284, 285, 283, 0, 283,
1114 284, 0, 283, 0, 285, 284, 290, 287, 286, 285,
1115 286, 285, 290, 290, 285, 287, 286, 290, 0, 0,
1116 287, 286, 288, 289, 0, 287, 286, 287, 0, 0,
1117 288, 289, 291, 0, 0, 288, 289, 0, 291, 291,
1118 288, 289, 293, 291, 292, 292, 294, 0, 293, 293,
1119 321, 292, 292, 293, 294, 0, 292, 0, 321, 294,
1120 296, 296, 296, 321, 294, 297, 297, 297, 321, 0,
1121 325, 327, 327, 446, 446, 446, 325, 325, 327, 327,
1123 296, 325, 0, 327, 0, 297, 298, 298, 298, 298,
1124 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1125 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1126 298, 298, 298, 298, 298, 298, 0, 298, 0, 298,
1127 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1128 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1129 298, 298, 298, 298, 298, 298, 298, 299, 299, 299,
1130 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
1131 299, 299, 299, 299, 447, 447, 447, 299, 299, 299,
1132 299, 303, 303, 303, 0, 0, 299, 0, 299, 313,
1134 313, 313, 333, 303, 322, 0, 0, 303, 333, 333,
1135 0, 313, 322, 333, 0, 313, 0, 322, 449, 449,
1136 449, 303, 322, 299, 299, 299, 299, 299, 302, 302,
1137 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1138 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1139 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1140 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1141 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1142 302, 302, 302, 302, 302, 302, 302, 302, 302, 304,
1143 304, 304, 306, 306, 306, 455, 455, 455, 323, 324,
1145 0, 304, 328, 0, 306, 304, 323, 324, 306, 0,
1146 328, 323, 324, 0, 0, 328, 323, 324, 0, 304,
1147 328, 0, 306, 307, 307, 307, 307, 307, 307, 307,
1148 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1149 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1150 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1151 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1152 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
1153 307, 307, 307, 307, 326, 329, 330, 0, 329, 326,
1154 326, 326, 331, 329, 330, 326, 0, 0, 329, 330,
1156 331, 332, 331, 329, 330, 331, 334, 0, 0, 332,
1157 331, 0, 334, 334, 332, 335, 0, 334, 334, 332,
1158 0, 335, 335, 336, 0, 0, 335, 0, 339, 336,
1159 336, 337, 0, 0, 336, 0, 339, 337, 337, 340,
1160 337, 339, 337, 338, 338, 340, 339, 340, 341, 0,
1161 338, 338, 340, 0, 0, 338, 341, 340, 0, 0,
1162 342, 341, 342, 0, 0, 341, 341, 343, 342, 343,
1163 344, 0, 0, 342, 0, 343, 344, 344, 342, 345,
1164 343, 344, 345, 0, 346, 343, 0, 0, 345, 345,
1165 346, 346, 347, 345, 347, 346, 0, 350, 347, 347,
1167 348, 0, 349, 347, 351, 350, 348, 348, 349, 349,
1168 350, 348, 351, 349, 0, 350, 352, 351, 0, 352,
1169 0, 0, 351, 0, 352, 357, 357, 357, 0, 352,
1170 358, 358, 358, 0, 352, 367, 0, 357, 360, 360,
1171 360, 357, 358, 367, 368, 0, 358, 0, 367, 0,
1172 360, 369, 368, 367, 360, 357, 0, 368, 0, 369,
1173 358, 368, 368, 370, 369, 370, 371, 0, 360, 369,
1174 0, 370, 371, 371, 373, 374, 370, 371, 372, 374,
1175 0, 370, 373, 374, 372, 372, 375, 373, 374, 372,
1176 0, 0, 373, 374, 375, 372, 390, 377, 376, 375,
1178 376, 378, 390, 390, 375, 377, 376, 390, 0, 378,
1179 377, 376, 379, 380, 378, 377, 376, 0, 0, 378,
1180 379, 380, 0, 0, 381, 379, 380, 381, 0, 0,
1181 379, 380, 381, 384, 0, 382, 383, 381, 0, 382,
1182 383, 384, 381, 382, 383, 0, 384, 385, 382, 383,
1183 384, 384, 0, 382, 383, 385, 386, 0, 387, 388,
1184 385, 0, 389, 0, 386, 385, 387, 388, 0, 386,
1185 389, 387, 388, 0, 386, 389, 387, 388, 391, 391,
1186 389, 396, 396, 0, 0, 391, 391, 0, 396, 396,
1187 391, 397, 0, 396, 398, 0, 0, 397, 397, 0,
1189 398, 398, 397, 399, 0, 398, 400, 0, 0, 399,
1190 399, 0, 400, 400, 399, 401, 0, 400, 402, 0,
1191 0, 401, 401, 0, 402, 402, 401, 403, 403, 402,
1192 465, 465, 465, 404, 403, 403, 404, 0, 0, 403,
1193 0, 0, 404, 404, 405, 0, 0, 404, 0, 405,
1194 405, 405, 0, 406, 0, 405, 406, 407, 407, 412,
1195 412, 412, 406, 406, 407, 407, 408, 406, 409, 407,
1196 0, 0, 408, 408, 409, 409, 0, 408, 0, 409,
1197 410, 410, 411, 411, 466, 466, 466, 410, 410, 411,
1198 411, 0, 410, 417, 411, 0, 412, 0, 0, 417,
1200 417, 0, 412, 412, 417, 418, 0, 412, 419, 420,
1201 422, 418, 418, 0, 419, 419, 418, 420, 422, 419,
1202 419, 421, 420, 422, 0, 421, 0, 420, 422, 421,
1203 424, 0, 423, 0, 421, 0, 423, 0, 424, 421,
1204 423, 425, 0, 424, 425, 423, 0, 0, 424, 425,
1205 423, 0, 426, 0, 425, 426, 468, 468, 468, 425,
1206 426, 430, 427, 427, 427, 426, 427, 430, 430, 431,
1207 426, 427, 430, 0, 0, 431, 431, 432, 0, 433,
1208 431, 427, 0, 432, 432, 433, 433, 434, 432, 435,
1209 433, 0, 0, 434, 434, 435, 435, 0, 434, 0,
1211 435, 438, 438, 438, 438, 439, 439, 439, 442, 0,
1212 443, 438, 0, 0, 442, 442, 443, 443, 0, 442,
1213 0, 443, 0, 452, 452, 452, 453, 453, 453, 453,
1214 0, 438, 452, 457, 457, 457, 453, 460, 460, 460,
1215 439, 0, 439, 0, 454, 454, 454, 454, 456, 456,
1216 456, 456, 452, 439, 454, 0, 453, 439, 458, 458,
1217 458, 459, 459, 459, 0, 462, 462, 462, 457, 0,
1218 457, 461, 461, 461, 454, 463, 463, 463, 469, 469,
1219 469, 457, 460, 0, 0, 457, 470, 470, 470, 0,
1220 471, 471, 471, 458, 0, 458, 459, 0, 459, 471,
1222 473, 473, 473, 478, 478, 478, 458, 0, 0, 459,
1223 458, 0, 0, 459, 463, 0, 461, 462, 0, 471,
1224 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
1225 472, 472, 472, 472, 472, 472, 472, 479, 479, 479,
1226 472, 472, 472, 472, 474, 474, 474, 473, 0, 472,
1227 0, 472, 475, 475, 475, 480, 480, 480, 481, 481,
1228 481, 483, 483, 483, 487, 487, 487, 0, 0, 484,
1229 484, 484, 488, 488, 488, 0, 472, 472, 472, 472,
1230 472, 489, 489, 489, 474, 490, 490, 490, 0, 491,
1231 491, 491, 475, 482, 482, 482, 482, 482, 482, 482,
1233 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1234 483, 484, 0, 482, 482, 482, 482, 0, 492, 492,
1235 492, 0, 482, 491, 482, 493, 493, 493, 496, 496,
1236 496, 497, 497, 497, 498, 498, 498, 499, 499, 499,
1237 500, 500, 500, 501, 501, 501, 502, 502, 502, 482,
1238 482, 482, 482, 482, 492, 503, 503, 503, 0, 0,
1239 0, 0, 0, 0, 493, 494, 494, 494, 494, 494,
1240 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
1241 494, 494, 0, 0, 0, 494, 494, 494, 494, 0,
1242 0, 0, 0, 0, 494, 0, 494, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 494, 494, 494, 494, 494, 495, 495, 495, 495,
1247 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
1248 495, 495, 495, 0, 0, 0, 495, 495, 495, 495,
1249 0, 0, 0, 0, 0, 495, 0, 495, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 495, 495, 495, 495, 495, 505, 505, 0,
1253 505, 505, 505, 505, 505, 505, 505, 506, 506, 0,
1255 506, 506, 506, 506, 506, 506, 506, 507, 507, 507,
1256 507, 507, 507, 0, 0, 507, 507, 508, 508, 0,
1257 0, 508, 508, 508, 508, 508, 509, 509, 0, 509,
1258 509, 509, 509, 509, 509, 509, 510, 510, 510, 510,
1259 510, 510, 0, 0, 510, 510, 511, 511, 511, 511,
1260 511, 511, 0, 0, 511, 512, 512, 512, 512, 512,
1261 512, 512, 512, 512, 512, 513, 513, 513, 513, 513,
1262 513, 513, 513, 513, 513, 514, 514, 514, 0, 514,
1263 514, 515, 515, 515, 515, 515, 515, 0, 0, 515,
1264 515, 516, 516, 516, 516, 516, 516, 0, 0, 516,
1266 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
1267 518, 518, 518, 0, 518, 518, 519, 519, 519, 519,
1268 519, 519, 519, 519, 519, 519, 520, 520, 520, 520,
1269 520, 520, 0, 0, 520, 521, 521, 521, 0, 521,
1270 521, 522, 0, 522, 522, 523, 523, 523, 523, 523,
1271 523, 523, 523, 523, 523, 524, 524, 524, 524, 524,
1272 524, 524, 524, 524, 524, 525, 525, 525, 525, 525,
1273 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
1274 527, 527, 527, 527, 527, 528, 528, 528, 528, 528,
1275 529, 529, 529, 529, 529, 530, 530, 530, 530, 530,
1277 530, 530, 530, 530, 530, 531, 531, 531, 531, 531,
1278 531, 531, 531, 531, 531, 532, 532, 532, 532, 532,
1279 532, 532, 532, 532, 533, 533, 0, 533, 533, 533,
1280 533, 533, 533, 533, 534, 534, 534, 534, 534, 534,
1281 534, 534, 534, 534, 535, 535, 0, 535, 535, 535,
1282 535, 535, 535, 535, 504, 504, 504, 504, 504, 504,
1283 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1284 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1285 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1286 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1288 504, 504, 504, 504, 504, 504, 504, 504, 504, 504,
1289 504, 504, 504, 504, 504, 504
1292 static yy_state_type yy_last_accepting_state;
1293 static char *yy_last_accepting_cpos;
1295 extern int as3__flex_debug;
1296 int as3__flex_debug = 0;
1298 /* The intent behind this definition is that it'll catch
1299 * any uses of REJECT which flex missed.
1301 #define REJECT reject_used_but_not_detected
1302 #define yymore() yymore_used_but_not_detected
1303 #define YY_MORE_ADJ 0
1304 #define YY_RESTORE_YY_MORE_OFFSET
1306 #line 1 "tokenizer.lex"
1309 Routines for compiling Flash2 AVM2 ABC Actionscript
1311 Extension module for the rfxswf library.
1312 Part of the swftools package.
1314 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1316 This program is free software; you can redistribute it and/or modify
1317 it under the terms of the GNU General Public License as published by
1318 the Free Software Foundation; either version 2 of the License, or
1319 (at your option) any later version.
1321 This program is distributed in the hope that it will be useful,
1322 but WITHOUT ANY WARRANTY; without even the implied warranty of
1323 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1324 GNU General Public License for more details.
1326 You should have received a copy of the GNU General Public License
1327 along with this program; if not, write to the Free Software
1328 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1329 #line 24 "tokenizer.lex"
1336 #include "../utf8.h"
1337 #include "tokenizer.h"
1341 int as3_verbosity = 1;
1342 unsigned int as3_tokencount = 0;
1344 void as3_error(const char*format, ...)
1351 va_start(arglist, format);
1352 vsprintf(buf, format, arglist);
1354 fprintf(stderr, "%s:%d:%d: error: %s\n", current_filename_short, current_line, current_column, buf);
1358 void as3_warning(const char*format, ...)
1365 va_start(arglist, format);
1366 vsprintf(buf, format, arglist);
1368 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1371 void as3_softwarning(const char*format, ...)
1378 va_start(arglist, format);
1379 vsprintf(buf, format, arglist);
1381 fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1384 static void dbg(const char*format, ...)
1391 va_start(arglist, format);
1392 vsprintf(buf, format, arglist);
1395 while(l && buf[l-1]=='\n') {
1399 printf("(tokenizer) ");
1400 printf("%s\n", buf);
1404 #ifndef YY_CURRENT_BUFFER
1405 #define YY_CURRENT_BUFFER yy_current_buffer
1408 static void*as3_buffer=0;
1409 static int as3_buffer_pos=0;
1410 static int as3_buffer_len=0;
1411 void as3_file_input(FILE*fi)
1416 void as3_buffer_input(void*buffer, int len)
1419 syntaxerror("trying to parse zero bytearray");
1420 as3_buffer = buffer;
1421 as3_buffer_len = len;
1426 #define YY_INPUT(buf,result,max_size) { \
1429 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1430 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1431 errno=0; clearerr(as3_in); \
1434 int to_read = max_size; \
1435 if(to_read + as3_buffer_pos > as3_buffer_len) \
1436 to_read = as3_buffer_len - as3_buffer_pos; \
1437 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1438 as3_buffer_pos += to_read; \
1443 void handleInclude(char*text, int len, char quotes)
1447 char*p1 = strchr(text, '"');
1448 char*p2 = strrchr(text, '"');
1449 if(!p1 || !p2 || p1==p2) {
1450 syntaxerror("Invalid include in line %d\n", current_line);
1453 filename = strdup(p1+1);
1457 while(!strchr(" \n\r\t", text[i1])) i1++;
1459 while(strchr(" \n\r\t", text[i1])) i1++;
1460 while(strchr(" \n\r\t", text[i2-1])) i2--;
1461 if(i2!=len) text[i2]=0;
1462 filename = strdup(&text[i1]);
1465 char*fullfilename = find_file(filename);
1466 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1467 as3_in = fopen(fullfilename, "rb");
1469 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1472 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1473 //BEGIN(INITIAL); keep context
1476 static int do_unescape(const char*s, const char*end, char*n)
1482 if(o) o[len] = *s;len++;
1486 s++; //skip past '\'
1487 if(s==end) syntaxerror("invalid \\ at end of string");
1489 /* handle the various line endings (mac, dos, unix) */
1502 case '\\': if(o) o[len] = '\\';s++;len++; break;
1503 case '"': if(o) o[len] = '"';s++;len++; break;
1504 case '\'': if(o) o[len] = '\'';s++;len++; break;
1505 case 'b': if(o) o[len] = '\b';s++;len++; break;
1506 case 'f': if(o) o[len] = '\f';s++;len++; break;
1507 case 'n': if(o) o[len] = '\n';s++;len++; break;
1508 case 'r': if(o) o[len] = '\r';s++;len++; break;
1509 case 't': if(o) o[len] = '\t';s++;len++; break;
1510 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1513 while(strchr("01234567", *s) && nr<3 && s<end) {
1520 syntaxerror("octal number out of range (0-255): %d", num);
1521 if(o) o[len] = num;len++;
1524 case 'x': case 'u': {
1533 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1536 if(s==end) syntaxerror("invalid \\u{ at end of string");
1541 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1543 if(*s>='0' && *s<='9') num |= *s - '0';
1544 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1545 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1550 if(*s=='}' && s<end) {
1553 syntaxerror("missing terminating '}'");
1557 char*utf8 = getUTF8(num);
1559 if(o) o[len] = *utf8;utf8++;len++;
1563 syntaxerror("byte out of range (0-255): %d", num);
1564 if(o) o[len] = num;len++;
1569 syntaxerror("unknown escape sequence: \"\\%c\"", *s);
1576 static string_t string_unescape(const char*in, int l)
1579 const char*end = &in[l];
1581 int len = do_unescape(s, end, 0);
1582 char*n = (char*)malloc(len+1);
1583 do_unescape(s, end, n);
1584 string_t out = string_new(n, len);
1588 static void handleCData(char*s, int len)
1590 a3_lval.str.str = s+9; // <![CDATA[
1591 a3_lval.str.len = len-9-3;// ]]>
1592 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1595 static void handleString(char*s, int len)
1598 // don't bother decoding strings in pass 1
1599 memset(&a3_lval, 0, sizeof(a3_lval));
1604 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1607 else if(s[0]=='\'') {
1608 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1611 else syntaxerror("String incorrectly terminated");
1614 a3_lval.str = string_unescape(s, len);
1618 char start_of_expression;
1620 static inline int m(int type)
1622 a3_lval.token = type;
1627 static char numberbuf[64];
1630 if(as3_leng>sizeof(numberbuf)-1)
1631 syntaxerror("decimal number overflow");
1633 memcpy(s, as3_text, as3_leng);
1638 static inline int setint(int v)
1640 a3_lval.number_int = v;
1648 static inline int setuint(unsigned int v)
1650 a3_lval.number_uint = v;
1658 static inline int setfloat(double v)
1660 a3_lval.number_float = v;
1664 static inline int handlefloat()
1667 a3_lval.number_float = atof(s);
1671 static inline int handleint()
1674 char l = (as3_text[0]=='-');
1676 char*max = l?"1073741824":"2147483647";
1678 as3_warning("integer overflow: %s (converted to Number)", s);
1679 return handlefloat();
1681 if(as3_leng-l==10) {
1683 for(t=0;t<as3_leng-l;t++) {
1684 if(as3_text[l+t]>max[t]) {
1685 as3_warning("integer overflow: %s (converted to Number)", s);
1686 return handlefloat();
1688 else if(as3_text[l+t]<max[t])
1692 if(as3_text[0]=='-') {
1698 for(t=0;t<as3_leng;t++) {
1706 static inline int handlehexfloat()
1708 char l = (as3_text[0]=='-')+2;
1713 for(t=l;t<as3_leng;t++) {
1714 char c = as3_text[t];
1724 if(c>='0' && c<='9')
1726 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1727 d+=((c&0x0f)+9)*base;
1731 static inline int handlehex()
1733 char l = (as3_text[0]=='-')+2;
1738 syntaxerror("integer overflow %s", s);
1743 for(t=l;t<len;t++) {
1745 char c = as3_text[t];
1746 if(c>='0' && c<='9')
1748 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1751 if(l && v>1073741824) {
1753 as3_warning("signed integer overflow: %s (converted to Number)", s);
1756 if(!l && v>2147483647) {
1758 as3_warning("unsigned integer overflow: %s (converted to Number)", s);
1763 return setint(-(int)v);
1769 void handleLabel(char*text, int len)
1772 for(t=len-1;t>=0;--t) {
1777 char*s = malloc(t+1);
1778 memcpy(s, as3_text, t);
1783 static int handleregexp()
1785 char*s = malloc(as3_leng);
1787 memcpy(s, as3_text+1, len);
1790 for(t=len;t>=0;--t) {
1796 a3_lval.regexp.pattern = s;
1798 a3_lval.regexp.options = 0;
1800 a3_lval.regexp.options = s+t+1;
1805 void initialize_scanner();
1806 #define YY_USER_INIT initialize_scanner();
1808 /* count the number of lines+columns consumed by this token */
1809 static inline void l() {
1811 for(t=0;t<as3_leng;t++) {
1812 if(as3_text[t]=='\n') {
1820 /* count the number of columns consumed by this token */
1821 static inline void c() {
1822 current_column+=as3_leng;
1825 static trie_t*namespaces = 0;
1826 void tokenizer_register_namespace(const char*id)
1828 trie_put(&namespaces, id);
1830 static inline tokenizer_is_namespace(const char*id)
1832 return trie_lookup(namespaces, id);
1835 static inline int handleIdentifier()
1837 char*s = malloc(as3_leng+1);
1838 memcpy(s, as3_text, as3_leng);
1841 if(tokenizer_is_namespace(s))
1844 return T_IDENTIFIER;
1848 //Boolean {c();return m(KW_BOOLEAN);}
1849 //int {c();return m(KW_INT);}
1850 //uint {c();return m(KW_UINT);}
1851 //Number {c();return m(KW_NUMBER);}
1855 #line 1856 "tokenizer.yy.c"
1861 #ifndef YY_NO_UNISTD_H
1862 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1863 * down here because we want the user's section 1 to have been scanned first.
1864 * The user has a chance to override it with an option.
1869 #ifndef YY_EXTRA_TYPE
1870 #define YY_EXTRA_TYPE void *
1873 static int yy_init_globals (void );
1875 /* Accessor methods to globals.
1876 These are made visible to non-reentrant scanners for convenience. */
1878 int as3_lex_destroy (void );
1880 int as3_get_debug (void );
1882 void as3_set_debug (int debug_flag );
1884 YY_EXTRA_TYPE as3_get_extra (void );
1886 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1888 FILE *as3_get_in (void );
1890 void as3_set_in (FILE * in_str );
1892 FILE *as3_get_out (void );
1894 void as3_set_out (FILE * out_str );
1896 int as3_get_leng (void );
1898 char *as3_get_text (void );
1900 int as3_get_lineno (void );
1902 void as3_set_lineno (int line_number );
1904 /* Macros after this point can all be overridden by user definitions in
1908 #ifndef YY_SKIP_YYWRAP
1910 extern "C" int as3_wrap (void );
1912 extern int as3_wrap (void );
1916 static void yyunput (int c,char *buf_ptr );
1919 static void yy_flex_strncpy (char *,yyconst char *,int );
1922 #ifdef YY_NEED_STRLEN
1923 static int yy_flex_strlen (yyconst char * );
1929 static int yyinput (void );
1931 static int input (void );
1936 /* Amount of stuff to slurp up with each read. */
1937 #ifndef YY_READ_BUF_SIZE
1938 #define YY_READ_BUF_SIZE 8192
1941 /* Copy whatever the last rule matched to the standard output. */
1943 /* This used to be an fputs(), but since the string might contain NUL's,
1944 * we now use fwrite().
1946 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1949 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1950 * is returned in "result".
1953 #define YY_INPUT(buf,result,max_size) \
1954 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1958 for ( n = 0; n < max_size && \
1959 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1960 buf[n] = (char) c; \
1962 buf[n++] = (char) c; \
1963 if ( c == EOF && ferror( as3_in ) ) \
1964 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1970 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1972 if( errno != EINTR) \
1974 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1985 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1986 * we don't want an extra ';' after the "return" because that will cause
1987 * some compilers to complain about unreachable statements.
1990 #define yyterminate() return YY_NULL
1993 /* Number of entries by which start-condition stack grows. */
1994 #ifndef YY_START_STACK_INCR
1995 #define YY_START_STACK_INCR 25
1998 /* Report a fatal error. */
1999 #ifndef YY_FATAL_ERROR
2000 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2003 /* end tables serialization structures and prototypes */
2005 /* Default declaration of generated scanner - a define so the user can
2006 * easily add parameters.
2009 #define YY_DECL_IS_OURS 1
2011 extern int as3_lex (void);
2013 #define YY_DECL int as3_lex (void)
2014 #endif /* !YY_DECL */
2016 /* Code executed at the beginning of each rule, after as3_text and as3_leng
2019 #ifndef YY_USER_ACTION
2020 #define YY_USER_ACTION
2023 /* Code executed at the end of each rule. */
2025 #define YY_BREAK break;
2028 #define YY_RULE_SETUP \
2029 if ( as3_leng > 0 ) \
2030 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2031 (as3_text[as3_leng - 1] == '\n'); \
2034 /** The main scanner function which does all the work.
2038 register yy_state_type yy_current_state;
2039 register char *yy_cp, *yy_bp;
2040 register int yy_act;
2042 #line 571 "tokenizer.lex"
2046 #line 2047 "tokenizer.yy.c"
2057 (yy_start) = 1; /* first start state */
2065 if ( ! YY_CURRENT_BUFFER ) {
2066 as3_ensure_buffer_stack ();
2067 YY_CURRENT_BUFFER_LVALUE =
2068 as3__create_buffer(as3_in,YY_BUF_SIZE );
2071 as3__load_buffer_state( );
2074 while ( 1 ) /* loops until end-of-file is reached */
2076 yy_cp = (yy_c_buf_p);
2078 /* Support of as3_text. */
2079 *yy_cp = (yy_hold_char);
2081 /* yy_bp points to the position in yy_ch_buf of the start of
2086 yy_current_state = (yy_start);
2087 yy_current_state += YY_AT_BOL();
2091 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2092 if ( yy_accept[yy_current_state] )
2094 (yy_last_accepting_state) = yy_current_state;
2095 (yy_last_accepting_cpos) = yy_cp;
2097 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2099 yy_current_state = (int) yy_def[yy_current_state];
2100 if ( yy_current_state >= 505 )
2101 yy_c = yy_meta[(unsigned int) yy_c];
2103 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2106 while ( yy_current_state != 504 );
2107 yy_cp = (yy_last_accepting_cpos);
2108 yy_current_state = (yy_last_accepting_state);
2111 yy_act = yy_accept[yy_current_state];
2113 YY_DO_BEFORE_ACTION;
2115 do_action: /* This label is used only to access EOF actions. */
2118 { /* beginning of action switch */
2119 case 0: /* must back up */
2120 /* undo the effects of YY_DO_BEFORE_ACTION */
2121 *yy_cp = (yy_hold_char);
2122 yy_cp = (yy_last_accepting_cpos);
2123 yy_current_state = (yy_last_accepting_state);
2124 goto yy_find_action;
2127 /* rule 1 can match eol */
2129 #line 574 "tokenizer.lex"
2130 {l(); /* single line comment */}
2133 /* rule 2 can match eol */
2135 #line 575 "tokenizer.lex"
2136 {l(); /* multi line comment */}
2140 #line 576 "tokenizer.lex"
2141 {syntaxerror("syntax error: unterminated comment", as3_text);}
2144 /* rule 4 can match eol */
2145 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2146 (yy_c_buf_p) = yy_cp -= 1;
2147 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2149 #line 578 "tokenizer.lex"
2150 {l();handleInclude(as3_text, as3_leng, 1);}
2153 /* rule 5 can match eol */
2154 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2155 (yy_c_buf_p) = yy_cp -= 1;
2156 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2158 #line 579 "tokenizer.lex"
2159 {l();handleInclude(as3_text, as3_leng, 0);}
2162 /* rule 6 can match eol */
2164 #line 580 "tokenizer.lex"
2165 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2168 /* rule 7 can match eol */
2170 #line 581 "tokenizer.lex"
2171 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2176 #line 584 "tokenizer.lex"
2177 {c(); BEGIN(INITIAL);return handleregexp();}
2180 /* rule 9 can match eol */
2181 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2182 (yy_c_buf_p) = yy_cp -= 1;
2183 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2185 #line 585 "tokenizer.lex"
2186 {c(); BEGIN(INITIAL);return handlehex();}
2189 /* rule 10 can match eol */
2190 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2191 (yy_c_buf_p) = yy_cp -= 1;
2192 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2194 #line 586 "tokenizer.lex"
2195 {c(); BEGIN(INITIAL);return handlehexfloat();}
2198 /* rule 11 can match eol */
2199 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2200 (yy_c_buf_p) = yy_cp -= 1;
2201 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2203 #line 587 "tokenizer.lex"
2204 {c(); BEGIN(INITIAL);return handleint();}
2207 /* rule 12 can match eol */
2208 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2209 (yy_c_buf_p) = yy_cp -= 1;
2210 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2212 #line 588 "tokenizer.lex"
2213 {c(); BEGIN(INITIAL);return handlefloat();}
2218 #line 591 "tokenizer.lex"
2222 /* rule 14 can match eol */
2224 #line 592 "tokenizer.lex"
2228 /* rule 15 can match eol */
2229 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2230 (yy_c_buf_p) = yy_cp -= 1;
2231 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2233 #line 594 "tokenizer.lex"
2234 {c(); BEGIN(INITIAL);return handlehex();}
2237 /* rule 16 can match eol */
2238 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2239 (yy_c_buf_p) = yy_cp -= 1;
2240 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2242 #line 595 "tokenizer.lex"
2243 {c(); BEGIN(INITIAL);return handlehexfloat();}
2246 /* rule 17 can match eol */
2247 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2248 (yy_c_buf_p) = yy_cp -= 1;
2249 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2251 #line 596 "tokenizer.lex"
2252 {c(); BEGIN(INITIAL);return handleint();}
2255 /* rule 18 can match eol */
2256 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2257 (yy_c_buf_p) = yy_cp -= 1;
2258 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2260 #line 597 "tokenizer.lex"
2261 {c(); BEGIN(INITIAL);return handlefloat();}
2265 #line 599 "tokenizer.lex"
2266 {/* for debugging: generates a tokenizer-level error */
2267 syntaxerror("3rr0r");}
2270 /* rule 20 can match eol */
2271 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2272 (yy_c_buf_p) = yy_cp -= 1;
2273 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2275 #line 602 "tokenizer.lex"
2276 {l();handleLabel(as3_text, as3_leng-3);return T_FOR;}
2279 /* rule 21 can match eol */
2280 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2281 (yy_c_buf_p) = yy_cp -= 1;
2282 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2284 #line 603 "tokenizer.lex"
2285 {l();handleLabel(as3_text, as3_leng-2);return T_DO;}
2288 /* rule 22 can match eol */
2289 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2290 (yy_c_buf_p) = yy_cp -= 1;
2291 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2293 #line 604 "tokenizer.lex"
2294 {l();handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2297 /* rule 23 can match eol */
2298 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2299 (yy_c_buf_p) = yy_cp -= 1;
2300 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2302 #line 605 "tokenizer.lex"
2303 {l();handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2307 #line 606 "tokenizer.lex"
2308 {c();a3_lval.id="";return T_FOR;}
2312 #line 607 "tokenizer.lex"
2313 {c();a3_lval.id="";return T_DO;}
2317 #line 608 "tokenizer.lex"
2318 {c();a3_lval.id="";return T_WHILE;}
2322 #line 609 "tokenizer.lex"
2323 {c();a3_lval.id="";return T_SWITCH;}
2327 #line 611 "tokenizer.lex"
2328 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2332 #line 612 "tokenizer.lex"
2333 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2337 #line 613 "tokenizer.lex"
2338 {c();BEGIN(REGEXPOK);return m(T_NE);}
2342 #line 614 "tokenizer.lex"
2343 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2347 #line 615 "tokenizer.lex"
2348 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2352 #line 616 "tokenizer.lex"
2353 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2357 #line 617 "tokenizer.lex"
2358 {c();return m(T_GE);}
2362 #line 618 "tokenizer.lex"
2363 {c();return m(T_LE);}
2367 #line 619 "tokenizer.lex"
2368 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2372 #line 620 "tokenizer.lex"
2373 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2377 #line 621 "tokenizer.lex"
2378 {c();return m(T_PLUSBY);}
2382 #line 622 "tokenizer.lex"
2383 {c();return m(T_MINUSBY);}
2387 #line 623 "tokenizer.lex"
2388 {c();return m(T_DIVBY);}
2392 #line 624 "tokenizer.lex"
2393 {c();return m(T_MODBY);}
2397 #line 625 "tokenizer.lex"
2398 {c();return m(T_MULBY);}
2402 #line 626 "tokenizer.lex"
2403 {c();return m(T_ORBY);}
2407 #line 627 "tokenizer.lex"
2408 {c();return m(T_SHRBY);}
2412 #line 628 "tokenizer.lex"
2413 {c();return m(T_SHLBY);}
2417 #line 629 "tokenizer.lex"
2418 {c();return m(T_USHRBY);}
2422 #line 630 "tokenizer.lex"
2423 {c();return m(T_SHL);}
2427 #line 631 "tokenizer.lex"
2428 {c();return m(T_USHR);}
2432 #line 632 "tokenizer.lex"
2433 {c();return m(T_SHR);}
2437 #line 633 "tokenizer.lex"
2438 {c();return m(T_DOTDOTDOT);}
2442 #line 634 "tokenizer.lex"
2443 {c();return m(T_DOTDOT);}
2447 #line 635 "tokenizer.lex"
2448 {c();return m('.');}
2452 #line 636 "tokenizer.lex"
2453 {c();return m(T_COLONCOLON);}
2457 #line 637 "tokenizer.lex"
2458 {c();return m(':');}
2462 #line 638 "tokenizer.lex"
2463 {c();return m(KW_INSTANCEOF);}
2467 #line 639 "tokenizer.lex"
2468 {c();return m(KW_IMPLEMENTS);}
2472 #line 640 "tokenizer.lex"
2473 {c();return m(KW_INTERFACE);}
2477 #line 641 "tokenizer.lex"
2478 {c();return m(KW_NAMESPACE);}
2482 #line 642 "tokenizer.lex"
2483 {c();return m(KW_PROTECTED);}
2487 #line 643 "tokenizer.lex"
2488 {c();return m(KW_UNDEFINED);}
2492 #line 644 "tokenizer.lex"
2493 {c();return m(KW_CONTINUE);}
2497 #line 645 "tokenizer.lex"
2498 {c();return m(KW_OVERRIDE);}
2502 #line 646 "tokenizer.lex"
2503 {c();return m(KW_INTERNAL);}
2507 #line 647 "tokenizer.lex"
2508 {c();return m(KW_FUNCTION);}
2512 #line 648 "tokenizer.lex"
2513 {c();return m(KW_FINALLY);}
2517 #line 649 "tokenizer.lex"
2518 {c();return m(KW_DEFAULT);}
2522 #line 650 "tokenizer.lex"
2523 {c();return m(KW_PACKAGE);}
2527 #line 651 "tokenizer.lex"
2528 {c();return m(KW_PRIVATE);}
2532 #line 652 "tokenizer.lex"
2533 {c();return m(KW_DYNAMIC);}
2537 #line 653 "tokenizer.lex"
2538 {c();return m(KW_EXTENDS);}
2542 #line 654 "tokenizer.lex"
2543 {c();return m(KW_DELETE);}
2547 #line 655 "tokenizer.lex"
2548 {c();return m(KW_RETURN);}
2552 #line 656 "tokenizer.lex"
2553 {c();return m(KW_PUBLIC);}
2557 #line 657 "tokenizer.lex"
2558 {c();return m(KW_NATIVE);}
2562 #line 658 "tokenizer.lex"
2563 {c();return m(KW_STATIC);}
2567 #line 659 "tokenizer.lex"
2568 {c();return m(KW_IMPORT);}
2572 #line 660 "tokenizer.lex"
2573 {c();return m(KW_TYPEOF);}
2577 #line 661 "tokenizer.lex"
2578 {c();return m(KW_THROW);}
2582 #line 662 "tokenizer.lex"
2583 {c();return m(KW_CLASS);}
2587 #line 663 "tokenizer.lex"
2588 {c();return m(KW_CONST);}
2592 #line 664 "tokenizer.lex"
2593 {c();return m(KW_CATCH);}
2597 #line 665 "tokenizer.lex"
2598 {c();return m(KW_FINAL);}
2602 #line 666 "tokenizer.lex"
2603 {c();return m(KW_FALSE);}
2607 #line 667 "tokenizer.lex"
2608 {c();return m(KW_BREAK);}
2612 #line 668 "tokenizer.lex"
2613 {c();return m(KW_SUPER);}
2617 #line 669 "tokenizer.lex"
2618 {c();return m(KW_EACH);}
2622 #line 670 "tokenizer.lex"
2623 {c();return m(KW_VOID);}
2627 #line 671 "tokenizer.lex"
2628 {c();return m(KW_TRUE);}
2632 #line 672 "tokenizer.lex"
2633 {c();return m(KW_NULL);}
2637 #line 673 "tokenizer.lex"
2638 {c();return m(KW_ELSE);}
2642 #line 674 "tokenizer.lex"
2643 {c();return m(KW_CASE);}
2647 #line 675 "tokenizer.lex"
2648 {c();return m(KW_WITH);}
2652 #line 676 "tokenizer.lex"
2653 {c();return m(KW_USE);}
2657 #line 677 "tokenizer.lex"
2658 {c();return m(KW_NEW);}
2662 #line 678 "tokenizer.lex"
2663 {c();return m(KW_GET);}
2667 #line 679 "tokenizer.lex"
2668 {c();return m(KW_SET);}
2672 #line 680 "tokenizer.lex"
2673 {c();return m(KW_VAR);}
2677 #line 681 "tokenizer.lex"
2678 {c();return m(KW_TRY);}
2682 #line 682 "tokenizer.lex"
2683 {c();return m(KW_IS) ;}
2687 #line 683 "tokenizer.lex"
2688 {c();return m(KW_IN) ;}
2692 #line 684 "tokenizer.lex"
2693 {c();return m(KW_IF) ;}
2697 #line 685 "tokenizer.lex"
2698 {c();return m(KW_AS);}
2702 #line 686 "tokenizer.lex"
2703 {c();BEGIN(INITIAL);return handleIdentifier();}
2707 #line 688 "tokenizer.lex"
2708 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2712 #line 689 "tokenizer.lex"
2713 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2717 #line 690 "tokenizer.lex"
2718 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2722 #line 692 "tokenizer.lex"
2724 char c1=as3_text[0];
2726 buf[0] = as3_text[0];
2728 for(t=1;t<128;t++) {
2729 char c = buf[t]=input();
2730 if(c=='\n' || c==EOF) {
2735 if(c1>='0' && c1<='9')
2736 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2738 syntaxerror("syntax error: %s", buf);
2744 case YY_STATE_EOF(INITIAL):
2745 case YY_STATE_EOF(REGEXPOK):
2746 case YY_STATE_EOF(BEGINNING):
2747 #line 712 "tokenizer.lex"
2749 void*b = leave_file();
2752 as3__delete_buffer(YY_CURRENT_BUFFER);
2755 as3__delete_buffer(YY_CURRENT_BUFFER);
2756 as3__switch_to_buffer(b);
2762 #line 724 "tokenizer.lex"
2765 #line 2766 "tokenizer.yy.c"
2767 case YY_END_OF_BUFFER:
2769 /* Amount of text matched not including the EOB char. */
2770 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2772 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2773 *yy_cp = (yy_hold_char);
2774 YY_RESTORE_YY_MORE_OFFSET
2776 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2778 /* We're scanning a new file or input source. It's
2779 * possible that this happened because the user
2780 * just pointed as3_in at a new source and called
2781 * as3_lex(). If so, then we have to assure
2782 * consistency between YY_CURRENT_BUFFER and our
2783 * globals. Here is the right place to do so, because
2784 * this is the first action (other than possibly a
2785 * back-up) that will match for the new input source.
2787 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2788 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2789 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2792 /* Note that here we test for yy_c_buf_p "<=" to the position
2793 * of the first EOB in the buffer, since yy_c_buf_p will
2794 * already have been incremented past the NUL character
2795 * (since all states make transitions on EOB to the
2796 * end-of-buffer state). Contrast this with the test
2799 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2800 { /* This was really a NUL. */
2801 yy_state_type yy_next_state;
2803 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2805 yy_current_state = yy_get_previous_state( );
2807 /* Okay, we're now positioned to make the NUL
2808 * transition. We couldn't have
2809 * yy_get_previous_state() go ahead and do it
2810 * for us because it doesn't know how to deal
2811 * with the possibility of jamming (and we don't
2812 * want to build jamming into it because then it
2813 * will run more slowly).
2816 yy_next_state = yy_try_NUL_trans( yy_current_state );
2818 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2820 if ( yy_next_state )
2822 /* Consume the NUL. */
2823 yy_cp = ++(yy_c_buf_p);
2824 yy_current_state = yy_next_state;
2830 yy_cp = (yy_last_accepting_cpos);
2831 yy_current_state = (yy_last_accepting_state);
2832 goto yy_find_action;
2836 else switch ( yy_get_next_buffer( ) )
2838 case EOB_ACT_END_OF_FILE:
2840 (yy_did_buffer_switch_on_eof) = 0;
2844 /* Note: because we've taken care in
2845 * yy_get_next_buffer() to have set up
2846 * as3_text, we can now set up
2847 * yy_c_buf_p so that if some total
2848 * hoser (like flex itself) wants to
2849 * call the scanner after we return the
2850 * YY_NULL, it'll still work - another
2851 * YY_NULL will get returned.
2853 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2855 yy_act = YY_STATE_EOF(YY_START);
2861 if ( ! (yy_did_buffer_switch_on_eof) )
2867 case EOB_ACT_CONTINUE_SCAN:
2869 (yytext_ptr) + yy_amount_of_matched_text;
2871 yy_current_state = yy_get_previous_state( );
2873 yy_cp = (yy_c_buf_p);
2874 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2877 case EOB_ACT_LAST_MATCH:
2879 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2881 yy_current_state = yy_get_previous_state( );
2883 yy_cp = (yy_c_buf_p);
2884 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2885 goto yy_find_action;
2892 "fatal flex scanner internal error--no action found" );
2893 } /* end of action switch */
2894 } /* end of scanning one token */
2895 } /* end of as3_lex */
2897 /* yy_get_next_buffer - try to read in a new buffer
2899 * Returns a code representing an action:
2900 * EOB_ACT_LAST_MATCH -
2901 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2902 * EOB_ACT_END_OF_FILE - end of file
2904 static int yy_get_next_buffer (void)
2906 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2907 register char *source = (yytext_ptr);
2908 register int number_to_move, i;
2911 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2913 "fatal flex scanner internal error--end of buffer missed" );
2915 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2916 { /* Don't try to fill the buffer, so this is an EOF. */
2917 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2919 /* We matched a single character, the EOB, so
2920 * treat this as a final EOF.
2922 return EOB_ACT_END_OF_FILE;
2927 /* We matched some text prior to the EOB, first
2930 return EOB_ACT_LAST_MATCH;
2934 /* Try to read more data. */
2936 /* First move last chars to start of buffer. */
2937 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2939 for ( i = 0; i < number_to_move; ++i )
2940 *(dest++) = *(source++);
2942 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2943 /* don't do the read, it's not guaranteed to return an EOF,
2946 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2951 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2953 while ( num_to_read <= 0 )
2954 { /* Not enough room in the buffer - grow it. */
2956 /* just a shorter name for the current buffer */
2957 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2959 int yy_c_buf_p_offset =
2960 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2962 if ( b->yy_is_our_buffer )
2964 int new_size = b->yy_buf_size * 2;
2966 if ( new_size <= 0 )
2967 b->yy_buf_size += b->yy_buf_size / 8;
2969 b->yy_buf_size *= 2;
2971 b->yy_ch_buf = (char *)
2972 /* Include room in for 2 EOB chars. */
2973 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2976 /* Can't grow it, we don't own it. */
2979 if ( ! b->yy_ch_buf )
2981 "fatal error - scanner input buffer overflow" );
2983 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2985 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2990 if ( num_to_read > YY_READ_BUF_SIZE )
2991 num_to_read = YY_READ_BUF_SIZE;
2993 /* Read in more data. */
2994 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2995 (yy_n_chars), (size_t) num_to_read );
2997 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3000 if ( (yy_n_chars) == 0 )
3002 if ( number_to_move == YY_MORE_ADJ )
3004 ret_val = EOB_ACT_END_OF_FILE;
3005 as3_restart(as3_in );
3010 ret_val = EOB_ACT_LAST_MATCH;
3011 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3012 YY_BUFFER_EOF_PENDING;
3017 ret_val = EOB_ACT_CONTINUE_SCAN;
3019 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3020 /* Extend the array by 50%, plus the number we really need. */
3021 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3022 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
3023 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3024 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3027 (yy_n_chars) += number_to_move;
3028 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3029 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3031 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3036 /* yy_get_previous_state - get the state just before the EOB char was reached */
3038 static yy_state_type yy_get_previous_state (void)
3040 register yy_state_type yy_current_state;
3041 register char *yy_cp;
3043 yy_current_state = (yy_start);
3044 yy_current_state += YY_AT_BOL();
3046 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3048 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3049 if ( yy_accept[yy_current_state] )
3051 (yy_last_accepting_state) = yy_current_state;
3052 (yy_last_accepting_cpos) = yy_cp;
3054 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3056 yy_current_state = (int) yy_def[yy_current_state];
3057 if ( yy_current_state >= 505 )
3058 yy_c = yy_meta[(unsigned int) yy_c];
3060 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3063 return yy_current_state;
3066 /* yy_try_NUL_trans - try to make a transition on the NUL character
3069 * next_state = yy_try_NUL_trans( current_state );
3071 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3073 register int yy_is_jam;
3074 register char *yy_cp = (yy_c_buf_p);
3076 register YY_CHAR yy_c = 1;
3077 if ( yy_accept[yy_current_state] )
3079 (yy_last_accepting_state) = yy_current_state;
3080 (yy_last_accepting_cpos) = yy_cp;
3082 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3084 yy_current_state = (int) yy_def[yy_current_state];
3085 if ( yy_current_state >= 505 )
3086 yy_c = yy_meta[(unsigned int) yy_c];
3088 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3089 yy_is_jam = (yy_current_state == 504);
3091 return yy_is_jam ? 0 : yy_current_state;
3094 static void yyunput (int c, register char * yy_bp )
3096 register char *yy_cp;
3098 yy_cp = (yy_c_buf_p);
3100 /* undo effects of setting up as3_text */
3101 *yy_cp = (yy_hold_char);
3103 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3104 { /* need to shift things up to make room */
3105 /* +2 for EOB chars. */
3106 register int number_to_move = (yy_n_chars) + 2;
3107 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3108 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3109 register char *source =
3110 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3112 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3113 *--dest = *--source;
3115 yy_cp += (int) (dest - source);
3116 yy_bp += (int) (dest - source);
3117 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3118 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3120 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3121 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3124 *--yy_cp = (char) c;
3126 (yytext_ptr) = yy_bp;
3127 (yy_hold_char) = *yy_cp;
3128 (yy_c_buf_p) = yy_cp;
3133 static int yyinput (void)
3135 static int input (void)
3141 *(yy_c_buf_p) = (yy_hold_char);
3143 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3145 /* yy_c_buf_p now points to the character we want to return.
3146 * If this occurs *before* the EOB characters, then it's a
3147 * valid NUL; if not, then we've hit the end of the buffer.
3149 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3150 /* This was really a NUL. */
3151 *(yy_c_buf_p) = '\0';
3154 { /* need more input */
3155 int offset = (yy_c_buf_p) - (yytext_ptr);
3158 switch ( yy_get_next_buffer( ) )
3160 case EOB_ACT_LAST_MATCH:
3161 /* This happens because yy_g_n_b()
3162 * sees that we've accumulated a
3163 * token and flags that we need to
3164 * try matching the token before
3165 * proceeding. But for input(),
3166 * there's no matching to consider.
3167 * So convert the EOB_ACT_LAST_MATCH
3168 * to EOB_ACT_END_OF_FILE.
3171 /* Reset buffer status. */
3172 as3_restart(as3_in );
3176 case EOB_ACT_END_OF_FILE:
3181 if ( ! (yy_did_buffer_switch_on_eof) )
3190 case EOB_ACT_CONTINUE_SCAN:
3191 (yy_c_buf_p) = (yytext_ptr) + offset;
3197 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3198 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3199 (yy_hold_char) = *++(yy_c_buf_p);
3201 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3205 #endif /* ifndef YY_NO_INPUT */
3207 /** Immediately switch to a different input stream.
3208 * @param input_file A readable stream.
3210 * @note This function does not reset the start condition to @c INITIAL .
3212 void as3_restart (FILE * input_file )
3215 if ( ! YY_CURRENT_BUFFER ){
3216 as3_ensure_buffer_stack ();
3217 YY_CURRENT_BUFFER_LVALUE =
3218 as3__create_buffer(as3_in,YY_BUF_SIZE );
3221 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3222 as3__load_buffer_state( );
3225 /** Switch to a different input buffer.
3226 * @param new_buffer The new input buffer.
3229 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3232 /* TODO. We should be able to replace this entire function body
3234 * as3_pop_buffer_state();
3235 * as3_push_buffer_state(new_buffer);
3237 as3_ensure_buffer_stack ();
3238 if ( YY_CURRENT_BUFFER == new_buffer )
3241 if ( YY_CURRENT_BUFFER )
3243 /* Flush out information for old buffer. */
3244 *(yy_c_buf_p) = (yy_hold_char);
3245 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3246 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3249 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3250 as3__load_buffer_state( );
3252 /* We don't actually know whether we did this switch during
3253 * EOF (as3_wrap()) processing, but the only time this flag
3254 * is looked at is after as3_wrap() is called, so it's safe
3255 * to go ahead and always set it.
3257 (yy_did_buffer_switch_on_eof) = 1;
3260 static void as3__load_buffer_state (void)
3262 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3263 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3264 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3265 (yy_hold_char) = *(yy_c_buf_p);
3268 /** Allocate and initialize an input buffer state.
3269 * @param file A readable stream.
3270 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3272 * @return the allocated buffer state.
3274 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3278 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3280 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3282 b->yy_buf_size = size;
3284 /* yy_ch_buf has to be 2 characters longer than the size given because
3285 * we need to put in 2 end-of-buffer characters.
3287 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3288 if ( ! b->yy_ch_buf )
3289 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3291 b->yy_is_our_buffer = 1;
3293 as3__init_buffer(b,file );
3298 /** Destroy the buffer.
3299 * @param b a buffer created with as3__create_buffer()
3302 void as3__delete_buffer (YY_BUFFER_STATE b )
3308 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3309 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3311 if ( b->yy_is_our_buffer )
3312 as3_free((void *) b->yy_ch_buf );
3314 as3_free((void *) b );
3317 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3321 #ifdef __THROW /* this is a gnuism */
3322 extern int isatty (int ) __THROW;
3324 extern int isatty (int );
3331 /* Initializes or reinitializes a buffer.
3332 * This function is sometimes called more than once on the same buffer,
3333 * such as during a as3_restart() or at EOF.
3335 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3340 as3__flush_buffer(b );
3342 b->yy_input_file = file;
3343 b->yy_fill_buffer = 1;
3345 /* If b is the current buffer, then as3__init_buffer was _probably_
3346 * called from as3_restart() or through yy_get_next_buffer.
3347 * In that case, we don't want to reset the lineno or column.
3349 if (b != YY_CURRENT_BUFFER){
3350 b->yy_bs_lineno = 1;
3351 b->yy_bs_column = 0;
3354 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3359 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3360 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3363 void as3__flush_buffer (YY_BUFFER_STATE b )
3370 /* We always need two end-of-buffer characters. The first causes
3371 * a transition to the end-of-buffer state. The second causes
3372 * a jam in that state.
3374 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3375 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3377 b->yy_buf_pos = &b->yy_ch_buf[0];
3380 b->yy_buffer_status = YY_BUFFER_NEW;
3382 if ( b == YY_CURRENT_BUFFER )
3383 as3__load_buffer_state( );
3386 /** Pushes the new state onto the stack. The new state becomes
3387 * the current state. This function will allocate the stack
3389 * @param new_buffer The new state.
3392 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3394 if (new_buffer == NULL)
3397 as3_ensure_buffer_stack();
3399 /* This block is copied from as3__switch_to_buffer. */
3400 if ( YY_CURRENT_BUFFER )
3402 /* Flush out information for old buffer. */
3403 *(yy_c_buf_p) = (yy_hold_char);
3404 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3405 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3408 /* Only push if top exists. Otherwise, replace top. */
3409 if (YY_CURRENT_BUFFER)
3410 (yy_buffer_stack_top)++;
3411 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3413 /* copied from as3__switch_to_buffer. */
3414 as3__load_buffer_state( );
3415 (yy_did_buffer_switch_on_eof) = 1;
3418 /** Removes and deletes the top of the stack, if present.
3419 * The next element becomes the new top.
3422 void as3_pop_buffer_state (void)
3424 if (!YY_CURRENT_BUFFER)
3427 as3__delete_buffer(YY_CURRENT_BUFFER );
3428 YY_CURRENT_BUFFER_LVALUE = NULL;
3429 if ((yy_buffer_stack_top) > 0)
3430 --(yy_buffer_stack_top);
3432 if (YY_CURRENT_BUFFER) {
3433 as3__load_buffer_state( );
3434 (yy_did_buffer_switch_on_eof) = 1;
3438 /* Allocates the stack if it does not exist.
3439 * Guarantees space for at least one push.
3441 static void as3_ensure_buffer_stack (void)
3445 if (!(yy_buffer_stack)) {
3447 /* First allocation is just for 2 elements, since we don't know if this
3448 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3449 * immediate realloc on the next call.
3452 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3453 (num_to_alloc * sizeof(struct yy_buffer_state*)
3455 if ( ! (yy_buffer_stack) )
3456 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3458 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3460 (yy_buffer_stack_max) = num_to_alloc;
3461 (yy_buffer_stack_top) = 0;
3465 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3467 /* Increase the buffer to prepare for a possible push. */
3468 int grow_size = 8 /* arbitrary grow size */;
3470 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3471 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3473 num_to_alloc * sizeof(struct yy_buffer_state*)
3475 if ( ! (yy_buffer_stack) )
3476 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3478 /* zero only the new slots.*/
3479 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3480 (yy_buffer_stack_max) = num_to_alloc;
3484 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3485 * @param base the character buffer
3486 * @param size the size in bytes of the character buffer
3488 * @return the newly allocated buffer state object.
3490 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3495 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3496 base[size-1] != YY_END_OF_BUFFER_CHAR )
3497 /* They forgot to leave room for the EOB's. */
3500 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3502 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3504 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3505 b->yy_buf_pos = b->yy_ch_buf = base;
3506 b->yy_is_our_buffer = 0;
3507 b->yy_input_file = 0;
3508 b->yy_n_chars = b->yy_buf_size;
3509 b->yy_is_interactive = 0;
3511 b->yy_fill_buffer = 0;
3512 b->yy_buffer_status = YY_BUFFER_NEW;
3514 as3__switch_to_buffer(b );
3519 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3520 * scan from a @e copy of @a str.
3521 * @param yystr a NUL-terminated string to scan
3523 * @return the newly allocated buffer state object.
3524 * @note If you want to scan bytes that may contain NUL values, then use
3525 * as3__scan_bytes() instead.
3527 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3530 return as3__scan_bytes(yystr,strlen(yystr) );
3533 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3534 * scan from a @e copy of @a bytes.
3535 * @param bytes the byte buffer to scan
3536 * @param len the number of bytes in the buffer pointed to by @a bytes.
3538 * @return the newly allocated buffer state object.
3540 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3547 /* Get memory for full buffer, including space for trailing EOB's. */
3548 n = _yybytes_len + 2;
3549 buf = (char *) as3_alloc(n );
3551 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3553 for ( i = 0; i < _yybytes_len; ++i )
3554 buf[i] = yybytes[i];
3556 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3558 b = as3__scan_buffer(buf,n );
3560 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3562 /* It's okay to grow etc. this buffer, and we should throw it
3563 * away when we're done.
3565 b->yy_is_our_buffer = 1;
3570 #ifndef YY_EXIT_FAILURE
3571 #define YY_EXIT_FAILURE 2
3574 static void yy_fatal_error (yyconst char* msg )
3576 (void) fprintf( stderr, "%s\n", msg );
3577 exit( YY_EXIT_FAILURE );
3580 /* Redefine yyless() so it works in section 3 code. */
3586 /* Undo effects of setting up as3_text. */ \
3587 int yyless_macro_arg = (n); \
3588 YY_LESS_LINENO(yyless_macro_arg);\
3589 as3_text[as3_leng] = (yy_hold_char); \
3590 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3591 (yy_hold_char) = *(yy_c_buf_p); \
3592 *(yy_c_buf_p) = '\0'; \
3593 as3_leng = yyless_macro_arg; \
3597 /* Accessor methods (get/set functions) to struct members. */
3599 /** Get the current line number.
3602 int as3_get_lineno (void)
3608 /** Get the input stream.
3611 FILE *as3_get_in (void)
3616 /** Get the output stream.
3619 FILE *as3_get_out (void)
3624 /** Get the length of the current token.
3627 int as3_get_leng (void)
3632 /** Get the current token.
3636 char *as3_get_text (void)
3641 /** Set the current line number.
3642 * @param line_number
3645 void as3_set_lineno (int line_number )
3648 as3_lineno = line_number;
3651 /** Set the input stream. This does not discard the current
3653 * @param in_str A readable stream.
3655 * @see as3__switch_to_buffer
3657 void as3_set_in (FILE * in_str )
3662 void as3_set_out (FILE * out_str )
3667 int as3_get_debug (void)
3669 return as3__flex_debug;
3672 void as3_set_debug (int bdebug )
3674 as3__flex_debug = bdebug ;
3677 static int yy_init_globals (void)
3679 /* Initialization is the same as for the non-reentrant scanner.
3680 * This function is called from as3_lex_destroy(), so don't allocate here.
3683 (yy_buffer_stack) = 0;
3684 (yy_buffer_stack_top) = 0;
3685 (yy_buffer_stack_max) = 0;
3686 (yy_c_buf_p) = (char *) 0;
3690 /* Defined in main.c */
3695 as3_in = (FILE *) 0;
3696 as3_out = (FILE *) 0;
3699 /* For future reference: Set errno on error, since we are called by
3705 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3706 int as3_lex_destroy (void)
3709 /* Pop the buffer stack, destroying each element. */
3710 while(YY_CURRENT_BUFFER){
3711 as3__delete_buffer(YY_CURRENT_BUFFER );
3712 YY_CURRENT_BUFFER_LVALUE = NULL;
3713 as3_pop_buffer_state();
3716 /* Destroy the stack itself. */
3717 as3_free((yy_buffer_stack) );
3718 (yy_buffer_stack) = NULL;
3720 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3721 * as3_lex() is called, initialization will occur. */
3728 * Internal utility routines.
3732 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3735 for ( i = 0; i < n; ++i )
3740 #ifdef YY_NEED_STRLEN
3741 static int yy_flex_strlen (yyconst char * s )
3744 for ( n = 0; s[n]; ++n )
3751 void *as3_alloc (yy_size_t size )
3753 return (void *) malloc( size );
3756 void *as3_realloc (void * ptr, yy_size_t size )
3758 /* The cast to (char *) in the following accommodates both
3759 * implementations that use char* generic pointers, and those
3760 * that use void* generic pointers. It works with the latter
3761 * because both ANSI C and C++ allow castless assignment from
3762 * any pointer type to void*, and deal with argument conversions
3763 * as though doing an assignment.
3765 return (void *) realloc( (char *) ptr, size );
3768 void as3_free (void * ptr )
3770 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3773 #define YYTABLES_NAME "yytables"
3775 #line 724 "tokenizer.lex"
3784 static char mbuf[256];
3785 char*token2string(enum yytokentype nr, YYSTYPE v)
3787 if(nr==T_STRING) return "<string>";
3788 else if(nr==T_INT) return "<int>";
3789 else if(nr==T_UINT) return "<uint>";
3790 else if(nr==T_BYTE) return "<byte>";
3791 else if(nr==T_FLOAT) return "<float>";
3792 else if(nr==T_REGEXP) return "REGEXP";
3793 else if(nr==T_EOF) return "***END***";
3794 else if(nr==T_GE) return ">=";
3795 else if(nr==T_LE) return "<=";
3796 else if(nr==T_MINUSMINUS) return "--";
3797 else if(nr==T_PLUSPLUS) return "++";
3798 else if(nr==KW_IMPLEMENTS) return "implements";
3799 else if(nr==KW_INTERFACE) return "interface";
3800 else if(nr==KW_NAMESPACE) return "namespace";
3801 else if(nr==KW_PROTECTED) return "protected";
3802 else if(nr==KW_OVERRIDE) return "override";
3803 else if(nr==KW_INTERNAL) return "internal";
3804 else if(nr==KW_FUNCTION) return "function";
3805 else if(nr==KW_PACKAGE) return "package";
3806 else if(nr==KW_PRIVATE) return "private";
3807 else if(nr==KW_BOOLEAN) return "Boolean";
3808 else if(nr==KW_DYNAMIC) return "dynamic";
3809 else if(nr==KW_EXTENDS) return "extends";
3810 else if(nr==KW_PUBLIC) return "public";
3811 else if(nr==KW_NATIVE) return "native";
3812 else if(nr==KW_STATIC) return "static";
3813 else if(nr==KW_IMPORT) return "import";
3814 else if(nr==KW_NUMBER) return "number";
3815 else if(nr==KW_CLASS) return "class";
3816 else if(nr==KW_CONST) return "const";
3817 else if(nr==KW_FINAL) return "final";
3818 else if(nr==KW_FALSE) return "False";
3819 else if(nr==KW_TRUE) return "True";
3820 else if(nr==KW_UINT) return "uint";
3821 else if(nr==KW_NULL) return "null";
3822 else if(nr==KW_ELSE) return "else";
3823 else if(nr==KW_USE) return "use";
3824 else if(nr==KW_INT) return "int";
3825 else if(nr==KW_NEW) return "new";
3826 else if(nr==KW_GET) return "get";
3827 else if(nr==KW_SET) return "set";
3828 else if(nr==KW_VAR) return "var";
3829 else if(nr==KW_IS) return "is";
3830 else if(nr==KW_AS) return "as";
3831 else if(nr==T_IDENTIFIER) return "ID";
3833 sprintf(mbuf, "%d", nr);
3838 void initialize_scanner()