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 129
383 #define YY_END_OF_BUFFER 130
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[627] =
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 130, 129, 31, 126, 129, 126, 126, 126,
395 129, 126, 127, 125, 126, 126, 72, 126, 129, 129,
396 129, 74, 126, 126, 126, 124, 124, 125, 126, 124,
397 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
398 124, 124, 124, 124, 124, 124, 29, 126, 125, 129,
399 124, 128, 31, 126, 128, 126, 126, 126, 128, 126,
400 127, 125, 126, 126, 72, 126, 128, 128, 128, 74,
401 126, 126, 126, 124, 124, 125, 126, 124, 124, 124,
402 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
404 124, 124, 124, 124, 28, 126, 125, 128, 124, 29,
405 126, 126, 72, 126, 128, 128, 128, 17, 17, 19,
406 20, 18, 16, 16, 128, 128, 12, 11, 14, 13,
407 15, 10, 48, 0, 6, 0, 124, 60, 46, 63,
408 0, 0, 61, 55, 56, 54, 58, 71, 0, 3,
409 0, 59, 34, 34, 0, 0, 0, 0, 73, 0,
410 67, 53, 51, 52, 69, 0, 124, 0, 124, 57,
411 124, 123, 124, 124, 124, 124, 124, 43, 124, 124,
412 124, 124, 124, 124, 124, 124, 124, 122, 124, 121,
413 120, 124, 124, 124, 124, 124, 124, 124, 124, 124,
415 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
416 124, 124, 62, 47, 0, 121, 0, 0, 0, 0,
417 0, 3, 23, 59, 0, 26, 26, 0, 0, 0,
418 0, 17, 0, 0, 9, 0, 0, 0, 15, 49,
419 124, 70, 35, 0, 0, 0, 0, 0, 1, 0,
420 0, 0, 0, 0, 0, 65, 50, 64, 68, 0,
421 0, 0, 0, 0, 36, 124, 124, 124, 124, 124,
422 124, 124, 124, 124, 124, 124, 124, 124, 124, 42,
423 124, 116, 124, 124, 124, 124, 124, 115, 124, 124,
424 124, 124, 124, 124, 124, 117, 124, 124, 124, 124,
426 124, 119, 124, 124, 114, 118, 124, 124, 124, 30,
427 124, 0, 26, 26, 0, 0, 27, 23, 0, 0,
428 0, 23, 0, 23, 23, 0, 0, 0, 0, 0,
429 0, 0, 0, 0, 0, 2, 0, 33, 0, 32,
430 32, 0, 0, 66, 0, 0, 0, 0, 124, 124,
431 112, 124, 124, 124, 124, 124, 124, 124, 107, 111,
432 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
433 110, 124, 124, 124, 124, 124, 124, 124, 124, 124,
434 124, 109, 124, 124, 108, 124, 113, 124, 27, 0,
435 0, 0, 0, 23, 0, 23, 0, 0, 2, 0,
437 23, 23, 25, 0, 24, 24, 0, 0, 0, 0,
438 2, 37, 0, 39, 0, 0, 0, 124, 105, 102,
439 100, 101, 124, 124, 124, 124, 124, 104, 103, 124,
440 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
441 124, 124, 124, 106, 124, 99, 124, 124, 44, 124,
442 25, 0, 24, 24, 0, 0, 2, 0, 23, 23,
443 0, 0, 0, 0, 0, 0, 38, 0, 0, 124,
444 124, 124, 92, 124, 124, 124, 124, 124, 97, 124,
445 124, 124, 124, 95, 124, 124, 124, 124, 94, 93,
446 96, 45, 98, 124, 124, 23, 0, 0, 0, 0,
448 0, 0, 124, 124, 87, 90, 91, 86, 124, 124,
449 124, 124, 124, 124, 124, 88, 89, 124, 124, 124,
450 23, 8, 21, 0, 0, 0, 40, 124, 82, 85,
451 124, 124, 124, 84, 124, 83, 124, 124, 0, 0,
452 0, 41, 81, 124, 124, 77, 78, 79, 80, 0,
453 0, 0, 0, 0, 0, 0, 76, 75, 0, 5,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
456 0, 0, 4, 0, 0, 4, 0, 5, 0, 0,
457 0, 0, 0, 7, 0, 39, 5, 39, 39, 0,
459 0, 0, 22, 0, 7, 0, 38, 5, 38, 38,
460 0, 0, 22, 0, 0, 0, 0, 40, 5, 40,
464 static yyconst flex_int32_t yy_ec[256] =
466 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
467 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
468 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
470 14, 15, 16, 13, 17, 18, 19, 20, 21, 21,
471 22, 21, 21, 21, 21, 21, 21, 23, 13, 24,
472 25, 26, 13, 13, 27, 28, 29, 30, 28, 28,
473 28, 28, 28, 28, 28, 28, 28, 31, 28, 28,
474 28, 28, 28, 32, 28, 28, 28, 28, 28, 28,
475 33, 34, 35, 36, 37, 8, 38, 39, 40, 41,
477 42, 43, 44, 45, 46, 28, 47, 48, 49, 50,
478 51, 52, 28, 53, 54, 55, 56, 57, 58, 59,
479 60, 28, 61, 62, 63, 13, 8, 8, 8, 8,
480 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
481 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
482 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
483 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
484 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
485 8, 8, 8, 8, 8, 8, 64, 8, 8, 8,
486 65, 8, 8, 8, 8, 8, 8, 8, 8, 8,
488 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
489 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
490 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
491 8, 8, 8, 8, 8, 8, 8, 8, 66, 8,
492 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
496 static yyconst flex_int32_t yy_meta[67] =
498 1, 2, 3, 2, 2, 4, 4, 4, 4, 4,
499 4, 4, 4, 4, 4, 4, 4, 5, 4, 6,
500 6, 6, 2, 7, 4, 7, 8, 8, 8, 8,
501 8, 8, 4, 9, 4, 4, 10, 8, 8, 8,
502 8, 11, 8, 8, 8, 8, 8, 8, 8, 8,
503 8, 8, 8, 8, 8, 8, 8, 8, 12, 8,
507 static yyconst flex_int16_t yy_base[668] =
509 0, 986, 66, 983, 911, 87, 118, 125, 146, 149,
510 210, 0, 971, 3354, 3354, 945, 143, 0, 943, 140,
511 142, 3354, 3354, 936, 137, 138, 138, 142, 259, 264,
512 269, 937, 158, 934, 143, 185, 291, 3354, 932, 322,
513 328, 332, 143, 254, 261, 154, 309, 323, 305, 316,
514 340, 347, 339, 356, 363, 370, 3354, 253, 3354, 892,
515 374, 3354, 3354, 930, 159, 0, 928, 173, 166, 3354,
516 3354, 926, 411, 417, 320, 285, 423, 428, 433, 927,
517 434, 920, 272, 409, 418, 3354, 896, 423, 430, 0,
518 442, 447, 453, 465, 472, 476, 487, 492, 491, 499,
520 508, 522, 514, 529, 3354, 258, 3354, 852, 540, 3354,
521 179, 184, 328, 394, 564, 575, 580, 0, 0, 888,
522 3354, 3354, 3354, 3354, 332, 418, 3354, 3354, 3354, 3354,
523 0, 3354, 864, 366, 3354, 881, 0, 3354, 3354, 3354,
524 455, 878, 3354, 3354, 3354, 3354, 3354, 861, 583, 609,
525 393, 3354, 3354, 587, 598, 442, 859, 820, 3354, 825,
526 830, 3354, 825, 3354, 447, 633, 593, 643, 611, 3354,
527 616, 615, 623, 634, 630, 642, 656, 657, 662, 658,
528 673, 677, 678, 685, 692, 696, 700, 701, 712, 718,
529 719, 727, 723, 739, 741, 746, 747, 761, 753, 765,
531 767, 773, 781, 785, 792, 793, 808, 809, 815, 816,
532 823, 827, 3354, 3354, 777, 832, 630, 870, 875, 878,
533 269, 903, 935, 460, 477, 3354, 881, 893, 655, 821,
534 495, 0, 546, 386, 3354, 832, 485, 831, 0, 3354,
535 0, 3354, 3354, 716, 929, 939, 803, 611, 3354, 904,
536 927, 995, 1061, 794, 781, 3354, 3354, 3354, 782, 1087,
537 755, 751, 738, 743, 1050, 1055, 1057, 1062, 1069, 1064,
538 1081, 1083, 1095, 1100, 1102, 1114, 1116, 1121, 1122, 1123,
539 1128, 1139, 1140, 1144, 1155, 1156, 1162, 1163, 1164, 1171,
540 1178, 1179, 1180, 1194, 1195, 1196, 1201, 1212, 1210, 1219,
542 1224, 1226, 1231, 1238, 1230, 1245, 1246, 1247, 1254, 3354,
543 1252, 1163, 3354, 1286, 888, 762, 3354, 0, 1308, 1314,
544 1334, 740, 1342, 0, 1358, 1299, 1310, 1418, 1484, 741,
545 737, 713, 611, 1363, 1510, 718, 1520, 3354, 0, 3354,
546 0, 669, 673, 3354, 0, 649, 645, 637, 1321, 1333,
547 1253, 1489, 1490, 1504, 1312, 1505, 1516, 1467, 1522, 1524,
548 1528, 1539, 1544, 1545, 1546, 1551, 1560, 1565, 1569, 1571,
549 1576, 1583, 1587, 1591, 1595, 1602, 1603, 1609, 1611, 1623,
550 1627, 1628, 1629, 1643, 1644, 1645, 1650, 1651, 3354, 1353,
551 1648, 1707, 1773, 0, 1792, 1839, 1799, 1905, 654, 1910,
553 1944, 0, 3354, 0, 3354, 0, 652, 641, 625, 1915,
554 3354, 3354, 616, 3354, 0, 577, 579, 1774, 1772, 1779,
555 1781, 1884, 1890, 1885, 1973, 1974, 1975, 1979, 1980, 1991,
556 1995, 1997, 2003, 2012, 2018, 2023, 2029, 2034, 2035, 2041,
557 2053, 2046, 2060, 2061, 2065, 2067, 2076, 2082, 2083, 2084,
558 3354, 0, 3354, 0, 2135, 2140, 0, 2145, 0, 0,
559 575, 180, 570, 491, 554, 539, 3354, 529, 524, 2115,
560 2119, 2130, 2135, 2142, 2146, 2150, 2151, 2165, 2157, 2166,
561 2171, 2173, 2177, 2182, 2188, 2189, 2196, 2194, 2203, 2205,
562 2210, 2212, 2214, 2219, 2226, 545, 532, 653, 519, 509,
564 489, 0, 2228, 2233, 2234, 2240, 2242, 2248, 2254, 2259,
565 2270, 2263, 2268, 2275, 2282, 2284, 2289, 2296, 2301, 2351,
566 512, 3354, 3354, 478, 467, 0, 3354, 2310, 2312, 2319,
567 2321, 2327, 2335, 2333, 2349, 2342, 2344, 2360, 2402, 455,
568 391, 3354, 2365, 2372, 2379, 2380, 2381, 2386, 2395, 1528,
569 680, 2437, 2448, 351, 333, 309, 2397, 2406, 1701, 2456,
570 2460, 2464, 734, 2470, 318, 587, 2474, 2480, 2492, 2496,
571 2508, 2513, 2518, 2525, 2529, 2533, 2537, 2541, 281, 273,
572 727, 2545, 2560, 196, 2585, 2589, 2594, 2598, 2632, 2609,
573 2613, 2617, 791, 3354, 802, 2602, 2621, 2625, 2667, 2698,
575 2671, 2677, 3354, 850, 145, 893, 2681, 2685, 2725, 2733,
576 2737, 2741, 139, 901, 2745, 2790, 2856, 2749, 2753, 2763,
577 2767, 2771, 2776, 2782, 2815, 3354, 2922, 2934, 2939, 2951,
578 2963, 2974, 2986, 2998, 3010, 3022, 3034, 3041, 3048, 3060,
579 3071, 3083, 3091, 3103, 3115, 3126, 3134, 3146, 3158, 3165,
580 3170, 3182, 3194, 3206, 3213, 3225, 3237, 3249, 3256, 3263,
581 3270, 3282, 3293, 3305, 3317, 3329, 3341
584 static yyconst flex_int16_t yy_def[668] =
586 626, 1, 626, 3, 3, 3, 3, 3, 627, 627,
587 626, 11, 626, 626, 626, 626, 628, 629, 626, 626,
588 630, 626, 626, 626, 626, 626, 626, 626, 631, 631,
589 631, 626, 626, 626, 626, 632, 632, 626, 626, 632,
590 632, 632, 42, 42, 42, 42, 42, 42, 42, 42,
591 42, 42, 42, 42, 42, 42, 626, 626, 626, 626,
592 42, 626, 626, 626, 628, 629, 626, 626, 630, 626,
593 626, 626, 626, 626, 626, 633, 634, 634, 634, 626,
594 626, 626, 626, 42, 42, 626, 626, 42, 42, 42,
595 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
597 42, 42, 42, 42, 626, 626, 626, 626, 42, 626,
598 626, 626, 626, 626, 631, 631, 631, 635, 635, 626,
599 626, 626, 626, 626, 636, 637, 626, 626, 626, 626,
600 638, 626, 626, 628, 626, 628, 639, 626, 626, 626,
601 630, 630, 626, 626, 626, 626, 626, 626, 640, 641,
602 642, 626, 626, 640, 631, 626, 643, 626, 626, 626,
603 626, 626, 626, 626, 626, 626, 42, 626, 42, 626,
604 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
605 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
606 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
608 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
609 42, 42, 626, 626, 626, 42, 626, 644, 644, 645,
610 633, 646, 642, 633, 633, 626, 645, 634, 626, 647,
611 626, 635, 626, 636, 626, 636, 637, 637, 638, 626,
612 639, 626, 626, 641, 641, 648, 626, 642, 626, 640,
613 640, 626, 643, 626, 626, 626, 626, 626, 626, 626,
614 626, 626, 626, 626, 42, 42, 42, 42, 42, 42,
615 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
616 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
617 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
619 42, 42, 42, 42, 42, 42, 42, 42, 42, 626,
620 42, 649, 626, 649, 626, 650, 626, 651, 646, 646,
621 652, 651, 646, 223, 633, 645, 645, 626, 647, 626,
622 626, 626, 653, 641, 648, 626, 641, 626, 252, 626,
623 252, 626, 626, 626, 654, 626, 626, 626, 42, 42,
624 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
625 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
626 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
627 42, 42, 42, 42, 42, 42, 42, 42, 626, 649,
628 649, 626, 650, 651, 655, 626, 646, 652, 651, 646,
630 626, 325, 626, 328, 626, 328, 656, 657, 626, 641,
631 626, 626, 626, 626, 658, 626, 626, 42, 42, 42,
632 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
633 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
634 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
635 626, 392, 626, 392, 646, 646, 651, 646, 396, 401,
636 656, 656, 657, 657, 626, 626, 626, 626, 626, 42,
637 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
638 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
639 42, 42, 42, 42, 42, 325, 656, 657, 626, 626,
641 626, 659, 42, 42, 42, 42, 42, 42, 42, 42,
642 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
643 396, 626, 626, 626, 626, 660, 626, 42, 42, 42,
644 42, 42, 42, 42, 42, 42, 42, 42, 661, 626,
645 662, 626, 42, 42, 42, 42, 42, 42, 42, 663,
646 664, 665, 663, 666, 662, 662, 42, 42, 626, 626,
647 663, 663, 664, 626, 664, 667, 667, 665, 665, 663,
648 665, 626, 626, 663, 663, 663, 663, 663, 666, 666,
649 662, 626, 626, 667, 626, 626, 663, 667, 663, 663,
650 663, 663, 666, 626, 662, 626, 626, 663, 663, 663,
652 663, 663, 626, 666, 662, 662, 626, 626, 663, 663,
653 663, 663, 666, 666, 663, 663, 663, 626, 626, 663,
654 663, 626, 626, 663, 663, 0, 626, 626, 626, 626,
655 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
656 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
657 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
658 626, 626, 626, 626, 626, 626, 626
661 static yyconst flex_int16_t yy_nxt[3421] =
663 14, 15, 15, 15, 15, 16, 17, 14, 18, 19,
664 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
665 30, 31, 32, 33, 34, 35, 36, 36, 36, 36,
666 37, 36, 22, 14, 38, 39, 36, 40, 41, 42,
667 43, 44, 45, 46, 36, 47, 36, 36, 36, 48,
668 49, 50, 51, 52, 53, 54, 55, 56, 36, 36,
669 57, 58, 59, 14, 14, 60, 62, 63, 15, 63,
670 63, 64, 65, 62, 66, 67, 68, 69, 70, 71,
671 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
672 82, 83, 84, 84, 84, 84, 85, 84, 70, 62,
674 86, 87, 84, 88, 89, 90, 91, 92, 93, 94,
675 84, 95, 84, 84, 84, 96, 97, 98, 99, 100,
676 101, 102, 103, 104, 84, 84, 105, 106, 107, 62,
677 62, 108, 109, 111, 112, 113, 114, 115, 116, 117,
678 111, 112, 113, 114, 115, 116, 117, 110, 119, 135,
679 139, 119, 144, 135, 146, 148, 150, 149, 149, 149,
680 151, 145, 147, 160, 140, 135, 152, 164, 165, 120,
681 109, 121, 120, 580, 121, 142, 136, 135, 110, 556,
682 167, 161, 162, 139, 177, 110, 166, 166, 166, 166,
683 167, 167, 136, 178, 144, 187, 497, 140, 566, 142,
685 146, 167, 179, 145, 167, 626, 122, 168, 147, 122,
686 62, 123, 124, 123, 123, 62, 125, 62, 62, 62,
687 62, 126, 62, 62, 62, 62, 62, 62, 127, 62,
688 62, 62, 62, 128, 129, 130, 131, 131, 131, 131,
689 131, 131, 62, 62, 62, 62, 131, 131, 131, 131,
690 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
691 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
692 132, 62, 62, 62, 62, 62, 154, 213, 155, 155,
693 155, 154, 213, 155, 155, 155, 154, 318, 155, 155,
694 155, 180, 166, 166, 166, 166, 164, 165, 183, 222,
696 156, 181, 225, 223, 167, 156, 184, 593, 167, 224,
697 156, 185, 182, 168, 214, 580, 186, 157, 225, 214,
698 563, 158, 626, 166, 166, 166, 166, 626, 169, 166,
699 166, 166, 166, 166, 166, 166, 166, 148, 235, 220,
700 220, 220, 167, 581, 168, 148, 167, 149, 149, 149,
701 168, 188, 167, 196, 168, 167, 167, 189, 190, 167,
702 192, 195, 191, 167, 193, 236, 167, 556, 197, 174,
703 167, 198, 135, 167, 171, 172, 167, 167, 194, 175,
704 173, 199, 176, 204, 167, 580, 167, 167, 200, 167,
705 167, 205, 235, 167, 167, 249, 249, 167, 206, 136,
707 209, 201, 202, 167, 203, 207, 167, 167, 150, 208,
708 167, 167, 151, 210, 211, 212, 188, 167, 152, 236,
709 167, 167, 189, 216, 167, 556, 144, 191, 217, 235,
710 218, 219, 219, 146, 217, 145, 218, 219, 219, 231,
711 227, 147, 228, 228, 228, 227, 167, 228, 228, 228,
712 227, 238, 228, 228, 228, 169, 167, 161, 162, 167,
713 167, 251, 251, 251, 229, 167, 135, 167, 167, 229,
714 167, 258, 259, 167, 229, 171, 172, 167, 318, 167,
715 167, 230, 173, 177, 180, 158, 626, 554, 142, 167,
716 183, 626, 178, 225, 181, 325, 235, 167, 184, 541,
718 167, 179, 167, 185, 540, 182, 187, 498, 186, 167,
719 225, 330, 167, 192, 188, 167, 626, 193, 238, 167,
720 189, 190, 167, 167, 167, 191, 167, 255, 167, 196,
721 247, 194, 199, 526, 167, 525, 167, 167, 167, 167,
722 200, 167, 167, 195, 197, 167, 167, 198, 497, 167,
723 524, 209, 204, 201, 202, 167, 203, 522, 167, 167,
724 205, 167, 331, 521, 210, 502, 167, 206, 501, 167,
725 500, 207, 167, 211, 212, 208, 167, 167, 332, 167,
726 499, 154, 188, 155, 155, 155, 464, 167, 189, 216,
727 167, 462, 154, 191, 155, 155, 155, 154, 564, 155,
729 155, 155, 149, 149, 149, 156, 250, 250, 250, 244,
730 244, 244, 244, 249, 249, 154, 156, 155, 155, 155,
731 584, 156, 157, 246, 156, 410, 469, 247, 156, 411,
732 167, 468, 158, 626, 166, 166, 166, 166, 626, 156,
733 167, 265, 466, 167, 260, 260, 260, 260, 167, 312,
734 312, 312, 167, 167, 465, 168, 626, 464, 167, 266,
735 167, 167, 167, 167, 267, 167, 167, 270, 462, 498,
736 167, 167, 337, 167, 327, 327, 327, 167, 523, 167,
737 167, 167, 417, 261, 167, 262, 564, 268, 269, 167,
738 416, 271, 167, 167, 167, 167, 263, 275, 272, 167,
740 264, 415, 413, 273, 167, 167, 167, 167, 167, 167,
741 167, 274, 167, 565, 167, 167, 244, 244, 244, 244,
742 167, 412, 167, 167, 167, 278, 276, 167, 167, 167,
743 333, 277, 167, 167, 279, 167, 337, 167, 167, 167,
744 564, 409, 167, 167, 280, 281, 167, 167, 167, 167,
745 167, 167, 594, 408, 282, 167, 167, 407, 337, 167,
746 167, 595, 167, 283, 167, 167, 167, 565, 167, 167,
747 167, 284, 285, 167, 167, 286, 167, 167, 167, 392,
748 288, 287, 290, 167, 167, 291, 289, 348, 167, 167,
749 167, 167, 292, 167, 167, 347, 167, 293, 167, 294,
751 167, 346, 167, 167, 297, 345, 344, 295, 167, 343,
752 167, 167, 167, 342, 167, 167, 603, 167, 167, 296,
753 167, 337, 167, 167, 298, 604, 299, 605, 167, 167,
754 167, 167, 167, 237, 234, 167, 606, 300, 328, 167,
755 167, 310, 167, 167, 303, 167, 167, 301, 304, 257,
756 305, 302, 167, 167, 256, 167, 167, 255, 167, 167,
757 167, 307, 167, 167, 167, 167, 167, 306, 308, 167,
758 167, 311, 254, 167, 167, 613, 252, 167, 242, 167,
759 141, 309, 167, 134, 614, 284, 285, 314, 240, 219,
760 219, 219, 314, 233, 219, 219, 219, 220, 220, 220,
762 326, 326, 326, 319, 319, 244, 319, 391, 391, 391,
763 227, 315, 228, 228, 228, 215, 315, 321, 605, 229,
764 170, 322, 229, 250, 250, 250, 613, 581, 316, 244,
765 244, 244, 244, 626, 229, 593, 323, 249, 249, 334,
766 334, 334, 334, 333, 163, 156, 251, 251, 251, 159,
767 143, 626, 138, 335, 133, 215, 170, 336, 163, 159,
768 143, 324, 324, 324, 324, 324, 324, 138, 626, 133,
769 626, 110, 324, 324, 324, 324, 324, 324, 324, 324,
770 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
771 324, 324, 324, 324, 324, 338, 338, 338, 338, 338,
773 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
774 338, 338, 338, 338, 339, 339, 339, 338, 338, 338,
775 338, 339, 339, 339, 339, 339, 339, 338, 109, 338,
776 338, 61, 339, 339, 339, 339, 339, 339, 339, 339,
777 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
778 339, 339, 339, 339, 339, 338, 338, 338, 338, 338,
779 338, 340, 340, 340, 340, 340, 340, 340, 340, 340,
780 340, 340, 340, 340, 340, 340, 340, 340, 341, 340,
781 626, 626, 626, 340, 340, 340, 340, 167, 260, 260,
782 260, 260, 167, 340, 350, 340, 340, 167, 626, 167,
784 167, 167, 167, 351, 167, 167, 167, 167, 352, 167,
785 349, 167, 167, 626, 167, 626, 167, 353, 167, 167,
786 356, 340, 340, 340, 340, 340, 340, 261, 167, 262,
787 167, 167, 167, 167, 354, 355, 357, 358, 626, 167,
788 263, 626, 167, 626, 264, 167, 359, 167, 626, 167,
789 167, 167, 167, 167, 626, 360, 626, 361, 167, 363,
790 167, 167, 626, 167, 167, 167, 167, 364, 167, 167,
791 167, 167, 167, 167, 362, 167, 167, 167, 167, 626,
792 626, 167, 312, 312, 312, 626, 167, 365, 626, 167,
793 366, 167, 167, 167, 167, 626, 368, 369, 367, 167,
795 167, 167, 167, 167, 315, 167, 167, 370, 167, 167,
796 167, 371, 167, 167, 167, 167, 167, 167, 167, 626,
797 626, 167, 626, 372, 373, 167, 167, 167, 167, 167,
798 167, 167, 167, 167, 375, 374, 626, 626, 167, 626,
799 626, 376, 167, 167, 167, 167, 167, 167, 167, 167,
800 377, 167, 626, 379, 626, 378, 167, 167, 626, 167,
801 167, 167, 167, 167, 380, 382, 167, 167, 167, 381,
802 626, 167, 383, 167, 167, 167, 167, 167, 167, 384,
803 167, 167, 167, 167, 167, 167, 385, 626, 167, 167,
804 167, 167, 167, 167, 386, 167, 167, 167, 387, 388,
806 167, 167, 167, 167, 167, 390, 390, 390, 319, 319,
807 244, 319, 626, 626, 319, 319, 244, 319, 326, 326,
808 326, 626, 395, 626, 626, 626, 396, 315, 395, 327,
809 327, 327, 396, 626, 397, 397, 334, 397, 626, 626,
810 229, 323, 319, 319, 244, 319, 626, 323, 398, 167,
811 626, 626, 399, 626, 626, 626, 395, 423, 167, 167,
812 401, 626, 167, 244, 244, 244, 244, 400, 167, 418,
813 167, 167, 390, 390, 390, 323, 318, 333, 626, 419,
814 167, 626, 626, 167, 402, 402, 402, 402, 402, 402,
815 626, 225, 626, 626, 315, 402, 402, 402, 402, 402,
817 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
818 402, 402, 402, 402, 402, 402, 402, 402, 403, 403,
819 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
820 403, 403, 403, 403, 403, 403, 403, 404, 404, 404,
821 403, 403, 403, 403, 404, 404, 404, 404, 404, 404,
822 403, 626, 403, 403, 626, 404, 404, 404, 404, 404,
823 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
824 404, 404, 404, 404, 404, 404, 404, 404, 403, 403,
825 403, 403, 403, 403, 405, 405, 405, 405, 405, 405,
826 405, 405, 405, 405, 405, 405, 405, 405, 405, 405,
828 405, 406, 405, 626, 167, 626, 405, 405, 405, 405,
829 334, 334, 334, 334, 167, 426, 405, 167, 405, 405,
830 244, 244, 244, 244, 335, 626, 167, 167, 336, 559,
831 560, 559, 561, 420, 333, 626, 167, 167, 247, 167,
832 167, 167, 167, 421, 405, 405, 405, 405, 405, 405,
833 626, 167, 167, 167, 167, 167, 626, 626, 422, 167,
834 424, 167, 626, 167, 626, 167, 167, 626, 626, 167,
835 425, 167, 167, 626, 167, 167, 167, 427, 167, 626,
836 428, 167, 167, 167, 626, 626, 167, 431, 167, 167,
837 626, 429, 167, 167, 167, 167, 167, 433, 167, 430,
839 626, 167, 167, 432, 626, 626, 167, 167, 167, 626,
840 167, 626, 167, 167, 626, 167, 167, 434, 167, 167,
841 167, 167, 435, 167, 438, 626, 167, 436, 439, 626,
842 167, 626, 167, 167, 167, 437, 440, 167, 167, 167,
843 167, 167, 167, 626, 626, 167, 167, 441, 167, 167,
844 167, 626, 167, 167, 443, 442, 167, 626, 167, 167,
845 167, 167, 445, 444, 167, 167, 167, 391, 391, 391,
846 167, 626, 626, 167, 167, 167, 167, 167, 167, 447,
847 167, 167, 167, 626, 446, 448, 449, 167, 167, 626,
848 167, 167, 167, 167, 167, 167, 626, 167, 167, 626,
850 167, 167, 559, 560, 559, 559, 450, 451, 451, 451,
851 451, 451, 451, 451, 451, 451, 451, 451, 451, 451,
852 451, 451, 451, 451, 451, 451, 452, 452, 452, 451,
853 451, 451, 451, 452, 452, 452, 452, 452, 452, 451,
854 626, 451, 451, 626, 452, 452, 452, 452, 452, 452,
855 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
856 452, 452, 452, 452, 452, 452, 452, 451, 451, 451,
857 451, 451, 451, 453, 453, 453, 453, 453, 453, 453,
858 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
859 454, 453, 626, 626, 337, 453, 453, 453, 453, 319,
861 319, 244, 319, 626, 626, 453, 456, 453, 453, 167,
862 457, 167, 626, 395, 626, 470, 167, 396, 167, 167,
863 626, 167, 167, 626, 167, 458, 167, 626, 167, 167,
864 626, 167, 323, 453, 453, 453, 453, 453, 453, 244,
865 244, 244, 244, 245, 245, 245, 245, 245, 245, 245,
866 245, 245, 245, 333, 245, 245, 245, 245, 245, 245,
867 245, 245, 245, 245, 245, 459, 459, 459, 459, 459,
868 459, 245, 245, 245, 245, 245, 459, 459, 459, 459,
869 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
870 459, 459, 459, 459, 459, 459, 459, 459, 459, 245,
872 245, 245, 245, 245, 245, 397, 397, 334, 397, 626,
873 319, 319, 244, 319, 626, 244, 244, 244, 244, 398,
874 626, 167, 167, 399, 395, 626, 626, 167, 401, 333,
875 626, 167, 472, 336, 167, 167, 626, 167, 400, 471,
876 167, 626, 626, 323, 319, 319, 244, 319, 320, 320,
877 320, 320, 320, 320, 320, 320, 320, 320, 395, 320,
878 320, 320, 396, 320, 320, 320, 320, 320, 320, 320,
879 460, 460, 460, 460, 460, 460, 320, 323, 320, 320,
880 320, 460, 460, 460, 460, 460, 460, 460, 460, 460,
881 460, 460, 460, 460, 460, 460, 460, 460, 460, 460,
883 460, 460, 460, 460, 320, 320, 320, 320, 320, 320,
884 167, 167, 167, 626, 473, 475, 167, 167, 626, 474,
885 167, 167, 167, 167, 167, 167, 167, 476, 167, 167,
886 167, 626, 167, 626, 167, 626, 477, 626, 167, 626,
887 167, 167, 167, 478, 167, 167, 626, 167, 626, 167,
888 167, 479, 480, 167, 481, 167, 626, 626, 626, 167,
889 167, 482, 167, 626, 484, 167, 167, 626, 167, 483,
890 167, 167, 167, 167, 485, 626, 167, 486, 167, 167,
891 488, 167, 167, 167, 167, 167, 626, 626, 167, 487,
892 167, 167, 489, 167, 626, 490, 167, 167, 167, 491,
894 167, 626, 167, 167, 167, 626, 626, 167, 167, 492,
895 167, 167, 167, 167, 167, 167, 626, 167, 493, 167,
896 167, 167, 626, 167, 495, 626, 167, 494, 626, 167,
897 167, 167, 167, 167, 167, 319, 319, 244, 319, 626,
898 319, 319, 244, 319, 626, 319, 319, 244, 319, 395,
899 626, 626, 167, 322, 395, 626, 167, 626, 399, 395,
900 626, 626, 167, 496, 503, 167, 167, 167, 323, 167,
901 626, 626, 167, 323, 504, 626, 626, 167, 323, 167,
902 167, 506, 167, 167, 505, 167, 626, 167, 167, 167,
903 626, 626, 167, 167, 167, 626, 167, 167, 167, 507,
905 167, 509, 167, 167, 167, 511, 510, 167, 512, 508,
906 513, 626, 167, 167, 514, 167, 167, 626, 167, 167,
907 167, 167, 626, 167, 167, 167, 167, 167, 515, 167,
908 516, 167, 167, 167, 626, 167, 167, 517, 167, 167,
909 167, 167, 167, 167, 167, 626, 167, 167, 518, 167,
910 167, 167, 167, 167, 626, 167, 167, 167, 626, 167,
911 167, 167, 167, 167, 167, 167, 167, 520, 519, 167,
912 167, 167, 626, 167, 529, 167, 167, 167, 167, 167,
913 167, 167, 528, 167, 167, 167, 626, 167, 626, 167,
914 167, 167, 167, 626, 626, 167, 167, 626, 167, 626,
916 167, 167, 533, 530, 167, 167, 167, 167, 531, 167,
917 167, 532, 167, 167, 535, 534, 626, 167, 167, 167,
918 167, 167, 167, 536, 626, 167, 167, 626, 626, 167,
919 626, 167, 167, 167, 167, 626, 167, 537, 167, 167,
920 626, 626, 538, 167, 626, 626, 167, 167, 167, 167,
921 626, 167, 539, 539, 539, 539, 167, 167, 167, 167,
922 167, 626, 167, 543, 167, 626, 167, 626, 167, 167,
923 167, 167, 167, 626, 167, 544, 546, 545, 626, 167,
924 167, 167, 167, 167, 548, 167, 167, 626, 167, 167,
925 547, 167, 167, 626, 167, 626, 167, 167, 167, 167,
927 549, 167, 167, 539, 539, 539, 539, 167, 551, 167,
928 167, 626, 167, 552, 626, 167, 167, 167, 167, 167,
929 626, 558, 167, 167, 553, 557, 167, 167, 167, 167,
930 167, 167, 167, 167, 167, 626, 167, 566, 567, 560,
931 567, 568, 167, 167, 167, 167, 626, 167, 570, 572,
932 573, 572, 574, 167, 626, 626, 167, 559, 560, 559,
933 559, 559, 560, 559, 561, 559, 560, 559, 561, 626,
934 571, 582, 583, 582, 582, 567, 560, 567, 567, 626,
935 566, 567, 560, 567, 568, 564, 626, 626, 575, 626,
936 576, 570, 566, 567, 560, 567, 568, 585, 586, 585,
938 587, 577, 626, 570, 626, 578, 626, 584, 566, 567,
939 588, 567, 568, 571, 572, 573, 572, 572, 626, 572,
940 573, 572, 572, 626, 626, 571, 572, 573, 572, 574,
941 559, 560, 559, 561, 559, 560, 559, 561, 559, 560,
942 559, 561, 559, 560, 559, 561, 582, 583, 582, 582,
943 626, 626, 626, 261, 626, 262, 626, 626, 261, 626,
944 262, 582, 583, 582, 582, 575, 263, 576, 626, 626,
945 264, 263, 626, 626, 626, 264, 626, 626, 577, 589,
946 626, 626, 578, 590, 626, 592, 585, 586, 585, 585,
947 585, 586, 585, 585, 591, 585, 586, 585, 587, 567,
949 560, 567, 567, 559, 560, 559, 559, 626, 626, 564,
950 559, 560, 559, 561, 559, 560, 559, 561, 559, 560,
951 559, 561, 559, 560, 559, 559, 559, 560, 559, 561,
952 626, 584, 414, 596, 597, 596, 598, 599, 599, 599,
953 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
954 599, 626, 626, 626, 599, 599, 599, 599, 601, 626,
955 626, 600, 602, 626, 599, 626, 599, 599, 559, 560,
956 559, 561, 559, 560, 559, 561, 626, 626, 559, 560,
957 559, 561, 559, 560, 559, 559, 559, 560, 559, 559,
958 626, 626, 599, 599, 599, 599, 599, 599, 467, 607,
960 608, 607, 609, 610, 610, 610, 610, 610, 610, 610,
961 610, 610, 610, 610, 610, 610, 610, 626, 626, 626,
962 610, 610, 610, 610, 612, 611, 559, 560, 559, 561,
963 610, 626, 610, 610, 559, 560, 559, 561, 559, 560,
964 559, 561, 559, 560, 559, 561, 559, 560, 559, 561,
965 559, 560, 559, 559, 559, 560, 559, 559, 610, 610,
966 610, 610, 610, 610, 559, 560, 559, 561, 559, 560,
967 559, 561, 559, 560, 559, 559, 615, 559, 560, 559,
968 559, 626, 616, 559, 560, 559, 561, 626, 626, 617,
969 527, 618, 619, 618, 620, 621, 621, 621, 621, 621,
971 621, 621, 621, 621, 621, 621, 621, 621, 621, 626,
972 626, 626, 621, 621, 621, 621, 559, 560, 559, 561,
973 626, 626, 621, 626, 621, 621, 626, 626, 626, 626,
974 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
975 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
976 621, 621, 621, 621, 621, 621, 542, 622, 623, 622,
977 624, 625, 625, 625, 625, 625, 625, 625, 625, 625,
978 625, 625, 625, 625, 625, 626, 626, 626, 625, 625,
979 625, 625, 626, 626, 626, 626, 626, 626, 625, 626,
980 625, 625, 626, 626, 626, 626, 626, 626, 626, 626,
982 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
983 626, 626, 626, 626, 626, 626, 625, 625, 625, 625,
984 625, 625, 118, 118, 118, 118, 118, 118, 118, 118,
985 118, 118, 118, 118, 134, 134, 626, 134, 134, 134,
986 134, 134, 134, 134, 134, 134, 137, 626, 137, 137,
987 137, 141, 141, 626, 141, 141, 141, 141, 141, 141,
988 141, 141, 141, 153, 153, 153, 153, 153, 153, 153,
989 626, 626, 626, 153, 153, 167, 167, 626, 626, 167,
990 626, 167, 167, 167, 167, 167, 221, 221, 626, 221,
991 221, 221, 221, 221, 221, 221, 221, 221, 226, 226,
993 226, 226, 226, 226, 226, 626, 626, 626, 226, 226,
994 232, 232, 232, 232, 232, 232, 626, 232, 232, 232,
995 232, 232, 234, 234, 626, 234, 234, 234, 234, 234,
996 234, 234, 234, 234, 237, 237, 626, 237, 237, 237,
997 237, 237, 237, 237, 237, 237, 239, 626, 239, 239,
998 239, 239, 239, 241, 626, 241, 241, 241, 241, 241,
999 243, 243, 243, 243, 243, 243, 243, 626, 626, 626,
1000 243, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1001 245, 245, 245, 248, 248, 248, 248, 248, 248, 248,
1002 248, 248, 248, 248, 248, 253, 253, 626, 253, 626,
1004 626, 253, 253, 313, 313, 313, 313, 313, 313, 313,
1005 626, 626, 626, 313, 313, 317, 317, 317, 317, 317,
1006 317, 317, 626, 626, 626, 317, 320, 320, 320, 320,
1007 320, 320, 320, 320, 320, 320, 320, 320, 329, 329,
1008 626, 329, 626, 626, 329, 329, 244, 244, 244, 244,
1009 244, 244, 244, 244, 244, 244, 244, 244, 389, 389,
1010 389, 389, 389, 389, 389, 626, 626, 626, 389, 393,
1011 393, 626, 393, 626, 626, 393, 393, 394, 626, 626,
1012 394, 394, 319, 319, 319, 319, 319, 319, 319, 319,
1013 319, 319, 319, 319, 337, 337, 337, 337, 337, 337,
1015 337, 337, 337, 337, 337, 337, 414, 414, 414, 414,
1016 414, 626, 414, 455, 455, 455, 455, 455, 455, 455,
1017 455, 455, 455, 455, 455, 461, 461, 461, 461, 461,
1018 461, 461, 461, 461, 461, 461, 461, 463, 463, 463,
1019 463, 463, 463, 463, 463, 463, 463, 463, 463, 467,
1020 467, 467, 467, 467, 626, 467, 527, 527, 527, 527,
1021 527, 626, 527, 542, 542, 542, 542, 542, 626, 542,
1022 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
1023 550, 550, 555, 555, 555, 555, 555, 555, 555, 555,
1024 555, 555, 555, 555, 562, 562, 562, 562, 562, 562,
1026 562, 562, 562, 562, 562, 563, 563, 626, 563, 563,
1027 563, 563, 563, 563, 563, 563, 563, 569, 569, 569,
1028 569, 569, 569, 569, 569, 569, 569, 569, 569, 579,
1029 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
1030 579, 566, 566, 626, 566, 566, 566, 566, 566, 566,
1031 566, 566, 566, 13, 626, 626, 626, 626, 626, 626,
1032 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1033 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1034 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1035 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1037 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1038 626, 626, 626, 626, 626, 626, 626, 626, 626, 626
1041 static yyconst flex_int16_t yy_chk[3421] =
1043 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1044 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1045 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1046 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1047 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1048 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1049 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
1050 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1051 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1052 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1054 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1055 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1056 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1057 3, 3, 6, 7, 7, 7, 7, 7, 7, 7,
1058 8, 8, 8, 8, 8, 8, 8, 6, 9, 17,
1059 20, 10, 25, 21, 26, 27, 28, 27, 27, 27,
1060 28, 25, 26, 33, 20, 65, 28, 35, 35, 9,
1061 8, 9, 10, 613, 10, 21, 17, 69, 7, 605,
1062 43, 33, 33, 68, 43, 8, 36, 36, 36, 36,
1063 43, 46, 65, 43, 111, 46, 462, 68, 584, 69,
1065 112, 46, 43, 111, 46, 462, 9, 36, 112, 10,
1066 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1067 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1068 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1069 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1070 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1071 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1072 11, 11, 11, 11, 11, 11, 29, 58, 29, 29,
1073 29, 30, 106, 30, 30, 30, 31, 221, 31, 31,
1074 31, 44, 37, 37, 37, 37, 83, 83, 45, 76,
1076 29, 44, 221, 76, 44, 30, 45, 580, 45, 76,
1077 31, 45, 44, 37, 58, 579, 45, 29, 76, 106,
1078 565, 31, 30, 40, 40, 40, 40, 31, 37, 41,
1079 41, 41, 41, 42, 42, 42, 42, 75, 125, 75,
1080 75, 75, 49, 556, 40, 113, 47, 113, 113, 113,
1081 41, 47, 49, 50, 42, 49, 47, 47, 47, 47,
1082 48, 49, 47, 50, 48, 125, 50, 555, 50, 42,
1083 48, 50, 134, 48, 40, 40, 53, 51, 48, 42,
1084 41, 51, 42, 53, 52, 554, 53, 51, 52, 53,
1085 51, 53, 234, 54, 52, 151, 151, 52, 53, 134,
1087 55, 52, 52, 54, 52, 54, 54, 56, 114, 54,
1088 55, 61, 114, 55, 56, 56, 61, 56, 114, 234,
1089 56, 61, 61, 61, 61, 541, 73, 61, 73, 126,
1090 73, 73, 73, 74, 74, 73, 74, 74, 74, 81,
1091 77, 74, 77, 77, 77, 78, 84, 78, 78, 78,
1092 79, 126, 79, 79, 79, 85, 84, 81, 81, 84,
1093 88, 156, 156, 156, 77, 85, 141, 89, 85, 78,
1094 88, 165, 165, 88, 79, 88, 88, 89, 224, 91,
1095 89, 77, 89, 91, 92, 79, 78, 540, 141, 91,
1096 93, 79, 91, 224, 92, 225, 237, 92, 93, 525,
1098 93, 91, 94, 93, 524, 92, 94, 464, 93, 95,
1099 225, 231, 94, 96, 95, 94, 464, 96, 237, 95,
1100 95, 95, 95, 96, 97, 95, 96, 231, 99, 98,
1101 521, 96, 99, 501, 97, 500, 100, 97, 99, 98,
1102 100, 99, 98, 97, 98, 101, 100, 98, 497, 100,
1103 499, 103, 101, 100, 100, 101, 100, 497, 101, 102,
1104 101, 103, 233, 496, 103, 469, 104, 101, 468, 102,
1105 466, 102, 102, 104, 104, 102, 104, 109, 233, 104,
1106 465, 115, 109, 115, 115, 115, 463, 109, 109, 109,
1107 109, 461, 116, 109, 116, 116, 116, 117, 566, 117,
1109 117, 117, 149, 149, 149, 115, 154, 154, 154, 150,
1110 150, 150, 150, 248, 248, 155, 116, 155, 155, 155,
1111 566, 117, 115, 150, 149, 333, 417, 150, 154, 333,
1112 167, 416, 117, 116, 166, 166, 166, 166, 117, 155,
1113 167, 169, 413, 167, 168, 168, 168, 168, 169, 217,
1114 217, 217, 172, 171, 409, 166, 155, 408, 169, 171,
1115 173, 169, 172, 171, 173, 172, 171, 175, 407, 498,
1116 173, 174, 399, 173, 229, 229, 229, 175, 498, 176,
1117 175, 174, 348, 168, 174, 168, 551, 174, 174, 176,
1118 347, 176, 176, 177, 178, 180, 168, 180, 177, 179,
1120 168, 346, 343, 177, 178, 180, 177, 178, 180, 179,
1121 181, 179, 179, 551, 182, 183, 244, 244, 244, 244,
1122 181, 342, 184, 181, 182, 183, 181, 182, 183, 185,
1123 244, 182, 184, 186, 184, 184, 336, 187, 188, 185,
1124 563, 332, 185, 186, 185, 186, 186, 187, 188, 189,
1125 187, 188, 581, 331, 187, 190, 191, 330, 322, 189,
1126 193, 581, 189, 189, 192, 190, 191, 563, 190, 191,
1127 193, 190, 190, 193, 192, 192, 194, 192, 195, 316,
1128 193, 192, 195, 196, 197, 196, 194, 264, 195, 194,
1129 199, 195, 197, 196, 197, 263, 196, 197, 198, 198,
1131 199, 262, 200, 199, 201, 261, 259, 199, 198, 255,
1132 202, 198, 200, 254, 201, 200, 593, 201, 203, 200,
1133 202, 247, 204, 202, 202, 593, 203, 595, 203, 205,
1134 206, 203, 204, 238, 236, 204, 595, 204, 230, 205,
1135 206, 215, 205, 206, 206, 207, 208, 205, 207, 163,
1136 208, 205, 209, 210, 161, 207, 208, 160, 207, 208,
1137 211, 210, 209, 210, 212, 209, 210, 209, 211, 216,
1138 211, 216, 158, 211, 212, 604, 157, 212, 148, 216,
1139 142, 212, 216, 136, 604, 216, 216, 218, 133, 218,
1140 218, 218, 219, 120, 219, 219, 219, 220, 220, 220,
1142 227, 227, 227, 222, 222, 222, 222, 315, 315, 315,
1143 228, 218, 228, 228, 228, 108, 219, 222, 606, 220,
1144 87, 222, 227, 250, 250, 250, 614, 606, 218, 245,
1145 245, 245, 245, 219, 228, 614, 222, 223, 223, 246,
1146 246, 246, 246, 245, 82, 250, 251, 251, 251, 80,
1147 72, 228, 67, 246, 64, 60, 39, 246, 34, 32,
1148 24, 223, 223, 223, 223, 223, 223, 19, 251, 16,
1149 13, 5, 223, 223, 223, 223, 223, 223, 223, 223,
1150 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
1151 223, 223, 223, 223, 223, 252, 252, 252, 252, 252,
1153 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1154 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1155 252, 252, 252, 252, 252, 252, 252, 252, 4, 252,
1156 252, 2, 252, 252, 252, 252, 252, 252, 252, 252,
1157 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1158 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1159 252, 253, 253, 253, 253, 253, 253, 253, 253, 253,
1160 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
1161 0, 0, 0, 253, 253, 253, 253, 265, 260, 260,
1162 260, 260, 266, 253, 267, 253, 253, 265, 0, 268,
1164 265, 270, 266, 268, 267, 266, 269, 267, 269, 268,
1165 266, 270, 268, 0, 270, 0, 269, 270, 271, 269,
1166 272, 253, 253, 253, 253, 253, 253, 260, 271, 260,
1167 272, 271, 273, 272, 271, 271, 273, 274, 0, 275,
1168 260, 0, 273, 0, 260, 273, 275, 274, 0, 275,
1169 274, 276, 275, 277, 0, 276, 0, 277, 278, 279,
1170 280, 276, 0, 277, 276, 281, 277, 281, 278, 279,
1171 280, 278, 279, 280, 278, 281, 282, 283, 281, 0,
1172 0, 284, 312, 312, 312, 0, 282, 283, 0, 282,
1173 283, 284, 285, 286, 284, 0, 285, 286, 284, 287,
1175 288, 289, 285, 286, 312, 285, 286, 287, 290, 287,
1176 288, 289, 287, 288, 289, 291, 292, 293, 290, 0,
1177 0, 290, 0, 290, 291, 291, 292, 293, 291, 292,
1178 293, 294, 295, 296, 293, 292, 0, 0, 297, 0,
1179 0, 294, 295, 296, 294, 295, 296, 299, 297, 298,
1180 295, 297, 0, 298, 0, 297, 300, 299, 0, 298,
1181 299, 301, 298, 302, 299, 301, 300, 305, 303, 300,
1182 0, 301, 303, 302, 301, 304, 302, 305, 303, 304,
1183 305, 303, 306, 307, 308, 304, 307, 0, 304, 311,
1184 351, 309, 306, 307, 308, 306, 307, 308, 309, 311,
1186 351, 309, 311, 351, 309, 314, 314, 314, 319, 319,
1187 319, 319, 0, 0, 320, 320, 320, 320, 326, 326,
1188 326, 0, 319, 0, 0, 0, 319, 314, 320, 327,
1189 327, 327, 320, 0, 321, 321, 321, 321, 0, 0,
1190 326, 319, 323, 323, 323, 323, 0, 320, 321, 355,
1191 0, 327, 321, 0, 0, 0, 323, 355, 349, 355,
1192 323, 0, 355, 334, 334, 334, 334, 321, 349, 349,
1193 350, 349, 390, 390, 390, 323, 325, 334, 0, 350,
1194 350, 0, 0, 350, 325, 325, 325, 325, 325, 325,
1195 0, 325, 0, 0, 390, 325, 325, 325, 325, 325,
1197 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
1198 325, 325, 325, 325, 325, 325, 325, 325, 328, 328,
1199 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
1200 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
1201 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
1202 328, 0, 328, 328, 0, 328, 328, 328, 328, 328,
1203 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
1204 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
1205 328, 328, 328, 328, 329, 329, 329, 329, 329, 329,
1206 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
1208 329, 329, 329, 0, 358, 0, 329, 329, 329, 329,
1209 335, 335, 335, 335, 358, 358, 329, 358, 329, 329,
1210 337, 337, 337, 337, 335, 0, 352, 353, 335, 550,
1211 550, 550, 550, 352, 337, 0, 352, 353, 337, 352,
1212 353, 354, 356, 353, 329, 329, 329, 329, 329, 329,
1213 0, 354, 356, 357, 354, 356, 0, 0, 354, 359,
1214 356, 360, 0, 357, 0, 361, 357, 0, 0, 359,
1215 357, 360, 359, 0, 360, 361, 362, 361, 361, 0,
1216 362, 363, 364, 365, 0, 0, 362, 365, 366, 362,
1217 0, 363, 364, 365, 363, 364, 365, 367, 366, 364,
1219 0, 366, 368, 366, 0, 0, 369, 367, 370, 0,
1220 367, 0, 368, 371, 0, 368, 369, 368, 370, 369,
1221 372, 370, 369, 371, 373, 0, 371, 370, 374, 0,
1222 372, 0, 375, 372, 373, 372, 375, 373, 374, 376,
1223 377, 374, 375, 0, 0, 375, 378, 376, 379, 376,
1224 377, 0, 376, 377, 378, 377, 378, 0, 379, 378,
1225 380, 379, 380, 379, 381, 382, 383, 391, 391, 391,
1226 380, 0, 0, 380, 381, 382, 383, 381, 382, 383,
1227 384, 385, 386, 0, 381, 384, 386, 387, 388, 391,
1228 384, 385, 386, 384, 385, 386, 0, 387, 388, 0,
1230 387, 388, 559, 559, 559, 559, 388, 392, 392, 392,
1231 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1232 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1233 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1234 0, 392, 392, 0, 392, 392, 392, 392, 392, 392,
1235 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1236 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1237 392, 392, 392, 393, 393, 393, 393, 393, 393, 393,
1238 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
1239 393, 393, 0, 0, 395, 393, 393, 393, 393, 397,
1241 397, 397, 397, 0, 0, 393, 395, 393, 393, 419,
1242 395, 418, 0, 397, 0, 418, 420, 397, 421, 419,
1243 0, 418, 419, 0, 418, 395, 420, 0, 421, 420,
1244 0, 421, 397, 393, 393, 393, 393, 393, 393, 396,
1245 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1246 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1247 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1248 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1249 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1250 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1252 396, 396, 396, 396, 396, 398, 398, 398, 398, 0,
1253 400, 400, 400, 400, 0, 410, 410, 410, 410, 398,
1254 0, 422, 424, 398, 400, 0, 0, 423, 400, 410,
1255 0, 422, 424, 410, 422, 424, 0, 423, 398, 423,
1256 423, 0, 0, 400, 401, 401, 401, 401, 401, 401,
1257 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1258 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1259 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1260 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1261 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1263 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1264 425, 426, 427, 0, 425, 427, 428, 429, 0, 426,
1265 425, 426, 427, 425, 426, 427, 428, 429, 430, 428,
1266 429, 0, 431, 0, 432, 0, 430, 0, 430, 0,
1267 433, 430, 431, 431, 432, 431, 0, 432, 0, 434,
1268 433, 432, 433, 433, 434, 435, 0, 0, 0, 434,
1269 436, 434, 434, 0, 436, 435, 437, 0, 435, 435,
1270 436, 438, 439, 436, 437, 0, 437, 438, 440, 437,
1271 440, 438, 439, 442, 438, 439, 0, 0, 440, 439,
1272 441, 440, 441, 442, 0, 442, 442, 443, 444, 443,
1274 441, 0, 445, 441, 446, 0, 0, 443, 444, 445,
1275 443, 444, 445, 447, 446, 445, 0, 446, 447, 448,
1276 449, 450, 0, 447, 450, 0, 447, 448, 0, 448,
1277 449, 450, 448, 449, 450, 455, 455, 455, 455, 0,
1278 456, 456, 456, 456, 0, 458, 458, 458, 458, 455,
1279 0, 0, 470, 455, 456, 0, 471, 0, 456, 458,
1280 0, 0, 470, 458, 470, 470, 471, 472, 455, 471,
1281 0, 0, 473, 456, 471, 0, 0, 472, 458, 474,
1282 472, 474, 473, 475, 472, 473, 0, 476, 477, 474,
1283 0, 0, 474, 475, 479, 0, 475, 476, 477, 475,
1285 476, 477, 478, 480, 479, 480, 478, 479, 481, 476,
1286 482, 0, 478, 480, 483, 478, 480, 0, 481, 484,
1287 482, 481, 0, 482, 483, 485, 486, 483, 485, 484,
1288 486, 488, 484, 487, 0, 485, 486, 487, 485, 486,
1289 489, 488, 490, 487, 488, 0, 487, 491, 488, 492,
1290 489, 493, 490, 489, 0, 490, 494, 491, 0, 492,
1291 491, 493, 492, 495, 493, 503, 494, 495, 494, 494,
1292 504, 505, 0, 495, 504, 503, 495, 506, 503, 507,
1293 504, 505, 503, 504, 505, 508, 0, 506, 0, 507,
1294 506, 509, 507, 0, 0, 508, 510, 0, 508, 0,
1296 512, 509, 512, 509, 509, 513, 510, 511, 510, 510,
1297 512, 511, 514, 512, 514, 513, 0, 511, 513, 515,
1298 511, 516, 514, 515, 0, 514, 517, 0, 0, 515,
1299 0, 516, 515, 518, 516, 0, 517, 518, 519, 517,
1300 0, 0, 519, 518, 0, 0, 518, 528, 519, 529,
1301 0, 519, 520, 520, 520, 520, 530, 528, 531, 529,
1302 528, 0, 529, 528, 532, 0, 530, 0, 531, 530,
1303 534, 531, 533, 0, 532, 531, 533, 532, 0, 536,
1304 534, 537, 533, 534, 537, 533, 535, 0, 520, 536,
1305 535, 537, 536, 0, 537, 0, 535, 538, 520, 535,
1307 538, 520, 543, 539, 539, 539, 539, 538, 539, 544,
1308 538, 0, 543, 539, 0, 543, 545, 546, 547, 544,
1309 0, 545, 544, 548, 539, 544, 545, 546, 547, 545,
1310 546, 547, 549, 548, 557, 0, 548, 552, 552, 552,
1311 552, 552, 549, 558, 557, 549, 0, 557, 552, 553,
1312 553, 553, 553, 558, 0, 0, 558, 560, 560, 560,
1313 560, 561, 561, 561, 561, 562, 562, 562, 562, 0,
1314 552, 564, 564, 564, 564, 567, 567, 567, 567, 0,
1315 568, 568, 568, 568, 568, 567, 0, 0, 553, 0,
1316 553, 568, 569, 569, 569, 569, 569, 570, 570, 570,
1318 570, 553, 0, 569, 0, 553, 0, 567, 571, 571,
1319 571, 571, 571, 568, 572, 572, 572, 572, 0, 573,
1320 573, 573, 573, 0, 0, 569, 574, 574, 574, 574,
1321 575, 575, 575, 575, 576, 576, 576, 576, 577, 577,
1322 577, 577, 578, 578, 578, 578, 582, 582, 582, 582,
1323 0, 0, 0, 572, 0, 572, 0, 0, 573, 0,
1324 573, 583, 583, 583, 583, 574, 572, 574, 0, 0,
1325 572, 573, 0, 0, 0, 573, 0, 0, 574, 575,
1326 0, 0, 574, 576, 0, 578, 585, 585, 585, 585,
1327 586, 586, 586, 586, 577, 587, 587, 587, 587, 588,
1329 588, 588, 588, 596, 596, 596, 596, 0, 0, 588,
1330 590, 590, 590, 590, 591, 591, 591, 591, 592, 592,
1331 592, 592, 597, 597, 597, 597, 598, 598, 598, 598,
1332 0, 588, 589, 589, 589, 589, 589, 589, 589, 589,
1333 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
1334 589, 0, 0, 0, 589, 589, 589, 589, 591, 0,
1335 0, 590, 592, 0, 589, 0, 589, 589, 599, 599,
1336 599, 599, 601, 601, 601, 601, 0, 0, 602, 602,
1337 602, 602, 607, 607, 607, 607, 608, 608, 608, 608,
1338 0, 0, 589, 589, 589, 589, 589, 589, 600, 600,
1340 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,
1341 600, 600, 600, 600, 600, 600, 600, 0, 0, 0,
1342 600, 600, 600, 600, 602, 601, 609, 609, 609, 609,
1343 600, 0, 600, 600, 610, 610, 610, 610, 611, 611,
1344 611, 611, 612, 612, 612, 612, 615, 615, 615, 615,
1345 618, 618, 618, 618, 619, 619, 619, 619, 600, 600,
1346 600, 600, 600, 600, 620, 620, 620, 620, 621, 621,
1347 621, 621, 622, 622, 622, 622, 611, 623, 623, 623,
1348 623, 0, 612, 624, 624, 624, 624, 0, 0, 615,
1349 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
1351 616, 616, 616, 616, 616, 616, 616, 616, 616, 0,
1352 0, 0, 616, 616, 616, 616, 625, 625, 625, 625,
1353 0, 0, 616, 0, 616, 616, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 616, 616, 616, 616, 616, 616, 617, 617, 617, 617,
1357 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
1358 617, 617, 617, 617, 617, 0, 0, 0, 617, 617,
1359 617, 617, 0, 0, 0, 0, 0, 0, 617, 0,
1360 617, 617, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 617, 617, 617, 617,
1364 617, 617, 627, 627, 627, 627, 627, 627, 627, 627,
1365 627, 627, 627, 627, 628, 628, 0, 628, 628, 628,
1366 628, 628, 628, 628, 628, 628, 629, 0, 629, 629,
1367 629, 630, 630, 0, 630, 630, 630, 630, 630, 630,
1368 630, 630, 630, 631, 631, 631, 631, 631, 631, 631,
1369 0, 0, 0, 631, 631, 632, 632, 0, 0, 632,
1370 0, 632, 632, 632, 632, 632, 633, 633, 0, 633,
1371 633, 633, 633, 633, 633, 633, 633, 633, 634, 634,
1373 634, 634, 634, 634, 634, 0, 0, 0, 634, 634,
1374 635, 635, 635, 635, 635, 635, 0, 635, 635, 635,
1375 635, 635, 636, 636, 0, 636, 636, 636, 636, 636,
1376 636, 636, 636, 636, 637, 637, 0, 637, 637, 637,
1377 637, 637, 637, 637, 637, 637, 638, 0, 638, 638,
1378 638, 638, 638, 639, 0, 639, 639, 639, 639, 639,
1379 640, 640, 640, 640, 640, 640, 640, 0, 0, 0,
1380 640, 641, 641, 641, 641, 641, 641, 641, 641, 641,
1381 641, 641, 641, 642, 642, 642, 642, 642, 642, 642,
1382 642, 642, 642, 642, 642, 643, 643, 0, 643, 0,
1384 0, 643, 643, 644, 644, 644, 644, 644, 644, 644,
1385 0, 0, 0, 644, 644, 645, 645, 645, 645, 645,
1386 645, 645, 0, 0, 0, 645, 646, 646, 646, 646,
1387 646, 646, 646, 646, 646, 646, 646, 646, 647, 647,
1388 0, 647, 0, 0, 647, 647, 648, 648, 648, 648,
1389 648, 648, 648, 648, 648, 648, 648, 648, 649, 649,
1390 649, 649, 649, 649, 649, 0, 0, 0, 649, 650,
1391 650, 0, 650, 0, 0, 650, 650, 651, 0, 0,
1392 651, 651, 652, 652, 652, 652, 652, 652, 652, 652,
1393 652, 652, 652, 652, 653, 653, 653, 653, 653, 653,
1395 653, 653, 653, 653, 653, 653, 654, 654, 654, 654,
1396 654, 0, 654, 655, 655, 655, 655, 655, 655, 655,
1397 655, 655, 655, 655, 655, 656, 656, 656, 656, 656,
1398 656, 656, 656, 656, 656, 656, 656, 657, 657, 657,
1399 657, 657, 657, 657, 657, 657, 657, 657, 657, 658,
1400 658, 658, 658, 658, 0, 658, 659, 659, 659, 659,
1401 659, 0, 659, 660, 660, 660, 660, 660, 0, 660,
1402 661, 661, 661, 661, 661, 661, 661, 661, 661, 661,
1403 661, 661, 662, 662, 662, 662, 662, 662, 662, 662,
1404 662, 662, 662, 662, 663, 663, 663, 663, 663, 663,
1406 663, 663, 663, 663, 663, 664, 664, 0, 664, 664,
1407 664, 664, 664, 664, 664, 664, 664, 665, 665, 665,
1408 665, 665, 665, 665, 665, 665, 665, 665, 665, 666,
1409 666, 666, 666, 666, 666, 666, 666, 666, 666, 666,
1410 666, 667, 667, 0, 667, 667, 667, 667, 667, 667,
1411 667, 667, 667, 626, 626, 626, 626, 626, 626, 626,
1412 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1413 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1414 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1415 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1417 626, 626, 626, 626, 626, 626, 626, 626, 626, 626,
1418 626, 626, 626, 626, 626, 626, 626, 626, 626, 626
1421 static yy_state_type yy_last_accepting_state;
1422 static char *yy_last_accepting_cpos;
1424 extern int as3__flex_debug;
1425 int as3__flex_debug = 0;
1427 /* The intent behind this definition is that it'll catch
1428 * any uses of REJECT which flex missed.
1430 #define REJECT reject_used_but_not_detected
1431 #define yymore() yymore_used_but_not_detected
1432 #define YY_MORE_ADJ 0
1433 #define YY_RESTORE_YY_MORE_OFFSET
1435 #line 1 "tokenizer.lex"
1438 Routines for compiling Flash2 AVM2 ABC Actionscript
1440 Extension module for the rfxswf library.
1441 Part of the swftools package.
1443 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1445 This program is free software; you can redistribute it and/or modify
1446 it under the terms of the GNU General Public License as published by
1447 the Free Software Foundation; either version 2 of the License, or
1448 (at your option) any later version.
1450 This program is distributed in the hope that it will be useful,
1451 but WITHOUT ANY WARRANTY; without even the implied warranty of
1452 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1453 GNU General Public License for more details.
1455 You should have received a copy of the GNU General Public License
1456 along with this program; if not, write to the Free Software
1457 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1458 #line 24 "tokenizer.lex"
1465 #include "../utf8.h"
1467 #include "tokenizer.h"
1470 unsigned int as3_tokencount = 0;
1472 static void dbg(const char*format, ...)
1479 va_start(arglist, format);
1480 vsnprintf(buf, sizeof(buf)-1, format, arglist);
1483 while(l && buf[l-1]=='\n') {
1487 printf("(tokenizer) ");
1488 printf("%s\n", buf);
1492 #ifndef YY_CURRENT_BUFFER
1493 #define YY_CURRENT_BUFFER yy_current_buffer
1496 static void*as3_buffer=0;
1497 static int as3_buffer_pos=0;
1498 static int as3_buffer_len=0;
1499 void as3_file_input(FILE*fi)
1504 void as3_buffer_input(void*buffer, int len)
1507 syntaxerror("trying to parse zero bytearray");
1508 as3_buffer = buffer;
1509 as3_buffer_len = len;
1515 #define BEGIN(x) {(yy_start) = 1 + 2 *x;dbg("entering state %d", x);}
1517 #define YY_INPUT(buf,result,max_size) { \
1520 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1521 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1522 errno=0; clearerr(as3_in); \
1525 int to_read = max_size; \
1526 if(to_read + as3_buffer_pos > as3_buffer_len) \
1527 to_read = as3_buffer_len - as3_buffer_pos; \
1528 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1529 as3_buffer_pos += to_read; \
1534 void handleInclude(char*text, int len, char quotes)
1538 char*p1 = strchr(text, '"');
1539 char*p2 = strrchr(text, '"');
1540 if(!p1 || !p2 || p1==p2) {
1541 syntaxerror("Invalid include in line %d\n", current_line);
1544 filename = strdup(p1+1);
1548 while(!strchr(" \n\r\t", text[i1])) i1++;
1550 while(strchr(" \n\r\t", text[i1])) i1++;
1551 while(strchr(" \n\r\t", text[i2-1])) i2--;
1552 if(i2!=len) text[i2]=0;
1553 filename = strdup(&text[i1]);
1556 char*fullfilename = find_file(filename, 1);
1557 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1558 as3_in = fopen(fullfilename, "rb");
1560 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1563 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1564 //BEGIN(DEFAULT); keep context
1567 static int do_unescape(const char*s, const char*end, char*n)
1573 if(o) o[len] = *s;len++;
1577 s++; //skip past '\'
1578 if(s==end) syntaxerror("invalid \\ at end of string");
1580 /* handle the various line endings (mac, dos, unix) */
1593 case '\\': if(o) o[len] = '\\';s++;len++; break;
1594 case '"': if(o) o[len] = '"';s++;len++; break;
1595 case '\'': if(o) o[len] = '\'';s++;len++; break;
1596 case 'b': if(o) o[len] = '\b';s++;len++; break;
1597 case 'f': if(o) o[len] = '\f';s++;len++; break;
1598 case 'n': if(o) o[len] = '\n';s++;len++; break;
1599 case 'r': if(o) o[len] = '\r';s++;len++; break;
1600 case 't': if(o) o[len] = '\t';s++;len++; break;
1601 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1604 while(strchr("01234567", *s) && nr<3 && s<end) {
1611 syntaxerror("octal number out of range (0-255): %d", num);
1612 if(o) o[len] = num;len++;
1615 case 'x': case 'u': {
1624 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1627 if(s==end) syntaxerror("invalid \\u{ at end of string");
1632 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1634 if(*s>='0' && *s<='9') num |= *s - '0';
1635 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1636 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1641 if(*s=='}' && s<end) {
1644 syntaxerror("missing terminating '}'");
1648 char*utf8 = getUTF8(num);
1650 if(o) o[len] = *utf8;utf8++;len++;
1654 syntaxerror("byte out of range (0-255): %d", num);
1655 if(o) o[len] = num;len++;
1674 static string_t string_unescape(const char*in, int l)
1677 const char*end = &in[l];
1679 int len = do_unescape(s, end, 0);
1680 char*n = (char*)malloc(len+1);
1681 do_unescape(s, end, n);
1682 string_t out = string_new(n, len);
1686 static void handleCData(char*s, int len)
1688 a3_lval.str.str = s+9; // <![CDATA[
1689 a3_lval.str.len = len-9-3;// ]]>
1690 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1693 static void handleRaw(char*s, int len)
1695 a3_lval.str.len = len;
1696 a3_lval.str.str = strdup_n(s, a3_lval.str.len);
1699 static void handleString(char*s, int len)
1702 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1705 else if(s[0]=='\'') {
1706 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1709 else syntaxerror("String incorrectly terminated");
1711 a3_lval.str = string_unescape(s, len);
1715 char start_of_expression;
1717 static inline int m(int type)
1719 a3_lval.token = type;
1723 static char numberbuf[64];
1726 if(as3_leng>sizeof(numberbuf)-1)
1727 syntaxerror("decimal number overflow");
1729 memcpy(s, as3_text, as3_leng);
1734 static inline int setint(int v)
1736 a3_lval.number_int = v;
1739 static inline int setfloat(double v)
1741 a3_lval.number_float = v;
1745 static inline int handlefloat()
1748 a3_lval.number_float = atof(s);
1752 static inline int handleint()
1755 char l = (as3_text[0]=='-');
1757 //char*max = l?"1073741824":"2147483647";
1758 char*max = l?"2147483648":"2147483647";
1761 as3_softwarning("integer overflow: %s (converted to Number)", s);
1762 return handlefloat();
1764 if(as3_leng-l==10) {
1766 for(t=0;t<as3_leng-l;t++) {
1767 if(as3_text[l+t]>max[t]) {
1768 as3_softwarning("integer overflow: %s (converted to Number)", s);
1769 return handlefloat();
1771 else if(as3_text[l+t]<max[t])
1775 if(as3_text[0]=='-') {
1781 for(t=0;t<as3_leng;t++) {
1789 static inline int handlehexfloat()
1791 char l = (as3_text[0]=='-')+2;
1796 for(t=l;t<as3_leng;t++) {
1797 char c = as3_text[t];
1807 if(c>='0' && c<='9')
1809 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1810 d+=((c&0x0f)+9)*base;
1814 static inline int handlehex()
1816 char l = (as3_text[0]=='-')+2;
1821 syntaxerror("integer overflow %s", s);
1826 for(t=l;t<len;t++) {
1828 char c = as3_text[t];
1829 if(c>='0' && c<='9')
1831 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1834 if(l && v>=0x80000000) {
1836 as3_softwarning("integer overflow: %s (converted to Number)", s);
1839 if(!l && v>0x7fffffff) {
1841 as3_softwarning("integer overflow: %s (converted to Number)", s);
1846 return setint(-(int)v);
1852 void handleLabel(char*text, int len)
1855 for(t=len-1;t>=0;--t) {
1860 char*s = malloc(t+1);
1861 memcpy(s, as3_text, t);
1866 static int handleregexp()
1868 char*s = malloc(as3_leng);
1870 memcpy(s, as3_text+1, len);
1873 for(t=len;t>=0;--t) {
1879 a3_lval.regexp.pattern = s;
1881 a3_lval.regexp.options = 0;
1883 a3_lval.regexp.options = s+t+1;
1888 void initialize_scanner();
1889 #define YY_USER_INIT initialize_scanner();
1891 /* count the number of lines+columns consumed by this token */
1892 static inline void l() {
1894 for(t=0;t<as3_leng;t++) {
1895 if(as3_text[t]=='\n') {
1903 /* count the number of columns consumed by this token */
1904 static inline void c() {
1905 current_column+=as3_leng;
1908 trie_t*active_namespaces = 0;
1909 /*void tokenizer_register_namespace(const char*id)
1911 trie_put(namespaces, id, 0);
1913 void tokenizer_unregister_namespace(const char*id)
1915 trie_remove(namespaces, id);
1917 static inline char tokenizer_is_namespace(const char*id)
1919 return trie_contains(active_namespaces, id);
1922 static inline int handleIdentifier()
1924 char*s = malloc(as3_leng+1);
1925 memcpy(s, as3_text, as3_leng);
1928 if(tokenizer_is_namespace(s))
1931 return T_IDENTIFIER;
1933 static int tokenerror();
1936 //Boolean {c();return m(KW_BOOLEAN);}
1937 //int {c();return m(KW_INT);}
1938 //uint {c();return m(KW_UINT);}
1939 //Number {c();return m(KW_NUMBER);}
1940 //XMLCOMMENT <!--([^->]|(-/[^-])|(--/[^>]))*-->
1948 #line 1949 "tokenizer.yy.c"
1957 #ifndef YY_NO_UNISTD_H
1958 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1959 * down here because we want the user's section 1 to have been scanned first.
1960 * The user has a chance to override it with an option.
1965 #ifndef YY_EXTRA_TYPE
1966 #define YY_EXTRA_TYPE void *
1969 static int yy_init_globals (void );
1971 /* Accessor methods to globals.
1972 These are made visible to non-reentrant scanners for convenience. */
1974 int as3_lex_destroy (void );
1976 int as3_get_debug (void );
1978 void as3_set_debug (int debug_flag );
1980 YY_EXTRA_TYPE as3_get_extra (void );
1982 void as3_set_extra (YY_EXTRA_TYPE user_defined );
1984 FILE *as3_get_in (void );
1986 void as3_set_in (FILE * in_str );
1988 FILE *as3_get_out (void );
1990 void as3_set_out (FILE * out_str );
1992 int as3_get_leng (void );
1994 char *as3_get_text (void );
1996 int as3_get_lineno (void );
1998 void as3_set_lineno (int line_number );
2000 /* Macros after this point can all be overridden by user definitions in
2004 #ifndef YY_SKIP_YYWRAP
2006 extern "C" int as3_wrap (void );
2008 extern int as3_wrap (void );
2012 static void yyunput (int c,char *buf_ptr );
2015 static void yy_flex_strncpy (char *,yyconst char *,int );
2018 #ifdef YY_NEED_STRLEN
2019 static int yy_flex_strlen (yyconst char * );
2025 static int yyinput (void );
2027 static int input (void );
2032 /* Amount of stuff to slurp up with each read. */
2033 #ifndef YY_READ_BUF_SIZE
2034 #define YY_READ_BUF_SIZE 8192
2037 /* Copy whatever the last rule matched to the standard output. */
2039 /* This used to be an fputs(), but since the string might contain NUL's,
2040 * we now use fwrite().
2042 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
2045 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2046 * is returned in "result".
2049 #define YY_INPUT(buf,result,max_size) \
2050 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2054 for ( n = 0; n < max_size && \
2055 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
2056 buf[n] = (char) c; \
2058 buf[n++] = (char) c; \
2059 if ( c == EOF && ferror( as3_in ) ) \
2060 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2066 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
2068 if( errno != EINTR) \
2070 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2081 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2082 * we don't want an extra ';' after the "return" because that will cause
2083 * some compilers to complain about unreachable statements.
2086 #define yyterminate() return YY_NULL
2089 /* Number of entries by which start-condition stack grows. */
2090 #ifndef YY_START_STACK_INCR
2091 #define YY_START_STACK_INCR 25
2094 /* Report a fatal error. */
2095 #ifndef YY_FATAL_ERROR
2096 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2099 /* end tables serialization structures and prototypes */
2101 /* Default declaration of generated scanner - a define so the user can
2102 * easily add parameters.
2105 #define YY_DECL_IS_OURS 1
2107 extern int as3_lex (void);
2109 #define YY_DECL int as3_lex (void)
2110 #endif /* !YY_DECL */
2112 /* Code executed at the beginning of each rule, after as3_text and as3_leng
2115 #ifndef YY_USER_ACTION
2116 #define YY_USER_ACTION
2119 /* Code executed at the end of each rule. */
2121 #define YY_BREAK break;
2124 #define YY_RULE_SETUP \
2125 if ( as3_leng > 0 ) \
2126 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2127 (as3_text[as3_leng - 1] == '\n'); \
2130 /** The main scanner function which does all the work.
2134 register yy_state_type yy_current_state;
2135 register char *yy_cp, *yy_bp;
2136 register int yy_act;
2138 #line 538 "tokenizer.lex"
2142 #line 2143 "tokenizer.yy.c"
2153 (yy_start) = 1; /* first start state */
2161 if ( ! YY_CURRENT_BUFFER ) {
2162 as3_ensure_buffer_stack ();
2163 YY_CURRENT_BUFFER_LVALUE =
2164 as3__create_buffer(as3_in,YY_BUF_SIZE );
2167 as3__load_buffer_state( );
2170 while ( 1 ) /* loops until end-of-file is reached */
2172 yy_cp = (yy_c_buf_p);
2174 /* Support of as3_text. */
2175 *yy_cp = (yy_hold_char);
2177 /* yy_bp points to the position in yy_ch_buf of the start of
2182 yy_current_state = (yy_start);
2183 yy_current_state += YY_AT_BOL();
2187 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2188 if ( yy_accept[yy_current_state] )
2190 (yy_last_accepting_state) = yy_current_state;
2191 (yy_last_accepting_cpos) = yy_cp;
2193 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2195 yy_current_state = (int) yy_def[yy_current_state];
2196 if ( yy_current_state >= 627 )
2197 yy_c = yy_meta[(unsigned int) yy_c];
2199 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2202 while ( yy_current_state != 626 );
2203 yy_cp = (yy_last_accepting_cpos);
2204 yy_current_state = (yy_last_accepting_state);
2207 yy_act = yy_accept[yy_current_state];
2209 YY_DO_BEFORE_ACTION;
2211 do_action: /* This label is used only to access EOF actions. */
2214 { /* beginning of action switch */
2215 case 0: /* must back up */
2216 /* undo the effects of YY_DO_BEFORE_ACTION */
2217 *yy_cp = (yy_hold_char);
2218 yy_cp = (yy_last_accepting_cpos);
2219 yy_current_state = (yy_last_accepting_state);
2220 goto yy_find_action;
2223 /* rule 1 can match eol */
2225 #line 541 "tokenizer.lex"
2226 {l(); /* single line comment */}
2229 /* rule 2 can match eol */
2231 #line 542 "tokenizer.lex"
2232 {l(); /* multi line comment */}
2236 #line 543 "tokenizer.lex"
2237 {syntaxerror("syntax error: unterminated comment", as3_text);}
2240 /* rule 4 can match eol */
2241 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2242 (yy_c_buf_p) = yy_cp -= 1;
2243 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2245 #line 545 "tokenizer.lex"
2246 {l();handleInclude(as3_text, as3_leng, 1);}
2249 /* rule 5 can match eol */
2250 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2251 (yy_c_buf_p) = yy_cp -= 1;
2252 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2254 #line 546 "tokenizer.lex"
2255 {l();handleInclude(as3_text, as3_leng, 0);}
2258 /* rule 6 can match eol */
2260 #line 547 "tokenizer.lex"
2261 {l(); BEGIN(DEFAULT);handleString(as3_text, as3_leng);return T_STRING;}
2264 /* rule 7 can match eol */
2266 #line 548 "tokenizer.lex"
2267 {l(); BEGIN(DEFAULT);handleCData(as3_text, as3_leng);return T_STRING;}
2271 /* rule 8 can match eol */
2273 #line 551 "tokenizer.lex"
2274 {l(); BEGIN(DEFAULT);handleRaw(as3_text, as3_leng);return T_STRING;}
2279 /* rule 9 can match eol */
2281 #line 555 "tokenizer.lex"
2282 {l(); handleString(as3_text, as3_leng);return T_STRING;}
2286 #line 556 "tokenizer.lex"
2287 {c(); BEGIN(REGEXPOK);return m('{');}
2291 #line 557 "tokenizer.lex"
2292 {c(); return m('<');}
2296 #line 558 "tokenizer.lex"
2297 {c(); return m('/');}
2301 #line 559 "tokenizer.lex"
2302 {c(); return m('>');}
2306 #line 560 "tokenizer.lex"
2307 {c(); return m('=');}
2311 #line 561 "tokenizer.lex"
2312 {c(); handleRaw(as3_text, as3_leng);return T_IDENTIFIER;}
2315 /* rule 16 can match eol */
2317 #line 562 "tokenizer.lex"
2320 case YY_STATE_EOF(XML):
2321 #line 563 "tokenizer.lex"
2322 {syntaxerror("unexpected end of file");}
2327 /* rule 17 can match eol */
2329 #line 567 "tokenizer.lex"
2330 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2334 #line 568 "tokenizer.lex"
2335 {c(); BEGIN(REGEXPOK);return m('{');}
2339 #line 569 "tokenizer.lex"
2340 {c(); BEGIN(XML);return m('<');}
2344 #line 570 "tokenizer.lex"
2345 {c(); return m('>');}
2348 /* rule 21 can match eol */
2350 #line 571 "tokenizer.lex"
2351 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2354 /* rule 22 can match eol */
2356 #line 572 "tokenizer.lex"
2357 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2359 case YY_STATE_EOF(XMLTEXT):
2360 #line 573 "tokenizer.lex"
2361 {syntaxerror("unexpected end of file");}
2367 #line 577 "tokenizer.lex"
2368 {c(); BEGIN(DEFAULT);return handleregexp();}
2371 /* rule 24 can match eol */
2372 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2373 (yy_c_buf_p) = yy_cp -= 1;
2374 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2376 #line 578 "tokenizer.lex"
2377 {c(); BEGIN(DEFAULT);return handlehex();}
2380 /* rule 25 can match eol */
2381 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2382 (yy_c_buf_p) = yy_cp -= 1;
2383 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2385 #line 579 "tokenizer.lex"
2386 {c(); BEGIN(DEFAULT);return handlehexfloat();}
2389 /* rule 26 can match eol */
2390 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2391 (yy_c_buf_p) = yy_cp -= 1;
2392 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2394 #line 580 "tokenizer.lex"
2395 {c(); BEGIN(DEFAULT);return handleint();}
2398 /* rule 27 can match eol */
2399 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2400 (yy_c_buf_p) = yy_cp -= 1;
2401 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2403 #line 581 "tokenizer.lex"
2404 {c(); BEGIN(DEFAULT);return handlefloat();}
2409 #line 584 "tokenizer.lex"
2410 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2414 #line 585 "tokenizer.lex"
2415 {c(); BEGIN(DEFAULT); return m('{');}
2419 #line 587 "tokenizer.lex"
2423 /* rule 31 can match eol */
2425 #line 588 "tokenizer.lex"
2429 /* rule 32 can match eol */
2430 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2431 (yy_c_buf_p) = yy_cp -= 1;
2432 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2434 #line 590 "tokenizer.lex"
2435 {c(); BEGIN(DEFAULT);return handlehex();}
2438 /* rule 33 can match eol */
2439 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2440 (yy_c_buf_p) = yy_cp -= 1;
2441 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2443 #line 591 "tokenizer.lex"
2444 {c(); BEGIN(DEFAULT);return handlehexfloat();}
2447 /* rule 34 can match eol */
2448 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2449 (yy_c_buf_p) = yy_cp -= 1;
2450 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2452 #line 592 "tokenizer.lex"
2453 {c(); BEGIN(DEFAULT);return handleint();}
2456 /* rule 35 can match eol */
2457 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2458 (yy_c_buf_p) = yy_cp -= 1;
2459 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2461 #line 593 "tokenizer.lex"
2462 {c(); BEGIN(DEFAULT);return handlefloat();}
2466 #line 594 "tokenizer.lex"
2467 {c(); BEGIN(DEFAULT);return m(KW_NAN);}
2471 #line 596 "tokenizer.lex"
2472 {/* for debugging: generates a tokenizer-level error */
2473 syntaxerror("3rr0r");}
2476 /* rule 38 can match eol */
2477 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2478 (yy_c_buf_p) = yy_cp -= 1;
2479 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2481 #line 599 "tokenizer.lex"
2482 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2485 /* rule 39 can match eol */
2486 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2487 (yy_c_buf_p) = yy_cp -= 1;
2488 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2490 #line 600 "tokenizer.lex"
2491 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-2);return T_DO;}
2494 /* rule 40 can match eol */
2495 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2496 (yy_c_buf_p) = yy_cp -= 1;
2497 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2499 #line 601 "tokenizer.lex"
2500 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2503 /* rule 41 can match eol */
2504 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2505 (yy_c_buf_p) = yy_cp -= 1;
2506 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2508 #line 602 "tokenizer.lex"
2509 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2513 #line 603 "tokenizer.lex"
2514 {c();BEGIN(DEFAULT);a3_lval.id="";return T_FOR;}
2518 #line 604 "tokenizer.lex"
2519 {c();BEGIN(DEFAULT);a3_lval.id="";return T_DO;}
2523 #line 605 "tokenizer.lex"
2524 {c();BEGIN(DEFAULT);a3_lval.id="";return T_WHILE;}
2528 #line 606 "tokenizer.lex"
2529 {c();BEGIN(DEFAULT);a3_lval.id="";return T_SWITCH;}
2533 #line 608 "tokenizer.lex"
2534 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2538 #line 609 "tokenizer.lex"
2539 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2543 #line 610 "tokenizer.lex"
2544 {c();BEGIN(REGEXPOK);return m(T_NE);}
2548 #line 611 "tokenizer.lex"
2549 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2553 #line 612 "tokenizer.lex"
2554 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2558 #line 613 "tokenizer.lex"
2559 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2563 #line 614 "tokenizer.lex"
2564 {c();BEGIN(REGEXPOK);return m(T_GE);}
2568 #line 615 "tokenizer.lex"
2569 {c();BEGIN(REGEXPOK);return m(T_LE);}
2573 #line 616 "tokenizer.lex"
2574 {c();BEGIN(DEFAULT);return m(T_MINUSMINUS);}
2578 #line 617 "tokenizer.lex"
2579 {c();BEGIN(DEFAULT);return m(T_PLUSPLUS);}
2583 #line 618 "tokenizer.lex"
2584 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2588 #line 619 "tokenizer.lex"
2589 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2593 #line 620 "tokenizer.lex"
2594 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2598 #line 621 "tokenizer.lex"
2599 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2603 #line 622 "tokenizer.lex"
2604 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2608 #line 623 "tokenizer.lex"
2609 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2613 #line 624 "tokenizer.lex"
2614 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2618 #line 625 "tokenizer.lex"
2619 {c();BEGIN(REGEXPOK);return m(T_ANDBY);}
2623 #line 626 "tokenizer.lex"
2624 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2628 #line 627 "tokenizer.lex"
2629 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2633 #line 628 "tokenizer.lex"
2634 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2638 #line 629 "tokenizer.lex"
2639 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2643 #line 630 "tokenizer.lex"
2644 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2648 #line 631 "tokenizer.lex"
2649 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2653 #line 632 "tokenizer.lex"
2654 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2658 #line 633 "tokenizer.lex"
2659 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2663 #line 634 "tokenizer.lex"
2664 {c();BEGIN(REGEXPOK);return m('.');}
2668 #line 635 "tokenizer.lex"
2669 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2673 #line 636 "tokenizer.lex"
2674 {c();BEGIN(REGEXPOK);return m(':');}
2678 #line 637 "tokenizer.lex"
2679 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2683 #line 638 "tokenizer.lex"
2684 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2688 #line 639 "tokenizer.lex"
2689 {c();BEGIN(DEFAULT);return m(KW_INTERFACE);}
2693 #line 640 "tokenizer.lex"
2694 {c();BEGIN(DEFAULT);return m(KW_NAMESPACE);}
2698 #line 641 "tokenizer.lex"
2699 {c();BEGIN(DEFAULT);return m(KW_PROTECTED);}
2703 #line 642 "tokenizer.lex"
2704 {c();BEGIN(DEFAULT);return m(KW_UNDEFINED);}
2708 #line 643 "tokenizer.lex"
2709 {c();BEGIN(DEFAULT);return m(KW_ARGUMENTS);}
2713 #line 644 "tokenizer.lex"
2714 {c();BEGIN(DEFAULT);return m(KW_CONTINUE);}
2718 #line 645 "tokenizer.lex"
2719 {c();BEGIN(DEFAULT);return m(KW_OVERRIDE);}
2723 #line 646 "tokenizer.lex"
2724 {c();BEGIN(DEFAULT);return m(KW_INTERNAL);}
2728 #line 647 "tokenizer.lex"
2729 {c();BEGIN(DEFAULT);return m(KW_FUNCTION);}
2733 #line 648 "tokenizer.lex"
2734 {c();BEGIN(DEFAULT);return m(KW_FINALLY);}
2738 #line 649 "tokenizer.lex"
2739 {c();BEGIN(DEFAULT);return m(KW_DEFAULT);}
2743 #line 650 "tokenizer.lex"
2744 {c();BEGIN(DEFAULT);return m(KW_PACKAGE);}
2748 #line 651 "tokenizer.lex"
2749 {c();BEGIN(DEFAULT);return m(KW_PRIVATE);}
2753 #line 652 "tokenizer.lex"
2754 {c();BEGIN(DEFAULT);return m(KW_DYNAMIC);}
2758 #line 653 "tokenizer.lex"
2759 {c();BEGIN(DEFAULT);return m(KW_EXTENDS);}
2763 #line 654 "tokenizer.lex"
2764 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2768 #line 655 "tokenizer.lex"
2769 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2773 #line 656 "tokenizer.lex"
2774 {c();BEGIN(DEFAULT);return m(KW_PUBLIC);}
2778 #line 657 "tokenizer.lex"
2779 {c();BEGIN(DEFAULT);return m(KW_NATIVE);}
2783 #line 658 "tokenizer.lex"
2784 {c();BEGIN(DEFAULT);return m(KW_STATIC);}
2788 #line 659 "tokenizer.lex"
2789 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2793 #line 660 "tokenizer.lex"
2794 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2798 #line 661 "tokenizer.lex"
2799 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2803 #line 662 "tokenizer.lex"
2804 {c();BEGIN(DEFAULT);return m(KW_CLASS);}
2808 #line 663 "tokenizer.lex"
2809 {c();BEGIN(DEFAULT);return m(KW_CONST);}
2813 #line 664 "tokenizer.lex"
2814 {c();BEGIN(DEFAULT);return m(KW_CATCH);}
2818 #line 665 "tokenizer.lex"
2819 {c();BEGIN(DEFAULT);return m(KW_FINAL);}
2823 #line 666 "tokenizer.lex"
2824 {c();BEGIN(DEFAULT);return m(KW_FALSE);}
2828 #line 667 "tokenizer.lex"
2829 {c();BEGIN(DEFAULT);return m(KW_BREAK);}
2833 #line 668 "tokenizer.lex"
2834 {c();BEGIN(DEFAULT);return m(KW_SUPER);}
2838 #line 669 "tokenizer.lex"
2839 {c();BEGIN(DEFAULT);return m(KW_EACH);}
2843 #line 670 "tokenizer.lex"
2844 {c();BEGIN(DEFAULT);return m(KW_VOID);}
2848 #line 671 "tokenizer.lex"
2849 {c();BEGIN(DEFAULT);return m(KW_TRUE);}
2853 #line 672 "tokenizer.lex"
2854 {c();BEGIN(DEFAULT);return m(KW_NULL);}
2858 #line 673 "tokenizer.lex"
2859 {c();BEGIN(DEFAULT);return m(KW_ELSE);}
2863 #line 674 "tokenizer.lex"
2864 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
2868 #line 675 "tokenizer.lex"
2869 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
2873 #line 676 "tokenizer.lex"
2874 {c();BEGIN(REGEXPOK);return m(KW_USE);}
2878 #line 677 "tokenizer.lex"
2879 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
2883 #line 678 "tokenizer.lex"
2884 {c();BEGIN(DEFAULT);return m(KW_GET);}
2888 #line 679 "tokenizer.lex"
2889 {c();BEGIN(DEFAULT);return m(KW_SET);}
2893 #line 680 "tokenizer.lex"
2894 {c();BEGIN(DEFAULT);return m(KW_VAR);}
2898 #line 681 "tokenizer.lex"
2899 {c();BEGIN(DEFAULT);return m(KW_TRY);}
2903 #line 682 "tokenizer.lex"
2904 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
2908 #line 683 "tokenizer.lex"
2909 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
2913 #line 684 "tokenizer.lex"
2914 {c();BEGIN(DEFAULT);return m(KW_IF) ;}
2918 #line 685 "tokenizer.lex"
2919 {c();BEGIN(REGEXPOK);return m(KW_AS);}
2923 #line 686 "tokenizer.lex"
2924 {c();BEGIN(DEFAULT);return handleIdentifier();}
2928 #line 688 "tokenizer.lex"
2929 {c();BEGIN(DEFAULT);return m(as3_text[0]);}
2933 #line 689 "tokenizer.lex"
2934 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2938 #line 690 "tokenizer.lex"
2939 {c();BEGIN(DEFAULT);return m(as3_text[0]);}
2944 #line 693 "tokenizer.lex"
2948 case YY_STATE_EOF(INITIAL):
2949 case YY_STATE_EOF(REGEXPOK):
2950 case YY_STATE_EOF(BEGINNING):
2951 case YY_STATE_EOF(DEFAULT):
2952 #line 695 "tokenizer.lex"
2954 void*b = leave_file();
2957 as3__delete_buffer(YY_CURRENT_BUFFER);
2960 as3__delete_buffer(YY_CURRENT_BUFFER);
2961 as3__switch_to_buffer(b);
2967 #line 707 "tokenizer.lex"
2970 #line 2971 "tokenizer.yy.c"
2972 case YY_END_OF_BUFFER:
2974 /* Amount of text matched not including the EOB char. */
2975 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2977 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2978 *yy_cp = (yy_hold_char);
2979 YY_RESTORE_YY_MORE_OFFSET
2981 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2983 /* We're scanning a new file or input source. It's
2984 * possible that this happened because the user
2985 * just pointed as3_in at a new source and called
2986 * as3_lex(). If so, then we have to assure
2987 * consistency between YY_CURRENT_BUFFER and our
2988 * globals. Here is the right place to do so, because
2989 * this is the first action (other than possibly a
2990 * back-up) that will match for the new input source.
2992 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2993 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2994 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2997 /* Note that here we test for yy_c_buf_p "<=" to the position
2998 * of the first EOB in the buffer, since yy_c_buf_p will
2999 * already have been incremented past the NUL character
3000 * (since all states make transitions on EOB to the
3001 * end-of-buffer state). Contrast this with the test
3004 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3005 { /* This was really a NUL. */
3006 yy_state_type yy_next_state;
3008 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3010 yy_current_state = yy_get_previous_state( );
3012 /* Okay, we're now positioned to make the NUL
3013 * transition. We couldn't have
3014 * yy_get_previous_state() go ahead and do it
3015 * for us because it doesn't know how to deal
3016 * with the possibility of jamming (and we don't
3017 * want to build jamming into it because then it
3018 * will run more slowly).
3021 yy_next_state = yy_try_NUL_trans( yy_current_state );
3023 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3025 if ( yy_next_state )
3027 /* Consume the NUL. */
3028 yy_cp = ++(yy_c_buf_p);
3029 yy_current_state = yy_next_state;
3035 yy_cp = (yy_last_accepting_cpos);
3036 yy_current_state = (yy_last_accepting_state);
3037 goto yy_find_action;
3041 else switch ( yy_get_next_buffer( ) )
3043 case EOB_ACT_END_OF_FILE:
3045 (yy_did_buffer_switch_on_eof) = 0;
3049 /* Note: because we've taken care in
3050 * yy_get_next_buffer() to have set up
3051 * as3_text, we can now set up
3052 * yy_c_buf_p so that if some total
3053 * hoser (like flex itself) wants to
3054 * call the scanner after we return the
3055 * YY_NULL, it'll still work - another
3056 * YY_NULL will get returned.
3058 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3060 yy_act = YY_STATE_EOF(YY_START);
3066 if ( ! (yy_did_buffer_switch_on_eof) )
3072 case EOB_ACT_CONTINUE_SCAN:
3074 (yytext_ptr) + yy_amount_of_matched_text;
3076 yy_current_state = yy_get_previous_state( );
3078 yy_cp = (yy_c_buf_p);
3079 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3082 case EOB_ACT_LAST_MATCH:
3084 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3086 yy_current_state = yy_get_previous_state( );
3088 yy_cp = (yy_c_buf_p);
3089 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3090 goto yy_find_action;
3097 "fatal flex scanner internal error--no action found" );
3098 } /* end of action switch */
3099 } /* end of scanning one token */
3100 } /* end of as3_lex */
3102 /* yy_get_next_buffer - try to read in a new buffer
3104 * Returns a code representing an action:
3105 * EOB_ACT_LAST_MATCH -
3106 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3107 * EOB_ACT_END_OF_FILE - end of file
3109 static int yy_get_next_buffer (void)
3111 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3112 register char *source = (yytext_ptr);
3113 register int number_to_move, i;
3116 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3118 "fatal flex scanner internal error--end of buffer missed" );
3120 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3121 { /* Don't try to fill the buffer, so this is an EOF. */
3122 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3124 /* We matched a single character, the EOB, so
3125 * treat this as a final EOF.
3127 return EOB_ACT_END_OF_FILE;
3132 /* We matched some text prior to the EOB, first
3135 return EOB_ACT_LAST_MATCH;
3139 /* Try to read more data. */
3141 /* First move last chars to start of buffer. */
3142 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3144 for ( i = 0; i < number_to_move; ++i )
3145 *(dest++) = *(source++);
3147 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3148 /* don't do the read, it's not guaranteed to return an EOF,
3151 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3156 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3158 while ( num_to_read <= 0 )
3159 { /* Not enough room in the buffer - grow it. */
3161 /* just a shorter name for the current buffer */
3162 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3164 int yy_c_buf_p_offset =
3165 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3167 if ( b->yy_is_our_buffer )
3169 int new_size = b->yy_buf_size * 2;
3171 if ( new_size <= 0 )
3172 b->yy_buf_size += b->yy_buf_size / 8;
3174 b->yy_buf_size *= 2;
3176 b->yy_ch_buf = (char *)
3177 /* Include room in for 2 EOB chars. */
3178 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3181 /* Can't grow it, we don't own it. */
3184 if ( ! b->yy_ch_buf )
3186 "fatal error - scanner input buffer overflow" );
3188 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3190 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3195 if ( num_to_read > YY_READ_BUF_SIZE )
3196 num_to_read = YY_READ_BUF_SIZE;
3198 /* Read in more data. */
3199 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3200 (yy_n_chars), (size_t) num_to_read );
3202 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3205 if ( (yy_n_chars) == 0 )
3207 if ( number_to_move == YY_MORE_ADJ )
3209 ret_val = EOB_ACT_END_OF_FILE;
3210 as3_restart(as3_in );
3215 ret_val = EOB_ACT_LAST_MATCH;
3216 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3217 YY_BUFFER_EOF_PENDING;
3222 ret_val = EOB_ACT_CONTINUE_SCAN;
3224 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3225 /* Extend the array by 50%, plus the number we really need. */
3226 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3227 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
3228 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3229 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3232 (yy_n_chars) += number_to_move;
3233 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3234 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3236 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3241 /* yy_get_previous_state - get the state just before the EOB char was reached */
3243 static yy_state_type yy_get_previous_state (void)
3245 register yy_state_type yy_current_state;
3246 register char *yy_cp;
3248 yy_current_state = (yy_start);
3249 yy_current_state += YY_AT_BOL();
3251 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3253 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3254 if ( yy_accept[yy_current_state] )
3256 (yy_last_accepting_state) = yy_current_state;
3257 (yy_last_accepting_cpos) = yy_cp;
3259 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3261 yy_current_state = (int) yy_def[yy_current_state];
3262 if ( yy_current_state >= 627 )
3263 yy_c = yy_meta[(unsigned int) yy_c];
3265 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3268 return yy_current_state;
3271 /* yy_try_NUL_trans - try to make a transition on the NUL character
3274 * next_state = yy_try_NUL_trans( current_state );
3276 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3278 register int yy_is_jam;
3279 register char *yy_cp = (yy_c_buf_p);
3281 register YY_CHAR yy_c = 1;
3282 if ( yy_accept[yy_current_state] )
3284 (yy_last_accepting_state) = yy_current_state;
3285 (yy_last_accepting_cpos) = yy_cp;
3287 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3289 yy_current_state = (int) yy_def[yy_current_state];
3290 if ( yy_current_state >= 627 )
3291 yy_c = yy_meta[(unsigned int) yy_c];
3293 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3294 yy_is_jam = (yy_current_state == 626);
3296 return yy_is_jam ? 0 : yy_current_state;
3299 static void yyunput (int c, register char * yy_bp )
3301 register char *yy_cp;
3303 yy_cp = (yy_c_buf_p);
3305 /* undo effects of setting up as3_text */
3306 *yy_cp = (yy_hold_char);
3308 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3309 { /* need to shift things up to make room */
3310 /* +2 for EOB chars. */
3311 register int number_to_move = (yy_n_chars) + 2;
3312 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3313 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3314 register char *source =
3315 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3317 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3318 *--dest = *--source;
3320 yy_cp += (int) (dest - source);
3321 yy_bp += (int) (dest - source);
3322 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3323 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3325 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3326 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3329 *--yy_cp = (char) c;
3331 (yytext_ptr) = yy_bp;
3332 (yy_hold_char) = *yy_cp;
3333 (yy_c_buf_p) = yy_cp;
3338 static int yyinput (void)
3340 static int input (void)
3346 *(yy_c_buf_p) = (yy_hold_char);
3348 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3350 /* yy_c_buf_p now points to the character we want to return.
3351 * If this occurs *before* the EOB characters, then it's a
3352 * valid NUL; if not, then we've hit the end of the buffer.
3354 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3355 /* This was really a NUL. */
3356 *(yy_c_buf_p) = '\0';
3359 { /* need more input */
3360 int offset = (yy_c_buf_p) - (yytext_ptr);
3363 switch ( yy_get_next_buffer( ) )
3365 case EOB_ACT_LAST_MATCH:
3366 /* This happens because yy_g_n_b()
3367 * sees that we've accumulated a
3368 * token and flags that we need to
3369 * try matching the token before
3370 * proceeding. But for input(),
3371 * there's no matching to consider.
3372 * So convert the EOB_ACT_LAST_MATCH
3373 * to EOB_ACT_END_OF_FILE.
3376 /* Reset buffer status. */
3377 as3_restart(as3_in );
3381 case EOB_ACT_END_OF_FILE:
3386 if ( ! (yy_did_buffer_switch_on_eof) )
3395 case EOB_ACT_CONTINUE_SCAN:
3396 (yy_c_buf_p) = (yytext_ptr) + offset;
3402 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3403 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3404 (yy_hold_char) = *++(yy_c_buf_p);
3406 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3410 #endif /* ifndef YY_NO_INPUT */
3412 /** Immediately switch to a different input stream.
3413 * @param input_file A readable stream.
3415 * @note This function does not reset the start condition to @c INITIAL .
3417 void as3_restart (FILE * input_file )
3420 if ( ! YY_CURRENT_BUFFER ){
3421 as3_ensure_buffer_stack ();
3422 YY_CURRENT_BUFFER_LVALUE =
3423 as3__create_buffer(as3_in,YY_BUF_SIZE );
3426 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3427 as3__load_buffer_state( );
3430 /** Switch to a different input buffer.
3431 * @param new_buffer The new input buffer.
3434 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3437 /* TODO. We should be able to replace this entire function body
3439 * as3_pop_buffer_state();
3440 * as3_push_buffer_state(new_buffer);
3442 as3_ensure_buffer_stack ();
3443 if ( YY_CURRENT_BUFFER == new_buffer )
3446 if ( YY_CURRENT_BUFFER )
3448 /* Flush out information for old buffer. */
3449 *(yy_c_buf_p) = (yy_hold_char);
3450 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3451 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3454 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3455 as3__load_buffer_state( );
3457 /* We don't actually know whether we did this switch during
3458 * EOF (as3_wrap()) processing, but the only time this flag
3459 * is looked at is after as3_wrap() is called, so it's safe
3460 * to go ahead and always set it.
3462 (yy_did_buffer_switch_on_eof) = 1;
3465 static void as3__load_buffer_state (void)
3467 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3468 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3469 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3470 (yy_hold_char) = *(yy_c_buf_p);
3473 /** Allocate and initialize an input buffer state.
3474 * @param file A readable stream.
3475 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3477 * @return the allocated buffer state.
3479 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3483 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3485 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3487 b->yy_buf_size = size;
3489 /* yy_ch_buf has to be 2 characters longer than the size given because
3490 * we need to put in 2 end-of-buffer characters.
3492 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3493 if ( ! b->yy_ch_buf )
3494 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3496 b->yy_is_our_buffer = 1;
3498 as3__init_buffer(b,file );
3503 /** Destroy the buffer.
3504 * @param b a buffer created with as3__create_buffer()
3507 void as3__delete_buffer (YY_BUFFER_STATE b )
3513 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3514 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3516 if ( b->yy_is_our_buffer )
3517 as3_free((void *) b->yy_ch_buf );
3519 as3_free((void *) b );
3522 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3526 #ifdef __THROW /* this is a gnuism */
3527 extern int isatty (int ) __THROW;
3529 extern int isatty (int );
3536 /* Initializes or reinitializes a buffer.
3537 * This function is sometimes called more than once on the same buffer,
3538 * such as during a as3_restart() or at EOF.
3540 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3545 as3__flush_buffer(b );
3547 b->yy_input_file = file;
3548 b->yy_fill_buffer = 1;
3550 /* If b is the current buffer, then as3__init_buffer was _probably_
3551 * called from as3_restart() or through yy_get_next_buffer.
3552 * In that case, we don't want to reset the lineno or column.
3554 if (b != YY_CURRENT_BUFFER){
3555 b->yy_bs_lineno = 1;
3556 b->yy_bs_column = 0;
3559 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3564 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3565 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3568 void as3__flush_buffer (YY_BUFFER_STATE b )
3575 /* We always need two end-of-buffer characters. The first causes
3576 * a transition to the end-of-buffer state. The second causes
3577 * a jam in that state.
3579 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3580 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3582 b->yy_buf_pos = &b->yy_ch_buf[0];
3585 b->yy_buffer_status = YY_BUFFER_NEW;
3587 if ( b == YY_CURRENT_BUFFER )
3588 as3__load_buffer_state( );
3591 /** Pushes the new state onto the stack. The new state becomes
3592 * the current state. This function will allocate the stack
3594 * @param new_buffer The new state.
3597 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3599 if (new_buffer == NULL)
3602 as3_ensure_buffer_stack();
3604 /* This block is copied from as3__switch_to_buffer. */
3605 if ( YY_CURRENT_BUFFER )
3607 /* Flush out information for old buffer. */
3608 *(yy_c_buf_p) = (yy_hold_char);
3609 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3610 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3613 /* Only push if top exists. Otherwise, replace top. */
3614 if (YY_CURRENT_BUFFER)
3615 (yy_buffer_stack_top)++;
3616 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3618 /* copied from as3__switch_to_buffer. */
3619 as3__load_buffer_state( );
3620 (yy_did_buffer_switch_on_eof) = 1;
3623 /** Removes and deletes the top of the stack, if present.
3624 * The next element becomes the new top.
3627 void as3_pop_buffer_state (void)
3629 if (!YY_CURRENT_BUFFER)
3632 as3__delete_buffer(YY_CURRENT_BUFFER );
3633 YY_CURRENT_BUFFER_LVALUE = NULL;
3634 if ((yy_buffer_stack_top) > 0)
3635 --(yy_buffer_stack_top);
3637 if (YY_CURRENT_BUFFER) {
3638 as3__load_buffer_state( );
3639 (yy_did_buffer_switch_on_eof) = 1;
3643 /* Allocates the stack if it does not exist.
3644 * Guarantees space for at least one push.
3646 static void as3_ensure_buffer_stack (void)
3650 if (!(yy_buffer_stack)) {
3652 /* First allocation is just for 2 elements, since we don't know if this
3653 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3654 * immediate realloc on the next call.
3657 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3658 (num_to_alloc * sizeof(struct yy_buffer_state*)
3660 if ( ! (yy_buffer_stack) )
3661 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3663 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3665 (yy_buffer_stack_max) = num_to_alloc;
3666 (yy_buffer_stack_top) = 0;
3670 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3672 /* Increase the buffer to prepare for a possible push. */
3673 int grow_size = 8 /* arbitrary grow size */;
3675 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3676 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3678 num_to_alloc * sizeof(struct yy_buffer_state*)
3680 if ( ! (yy_buffer_stack) )
3681 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3683 /* zero only the new slots.*/
3684 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3685 (yy_buffer_stack_max) = num_to_alloc;
3689 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3690 * @param base the character buffer
3691 * @param size the size in bytes of the character buffer
3693 * @return the newly allocated buffer state object.
3695 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3700 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3701 base[size-1] != YY_END_OF_BUFFER_CHAR )
3702 /* They forgot to leave room for the EOB's. */
3705 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3707 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3709 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3710 b->yy_buf_pos = b->yy_ch_buf = base;
3711 b->yy_is_our_buffer = 0;
3712 b->yy_input_file = 0;
3713 b->yy_n_chars = b->yy_buf_size;
3714 b->yy_is_interactive = 0;
3716 b->yy_fill_buffer = 0;
3717 b->yy_buffer_status = YY_BUFFER_NEW;
3719 as3__switch_to_buffer(b );
3724 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3725 * scan from a @e copy of @a str.
3726 * @param yystr a NUL-terminated string to scan
3728 * @return the newly allocated buffer state object.
3729 * @note If you want to scan bytes that may contain NUL values, then use
3730 * as3__scan_bytes() instead.
3732 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3735 return as3__scan_bytes(yystr,strlen(yystr) );
3738 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3739 * scan from a @e copy of @a bytes.
3740 * @param bytes the byte buffer to scan
3741 * @param len the number of bytes in the buffer pointed to by @a bytes.
3743 * @return the newly allocated buffer state object.
3745 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, int _yybytes_len )
3752 /* Get memory for full buffer, including space for trailing EOB's. */
3753 n = _yybytes_len + 2;
3754 buf = (char *) as3_alloc(n );
3756 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3758 for ( i = 0; i < _yybytes_len; ++i )
3759 buf[i] = yybytes[i];
3761 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3763 b = as3__scan_buffer(buf,n );
3765 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3767 /* It's okay to grow etc. this buffer, and we should throw it
3768 * away when we're done.
3770 b->yy_is_our_buffer = 1;
3775 #ifndef YY_EXIT_FAILURE
3776 #define YY_EXIT_FAILURE 2
3779 static void yy_fatal_error (yyconst char* msg )
3781 (void) fprintf( stderr, "%s\n", msg );
3782 exit( YY_EXIT_FAILURE );
3785 /* Redefine yyless() so it works in section 3 code. */
3791 /* Undo effects of setting up as3_text. */ \
3792 int yyless_macro_arg = (n); \
3793 YY_LESS_LINENO(yyless_macro_arg);\
3794 as3_text[as3_leng] = (yy_hold_char); \
3795 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3796 (yy_hold_char) = *(yy_c_buf_p); \
3797 *(yy_c_buf_p) = '\0'; \
3798 as3_leng = yyless_macro_arg; \
3802 /* Accessor methods (get/set functions) to struct members. */
3804 /** Get the current line number.
3807 int as3_get_lineno (void)
3813 /** Get the input stream.
3816 FILE *as3_get_in (void)
3821 /** Get the output stream.
3824 FILE *as3_get_out (void)
3829 /** Get the length of the current token.
3832 int as3_get_leng (void)
3837 /** Get the current token.
3841 char *as3_get_text (void)
3846 /** Set the current line number.
3847 * @param line_number
3850 void as3_set_lineno (int line_number )
3853 as3_lineno = line_number;
3856 /** Set the input stream. This does not discard the current
3858 * @param in_str A readable stream.
3860 * @see as3__switch_to_buffer
3862 void as3_set_in (FILE * in_str )
3867 void as3_set_out (FILE * out_str )
3872 int as3_get_debug (void)
3874 return as3__flex_debug;
3877 void as3_set_debug (int bdebug )
3879 as3__flex_debug = bdebug ;
3882 static int yy_init_globals (void)
3884 /* Initialization is the same as for the non-reentrant scanner.
3885 * This function is called from as3_lex_destroy(), so don't allocate here.
3888 (yy_buffer_stack) = 0;
3889 (yy_buffer_stack_top) = 0;
3890 (yy_buffer_stack_max) = 0;
3891 (yy_c_buf_p) = (char *) 0;
3895 /* Defined in main.c */
3900 as3_in = (FILE *) 0;
3901 as3_out = (FILE *) 0;
3904 /* For future reference: Set errno on error, since we are called by
3910 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3911 int as3_lex_destroy (void)
3914 /* Pop the buffer stack, destroying each element. */
3915 while(YY_CURRENT_BUFFER){
3916 as3__delete_buffer(YY_CURRENT_BUFFER );
3917 YY_CURRENT_BUFFER_LVALUE = NULL;
3918 as3_pop_buffer_state();
3921 /* Destroy the stack itself. */
3922 as3_free((yy_buffer_stack) );
3923 (yy_buffer_stack) = NULL;
3925 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3926 * as3_lex() is called, initialization will occur. */
3933 * Internal utility routines.
3937 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3940 for ( i = 0; i < n; ++i )
3945 #ifdef YY_NEED_STRLEN
3946 static int yy_flex_strlen (yyconst char * s )
3949 for ( n = 0; s[n]; ++n )
3956 void *as3_alloc (yy_size_t size )
3958 return (void *) malloc( size );
3961 void *as3_realloc (void * ptr, yy_size_t size )
3963 /* The cast to (char *) in the following accommodates both
3964 * implementations that use char* generic pointers, and those
3965 * that use void* generic pointers. It works with the latter
3966 * because both ANSI C and C++ allow castless assignment from
3967 * any pointer type to void*, and deal with argument conversions
3968 * as though doing an assignment.
3970 return (void *) realloc( (char *) ptr, size );
3973 void as3_free (void * ptr )
3975 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
3978 #define YYTABLES_NAME "yytables"
3980 #line 707 "tokenizer.lex"
3989 static int tokenerror()
3991 char c1=as3_text[0];
3993 buf[0] = as3_text[0];
3995 for(t=1;t<128;t++) {
3996 char c = buf[t]=input();
3997 if(c=='\n' || c==EOF) {
4002 if(c1>='0' && c1<='9')
4003 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
4005 syntaxerror("syntax error [%d]: %s", (yy_start-1)/2, buf);
4012 static char mbuf[256];
4013 char*token2string(enum yytokentype nr, YYSTYPE v)
4016 char*s = malloc(v.str.len+10);
4017 strcpy(s, "<string>");
4018 memcpy(s+8, v.str.str, v.str.len);
4019 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
4022 else if(nr==T_REGEXP) {
4023 char*s = malloc(strlen(v.regexp.pattern)+10);
4024 sprintf(s, "<regexp>%s", v.regexp.pattern);
4027 else if(nr==T_IDENTIFIER) {
4028 char*s = malloc(strlen(v.id)+10);
4029 sprintf(s, "<ID>%s", v.id);
4032 else if(nr==T_INT) return "<int>";
4033 else if(nr==T_UINT) return "<uint>";
4034 else if(nr==T_FLOAT) return "<float>";
4035 else if(nr==T_EOF) return "***END***";
4036 else if(nr==T_GE) return ">=";
4037 else if(nr==T_LE) return "<=";
4038 else if(nr==T_MINUSMINUS) return "--";
4039 else if(nr==T_PLUSPLUS) return "++";
4040 else if(nr==KW_IMPLEMENTS) return "implements";
4041 else if(nr==KW_INTERFACE) return "interface";
4042 else if(nr==KW_NAMESPACE) return "namespace";
4043 else if(nr==KW_PROTECTED) return "protected";
4044 else if(nr==KW_OVERRIDE) return "override";
4045 else if(nr==KW_INTERNAL) return "internal";
4046 else if(nr==KW_FUNCTION) return "function";
4047 else if(nr==KW_PACKAGE) return "package";
4048 else if(nr==KW_PRIVATE) return "private";
4049 else if(nr==KW_BOOLEAN) return "Boolean";
4050 else if(nr==KW_DYNAMIC) return "dynamic";
4051 else if(nr==KW_EXTENDS) return "extends";
4052 else if(nr==KW_PUBLIC) return "public";
4053 else if(nr==KW_NATIVE) return "native";
4054 else if(nr==KW_STATIC) return "static";
4055 else if(nr==KW_IMPORT) return "import";
4056 else if(nr==KW_NUMBER) return "number";
4057 else if(nr==KW_CLASS) return "class";
4058 else if(nr==KW_CONST) return "const";
4059 else if(nr==KW_FINAL) return "final";
4060 else if(nr==KW_FALSE) return "False";
4061 else if(nr==KW_TRUE) return "True";
4062 else if(nr==KW_UINT) return "uint";
4063 else if(nr==KW_NULL) return "null";
4064 else if(nr==KW_ELSE) return "else";
4065 else if(nr==KW_USE) return "use";
4066 else if(nr==KW_INT) return "int";
4067 else if(nr==KW_NEW) return "new";
4068 else if(nr==KW_GET) return "get";
4069 else if(nr==KW_SET) return "set";
4070 else if(nr==KW_VAR) return "var";
4071 else if(nr==KW_IS) return "is";
4072 else if(nr==KW_AS) return "as";
4074 sprintf(mbuf, "%d", nr);
4079 void tokenizer_begin_xml()
4081 dbg("begin reading xml");
4084 void tokenizer_begin_xmltext()
4086 dbg("begin reading xml text");
4089 void tokenizer_end_xmltext()
4091 dbg("end reading xml text");
4094 void tokenizer_end_xml()
4096 dbg("end reading xml");
4100 void initialize_scanner()