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 113
383 #define YY_END_OF_BUFFER 114
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[516] =
393 0, 0, 0, 0, 0, 0, 114, 112, 16, 16,
394 110, 112, 110, 110, 110, 112, 110, 111, 109, 110,
395 110, 57, 110, 112, 112, 112, 59, 110, 110, 110,
396 108, 108, 109, 110, 108, 108, 108, 108, 108, 108,
397 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
398 108, 14, 110, 109, 112, 108, 110, 110, 57, 110,
399 112, 112, 112, 13, 33, 0, 6, 0, 108, 45,
400 31, 48, 0, 0, 46, 40, 41, 39, 43, 56,
401 0, 3, 0, 44, 19, 19, 0, 0, 0, 0,
402 58, 0, 52, 38, 36, 37, 54, 0, 108, 0,
404 108, 42, 107, 108, 108, 108, 108, 108, 28, 108,
405 108, 108, 108, 108, 108, 108, 108, 108, 106, 108,
406 105, 104, 108, 108, 108, 108, 108, 108, 108, 108,
407 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
408 108, 108, 108, 47, 32, 0, 105, 0, 0, 0,
409 0, 0, 3, 8, 44, 0, 11, 11, 0, 0,
410 0, 34, 108, 55, 20, 0, 0, 0, 0, 0,
411 1, 0, 0, 0, 0, 0, 0, 50, 35, 49,
412 53, 0, 0, 0, 0, 0, 21, 108, 108, 108,
413 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
415 27, 108, 100, 108, 108, 108, 108, 108, 99, 108,
416 108, 108, 108, 108, 108, 108, 101, 108, 108, 108,
417 108, 108, 103, 108, 108, 98, 102, 108, 108, 108,
418 15, 108, 0, 11, 11, 0, 0, 12, 8, 0,
419 0, 0, 8, 0, 8, 8, 0, 0, 0, 0,
420 0, 0, 0, 2, 0, 18, 0, 17, 17, 0,
421 0, 51, 0, 0, 0, 0, 108, 96, 108, 108,
422 108, 108, 108, 108, 108, 91, 95, 108, 108, 108,
423 108, 108, 108, 108, 108, 108, 108, 94, 108, 108,
424 108, 108, 108, 108, 108, 108, 108, 108, 93, 108,
426 108, 92, 108, 97, 108, 12, 0, 0, 0, 0,
427 8, 0, 8, 0, 0, 2, 0, 8, 8, 10,
428 0, 9, 9, 0, 2, 22, 0, 24, 0, 0,
429 0, 89, 86, 84, 85, 108, 108, 108, 108, 108,
430 88, 87, 108, 108, 108, 108, 108, 108, 108, 108,
431 108, 108, 108, 108, 108, 108, 90, 108, 83, 108,
432 108, 29, 108, 10, 0, 9, 9, 0, 0, 2,
433 0, 8, 8, 0, 23, 0, 0, 108, 108, 76,
434 108, 108, 108, 108, 108, 81, 108, 108, 108, 108,
435 79, 108, 108, 108, 108, 78, 77, 80, 30, 82,
437 108, 108, 8, 0, 0, 0, 108, 71, 74, 75,
438 70, 108, 108, 108, 108, 108, 108, 108, 72, 73,
439 108, 108, 108, 8, 0, 0, 25, 66, 69, 108,
440 108, 108, 68, 108, 67, 108, 108, 0, 0, 26,
441 108, 108, 62, 63, 64, 65, 0, 0, 0, 0,
442 0, 0, 61, 60, 0, 5, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
444 0, 0, 0, 0, 0, 0, 4, 0, 0, 4,
445 0, 5, 0, 0, 0, 0, 7, 0, 24, 5,
446 24, 24, 0, 0, 0, 7, 0, 23, 5, 23,
448 23, 0, 0, 0, 0, 0, 25, 5, 25, 25,
452 static yyconst flex_int32_t yy_ec[256] =
454 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
455 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
458 14, 15, 16, 13, 17, 18, 19, 20, 21, 21,
459 22, 21, 21, 21, 21, 21, 21, 23, 13, 24,
460 25, 26, 13, 13, 27, 28, 29, 30, 28, 28,
461 28, 28, 28, 28, 28, 28, 28, 31, 28, 28,
462 28, 28, 28, 32, 28, 28, 28, 28, 28, 28,
463 33, 34, 35, 36, 37, 8, 38, 39, 40, 41,
465 42, 43, 44, 45, 46, 28, 47, 48, 49, 50,
466 51, 52, 28, 53, 54, 55, 56, 57, 58, 59,
467 60, 28, 61, 62, 63, 13, 8, 8, 8, 8,
468 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
469 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
470 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
471 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
472 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
473 8, 8, 8, 8, 8, 8, 64, 8, 8, 8,
474 65, 8, 8, 8, 8, 8, 8, 8, 8, 8,
476 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
477 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
478 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
479 8, 8, 8, 8, 8, 8, 8, 8, 66, 8,
480 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
484 static yyconst flex_int32_t yy_meta[67] =
486 1, 2, 3, 2, 2, 4, 4, 4, 4, 4,
487 4, 4, 4, 4, 4, 4, 4, 5, 4, 6,
488 6, 6, 2, 4, 4, 4, 7, 7, 7, 7,
489 7, 7, 4, 8, 4, 4, 9, 7, 7, 7,
490 7, 10, 7, 7, 7, 7, 7, 7, 7, 7,
491 7, 7, 7, 7, 7, 7, 7, 7, 11, 7,
495 static yyconst flex_int16_t yy_base[549] =
497 0, 517, 51, 58, 65, 72, 558, 2918, 2918, 2918,
498 525, 88, 0, 522, 85, 86, 2918, 2918, 520, 81,
499 82, 93, 102, 108, 113, 118, 520, 99, 517, 75,
500 139, 143, 2918, 511, 171, 180, 184, 153, 158, 113,
501 160, 180, 198, 142, 199, 200, 215, 224, 238, 176,
502 245, 2918, 91, 2918, 470, 256, 293, 299, 136, 307,
503 223, 238, 307, 2918, 499, 118, 2918, 519, 0, 2918,
504 2918, 2918, 158, 517, 2918, 2918, 2918, 2918, 2918, 500,
505 281, 332, 99, 2918, 2918, 317, 322, 199, 498, 458,
506 2918, 475, 477, 2918, 471, 2918, 83, 350, 230, 365,
508 327, 2918, 247, 334, 336, 341, 345, 356, 350, 362,
509 376, 367, 382, 384, 388, 393, 402, 407, 409, 413,
510 418, 429, 430, 436, 438, 450, 455, 459, 461, 466,
511 475, 477, 481, 489, 493, 500, 501, 516, 517, 523,
512 524, 531, 535, 2918, 2918, 426, 540, 341, 578, 583,
513 586, 144, 611, 643, 178, 181, 2918, 589, 601, 596,
514 465, 2918, 0, 2918, 2918, 637, 647, 703, 463, 327,
515 2918, 612, 635, 722, 788, 450, 434, 2918, 2918, 2918,
516 429, 814, 398, 397, 385, 397, 615, 777, 784, 789,
517 782, 793, 808, 822, 823, 831, 839, 846, 845, 827,
519 847, 862, 853, 867, 868, 869, 883, 876, 888, 890,
520 892, 899, 904, 911, 906, 920, 922, 926, 927, 934,
521 942, 946, 948, 953, 960, 962, 967, 968, 969, 976,
522 2918, 974, 1008, 2918, 1011, 647, 410, 2918, 0, 1033,
523 1039, 1059, 398, 1067, 0, 1083, 1024, 1035, 1143, 1209,
524 293, 1088, 1235, 392, 1245, 2918, 0, 2918, 0, 356,
525 373, 2918, 0, 344, 340, 310, 1037, 1049, 1214, 1215,
526 1229, 1058, 1230, 1241, 1192, 1057, 1247, 1249, 1263, 1255,
527 1264, 1275, 1256, 1270, 1282, 1286, 1290, 1291, 1298, 1305,
528 1306, 1310, 1317, 1321, 1329, 1328, 1322, 1340, 1344, 1345,
530 1346, 1352, 1363, 1361, 1368, 2918, 1365, 1400, 1442, 1508,
531 0, 456, 1574, 1534, 1640, 327, 1645, 1679, 0, 2918,
532 0, 2918, 0, 1544, 2918, 2918, 318, 2918, 0, 245,
533 239, 1375, 1377, 1379, 1491, 1514, 1614, 1615, 1708, 1620,
534 1709, 1710, 1717, 1724, 1726, 1728, 1742, 1746, 1753, 1761,
535 1762, 1767, 1776, 1781, 1785, 1790, 1796, 1801, 1802, 1813,
536 1817, 1819, 1821, 2918, 0, 2918, 0, 1872, 1877, 0,
537 1882, 0, 0, 247, 2918, 234, 225, 1851, 1857, 1852,
538 1875, 1866, 1871, 1886, 1887, 1892, 1901, 1894, 1906, 1908,
539 1910, 1912, 1924, 1926, 1931, 1932, 1933, 1940, 1947, 1949,
541 1951, 1965, 245, 199, 171, 0, 1966, 1958, 1967, 1972,
542 1973, 1981, 1987, 1988, 2002, 1995, 2007, 2006, 2011, 2013,
543 2018, 2025, 2075, 191, 172, 0, 2918, 2033, 2034, 2045,
544 2050, 2057, 2056, 2064, 2071, 2073, 2079, 2129, 144, 2918,
545 2091, 2100, 2099, 2106, 2108, 2115, 706, 343, 2166, 2170,
546 133, 130, 2138, 2139, 710, 1253, 1429, 1433, 395, 1552,
547 146, 227, 2180, 2192, 2204, 1673, 1748, 2215, 2227, 2237,
548 2231, 2241, 1784, 2245, 322, 2087, 2249, 134, 2257, 2261,
549 2272, 2284, 2318, 2295, 2299, 2303, 2918, 345, 2307, 2311,
550 2353, 2357, 2384, 2361, 2365, 97, 399, 2369, 2373, 2419,
552 2423, 2427, 2431, 2435, 2480, 2546, 2439, 2449, 2453, 2457,
553 2461, 2466, 2472, 2505, 2918, 2612, 2617, 2628, 2639, 2649,
554 2660, 2671, 2677, 2688, 2698, 2709, 2716, 2727, 2738, 2748,
555 2755, 2766, 2777, 2783, 2788, 2799, 2810, 2821, 2826, 2837,
556 2842, 2847, 2852, 2863, 2873, 2884, 2895, 2906
559 static yyconst flex_int16_t yy_def[549] =
561 515, 1, 1, 1, 1, 1, 515, 515, 515, 515,
562 515, 516, 517, 515, 515, 518, 515, 515, 515, 515,
563 515, 515, 515, 519, 519, 519, 515, 515, 515, 515,
564 520, 520, 515, 515, 520, 520, 520, 37, 37, 37,
565 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
566 37, 515, 515, 515, 515, 37, 515, 515, 515, 521,
567 522, 522, 522, 515, 515, 516, 515, 516, 523, 515,
568 515, 515, 518, 518, 515, 515, 515, 515, 515, 515,
569 524, 525, 526, 515, 515, 524, 519, 515, 527, 515,
570 515, 515, 515, 515, 515, 515, 515, 515, 37, 515,
572 37, 515, 37, 37, 37, 37, 37, 37, 37, 37,
573 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
574 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
575 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
576 37, 37, 37, 515, 515, 515, 37, 515, 528, 528,
577 529, 521, 530, 526, 521, 521, 515, 529, 522, 515,
578 531, 515, 523, 515, 515, 525, 525, 532, 515, 526,
579 515, 524, 524, 515, 527, 515, 515, 515, 515, 515,
580 515, 515, 515, 515, 515, 515, 37, 37, 37, 37,
581 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
583 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
584 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
585 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
586 515, 37, 533, 515, 533, 515, 534, 515, 535, 530,
587 530, 536, 535, 530, 154, 521, 529, 529, 515, 531,
588 537, 525, 532, 515, 525, 515, 174, 515, 174, 515,
589 515, 515, 538, 515, 515, 515, 37, 37, 37, 37,
590 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
591 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
592 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
594 37, 37, 37, 37, 37, 515, 533, 533, 515, 534,
595 535, 539, 515, 530, 536, 535, 530, 515, 246, 515,
596 249, 515, 249, 525, 515, 515, 515, 515, 540, 515,
597 515, 37, 37, 37, 37, 37, 37, 37, 37, 37,
598 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
599 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
600 37, 37, 37, 515, 309, 515, 309, 530, 530, 535,
601 530, 313, 318, 515, 515, 515, 515, 37, 37, 37,
602 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
603 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
605 37, 37, 246, 515, 515, 541, 37, 37, 37, 37,
606 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
607 37, 37, 37, 313, 515, 542, 515, 37, 37, 37,
608 37, 37, 37, 37, 37, 37, 37, 543, 544, 515,
609 37, 37, 37, 37, 37, 37, 545, 546, 547, 545,
610 544, 544, 37, 37, 515, 515, 545, 545, 546, 515,
611 546, 548, 548, 547, 547, 545, 547, 515, 515, 545,
612 545, 545, 545, 545, 544, 515, 515, 548, 515, 515,
613 545, 548, 545, 545, 545, 545, 515, 544, 515, 515,
614 545, 545, 545, 545, 545, 544, 544, 515, 515, 545,
616 545, 545, 545, 545, 545, 545, 515, 515, 545, 545,
617 515, 515, 545, 545, 0, 515, 515, 515, 515, 515,
618 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
619 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
620 515, 515, 515, 515, 515, 515, 515, 515
623 static yyconst flex_int16_t yy_nxt[2985] =
625 8, 9, 10, 9, 9, 11, 12, 8, 13, 14,
626 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
627 25, 26, 27, 28, 29, 30, 31, 31, 31, 31,
628 32, 31, 17, 8, 33, 34, 31, 35, 36, 37,
629 38, 39, 40, 41, 31, 42, 31, 31, 31, 43,
630 44, 45, 46, 47, 48, 49, 50, 51, 31, 31,
631 52, 53, 54, 8, 8, 55, 57, 58, 59, 60,
632 61, 62, 63, 57, 58, 59, 60, 61, 62, 63,
633 57, 58, 59, 60, 61, 62, 63, 57, 58, 59,
634 60, 61, 62, 63, 67, 71, 76, 67, 78, 96,
636 97, 171, 171, 56, 92, 77, 79, 180, 181, 72,
637 80, 64, 81, 81, 81, 144, 82, 56, 64, 74,
638 83, 68, 93, 94, 67, 86, 84, 87, 87, 87,
639 86, 452, 87, 87, 87, 86, 462, 87, 87, 87,
640 98, 98, 98, 98, 98, 98, 98, 98, 459, 88,
641 114, 68, 145, 80, 88, 151, 151, 151, 115, 88,
642 99, 100, 239, 116, 475, 100, 89, 452, 117, 67,
643 90, 515, 98, 98, 98, 98, 515, 156, 452, 99,
644 101, 98, 98, 98, 98, 98, 98, 98, 98, 99,
645 99, 74, 99, 100, 108, 111, 239, 99, 126, 246,
647 99, 118, 100, 109, 439, 112, 100, 99, 99, 169,
648 99, 156, 110, 140, 156, 426, 113, 99, 173, 173,
649 173, 105, 119, 99, 103, 425, 141, 99, 120, 121,
650 99, 106, 104, 122, 107, 123, 127, 99, 460, 124,
651 158, 130, 159, 159, 159, 99, 99, 99, 99, 99,
652 99, 128, 99, 125, 129, 158, 131, 159, 159, 159,
653 478, 99, 99, 424, 160, 99, 406, 99, 135, 132,
654 133, 99, 134, 405, 99, 99, 136, 99, 404, 160,
655 99, 161, 99, 137, 99, 99, 377, 138, 99, 142,
656 143, 139, 99, 99, 99, 99, 515, 99, 119, 376,
658 81, 81, 81, 99, 120, 147, 99, 324, 76, 122,
659 148, 325, 149, 150, 150, 78, 148, 77, 149, 150,
660 150, 153, 88, 79, 158, 154, 159, 159, 159, 171,
661 171, 155, 166, 166, 166, 166, 172, 172, 172, 86,
662 156, 87, 87, 87, 374, 255, 168, 487, 160, 460,
663 169, 98, 98, 98, 98, 331, 488, 187, 88, 90,
664 233, 233, 233, 88, 99, 515, 182, 182, 182, 182,
665 496, 99, 100, 99, 99, 188, 461, 99, 191, 497,
666 515, 99, 99, 99, 99, 330, 99, 99, 99, 189,
667 190, 99, 99, 99, 192, 99, 329, 99, 193, 99,
669 99, 460, 327, 194, 99, 183, 99, 184, 326, 99,
670 255, 195, 99, 99, 99, 196, 255, 99, 185, 99,
671 197, 99, 186, 99, 496, 99, 99, 309, 461, 99,
672 99, 199, 99, 475, 99, 99, 198, 200, 99, 99,
673 99, 266, 265, 99, 99, 201, 99, 264, 263, 99,
674 99, 202, 99, 262, 99, 99, 99, 99, 255, 99,
675 99, 203, 261, 99, 204, 99, 99, 99, 99, 260,
676 369, 205, 206, 99, 370, 99, 99, 99, 207, 99,
677 99, 255, 249, 99, 208, 210, 99, 99, 99, 371,
678 231, 211, 99, 209, 212, 179, 99, 99, 99, 215,
680 99, 178, 99, 99, 213, 99, 99, 177, 99, 214,
681 176, 99, 99, 99, 218, 174, 99, 164, 99, 73,
682 216, 66, 99, 162, 99, 99, 99, 99, 99, 217,
683 99, 99, 219, 146, 220, 102, 99, 99, 99, 99,
684 99, 95, 91, 99, 75, 221, 70, 99, 99, 65,
685 99, 99, 224, 99, 99, 222, 225, 515, 226, 223,
686 99, 99, 56, 99, 99, 515, 99, 99, 99, 228,
687 99, 99, 99, 99, 99, 227, 229, 99, 99, 232,
688 515, 99, 99, 515, 515, 99, 515, 99, 515, 230,
689 99, 515, 515, 205, 206, 235, 515, 150, 150, 150,
691 235, 515, 150, 150, 150, 151, 151, 151, 247, 247,
692 247, 240, 240, 166, 240, 248, 248, 248, 158, 236,
693 159, 159, 159, 515, 236, 242, 515, 160, 515, 243,
694 160, 172, 172, 172, 515, 515, 237, 166, 166, 166,
695 166, 515, 160, 515, 244, 171, 171, 166, 166, 166,
696 166, 251, 99, 88, 173, 173, 173, 515, 515, 515,
697 515, 251, 99, 515, 515, 99, 308, 308, 308, 245,
698 245, 245, 245, 245, 245, 515, 515, 515, 515, 515,
699 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
700 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
702 245, 245, 245, 252, 252, 252, 252, 455, 456, 455,
703 457, 455, 456, 455, 455, 515, 515, 253, 515, 515,
704 515, 254, 256, 256, 256, 256, 256, 256, 256, 256,
705 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
706 256, 257, 257, 257, 256, 256, 256, 256, 257, 257,
707 257, 257, 257, 257, 256, 515, 256, 256, 515, 257,
708 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
709 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
710 257, 257, 256, 256, 256, 256, 256, 256, 258, 258,
711 258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
713 258, 258, 258, 258, 258, 259, 258, 515, 515, 515,
714 258, 258, 258, 258, 267, 182, 182, 182, 182, 99,
715 258, 99, 258, 258, 99, 268, 99, 99, 269, 99,
716 99, 99, 99, 515, 99, 270, 99, 515, 515, 99,
717 99, 515, 515, 99, 515, 273, 271, 272, 258, 258,
718 258, 258, 258, 258, 183, 99, 184, 515, 99, 99,
719 275, 515, 515, 274, 280, 515, 515, 185, 99, 99,
720 99, 186, 99, 99, 99, 276, 99, 99, 99, 515,
721 277, 99, 99, 99, 99, 515, 99, 278, 515, 99,
722 99, 515, 99, 99, 99, 99, 99, 99, 279, 99,
724 99, 281, 515, 99, 99, 99, 99, 515, 515, 99,
725 285, 515, 99, 99, 282, 99, 99, 283, 99, 99,
726 99, 287, 284, 99, 286, 99, 99, 99, 515, 99,
727 99, 515, 515, 99, 515, 99, 99, 288, 99, 99,
728 99, 99, 99, 99, 289, 290, 99, 515, 99, 99,
729 515, 99, 515, 293, 99, 515, 99, 99, 99, 99,
730 291, 99, 515, 99, 99, 292, 515, 99, 296, 99,
731 99, 99, 99, 99, 99, 294, 99, 99, 515, 99,
732 295, 99, 515, 99, 99, 99, 515, 299, 297, 99,
733 99, 515, 298, 99, 300, 99, 99, 99, 99, 99,
735 99, 301, 515, 99, 99, 99, 99, 99, 302, 99,
736 99, 99, 99, 99, 99, 99, 303, 99, 99, 99,
737 304, 305, 515, 99, 99, 515, 99, 233, 233, 233,
738 307, 307, 307, 240, 240, 166, 240, 515, 515, 240,
739 240, 166, 240, 247, 247, 247, 515, 312, 515, 236,
740 515, 313, 236, 312, 248, 248, 248, 313, 515, 314,
741 314, 252, 314, 515, 515, 160, 244, 240, 240, 166,
742 240, 515, 244, 315, 99, 515, 515, 316, 515, 515,
743 515, 312, 515, 332, 99, 318, 99, 99, 166, 166,
744 166, 166, 317, 515, 99, 99, 99, 515, 515, 99,
746 244, 239, 251, 336, 99, 99, 515, 99, 99, 319,
747 319, 319, 319, 319, 319, 515, 156, 515, 515, 515,
748 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
749 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
750 319, 319, 319, 320, 320, 320, 320, 320, 320, 320,
751 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
752 320, 320, 321, 321, 321, 320, 320, 320, 320, 321,
753 321, 321, 321, 321, 321, 320, 515, 320, 320, 515,
754 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
755 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
757 321, 321, 321, 320, 320, 320, 320, 320, 320, 322,
758 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
759 322, 322, 322, 322, 322, 322, 323, 322, 515, 99,
760 515, 322, 322, 322, 322, 252, 252, 252, 252, 99,
761 339, 322, 99, 322, 322, 166, 166, 166, 166, 253,
762 515, 99, 99, 254, 455, 456, 455, 455, 333, 251,
763 515, 99, 99, 169, 99, 99, 99, 99, 334, 322,
764 322, 322, 322, 322, 322, 515, 99, 99, 99, 99,
765 99, 515, 515, 335, 99, 337, 99, 515, 99, 515,
766 515, 99, 99, 99, 99, 338, 99, 99, 340, 99,
768 99, 99, 342, 99, 341, 99, 99, 346, 345, 515,
769 99, 99, 99, 99, 99, 515, 344, 99, 343, 99,
770 99, 515, 99, 99, 515, 99, 515, 99, 99, 99,
771 515, 515, 99, 99, 347, 99, 99, 99, 99, 348,
772 99, 99, 351, 352, 515, 99, 349, 99, 99, 515,
773 350, 353, 99, 99, 99, 99, 99, 99, 99, 99,
774 99, 358, 354, 515, 99, 99, 99, 99, 99, 99,
775 515, 99, 99, 355, 356, 99, 99, 99, 99, 99,
776 357, 99, 99, 99, 307, 307, 307, 99, 361, 99,
777 99, 99, 99, 99, 99, 360, 99, 359, 99, 99,
779 99, 515, 99, 515, 362, 99, 236, 515, 99, 515,
780 99, 99, 99, 99, 99, 99, 99, 515, 99, 308,
781 308, 308, 99, 363, 99, 99, 99, 99, 515, 99,
782 455, 456, 455, 457, 455, 456, 455, 457, 515, 515,
783 515, 515, 364, 364, 364, 364, 364, 364, 364, 364,
784 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
785 364, 365, 365, 365, 364, 364, 364, 364, 365, 365,
786 365, 365, 365, 365, 364, 515, 364, 364, 515, 365,
787 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
788 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
790 365, 365, 364, 364, 364, 364, 364, 364, 366, 366,
791 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
792 366, 366, 366, 366, 366, 367, 366, 515, 99, 515,
793 366, 366, 366, 366, 240, 240, 166, 240, 99, 515,
794 366, 99, 366, 366, 166, 166, 166, 166, 312, 515,
795 515, 99, 313, 476, 477, 476, 476, 515, 251, 515,
796 515, 99, 254, 378, 99, 515, 515, 244, 366, 366,
797 366, 366, 366, 366, 166, 166, 166, 166, 167, 167,
798 167, 167, 167, 167, 167, 167, 167, 167, 251, 167,
799 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
801 372, 372, 372, 372, 372, 372, 167, 167, 167, 167,
802 167, 372, 372, 372, 372, 372, 372, 372, 372, 372,
803 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
804 372, 372, 372, 372, 167, 167, 167, 167, 167, 167,
805 314, 314, 252, 314, 515, 240, 240, 166, 240, 515,
806 515, 99, 99, 515, 315, 515, 380, 99, 316, 312,
807 382, 379, 99, 318, 99, 99, 515, 99, 515, 515,
808 99, 515, 515, 317, 479, 480, 479, 481, 244, 240,
809 240, 166, 240, 241, 241, 241, 241, 241, 241, 241,
810 241, 241, 241, 312, 241, 241, 241, 313, 241, 241,
812 241, 241, 241, 241, 241, 373, 373, 373, 373, 373,
813 373, 241, 244, 241, 241, 241, 373, 373, 373, 373,
814 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
815 373, 373, 373, 373, 373, 373, 373, 373, 373, 241,
816 241, 241, 241, 241, 241, 99, 99, 99, 462, 463,
817 482, 463, 464, 381, 99, 99, 99, 383, 99, 99,
818 99, 99, 384, 99, 99, 99, 515, 99, 515, 515,
819 515, 99, 385, 99, 99, 99, 99, 387, 99, 99,
820 386, 515, 515, 99, 388, 455, 456, 455, 457, 99,
821 99, 389, 99, 99, 391, 515, 99, 390, 99, 99,
823 99, 515, 515, 99, 99, 393, 392, 515, 99, 99,
824 515, 99, 99, 99, 99, 395, 515, 99, 99, 515,
825 396, 394, 99, 99, 515, 515, 99, 99, 99, 398,
826 515, 99, 99, 99, 397, 99, 515, 99, 99, 99,
827 99, 485, 515, 99, 515, 399, 99, 515, 99, 99,
828 99, 99, 99, 515, 99, 400, 99, 515, 99, 515,
829 99, 402, 401, 99, 99, 515, 99, 99, 99, 99,
830 515, 99, 240, 240, 166, 240, 515, 240, 240, 166,
831 240, 515, 240, 240, 166, 240, 312, 515, 99, 99,
832 243, 312, 515, 515, 99, 316, 312, 515, 99, 99,
834 403, 99, 99, 99, 99, 244, 407, 99, 99, 515,
835 244, 408, 99, 99, 409, 244, 99, 515, 99, 410,
836 515, 99, 99, 99, 99, 99, 515, 515, 413, 99,
837 411, 415, 515, 99, 99, 515, 412, 99, 99, 99,
838 414, 99, 99, 416, 99, 417, 515, 99, 99, 99,
839 515, 99, 418, 99, 515, 99, 99, 99, 99, 99,
840 99, 99, 99, 99, 515, 419, 515, 420, 99, 99,
841 99, 99, 515, 99, 99, 515, 99, 99, 99, 99,
842 99, 99, 99, 99, 99, 421, 99, 99, 99, 515,
843 99, 515, 515, 515, 99, 99, 99, 99, 99, 99,
845 422, 99, 99, 99, 99, 99, 423, 428, 99, 99,
846 99, 515, 99, 99, 99, 99, 99, 99, 99, 99,
847 99, 515, 99, 99, 99, 99, 515, 515, 99, 431,
848 429, 99, 99, 515, 99, 99, 430, 99, 99, 99,
849 515, 432, 433, 99, 99, 99, 434, 435, 99, 99,
850 99, 515, 99, 99, 99, 99, 99, 99, 99, 436,
851 99, 99, 99, 99, 515, 99, 437, 515, 99, 515,
852 99, 99, 99, 515, 515, 99, 438, 438, 438, 438,
853 99, 99, 99, 99, 99, 515, 515, 99, 476, 477,
854 476, 476, 99, 99, 99, 99, 515, 99, 443, 441,
856 442, 99, 515, 99, 99, 444, 99, 99, 99, 515,
857 99, 99, 99, 445, 99, 515, 99, 515, 99, 446,
858 99, 99, 99, 99, 515, 99, 99, 515, 99, 99,
859 438, 438, 438, 438, 515, 448, 99, 99, 99, 515,
860 449, 99, 454, 99, 453, 99, 99, 99, 515, 99,
861 99, 450, 99, 99, 515, 99, 99, 515, 99, 515,
862 515, 515, 99, 515, 515, 99, 462, 463, 456, 463,
863 464, 468, 469, 468, 470, 99, 99, 466, 515, 515,
864 515, 463, 456, 463, 463, 99, 99, 515, 99, 99,
865 515, 460, 462, 463, 456, 463, 464, 515, 515, 467,
867 515, 515, 515, 466, 462, 463, 456, 463, 464, 515,
868 471, 515, 472, 478, 515, 466, 468, 469, 468, 468,
869 515, 515, 515, 473, 515, 467, 515, 474, 468, 469,
870 468, 468, 455, 456, 455, 457, 515, 467, 468, 469,
871 468, 470, 455, 456, 455, 457, 455, 456, 455, 457,
872 476, 477, 476, 476, 515, 183, 515, 184, 479, 480,
873 479, 479, 479, 480, 479, 479, 515, 183, 185, 184,
874 515, 515, 186, 479, 480, 479, 481, 471, 515, 472,
875 185, 483, 515, 515, 186, 463, 456, 463, 463, 486,
876 473, 484, 515, 515, 474, 460, 455, 456, 455, 457,
878 455, 456, 455, 457, 455, 456, 455, 457, 455, 456,
879 455, 455, 455, 456, 455, 455, 515, 478, 328, 489,
880 490, 489, 491, 492, 492, 492, 492, 492, 492, 492,
881 492, 492, 492, 492, 492, 492, 492, 515, 515, 515,
882 492, 492, 492, 492, 494, 515, 515, 493, 495, 515,
883 492, 515, 492, 492, 455, 456, 455, 457, 455, 456,
884 455, 457, 455, 456, 455, 457, 455, 456, 455, 457,
885 455, 456, 455, 455, 455, 456, 455, 455, 492, 492,
886 492, 492, 492, 492, 375, 498, 499, 498, 500, 501,
887 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
889 501, 501, 501, 515, 515, 515, 501, 501, 501, 501,
890 515, 515, 503, 515, 515, 502, 501, 515, 501, 501,
891 455, 456, 455, 457, 455, 456, 455, 457, 455, 456,
892 455, 457, 455, 456, 455, 457, 455, 456, 455, 457,
893 455, 456, 455, 455, 501, 501, 501, 501, 501, 501,
894 455, 456, 455, 455, 455, 456, 455, 457, 455, 456,
895 455, 457, 455, 456, 455, 455, 504, 455, 456, 455,
896 455, 515, 505, 455, 456, 455, 457, 515, 515, 506,
897 427, 507, 508, 507, 509, 510, 510, 510, 510, 510,
898 510, 510, 510, 510, 510, 510, 510, 510, 510, 515,
900 515, 515, 510, 510, 510, 510, 455, 456, 455, 457,
901 515, 515, 510, 515, 510, 510, 515, 515, 515, 515,
902 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
903 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
904 510, 510, 510, 510, 510, 510, 440, 511, 512, 511,
905 513, 514, 514, 514, 514, 514, 514, 514, 514, 514,
906 514, 514, 514, 514, 514, 515, 515, 515, 514, 514,
907 514, 514, 515, 515, 515, 515, 515, 515, 514, 515,
908 514, 514, 515, 515, 515, 515, 515, 515, 515, 515,
909 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
911 515, 515, 515, 515, 515, 515, 514, 514, 514, 514,
912 514, 514, 66, 66, 515, 66, 66, 66, 66, 66,
913 66, 66, 66, 69, 515, 69, 69, 69, 73, 73,
914 515, 73, 73, 73, 73, 73, 73, 73, 73, 85,
915 85, 85, 85, 85, 85, 515, 515, 515, 85, 85,
916 99, 99, 515, 515, 99, 99, 99, 99, 99, 99,
917 152, 152, 515, 152, 152, 152, 152, 152, 152, 152,
918 152, 157, 157, 157, 157, 157, 157, 515, 515, 515,
919 157, 157, 163, 163, 163, 163, 163, 163, 165, 165,
920 165, 165, 165, 165, 515, 515, 515, 165, 167, 167,
922 167, 167, 167, 167, 167, 167, 167, 167, 167, 170,
923 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
924 175, 175, 175, 515, 515, 175, 175, 234, 234, 234,
925 234, 234, 234, 515, 515, 515, 234, 234, 238, 238,
926 238, 238, 238, 238, 515, 515, 515, 238, 241, 241,
927 241, 241, 241, 241, 241, 241, 241, 241, 241, 250,
928 250, 250, 515, 515, 250, 250, 166, 166, 166, 166,
929 166, 166, 166, 166, 166, 166, 166, 306, 306, 306,
930 306, 306, 306, 515, 515, 515, 306, 310, 310, 310,
931 515, 515, 310, 310, 311, 515, 515, 311, 311, 240,
933 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,
934 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
935 255, 328, 328, 328, 328, 328, 368, 368, 368, 368,
936 368, 368, 368, 368, 368, 368, 368, 375, 375, 375,
937 375, 375, 427, 427, 427, 427, 427, 440, 440, 440,
938 440, 440, 447, 447, 447, 447, 447, 447, 447, 447,
939 447, 447, 447, 451, 451, 451, 451, 451, 451, 451,
940 451, 451, 451, 451, 458, 458, 458, 458, 458, 458,
941 458, 458, 458, 458, 459, 459, 515, 459, 459, 459,
942 459, 459, 459, 459, 459, 465, 465, 465, 465, 465,
944 465, 465, 465, 465, 465, 465, 462, 462, 515, 462,
945 462, 462, 462, 462, 462, 462, 462, 7, 515, 515,
946 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
947 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
948 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
949 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
950 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
951 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
955 static yyconst flex_int16_t yy_chk[2985] =
957 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
958 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
959 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
964 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
965 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
966 6, 6, 6, 6, 12, 15, 20, 16, 21, 30,
968 30, 83, 83, 4, 28, 20, 21, 97, 97, 15,
969 22, 3, 22, 22, 22, 53, 23, 6, 4, 16,
970 23, 12, 28, 28, 66, 24, 23, 24, 24, 24,
971 25, 496, 25, 25, 25, 26, 478, 26, 26, 26,
972 31, 31, 31, 31, 32, 32, 32, 32, 461, 24,
973 40, 66, 53, 59, 25, 59, 59, 59, 40, 26,
974 40, 31, 152, 40, 452, 32, 24, 451, 40, 73,
975 26, 25, 35, 35, 35, 35, 26, 152, 439, 44,
976 32, 36, 36, 36, 36, 37, 37, 37, 37, 44,
977 38, 73, 44, 35, 38, 39, 155, 41, 44, 156,
979 38, 41, 36, 38, 425, 39, 37, 41, 39, 424,
980 41, 155, 38, 50, 156, 405, 39, 42, 88, 88,
981 88, 37, 42, 50, 35, 404, 50, 42, 42, 42,
982 42, 37, 36, 42, 37, 43, 45, 46, 462, 43,
983 61, 46, 61, 61, 61, 43, 45, 46, 43, 45,
984 46, 45, 47, 43, 45, 62, 47, 62, 62, 62,
985 462, 48, 47, 403, 61, 47, 377, 99, 48, 47,
986 47, 48, 47, 376, 48, 49, 48, 99, 374, 62,
987 99, 61, 51, 48, 103, 49, 331, 49, 49, 51,
988 51, 49, 51, 56, 103, 51, 62, 103, 56, 330,
990 81, 81, 81, 56, 56, 56, 56, 251, 57, 56,
991 57, 251, 57, 57, 57, 58, 58, 57, 58, 58,
992 58, 60, 81, 58, 63, 60, 63, 63, 63, 170,
993 170, 60, 82, 82, 82, 82, 86, 86, 86, 87,
994 60, 87, 87, 87, 327, 316, 82, 475, 63, 448,
995 82, 98, 98, 98, 98, 266, 475, 101, 86, 63,
996 148, 148, 148, 87, 101, 63, 100, 100, 100, 100,
997 488, 104, 98, 105, 101, 104, 448, 101, 106, 488,
998 87, 104, 107, 105, 104, 265, 105, 109, 106, 105,
999 105, 106, 107, 108, 107, 107, 264, 109, 108, 110,
1001 109, 459, 261, 108, 112, 100, 108, 100, 260, 110,
1002 254, 110, 110, 111, 112, 111, 243, 112, 100, 113,
1003 112, 114, 100, 111, 497, 115, 111, 237, 459, 113,
1004 116, 114, 113, 497, 114, 115, 113, 115, 115, 117,
1005 116, 186, 185, 116, 118, 116, 119, 184, 183, 117,
1006 120, 117, 117, 181, 118, 121, 119, 118, 312, 119,
1007 120, 118, 177, 120, 120, 121, 122, 123, 121, 176,
1008 312, 121, 121, 124, 312, 125, 122, 123, 123, 122,
1009 123, 169, 161, 124, 123, 125, 124, 126, 125, 312,
1010 146, 126, 127, 124, 127, 95, 128, 126, 129, 129,
1012 126, 93, 127, 130, 128, 127, 128, 92, 129, 128,
1013 90, 129, 131, 130, 132, 89, 130, 80, 133, 74,
1014 130, 68, 131, 65, 132, 131, 134, 132, 133, 131,
1015 135, 133, 133, 55, 134, 34, 134, 136, 137, 134,
1016 135, 29, 27, 135, 19, 135, 14, 136, 137, 11,
1017 136, 137, 137, 138, 139, 136, 138, 7, 139, 136,
1018 140, 141, 2, 138, 139, 0, 138, 139, 142, 141,
1019 140, 141, 143, 140, 141, 140, 142, 147, 142, 147,
1020 0, 142, 143, 0, 0, 143, 0, 147, 0, 143,
1021 147, 0, 0, 147, 147, 149, 0, 149, 149, 149,
1023 150, 0, 150, 150, 150, 151, 151, 151, 158, 158,
1024 158, 153, 153, 153, 153, 160, 160, 160, 159, 149,
1025 159, 159, 159, 0, 150, 153, 0, 151, 0, 153,
1026 158, 172, 172, 172, 0, 0, 149, 166, 166, 166,
1027 166, 150, 159, 0, 153, 154, 154, 167, 167, 167,
1028 167, 166, 187, 172, 173, 173, 173, 0, 0, 159,
1029 0, 167, 187, 0, 0, 187, 236, 236, 236, 154,
1030 154, 154, 154, 154, 154, 0, 173, 0, 0, 0,
1031 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1032 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1034 154, 154, 154, 168, 168, 168, 168, 447, 447, 447,
1035 447, 455, 455, 455, 455, 0, 0, 168, 0, 0,
1036 0, 168, 174, 174, 174, 174, 174, 174, 174, 174,
1037 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1038 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1039 174, 174, 174, 174, 174, 0, 174, 174, 0, 174,
1040 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1041 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1042 174, 174, 174, 174, 174, 174, 174, 174, 175, 175,
1043 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
1045 175, 175, 175, 175, 175, 175, 175, 0, 0, 0,
1046 175, 175, 175, 175, 188, 182, 182, 182, 182, 191,
1047 175, 189, 175, 175, 188, 189, 190, 188, 190, 191,
1048 192, 189, 191, 0, 189, 191, 190, 0, 0, 190,
1049 192, 0, 0, 192, 0, 193, 192, 192, 175, 175,
1050 175, 175, 175, 175, 182, 193, 182, 0, 193, 194,
1051 195, 0, 0, 194, 200, 0, 0, 182, 196, 194,
1052 195, 182, 194, 195, 200, 196, 197, 200, 196, 0,
1053 197, 196, 199, 198, 201, 0, 197, 198, 0, 197,
1054 203, 0, 199, 198, 201, 199, 198, 201, 199, 202,
1056 203, 202, 0, 203, 204, 205, 206, 0, 0, 202,
1057 206, 0, 202, 208, 204, 205, 206, 204, 205, 206,
1058 207, 208, 205, 208, 207, 209, 208, 210, 0, 211,
1059 207, 0, 0, 207, 0, 209, 212, 210, 209, 211,
1060 210, 213, 211, 215, 211, 212, 212, 0, 214, 212,
1061 0, 213, 0, 215, 213, 0, 215, 216, 214, 217,
1062 213, 214, 0, 218, 219, 214, 0, 216, 219, 217,
1063 216, 220, 217, 218, 219, 216, 218, 219, 0, 221,
1064 218, 220, 0, 222, 220, 223, 0, 222, 220, 221,
1065 224, 0, 221, 222, 224, 223, 222, 225, 223, 226,
1067 224, 225, 0, 224, 227, 228, 229, 225, 228, 226,
1068 225, 232, 226, 230, 227, 228, 229, 227, 228, 229,
1069 230, 232, 0, 230, 232, 0, 230, 233, 233, 233,
1070 235, 235, 235, 240, 240, 240, 240, 0, 0, 241,
1071 241, 241, 241, 247, 247, 247, 0, 240, 0, 233,
1072 0, 240, 235, 241, 248, 248, 248, 241, 0, 242,
1073 242, 242, 242, 0, 0, 247, 240, 244, 244, 244,
1074 244, 0, 241, 242, 267, 0, 248, 242, 0, 0,
1075 0, 244, 0, 267, 267, 244, 268, 267, 252, 252,
1076 252, 252, 242, 0, 276, 272, 268, 0, 0, 268,
1078 244, 246, 252, 272, 276, 272, 0, 276, 272, 246,
1079 246, 246, 246, 246, 246, 0, 246, 0, 0, 0,
1080 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1081 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
1082 246, 246, 246, 249, 249, 249, 249, 249, 249, 249,
1083 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1084 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1085 249, 249, 249, 249, 249, 249, 0, 249, 249, 0,
1086 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1087 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
1089 249, 249, 249, 249, 249, 249, 249, 249, 249, 250,
1090 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
1091 250, 250, 250, 250, 250, 250, 250, 250, 0, 275,
1092 0, 250, 250, 250, 250, 253, 253, 253, 253, 275,
1093 275, 250, 275, 250, 250, 255, 255, 255, 255, 253,
1094 0, 269, 270, 253, 456, 456, 456, 456, 269, 255,
1095 0, 269, 270, 255, 269, 270, 271, 273, 270, 250,
1096 250, 250, 250, 250, 250, 0, 271, 273, 274, 271,
1097 273, 0, 0, 271, 277, 273, 278, 0, 274, 0,
1098 0, 274, 280, 283, 277, 274, 278, 277, 278, 278,
1100 279, 281, 280, 283, 279, 280, 283, 284, 283, 0,
1101 279, 281, 282, 279, 281, 0, 282, 284, 281, 285,
1102 284, 0, 282, 286, 0, 282, 0, 287, 288, 285,
1103 0, 0, 285, 286, 285, 289, 286, 287, 288, 286,
1104 287, 288, 290, 291, 0, 289, 287, 292, 289, 0,
1105 289, 292, 290, 291, 293, 290, 291, 292, 294, 297,
1106 292, 297, 293, 0, 293, 296, 295, 293, 294, 297,
1107 0, 294, 297, 294, 295, 296, 295, 298, 296, 295,
1108 296, 299, 300, 301, 307, 307, 307, 298, 301, 302,
1109 298, 299, 300, 301, 299, 300, 301, 298, 304, 302,
1111 303, 0, 302, 0, 303, 305, 307, 0, 304, 0,
1112 303, 304, 332, 303, 333, 305, 334, 0, 305, 308,
1113 308, 308, 332, 305, 333, 332, 334, 333, 0, 334,
1114 457, 457, 457, 457, 458, 458, 458, 458, 0, 0,
1115 0, 308, 309, 309, 309, 309, 309, 309, 309, 309,
1116 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1117 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1118 309, 309, 309, 309, 309, 0, 309, 309, 0, 309,
1119 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1120 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1122 309, 309, 309, 309, 309, 309, 309, 309, 310, 310,
1123 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
1124 310, 310, 310, 310, 310, 310, 310, 0, 335, 0,
1125 310, 310, 310, 310, 314, 314, 314, 314, 335, 0,
1126 310, 335, 310, 310, 324, 324, 324, 324, 314, 0,
1127 0, 336, 314, 460, 460, 460, 460, 0, 324, 0,
1128 0, 336, 324, 336, 336, 0, 0, 314, 310, 310,
1129 310, 310, 310, 310, 313, 313, 313, 313, 313, 313,
1130 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1131 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1133 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1134 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1135 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1136 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1137 315, 315, 315, 315, 0, 317, 317, 317, 317, 0,
1138 0, 337, 338, 0, 315, 0, 338, 340, 315, 317,
1139 340, 337, 338, 317, 337, 338, 0, 340, 0, 0,
1140 340, 0, 0, 315, 466, 466, 466, 466, 317, 318,
1141 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1142 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1144 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1145 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1146 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1147 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1148 318, 318, 318, 318, 318, 339, 341, 342, 467, 467,
1149 467, 467, 467, 339, 343, 339, 341, 342, 339, 341,
1150 342, 344, 343, 345, 343, 346, 0, 343, 0, 0,
1151 0, 344, 344, 345, 344, 346, 345, 346, 346, 347,
1152 345, 0, 0, 348, 347, 473, 473, 473, 473, 347,
1153 349, 347, 347, 348, 349, 0, 348, 348, 350, 351,
1155 349, 0, 0, 349, 352, 351, 350, 0, 350, 351,
1156 0, 350, 351, 353, 352, 353, 0, 352, 354, 0,
1157 354, 352, 355, 353, 0, 0, 353, 356, 354, 356,
1158 0, 354, 355, 357, 355, 355, 0, 356, 358, 359,
1159 356, 473, 0, 357, 0, 358, 357, 0, 358, 359,
1160 360, 358, 359, 0, 361, 360, 362, 0, 363, 0,
1161 360, 363, 361, 360, 361, 0, 362, 361, 363, 362,
1162 0, 363, 368, 368, 368, 368, 0, 369, 369, 369,
1163 369, 0, 371, 371, 371, 371, 368, 0, 378, 380,
1164 368, 369, 0, 0, 379, 369, 371, 0, 378, 380,
1166 371, 378, 380, 382, 379, 368, 378, 379, 383, 0,
1167 369, 379, 381, 382, 381, 371, 382, 0, 383, 382,
1168 0, 383, 381, 384, 385, 381, 0, 0, 385, 386,
1169 383, 388, 0, 384, 385, 0, 384, 385, 387, 386,
1170 387, 388, 386, 389, 388, 390, 0, 391, 387, 392,
1171 0, 387, 392, 389, 0, 390, 389, 391, 390, 392,
1172 391, 393, 392, 394, 0, 393, 0, 394, 395, 396,
1173 397, 393, 0, 394, 393, 0, 394, 398, 395, 396,
1174 397, 395, 396, 397, 399, 395, 400, 398, 401, 0,
1175 398, 0, 0, 0, 399, 408, 400, 399, 401, 400,
1177 401, 401, 402, 407, 409, 408, 402, 407, 408, 410,
1178 411, 0, 402, 407, 409, 402, 407, 409, 412, 410,
1179 411, 0, 410, 411, 413, 414, 0, 0, 412, 414,
1180 412, 412, 416, 0, 413, 414, 413, 413, 414, 415,
1181 0, 415, 416, 418, 417, 416, 417, 418, 419, 415,
1182 420, 0, 415, 418, 417, 421, 418, 417, 419, 421,
1183 420, 419, 422, 420, 0, 421, 422, 0, 421, 0,
1184 428, 429, 422, 0, 0, 422, 423, 423, 423, 423,
1185 428, 429, 430, 428, 429, 0, 0, 431, 476, 476,
1186 476, 476, 430, 433, 432, 430, 0, 431, 432, 430,
1188 431, 434, 0, 433, 432, 434, 433, 432, 435, 0,
1189 436, 434, 423, 436, 434, 0, 437, 0, 435, 437,
1190 436, 435, 423, 436, 0, 423, 437, 0, 441, 437,
1191 438, 438, 438, 438, 0, 438, 443, 442, 441, 0,
1192 438, 441, 442, 444, 441, 445, 443, 442, 0, 443,
1193 442, 438, 446, 444, 0, 445, 444, 0, 445, 0,
1194 0, 0, 446, 0, 0, 446, 449, 449, 449, 449,
1195 449, 450, 450, 450, 450, 453, 454, 449, 0, 0,
1196 0, 463, 463, 463, 463, 453, 454, 0, 453, 454,
1197 0, 463, 464, 464, 464, 464, 464, 0, 0, 449,
1199 0, 0, 0, 464, 465, 465, 465, 465, 465, 0,
1200 450, 0, 450, 463, 0, 465, 468, 468, 468, 468,
1201 0, 0, 0, 450, 0, 464, 0, 450, 469, 469,
1202 469, 469, 471, 471, 471, 471, 0, 465, 470, 470,
1203 470, 470, 472, 472, 472, 472, 474, 474, 474, 474,
1204 477, 477, 477, 477, 0, 468, 0, 468, 479, 479,
1205 479, 479, 480, 480, 480, 480, 0, 469, 468, 469,
1206 0, 0, 468, 481, 481, 481, 481, 470, 0, 470,
1207 469, 471, 0, 0, 469, 482, 482, 482, 482, 474,
1208 470, 472, 0, 0, 470, 482, 484, 484, 484, 484,
1210 485, 485, 485, 485, 486, 486, 486, 486, 489, 489,
1211 489, 489, 490, 490, 490, 490, 0, 482, 483, 483,
1212 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
1213 483, 483, 483, 483, 483, 483, 483, 0, 0, 0,
1214 483, 483, 483, 483, 485, 0, 0, 484, 486, 0,
1215 483, 0, 483, 483, 491, 491, 491, 491, 492, 492,
1216 492, 492, 494, 494, 494, 494, 495, 495, 495, 495,
1217 498, 498, 498, 498, 499, 499, 499, 499, 483, 483,
1218 483, 483, 483, 483, 493, 493, 493, 493, 493, 493,
1219 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
1221 493, 493, 493, 0, 0, 0, 493, 493, 493, 493,
1222 0, 0, 495, 0, 0, 494, 493, 0, 493, 493,
1223 500, 500, 500, 500, 501, 501, 501, 501, 502, 502,
1224 502, 502, 503, 503, 503, 503, 504, 504, 504, 504,
1225 507, 507, 507, 507, 493, 493, 493, 493, 493, 493,
1226 508, 508, 508, 508, 509, 509, 509, 509, 510, 510,
1227 510, 510, 511, 511, 511, 511, 502, 512, 512, 512,
1228 512, 0, 503, 513, 513, 513, 513, 0, 0, 504,
1229 505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
1230 505, 505, 505, 505, 505, 505, 505, 505, 505, 0,
1232 0, 0, 505, 505, 505, 505, 514, 514, 514, 514,
1233 0, 0, 505, 0, 505, 505, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 505, 505, 505, 505, 505, 505, 506, 506, 506, 506,
1237 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
1238 506, 506, 506, 506, 506, 0, 0, 0, 506, 506,
1239 506, 506, 0, 0, 0, 0, 0, 0, 506, 0,
1240 506, 506, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 506, 506, 506, 506,
1244 506, 506, 516, 516, 0, 516, 516, 516, 516, 516,
1245 516, 516, 516, 517, 0, 517, 517, 517, 518, 518,
1246 0, 518, 518, 518, 518, 518, 518, 518, 518, 519,
1247 519, 519, 519, 519, 519, 0, 0, 0, 519, 519,
1248 520, 520, 0, 0, 520, 520, 520, 520, 520, 520,
1249 521, 521, 0, 521, 521, 521, 521, 521, 521, 521,
1250 521, 522, 522, 522, 522, 522, 522, 0, 0, 0,
1251 522, 522, 523, 523, 523, 523, 523, 523, 524, 524,
1252 524, 524, 524, 524, 0, 0, 0, 524, 525, 525,
1254 525, 525, 525, 525, 525, 525, 525, 525, 525, 526,
1255 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
1256 527, 527, 527, 0, 0, 527, 527, 528, 528, 528,
1257 528, 528, 528, 0, 0, 0, 528, 528, 529, 529,
1258 529, 529, 529, 529, 0, 0, 0, 529, 530, 530,
1259 530, 530, 530, 530, 530, 530, 530, 530, 530, 531,
1260 531, 531, 0, 0, 531, 531, 532, 532, 532, 532,
1261 532, 532, 532, 532, 532, 532, 532, 533, 533, 533,
1262 533, 533, 533, 0, 0, 0, 533, 534, 534, 534,
1263 0, 0, 534, 534, 535, 0, 0, 535, 535, 536,
1265 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
1266 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
1267 537, 538, 538, 538, 538, 538, 539, 539, 539, 539,
1268 539, 539, 539, 539, 539, 539, 539, 540, 540, 540,
1269 540, 540, 541, 541, 541, 541, 541, 542, 542, 542,
1270 542, 542, 543, 543, 543, 543, 543, 543, 543, 543,
1271 543, 543, 543, 544, 544, 544, 544, 544, 544, 544,
1272 544, 544, 544, 544, 545, 545, 545, 545, 545, 545,
1273 545, 545, 545, 545, 546, 546, 0, 546, 546, 546,
1274 546, 546, 546, 546, 546, 547, 547, 547, 547, 547,
1276 547, 547, 547, 547, 547, 547, 548, 548, 0, 548,
1277 548, 548, 548, 548, 548, 548, 548, 515, 515, 515,
1278 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1279 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1280 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1281 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1282 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1283 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1287 static yy_state_type yy_last_accepting_state;
1288 static char *yy_last_accepting_cpos;
1290 extern int as3__flex_debug;
1291 int as3__flex_debug = 0;
1293 /* The intent behind this definition is that it'll catch
1294 * any uses of REJECT which flex missed.
1296 #define REJECT reject_used_but_not_detected
1297 #define yymore() yymore_used_but_not_detected
1298 #define YY_MORE_ADJ 0
1299 #define YY_RESTORE_YY_MORE_OFFSET
1301 #line 1 "tokenizer.lex"
1304 Routines for compiling Flash2 AVM2 ABC Actionscript
1306 Extension module for the rfxswf library.
1307 Part of the swftools package.
1309 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1311 This program is free software; you can redistribute it and/or modify
1312 it under the terms of the GNU General Public License as published by
1313 the Free Software Foundation; either version 2 of the License, or
1314 (at your option) any later version.
1316 This program is distributed in the hope that it will be useful,
1317 but WITHOUT ANY WARRANTY; without even the implied warranty of
1318 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1319 GNU General Public License for more details.
1321 You should have received a copy of the GNU General Public License
1322 along with this program; if not, write to the Free Software
1323 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1324 #line 24 "tokenizer.lex"
1331 #include "../utf8.h"
1333 #include "tokenizer.h"
1336 unsigned int as3_tokencount = 0;
1338 static void dbg(const char*format, ...)
1345 va_start(arglist, format);
1346 vsprintf(buf, format, arglist);
1349 while(l && buf[l-1]=='\n') {
1353 printf("(tokenizer) ");
1354 printf("%s\n", buf);
1358 #ifndef YY_CURRENT_BUFFER
1359 #define YY_CURRENT_BUFFER yy_current_buffer
1362 static void*as3_buffer=0;
1363 static int as3_buffer_pos=0;
1364 static int as3_buffer_len=0;
1365 void as3_file_input(FILE*fi)
1370 void as3_buffer_input(void*buffer, int len)
1373 syntaxerror("trying to parse zero bytearray");
1374 as3_buffer = buffer;
1375 as3_buffer_len = len;
1380 #define YY_INPUT(buf,result,max_size) { \
1383 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1384 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1385 errno=0; clearerr(as3_in); \
1388 int to_read = max_size; \
1389 if(to_read + as3_buffer_pos > as3_buffer_len) \
1390 to_read = as3_buffer_len - as3_buffer_pos; \
1391 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1392 as3_buffer_pos += to_read; \
1397 void handleInclude(char*text, int len, char quotes)
1401 char*p1 = strchr(text, '"');
1402 char*p2 = strrchr(text, '"');
1403 if(!p1 || !p2 || p1==p2) {
1404 syntaxerror("Invalid include in line %d\n", current_line);
1407 filename = strdup(p1+1);
1411 while(!strchr(" \n\r\t", text[i1])) i1++;
1413 while(strchr(" \n\r\t", text[i1])) i1++;
1414 while(strchr(" \n\r\t", text[i2-1])) i2--;
1415 if(i2!=len) text[i2]=0;
1416 filename = strdup(&text[i1]);
1419 char*fullfilename = find_file(filename, 1);
1420 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1421 as3_in = fopen(fullfilename, "rb");
1423 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1426 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1427 //BEGIN(INITIAL); keep context
1430 static int do_unescape(const char*s, const char*end, char*n)
1436 if(o) o[len] = *s;len++;
1440 s++; //skip past '\'
1441 if(s==end) syntaxerror("invalid \\ at end of string");
1443 /* handle the various line endings (mac, dos, unix) */
1456 case '\\': if(o) o[len] = '\\';s++;len++; break;
1457 case '"': if(o) o[len] = '"';s++;len++; break;
1458 case '\'': if(o) o[len] = '\'';s++;len++; break;
1459 case 'b': if(o) o[len] = '\b';s++;len++; break;
1460 case 'f': if(o) o[len] = '\f';s++;len++; break;
1461 case 'n': if(o) o[len] = '\n';s++;len++; break;
1462 case 'r': if(o) o[len] = '\r';s++;len++; break;
1463 case 't': if(o) o[len] = '\t';s++;len++; break;
1464 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1467 while(strchr("01234567", *s) && nr<3 && s<end) {
1474 syntaxerror("octal number out of range (0-255): %d", num);
1475 if(o) o[len] = num;len++;
1478 case 'x': case 'u': {
1487 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1490 if(s==end) syntaxerror("invalid \\u{ at end of string");
1495 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1497 if(*s>='0' && *s<='9') num |= *s - '0';
1498 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1499 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1504 if(*s=='}' && s<end) {
1507 syntaxerror("missing terminating '}'");
1511 char*utf8 = getUTF8(num);
1513 if(o) o[len] = *utf8;utf8++;len++;
1517 syntaxerror("byte out of range (0-255): %d", num);
1518 if(o) o[len] = num;len++;
1537 static string_t string_unescape(const char*in, int l)
1540 const char*end = &in[l];
1542 int len = do_unescape(s, end, 0);
1543 char*n = (char*)malloc(len+1);
1544 do_unescape(s, end, n);
1545 string_t out = string_new(n, len);
1549 static void handleCData(char*s, int len)
1551 a3_lval.str.str = s+9; // <![CDATA[
1552 a3_lval.str.len = len-9-3;// ]]>
1553 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1556 static void handleString(char*s, int len)
1559 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1562 else if(s[0]=='\'') {
1563 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1566 else syntaxerror("String incorrectly terminated");
1568 a3_lval.str = string_unescape(s, len);
1572 char start_of_expression;
1574 static inline int m(int type)
1576 a3_lval.token = type;
1581 static char numberbuf[64];
1584 if(as3_leng>sizeof(numberbuf)-1)
1585 syntaxerror("decimal number overflow");
1587 memcpy(s, as3_text, as3_leng);
1592 static inline int setint(int v)
1594 a3_lval.number_int = v;
1597 static inline int setfloat(double v)
1599 a3_lval.number_float = v;
1603 static inline int handlefloat()
1606 a3_lval.number_float = atof(s);
1610 static inline int handleint()
1613 char l = (as3_text[0]=='-');
1615 //char*max = l?"1073741824":"2147483647";
1616 char*max = l?"2147483648":"2147483647";
1619 as3_softwarning("integer overflow: %s (converted to Number)", s);
1620 return handlefloat();
1622 if(as3_leng-l==10) {
1624 for(t=0;t<as3_leng-l;t++) {
1625 if(as3_text[l+t]>max[t]) {
1626 as3_softwarning("integer overflow: %s (converted to Number)", s);
1627 return handlefloat();
1629 else if(as3_text[l+t]<max[t])
1633 if(as3_text[0]=='-') {
1639 for(t=0;t<as3_leng;t++) {
1647 static inline int handlehexfloat()
1649 char l = (as3_text[0]=='-')+2;
1654 for(t=l;t<as3_leng;t++) {
1655 char c = as3_text[t];
1665 if(c>='0' && c<='9')
1667 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1668 d+=((c&0x0f)+9)*base;
1672 static inline int handlehex()
1674 char l = (as3_text[0]=='-')+2;
1679 syntaxerror("integer overflow %s", s);
1684 for(t=l;t<len;t++) {
1686 char c = as3_text[t];
1687 if(c>='0' && c<='9')
1689 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1692 if(l && v>=0x80000000) {
1694 as3_softwarning("integer overflow: %s (converted to Number)", s);
1697 if(!l && v>0x7fffffff) {
1699 as3_softwarning("integer overflow: %s (converted to Number)", s);
1704 return setint(-(int)v);
1710 void handleLabel(char*text, int len)
1713 for(t=len-1;t>=0;--t) {
1718 char*s = malloc(t+1);
1719 memcpy(s, as3_text, t);
1724 static int handleregexp()
1726 char*s = malloc(as3_leng);
1728 memcpy(s, as3_text+1, len);
1731 for(t=len;t>=0;--t) {
1737 a3_lval.regexp.pattern = s;
1739 a3_lval.regexp.options = 0;
1741 a3_lval.regexp.options = s+t+1;
1746 void initialize_scanner();
1747 #define YY_USER_INIT initialize_scanner();
1749 /* count the number of lines+columns consumed by this token */
1750 static inline void l() {
1752 for(t=0;t<as3_leng;t++) {
1753 if(as3_text[t]=='\n') {
1761 /* count the number of columns consumed by this token */
1762 static inline void c() {
1763 current_column+=as3_leng;
1766 trie_t*active_namespaces = 0;
1767 /*void tokenizer_register_namespace(const char*id)
1769 trie_put(namespaces, id, 0);
1771 void tokenizer_unregister_namespace(const char*id)
1773 trie_remove(namespaces, id);
1775 static inline tokenizer_is_namespace(const char*id)
1777 return trie_contains(active_namespaces, id);
1780 static inline int handleIdentifier()
1782 char*s = malloc(as3_leng+1);
1783 memcpy(s, as3_text, as3_leng);
1786 if(tokenizer_is_namespace(s))
1789 return T_IDENTIFIER;
1793 //Boolean {c();return m(KW_BOOLEAN);}
1794 //int {c();return m(KW_INT);}
1795 //uint {c();return m(KW_UINT);}
1796 //Number {c();return m(KW_NUMBER);}
1800 #line 1801 "tokenizer.yy.c"
1806 #ifndef YY_NO_UNISTD_H
1807 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1808 * down here because we want the user's section 1 to have been scanned first.
1809 * The user has a chance to override it with an option.
1814 #ifndef YY_EXTRA_TYPE
1815 #define YY_EXTRA_TYPE void *
1818 static int yy_init_globals (void );
1820 /* Accessor methods to globals.
1821 These are made visible to non-reentrant scanners for convenience. */
1823 int as3_lex_destroy (void );
1825 int as3_get_debug (void );
1827 void as3_set_debug (int debug_flag );
1829 YY_EXTRA_TYPE as3_get_extra (void );
1831 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1833 FILE *as3_get_in (void );
1835 void as3_set_in (FILE * in_str );
1837 FILE *as3_get_out (void );
1839 void as3_set_out (FILE * out_str );
1841 int as3_get_leng (void );
1843 char *as3_get_text (void );
1845 int as3_get_lineno (void );
1847 void as3_set_lineno (int line_number );
1849 /* Macros after this point can all be overridden by user definitions in
1853 #ifndef YY_SKIP_YYWRAP
1855 extern "C" int as3_wrap (void );
1857 extern int as3_wrap (void );
1861 static void yyunput (int c,char *buf_ptr );
1864 static void yy_flex_strncpy (char *,yyconst char *,int );
1867 #ifdef YY_NEED_STRLEN
1868 static int yy_flex_strlen (yyconst char * );
1874 static int yyinput (void );
1876 static int input (void );
1881 /* Amount of stuff to slurp up with each read. */
1882 #ifndef YY_READ_BUF_SIZE
1883 #define YY_READ_BUF_SIZE 8192
1886 /* Copy whatever the last rule matched to the standard output. */
1888 /* This used to be an fputs(), but since the string might contain NUL's,
1889 * we now use fwrite().
1891 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1894 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1895 * is returned in "result".
1898 #define YY_INPUT(buf,result,max_size) \
1899 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1903 for ( n = 0; n < max_size && \
1904 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1905 buf[n] = (char) c; \
1907 buf[n++] = (char) c; \
1908 if ( c == EOF && ferror( as3_in ) ) \
1909 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1915 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1917 if( errno != EINTR) \
1919 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1930 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1931 * we don't want an extra ';' after the "return" because that will cause
1932 * some compilers to complain about unreachable statements.
1935 #define yyterminate() return YY_NULL
1938 /* Number of entries by which start-condition stack grows. */
1939 #ifndef YY_START_STACK_INCR
1940 #define YY_START_STACK_INCR 25
1943 /* Report a fatal error. */
1944 #ifndef YY_FATAL_ERROR
1945 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1948 /* end tables serialization structures and prototypes */
1950 /* Default declaration of generated scanner - a define so the user can
1951 * easily add parameters.
1954 #define YY_DECL_IS_OURS 1
1956 extern int as3_lex (void);
1958 #define YY_DECL int as3_lex (void)
1959 #endif /* !YY_DECL */
1961 /* Code executed at the beginning of each rule, after as3_text and as3_leng
1964 #ifndef YY_USER_ACTION
1965 #define YY_USER_ACTION
1968 /* Code executed at the end of each rule. */
1970 #define YY_BREAK break;
1973 #define YY_RULE_SETUP \
1974 if ( as3_leng > 0 ) \
1975 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1976 (as3_text[as3_leng - 1] == '\n'); \
1979 /** The main scanner function which does all the work.
1983 register yy_state_type yy_current_state;
1984 register char *yy_cp, *yy_bp;
1985 register int yy_act;
1987 #line 521 "tokenizer.lex"
1991 #line 1992 "tokenizer.yy.c"
2002 (yy_start) = 1; /* first start state */
2010 if ( ! YY_CURRENT_BUFFER ) {
2011 as3_ensure_buffer_stack ();
2012 YY_CURRENT_BUFFER_LVALUE =
2013 as3__create_buffer(as3_in,YY_BUF_SIZE );
2016 as3__load_buffer_state( );
2019 while ( 1 ) /* loops until end-of-file is reached */
2021 yy_cp = (yy_c_buf_p);
2023 /* Support of as3_text. */
2024 *yy_cp = (yy_hold_char);
2026 /* yy_bp points to the position in yy_ch_buf of the start of
2031 yy_current_state = (yy_start);
2032 yy_current_state += YY_AT_BOL();
2036 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2037 if ( yy_accept[yy_current_state] )
2039 (yy_last_accepting_state) = yy_current_state;
2040 (yy_last_accepting_cpos) = yy_cp;
2042 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2044 yy_current_state = (int) yy_def[yy_current_state];
2045 if ( yy_current_state >= 516 )
2046 yy_c = yy_meta[(unsigned int) yy_c];
2048 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2051 while ( yy_current_state != 515 );
2052 yy_cp = (yy_last_accepting_cpos);
2053 yy_current_state = (yy_last_accepting_state);
2056 yy_act = yy_accept[yy_current_state];
2058 YY_DO_BEFORE_ACTION;
2060 do_action: /* This label is used only to access EOF actions. */
2063 { /* beginning of action switch */
2064 case 0: /* must back up */
2065 /* undo the effects of YY_DO_BEFORE_ACTION */
2066 *yy_cp = (yy_hold_char);
2067 yy_cp = (yy_last_accepting_cpos);
2068 yy_current_state = (yy_last_accepting_state);
2069 goto yy_find_action;
2072 /* rule 1 can match eol */
2074 #line 524 "tokenizer.lex"
2075 {l(); /* single line comment */}
2078 /* rule 2 can match eol */
2080 #line 525 "tokenizer.lex"
2081 {l(); /* multi line comment */}
2085 #line 526 "tokenizer.lex"
2086 {syntaxerror("syntax error: unterminated comment", as3_text);}
2089 /* rule 4 can match eol */
2090 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2091 (yy_c_buf_p) = yy_cp -= 1;
2092 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2094 #line 528 "tokenizer.lex"
2095 {l();handleInclude(as3_text, as3_leng, 1);}
2098 /* rule 5 can match eol */
2099 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2100 (yy_c_buf_p) = yy_cp -= 1;
2101 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2103 #line 529 "tokenizer.lex"
2104 {l();handleInclude(as3_text, as3_leng, 0);}
2107 /* rule 6 can match eol */
2109 #line 530 "tokenizer.lex"
2110 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2113 /* rule 7 can match eol */
2115 #line 531 "tokenizer.lex"
2116 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2121 #line 534 "tokenizer.lex"
2122 {c(); BEGIN(INITIAL);return handleregexp();}
2125 /* rule 9 can match eol */
2126 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2127 (yy_c_buf_p) = yy_cp -= 1;
2128 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2130 #line 535 "tokenizer.lex"
2131 {c(); BEGIN(INITIAL);return handlehex();}
2134 /* rule 10 can match eol */
2135 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2136 (yy_c_buf_p) = yy_cp -= 1;
2137 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2139 #line 536 "tokenizer.lex"
2140 {c(); BEGIN(INITIAL);return handlehexfloat();}
2143 /* rule 11 can match eol */
2144 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2145 (yy_c_buf_p) = yy_cp -= 1;
2146 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2148 #line 537 "tokenizer.lex"
2149 {c(); BEGIN(INITIAL);return handleint();}
2152 /* rule 12 can match eol */
2153 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2154 (yy_c_buf_p) = yy_cp -= 1;
2155 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2157 #line 538 "tokenizer.lex"
2158 {c(); BEGIN(INITIAL);return handlefloat();}
2163 #line 541 "tokenizer.lex"
2164 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2168 #line 542 "tokenizer.lex"
2169 {c(); BEGIN(INITIAL); return m('{');}
2173 #line 544 "tokenizer.lex"
2177 /* rule 16 can match eol */
2179 #line 545 "tokenizer.lex"
2183 /* rule 17 can match eol */
2184 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2185 (yy_c_buf_p) = yy_cp -= 1;
2186 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2188 #line 547 "tokenizer.lex"
2189 {c(); BEGIN(INITIAL);return handlehex();}
2192 /* rule 18 can match eol */
2193 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2194 (yy_c_buf_p) = yy_cp -= 1;
2195 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2197 #line 548 "tokenizer.lex"
2198 {c(); BEGIN(INITIAL);return handlehexfloat();}
2201 /* rule 19 can match eol */
2202 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2203 (yy_c_buf_p) = yy_cp -= 1;
2204 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2206 #line 549 "tokenizer.lex"
2207 {c(); BEGIN(INITIAL);return handleint();}
2210 /* rule 20 can match eol */
2211 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2212 (yy_c_buf_p) = yy_cp -= 1;
2213 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2215 #line 550 "tokenizer.lex"
2216 {c(); BEGIN(INITIAL);return handlefloat();}
2220 #line 551 "tokenizer.lex"
2221 {c(); BEGIN(INITIAL);return m(KW_NAN);}
2225 #line 553 "tokenizer.lex"
2226 {/* for debugging: generates a tokenizer-level error */
2227 syntaxerror("3rr0r");}
2230 /* rule 23 can match eol */
2231 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2232 (yy_c_buf_p) = yy_cp -= 1;
2233 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2235 #line 556 "tokenizer.lex"
2236 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2239 /* rule 24 can match eol */
2240 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2241 (yy_c_buf_p) = yy_cp -= 1;
2242 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2244 #line 557 "tokenizer.lex"
2245 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-2);return T_DO;}
2248 /* rule 25 can match eol */
2249 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2250 (yy_c_buf_p) = yy_cp -= 1;
2251 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2253 #line 558 "tokenizer.lex"
2254 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2257 /* rule 26 can match eol */
2258 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2259 (yy_c_buf_p) = yy_cp -= 1;
2260 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2262 #line 559 "tokenizer.lex"
2263 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2267 #line 560 "tokenizer.lex"
2268 {c();BEGIN(INITIAL);a3_lval.id="";return T_FOR;}
2272 #line 561 "tokenizer.lex"
2273 {c();BEGIN(INITIAL);a3_lval.id="";return T_DO;}
2277 #line 562 "tokenizer.lex"
2278 {c();BEGIN(INITIAL);a3_lval.id="";return T_WHILE;}
2282 #line 563 "tokenizer.lex"
2283 {c();BEGIN(INITIAL);a3_lval.id="";return T_SWITCH;}
2287 #line 565 "tokenizer.lex"
2288 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2292 #line 566 "tokenizer.lex"
2293 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2297 #line 567 "tokenizer.lex"
2298 {c();BEGIN(REGEXPOK);return m(T_NE);}
2302 #line 568 "tokenizer.lex"
2303 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2307 #line 569 "tokenizer.lex"
2308 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2312 #line 570 "tokenizer.lex"
2313 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2317 #line 571 "tokenizer.lex"
2318 {c();BEGIN(REGEXPOK);return m(T_GE);}
2322 #line 572 "tokenizer.lex"
2323 {c();BEGIN(REGEXPOK);return m(T_LE);}
2327 #line 573 "tokenizer.lex"
2328 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2332 #line 574 "tokenizer.lex"
2333 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2337 #line 575 "tokenizer.lex"
2338 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2342 #line 576 "tokenizer.lex"
2343 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2347 #line 577 "tokenizer.lex"
2348 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2352 #line 578 "tokenizer.lex"
2353 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2357 #line 579 "tokenizer.lex"
2358 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2362 #line 580 "tokenizer.lex"
2363 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2367 #line 581 "tokenizer.lex"
2368 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2372 #line 582 "tokenizer.lex"
2373 {c();BEGIN(REGEXPOK);return m(T_ANDBY);}
2377 #line 583 "tokenizer.lex"
2378 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2382 #line 584 "tokenizer.lex"
2383 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2387 #line 585 "tokenizer.lex"
2388 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2392 #line 586 "tokenizer.lex"
2393 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2397 #line 587 "tokenizer.lex"
2398 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2402 #line 588 "tokenizer.lex"
2403 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2407 #line 589 "tokenizer.lex"
2408 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2412 #line 590 "tokenizer.lex"
2413 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2417 #line 591 "tokenizer.lex"
2418 {c();BEGIN(REGEXPOK);return m('.');}
2422 #line 592 "tokenizer.lex"
2423 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2427 #line 593 "tokenizer.lex"
2428 {c();BEGIN(REGEXPOK);return m(':');}
2432 #line 594 "tokenizer.lex"
2433 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2437 #line 595 "tokenizer.lex"
2438 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2442 #line 596 "tokenizer.lex"
2443 {c();BEGIN(INITIAL);return m(KW_INTERFACE);}
2447 #line 597 "tokenizer.lex"
2448 {c();BEGIN(INITIAL);return m(KW_NAMESPACE);}
2452 #line 598 "tokenizer.lex"
2453 {c();BEGIN(INITIAL);return m(KW_PROTECTED);}
2457 #line 599 "tokenizer.lex"
2458 {c();BEGIN(INITIAL);return m(KW_UNDEFINED);}
2462 #line 600 "tokenizer.lex"
2463 {c();BEGIN(INITIAL);return m(KW_CONTINUE);}
2467 #line 601 "tokenizer.lex"
2468 {c();BEGIN(INITIAL);return m(KW_OVERRIDE);}
2472 #line 602 "tokenizer.lex"
2473 {c();BEGIN(INITIAL);return m(KW_INTERNAL);}
2477 #line 603 "tokenizer.lex"
2478 {c();BEGIN(INITIAL);return m(KW_FUNCTION);}
2482 #line 604 "tokenizer.lex"
2483 {c();BEGIN(INITIAL);return m(KW_FINALLY);}
2487 #line 605 "tokenizer.lex"
2488 {c();BEGIN(INITIAL);return m(KW_DEFAULT);}
2492 #line 606 "tokenizer.lex"
2493 {c();BEGIN(INITIAL);return m(KW_PACKAGE);}
2497 #line 607 "tokenizer.lex"
2498 {c();BEGIN(INITIAL);return m(KW_PRIVATE);}
2502 #line 608 "tokenizer.lex"
2503 {c();BEGIN(INITIAL);return m(KW_DYNAMIC);}
2507 #line 609 "tokenizer.lex"
2508 {c();BEGIN(INITIAL);return m(KW_EXTENDS);}
2512 #line 610 "tokenizer.lex"
2513 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2517 #line 611 "tokenizer.lex"
2518 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2522 #line 612 "tokenizer.lex"
2523 {c();BEGIN(INITIAL);return m(KW_PUBLIC);}
2527 #line 613 "tokenizer.lex"
2528 {c();BEGIN(INITIAL);return m(KW_NATIVE);}
2532 #line 614 "tokenizer.lex"
2533 {c();BEGIN(INITIAL);return m(KW_STATIC);}
2537 #line 615 "tokenizer.lex"
2538 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2542 #line 616 "tokenizer.lex"
2543 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2547 #line 617 "tokenizer.lex"
2548 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2552 #line 618 "tokenizer.lex"
2553 {c();BEGIN(INITIAL);return m(KW_CLASS);}
2557 #line 619 "tokenizer.lex"
2558 {c();BEGIN(INITIAL);return m(KW_CONST);}
2562 #line 620 "tokenizer.lex"
2563 {c();BEGIN(INITIAL);return m(KW_CATCH);}
2567 #line 621 "tokenizer.lex"
2568 {c();BEGIN(INITIAL);return m(KW_FINAL);}
2572 #line 622 "tokenizer.lex"
2573 {c();BEGIN(INITIAL);return m(KW_FALSE);}
2577 #line 623 "tokenizer.lex"
2578 {c();BEGIN(INITIAL);return m(KW_BREAK);}
2582 #line 624 "tokenizer.lex"
2583 {c();BEGIN(INITIAL);return m(KW_SUPER);}
2587 #line 625 "tokenizer.lex"
2588 {c();BEGIN(INITIAL);return m(KW_EACH);}
2592 #line 626 "tokenizer.lex"
2593 {c();BEGIN(INITIAL);return m(KW_VOID);}
2597 #line 627 "tokenizer.lex"
2598 {c();BEGIN(INITIAL);return m(KW_TRUE);}
2602 #line 628 "tokenizer.lex"
2603 {c();BEGIN(INITIAL);return m(KW_NULL);}
2607 #line 629 "tokenizer.lex"
2608 {c();BEGIN(INITIAL);return m(KW_ELSE);}
2612 #line 630 "tokenizer.lex"
2613 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
2617 #line 631 "tokenizer.lex"
2618 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
2622 #line 632 "tokenizer.lex"
2623 {c();BEGIN(REGEXPOK);return m(KW_USE);}
2627 #line 633 "tokenizer.lex"
2628 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
2632 #line 634 "tokenizer.lex"
2633 {c();BEGIN(INITIAL);return m(KW_GET);}
2637 #line 635 "tokenizer.lex"
2638 {c();BEGIN(INITIAL);return m(KW_SET);}
2642 #line 636 "tokenizer.lex"
2643 {c();BEGIN(INITIAL);return m(KW_VAR);}
2647 #line 637 "tokenizer.lex"
2648 {c();BEGIN(INITIAL);return m(KW_TRY);}
2652 #line 638 "tokenizer.lex"
2653 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
2657 #line 639 "tokenizer.lex"
2658 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
2662 #line 640 "tokenizer.lex"
2663 {c();BEGIN(INITIAL);return m(KW_IF) ;}
2667 #line 641 "tokenizer.lex"
2668 {c();BEGIN(REGEXPOK);return m(KW_AS);}
2672 #line 642 "tokenizer.lex"
2673 {c();BEGIN(INITIAL);return handleIdentifier();}
2677 #line 644 "tokenizer.lex"
2678 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2682 #line 645 "tokenizer.lex"
2683 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2687 #line 646 "tokenizer.lex"
2688 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2692 #line 648 "tokenizer.lex"
2694 char c1=as3_text[0];
2696 buf[0] = as3_text[0];
2698 for(t=1;t<128;t++) {
2699 char c = buf[t]=input();
2700 if(c=='\n' || c==EOF) {
2705 if(c1>='0' && c1<='9')
2706 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2708 syntaxerror("syntax error: %s", buf);
2714 case YY_STATE_EOF(INITIAL):
2715 case YY_STATE_EOF(REGEXPOK):
2716 case YY_STATE_EOF(BEGINNING):
2717 #line 668 "tokenizer.lex"
2719 void*b = leave_file();
2722 as3__delete_buffer(YY_CURRENT_BUFFER);
2725 as3__delete_buffer(YY_CURRENT_BUFFER);
2726 as3__switch_to_buffer(b);
2732 #line 680 "tokenizer.lex"
2735 #line 2736 "tokenizer.yy.c"
2737 case YY_END_OF_BUFFER:
2739 /* Amount of text matched not including the EOB char. */
2740 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2742 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2743 *yy_cp = (yy_hold_char);
2744 YY_RESTORE_YY_MORE_OFFSET
2746 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2748 /* We're scanning a new file or input source. It's
2749 * possible that this happened because the user
2750 * just pointed as3_in at a new source and called
2751 * as3_lex(). If so, then we have to assure
2752 * consistency between YY_CURRENT_BUFFER and our
2753 * globals. Here is the right place to do so, because
2754 * this is the first action (other than possibly a
2755 * back-up) that will match for the new input source.
2757 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2758 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2759 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2762 /* Note that here we test for yy_c_buf_p "<=" to the position
2763 * of the first EOB in the buffer, since yy_c_buf_p will
2764 * already have been incremented past the NUL character
2765 * (since all states make transitions on EOB to the
2766 * end-of-buffer state). Contrast this with the test
2769 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2770 { /* This was really a NUL. */
2771 yy_state_type yy_next_state;
2773 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2775 yy_current_state = yy_get_previous_state( );
2777 /* Okay, we're now positioned to make the NUL
2778 * transition. We couldn't have
2779 * yy_get_previous_state() go ahead and do it
2780 * for us because it doesn't know how to deal
2781 * with the possibility of jamming (and we don't
2782 * want to build jamming into it because then it
2783 * will run more slowly).
2786 yy_next_state = yy_try_NUL_trans( yy_current_state );
2788 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2790 if ( yy_next_state )
2792 /* Consume the NUL. */
2793 yy_cp = ++(yy_c_buf_p);
2794 yy_current_state = yy_next_state;
2800 yy_cp = (yy_last_accepting_cpos);
2801 yy_current_state = (yy_last_accepting_state);
2802 goto yy_find_action;
2806 else switch ( yy_get_next_buffer( ) )
2808 case EOB_ACT_END_OF_FILE:
2810 (yy_did_buffer_switch_on_eof) = 0;
2814 /* Note: because we've taken care in
2815 * yy_get_next_buffer() to have set up
2816 * as3_text, we can now set up
2817 * yy_c_buf_p so that if some total
2818 * hoser (like flex itself) wants to
2819 * call the scanner after we return the
2820 * YY_NULL, it'll still work - another
2821 * YY_NULL will get returned.
2823 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2825 yy_act = YY_STATE_EOF(YY_START);
2831 if ( ! (yy_did_buffer_switch_on_eof) )
2837 case EOB_ACT_CONTINUE_SCAN:
2839 (yytext_ptr) + yy_amount_of_matched_text;
2841 yy_current_state = yy_get_previous_state( );
2843 yy_cp = (yy_c_buf_p);
2844 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2847 case EOB_ACT_LAST_MATCH:
2849 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2851 yy_current_state = yy_get_previous_state( );
2853 yy_cp = (yy_c_buf_p);
2854 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2855 goto yy_find_action;
2862 "fatal flex scanner internal error--no action found" );
2863 } /* end of action switch */
2864 } /* end of scanning one token */
2865 } /* end of as3_lex */
2867 /* yy_get_next_buffer - try to read in a new buffer
2869 * Returns a code representing an action:
2870 * EOB_ACT_LAST_MATCH -
2871 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2872 * EOB_ACT_END_OF_FILE - end of file
2874 static int yy_get_next_buffer (void)
2876 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2877 register char *source = (yytext_ptr);
2878 register int number_to_move, i;
2881 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2883 "fatal flex scanner internal error--end of buffer missed" );
2885 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2886 { /* Don't try to fill the buffer, so this is an EOF. */
2887 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2889 /* We matched a single character, the EOB, so
2890 * treat this as a final EOF.
2892 return EOB_ACT_END_OF_FILE;
2897 /* We matched some text prior to the EOB, first
2900 return EOB_ACT_LAST_MATCH;
2904 /* Try to read more data. */
2906 /* First move last chars to start of buffer. */
2907 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2909 for ( i = 0; i < number_to_move; ++i )
2910 *(dest++) = *(source++);
2912 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2913 /* don't do the read, it's not guaranteed to return an EOF,
2916 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2921 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2923 while ( num_to_read <= 0 )
2924 { /* Not enough room in the buffer - grow it. */
2926 /* just a shorter name for the current buffer */
2927 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2929 int yy_c_buf_p_offset =
2930 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2932 if ( b->yy_is_our_buffer )
2934 int new_size = b->yy_buf_size * 2;
2936 if ( new_size <= 0 )
2937 b->yy_buf_size += b->yy_buf_size / 8;
2939 b->yy_buf_size *= 2;
2941 b->yy_ch_buf = (char *)
2942 /* Include room in for 2 EOB chars. */
2943 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2946 /* Can't grow it, we don't own it. */
2949 if ( ! b->yy_ch_buf )
2951 "fatal error - scanner input buffer overflow" );
2953 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2955 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2960 if ( num_to_read > YY_READ_BUF_SIZE )
2961 num_to_read = YY_READ_BUF_SIZE;
2963 /* Read in more data. */
2964 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2965 (yy_n_chars), (size_t) num_to_read );
2967 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2970 if ( (yy_n_chars) == 0 )
2972 if ( number_to_move == YY_MORE_ADJ )
2974 ret_val = EOB_ACT_END_OF_FILE;
2975 as3_restart(as3_in );
2980 ret_val = EOB_ACT_LAST_MATCH;
2981 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2982 YY_BUFFER_EOF_PENDING;
2987 ret_val = EOB_ACT_CONTINUE_SCAN;
2989 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2990 /* Extend the array by 50%, plus the number we really need. */
2991 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2992 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2993 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2994 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2997 (yy_n_chars) += number_to_move;
2998 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2999 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3001 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3006 /* yy_get_previous_state - get the state just before the EOB char was reached */
3008 static yy_state_type yy_get_previous_state (void)
3010 register yy_state_type yy_current_state;
3011 register char *yy_cp;
3013 yy_current_state = (yy_start);
3014 yy_current_state += YY_AT_BOL();
3016 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3018 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3019 if ( yy_accept[yy_current_state] )
3021 (yy_last_accepting_state) = yy_current_state;
3022 (yy_last_accepting_cpos) = yy_cp;
3024 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3026 yy_current_state = (int) yy_def[yy_current_state];
3027 if ( yy_current_state >= 516 )
3028 yy_c = yy_meta[(unsigned int) yy_c];
3030 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3033 return yy_current_state;
3036 /* yy_try_NUL_trans - try to make a transition on the NUL character
3039 * next_state = yy_try_NUL_trans( current_state );
3041 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3043 register int yy_is_jam;
3044 register char *yy_cp = (yy_c_buf_p);
3046 register YY_CHAR yy_c = 1;
3047 if ( yy_accept[yy_current_state] )
3049 (yy_last_accepting_state) = yy_current_state;
3050 (yy_last_accepting_cpos) = yy_cp;
3052 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3054 yy_current_state = (int) yy_def[yy_current_state];
3055 if ( yy_current_state >= 516 )
3056 yy_c = yy_meta[(unsigned int) yy_c];
3058 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3059 yy_is_jam = (yy_current_state == 515);
3061 return yy_is_jam ? 0 : yy_current_state;
3064 static void yyunput (int c, register char * yy_bp )
3066 register char *yy_cp;
3068 yy_cp = (yy_c_buf_p);
3070 /* undo effects of setting up as3_text */
3071 *yy_cp = (yy_hold_char);
3073 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3074 { /* need to shift things up to make room */
3075 /* +2 for EOB chars. */
3076 register int number_to_move = (yy_n_chars) + 2;
3077 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3078 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3079 register char *source =
3080 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3082 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3083 *--dest = *--source;
3085 yy_cp += (int) (dest - source);
3086 yy_bp += (int) (dest - source);
3087 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3088 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3090 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3091 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3094 *--yy_cp = (char) c;
3096 (yytext_ptr) = yy_bp;
3097 (yy_hold_char) = *yy_cp;
3098 (yy_c_buf_p) = yy_cp;
3103 static int yyinput (void)
3105 static int input (void)
3111 *(yy_c_buf_p) = (yy_hold_char);
3113 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3115 /* yy_c_buf_p now points to the character we want to return.
3116 * If this occurs *before* the EOB characters, then it's a
3117 * valid NUL; if not, then we've hit the end of the buffer.
3119 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3120 /* This was really a NUL. */
3121 *(yy_c_buf_p) = '\0';
3124 { /* need more input */
3125 int offset = (yy_c_buf_p) - (yytext_ptr);
3128 switch ( yy_get_next_buffer( ) )
3130 case EOB_ACT_LAST_MATCH:
3131 /* This happens because yy_g_n_b()
3132 * sees that we've accumulated a
3133 * token and flags that we need to
3134 * try matching the token before
3135 * proceeding. But for input(),
3136 * there's no matching to consider.
3137 * So convert the EOB_ACT_LAST_MATCH
3138 * to EOB_ACT_END_OF_FILE.
3141 /* Reset buffer status. */
3142 as3_restart(as3_in );
3146 case EOB_ACT_END_OF_FILE:
3151 if ( ! (yy_did_buffer_switch_on_eof) )
3160 case EOB_ACT_CONTINUE_SCAN:
3161 (yy_c_buf_p) = (yytext_ptr) + offset;
3167 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3168 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3169 (yy_hold_char) = *++(yy_c_buf_p);
3171 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3175 #endif /* ifndef YY_NO_INPUT */
3177 /** Immediately switch to a different input stream.
3178 * @param input_file A readable stream.
3180 * @note This function does not reset the start condition to @c INITIAL .
3182 void as3_restart (FILE * input_file )
3185 if ( ! YY_CURRENT_BUFFER ){
3186 as3_ensure_buffer_stack ();
3187 YY_CURRENT_BUFFER_LVALUE =
3188 as3__create_buffer(as3_in,YY_BUF_SIZE );
3191 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3192 as3__load_buffer_state( );
3195 /** Switch to a different input buffer.
3196 * @param new_buffer The new input buffer.
3199 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3202 /* TODO. We should be able to replace this entire function body
3204 * as3_pop_buffer_state();
3205 * as3_push_buffer_state(new_buffer);
3207 as3_ensure_buffer_stack ();
3208 if ( YY_CURRENT_BUFFER == new_buffer )
3211 if ( YY_CURRENT_BUFFER )
3213 /* Flush out information for old buffer. */
3214 *(yy_c_buf_p) = (yy_hold_char);
3215 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3216 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3219 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3220 as3__load_buffer_state( );
3222 /* We don't actually know whether we did this switch during
3223 * EOF (as3_wrap()) processing, but the only time this flag
3224 * is looked at is after as3_wrap() is called, so it's safe
3225 * to go ahead and always set it.
3227 (yy_did_buffer_switch_on_eof) = 1;
3230 static void as3__load_buffer_state (void)
3232 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3233 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3234 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3235 (yy_hold_char) = *(yy_c_buf_p);
3238 /** Allocate and initialize an input buffer state.
3239 * @param file A readable stream.
3240 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3242 * @return the allocated buffer state.
3244 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3248 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3250 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3252 b->yy_buf_size = size;
3254 /* yy_ch_buf has to be 2 characters longer than the size given because
3255 * we need to put in 2 end-of-buffer characters.
3257 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3258 if ( ! b->yy_ch_buf )
3259 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3261 b->yy_is_our_buffer = 1;
3263 as3__init_buffer(b,file );
3268 /** Destroy the buffer.
3269 * @param b a buffer created with as3__create_buffer()
3272 void as3__delete_buffer (YY_BUFFER_STATE b )
3278 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3279 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3281 if ( b->yy_is_our_buffer )
3282 as3_free((void *) b->yy_ch_buf );
3284 as3_free((void *) b );
3287 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3291 #ifdef __THROW /* this is a gnuism */
3292 extern int isatty (int ) __THROW;
3294 extern int isatty (int );
3301 /* Initializes or reinitializes a buffer.
3302 * This function is sometimes called more than once on the same buffer,
3303 * such as during a as3_restart() or at EOF.
3305 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3310 as3__flush_buffer(b );
3312 b->yy_input_file = file;
3313 b->yy_fill_buffer = 1;
3315 /* If b is the current buffer, then as3__init_buffer was _probably_
3316 * called from as3_restart() or through yy_get_next_buffer.
3317 * In that case, we don't want to reset the lineno or column.
3319 if (b != YY_CURRENT_BUFFER){
3320 b->yy_bs_lineno = 1;
3321 b->yy_bs_column = 0;
3324 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3329 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3330 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3333 void as3__flush_buffer (YY_BUFFER_STATE b )
3340 /* We always need two end-of-buffer characters. The first causes
3341 * a transition to the end-of-buffer state. The second causes
3342 * a jam in that state.
3344 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3345 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3347 b->yy_buf_pos = &b->yy_ch_buf[0];
3350 b->yy_buffer_status = YY_BUFFER_NEW;
3352 if ( b == YY_CURRENT_BUFFER )
3353 as3__load_buffer_state( );
3356 /** Pushes the new state onto the stack. The new state becomes
3357 * the current state. This function will allocate the stack
3359 * @param new_buffer The new state.
3362 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3364 if (new_buffer == NULL)
3367 as3_ensure_buffer_stack();
3369 /* This block is copied from as3__switch_to_buffer. */
3370 if ( YY_CURRENT_BUFFER )
3372 /* Flush out information for old buffer. */
3373 *(yy_c_buf_p) = (yy_hold_char);
3374 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3375 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3378 /* Only push if top exists. Otherwise, replace top. */
3379 if (YY_CURRENT_BUFFER)
3380 (yy_buffer_stack_top)++;
3381 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3383 /* copied from as3__switch_to_buffer. */
3384 as3__load_buffer_state( );
3385 (yy_did_buffer_switch_on_eof) = 1;
3388 /** Removes and deletes the top of the stack, if present.
3389 * The next element becomes the new top.
3392 void as3_pop_buffer_state (void)
3394 if (!YY_CURRENT_BUFFER)
3397 as3__delete_buffer(YY_CURRENT_BUFFER );
3398 YY_CURRENT_BUFFER_LVALUE = NULL;
3399 if ((yy_buffer_stack_top) > 0)
3400 --(yy_buffer_stack_top);
3402 if (YY_CURRENT_BUFFER) {
3403 as3__load_buffer_state( );
3404 (yy_did_buffer_switch_on_eof) = 1;
3408 /* Allocates the stack if it does not exist.
3409 * Guarantees space for at least one push.
3411 static void as3_ensure_buffer_stack (void)
3415 if (!(yy_buffer_stack)) {
3417 /* First allocation is just for 2 elements, since we don't know if this
3418 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3419 * immediate realloc on the next call.
3422 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3423 (num_to_alloc * sizeof(struct yy_buffer_state*)
3425 if ( ! (yy_buffer_stack) )
3426 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3428 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3430 (yy_buffer_stack_max) = num_to_alloc;
3431 (yy_buffer_stack_top) = 0;
3435 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3437 /* Increase the buffer to prepare for a possible push. */
3438 int grow_size = 8 /* arbitrary grow size */;
3440 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3441 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3443 num_to_alloc * sizeof(struct yy_buffer_state*)
3445 if ( ! (yy_buffer_stack) )
3446 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3448 /* zero only the new slots.*/
3449 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3450 (yy_buffer_stack_max) = num_to_alloc;
3454 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3455 * @param base the character buffer
3456 * @param size the size in bytes of the character buffer
3458 * @return the newly allocated buffer state object.
3460 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3465 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3466 base[size-1] != YY_END_OF_BUFFER_CHAR )
3467 /* They forgot to leave room for the EOB's. */
3470 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3472 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3474 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3475 b->yy_buf_pos = b->yy_ch_buf = base;
3476 b->yy_is_our_buffer = 0;
3477 b->yy_input_file = 0;
3478 b->yy_n_chars = b->yy_buf_size;
3479 b->yy_is_interactive = 0;
3481 b->yy_fill_buffer = 0;
3482 b->yy_buffer_status = YY_BUFFER_NEW;
3484 as3__switch_to_buffer(b );
3489 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3490 * scan from a @e copy of @a str.
3491 * @param yystr a NUL-terminated string to scan
3493 * @return the newly allocated buffer state object.
3494 * @note If you want to scan bytes that may contain NUL values, then use
3495 * as3__scan_bytes() instead.
3497 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3500 return as3__scan_bytes(yystr,strlen(yystr) );
3503 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3504 * scan from a @e copy of @a bytes.
3505 * @param bytes the byte buffer to scan
3506 * @param len the number of bytes in the buffer pointed to by @a bytes.
3508 * @return the newly allocated buffer state object.
3510 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3517 /* Get memory for full buffer, including space for trailing EOB's. */
3518 n = _yybytes_len + 2;
3519 buf = (char *) as3_alloc(n );
3521 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3523 for ( i = 0; i < _yybytes_len; ++i )
3524 buf[i] = yybytes[i];
3526 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3528 b = as3__scan_buffer(buf,n );
3530 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3532 /* It's okay to grow etc. this buffer, and we should throw it
3533 * away when we're done.
3535 b->yy_is_our_buffer = 1;
3540 #ifndef YY_EXIT_FAILURE
3541 #define YY_EXIT_FAILURE 2
3544 static void yy_fatal_error (yyconst char* msg )
3546 (void) fprintf( stderr, "%s\n", msg );
3547 exit( YY_EXIT_FAILURE );
3550 /* Redefine yyless() so it works in section 3 code. */
3556 /* Undo effects of setting up as3_text. */ \
3557 int yyless_macro_arg = (n); \
3558 YY_LESS_LINENO(yyless_macro_arg);\
3559 as3_text[as3_leng] = (yy_hold_char); \
3560 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3561 (yy_hold_char) = *(yy_c_buf_p); \
3562 *(yy_c_buf_p) = '\0'; \
3563 as3_leng = yyless_macro_arg; \
3567 /* Accessor methods (get/set functions) to struct members. */
3569 /** Get the current line number.
3572 int as3_get_lineno (void)
3578 /** Get the input stream.
3581 FILE *as3_get_in (void)
3586 /** Get the output stream.
3589 FILE *as3_get_out (void)
3594 /** Get the length of the current token.
3597 int as3_get_leng (void)
3602 /** Get the current token.
3606 char *as3_get_text (void)
3611 /** Set the current line number.
3612 * @param line_number
3615 void as3_set_lineno (int line_number )
3618 as3_lineno = line_number;
3621 /** Set the input stream. This does not discard the current
3623 * @param in_str A readable stream.
3625 * @see as3__switch_to_buffer
3627 void as3_set_in (FILE * in_str )
3632 void as3_set_out (FILE * out_str )
3637 int as3_get_debug (void)
3639 return as3__flex_debug;
3642 void as3_set_debug (int bdebug )
3644 as3__flex_debug = bdebug ;
3647 static int yy_init_globals (void)
3649 /* Initialization is the same as for the non-reentrant scanner.
3650 * This function is called from as3_lex_destroy(), so don't allocate here.
3653 (yy_buffer_stack) = 0;
3654 (yy_buffer_stack_top) = 0;
3655 (yy_buffer_stack_max) = 0;
3656 (yy_c_buf_p) = (char *) 0;
3660 /* Defined in main.c */
3665 as3_in = (FILE *) 0;
3666 as3_out = (FILE *) 0;
3669 /* For future reference: Set errno on error, since we are called by
3675 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3676 int as3_lex_destroy (void)
3679 /* Pop the buffer stack, destroying each element. */
3680 while(YY_CURRENT_BUFFER){
3681 as3__delete_buffer(YY_CURRENT_BUFFER );
3682 YY_CURRENT_BUFFER_LVALUE = NULL;
3683 as3_pop_buffer_state();
3686 /* Destroy the stack itself. */
3687 as3_free((yy_buffer_stack) );
3688 (yy_buffer_stack) = NULL;
3690 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3691 * as3_lex() is called, initialization will occur. */
3698 * Internal utility routines.
3702 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3705 for ( i = 0; i < n; ++i )
3710 #ifdef YY_NEED_STRLEN
3711 static int yy_flex_strlen (yyconst char * s )
3714 for ( n = 0; s[n]; ++n )
3721 void *as3_alloc (yy_size_t size )
3723 return (void *) malloc( size );
3726 void *as3_realloc (void * ptr, yy_size_t size )
3728 /* The cast to (char *) in the following accommodates both
3729 * implementations that use char* generic pointers, and those
3730 * that use void* generic pointers. It works with the latter
3731 * because both ANSI C and C++ allow castless assignment from
3732 * any pointer type to void*, and deal with argument conversions
3733 * as though doing an assignment.
3735 return (void *) realloc( (char *) ptr, size );
3738 void as3_free (void * ptr )
3740 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3743 #define YYTABLES_NAME "yytables"
3745 #line 680 "tokenizer.lex"
3754 static char mbuf[256];
3755 char*token2string(enum yytokentype nr, YYSTYPE v)
3758 char*s = malloc(v.str.len+10);
3759 strcpy(s, "<string>");
3760 memcpy(s+8, v.str.str, v.str.len);
3761 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
3764 else if(nr==T_REGEXP) {
3765 char*s = malloc(strlen(v.regexp.pattern)+10);
3766 sprintf(s, "<regexp>%s", v.regexp.pattern);
3769 else if(nr==T_IDENTIFIER) {
3770 char*s = malloc(strlen(v.id)+10);
3771 sprintf(s, "<ID>%s", v.id);
3774 else if(nr==T_INT) return "<int>";
3775 else if(nr==T_UINT) return "<uint>";
3776 else if(nr==T_FLOAT) return "<float>";
3777 else if(nr==T_EOF) return "***END***";
3778 else if(nr==T_GE) return ">=";
3779 else if(nr==T_LE) return "<=";
3780 else if(nr==T_MINUSMINUS) return "--";
3781 else if(nr==T_PLUSPLUS) return "++";
3782 else if(nr==KW_IMPLEMENTS) return "implements";
3783 else if(nr==KW_INTERFACE) return "interface";
3784 else if(nr==KW_NAMESPACE) return "namespace";
3785 else if(nr==KW_PROTECTED) return "protected";
3786 else if(nr==KW_OVERRIDE) return "override";
3787 else if(nr==KW_INTERNAL) return "internal";
3788 else if(nr==KW_FUNCTION) return "function";
3789 else if(nr==KW_PACKAGE) return "package";
3790 else if(nr==KW_PRIVATE) return "private";
3791 else if(nr==KW_BOOLEAN) return "Boolean";
3792 else if(nr==KW_DYNAMIC) return "dynamic";
3793 else if(nr==KW_EXTENDS) return "extends";
3794 else if(nr==KW_PUBLIC) return "public";
3795 else if(nr==KW_NATIVE) return "native";
3796 else if(nr==KW_STATIC) return "static";
3797 else if(nr==KW_IMPORT) return "import";
3798 else if(nr==KW_NUMBER) return "number";
3799 else if(nr==KW_CLASS) return "class";
3800 else if(nr==KW_CONST) return "const";
3801 else if(nr==KW_FINAL) return "final";
3802 else if(nr==KW_FALSE) return "False";
3803 else if(nr==KW_TRUE) return "True";
3804 else if(nr==KW_UINT) return "uint";
3805 else if(nr==KW_NULL) return "null";
3806 else if(nr==KW_ELSE) return "else";
3807 else if(nr==KW_USE) return "use";
3808 else if(nr==KW_INT) return "int";
3809 else if(nr==KW_NEW) return "new";
3810 else if(nr==KW_GET) return "get";
3811 else if(nr==KW_SET) return "set";
3812 else if(nr==KW_VAR) return "var";
3813 else if(nr==KW_IS) return "is";
3814 else if(nr==KW_AS) return "as";
3816 sprintf(mbuf, "%d", nr);
3821 void initialize_scanner()