1 #line 2 "tokenizer.yy.c"
2
3 #line 4 "tokenizer.yy.c"
4
5 #define YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
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
16 #define yyin as3_in
17 #define yyleng as3_leng
18 #define yylex as3_lex
19 #define yylineno as3_lineno
20 #define yyout as3_out
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
27
28 #define FLEX_SCANNER
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
33 #define FLEX_BETA
34 #endif
35
36 /* First, we deal with platform-specific or compiler-specific issues. */
37
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43
44 /* end standard C headers. */
45
46 /* flex integer type definitions */
47
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
57 */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61
62 #include <inttypes.h>
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;
69 #else
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;
76 #endif /* ! C99 */
77
78 /* Limits of integral types. */
79 #ifndef INT8_MIN
80 #define INT8_MIN (-128)
81 #endif
82 #ifndef INT16_MIN
83 #define INT16_MIN (-32767-1)
84 #endif
85 #ifndef INT32_MIN
86 #define INT32_MIN (-2147483647-1)
87 #endif
88 #ifndef INT8_MAX
89 #define INT8_MAX (127)
90 #endif
91 #ifndef INT16_MAX
92 #define INT16_MAX (32767)
93 #endif
94 #ifndef INT32_MAX
95 #define INT32_MAX (2147483647)
96 #endif
97 #ifndef UINT8_MAX
98 #define UINT8_MAX (255U)
99 #endif
100 #ifndef UINT16_MAX
101 #define UINT16_MAX (65535U)
102 #endif
103 #ifndef UINT32_MAX
104 #define UINT32_MAX (4294967295U)
105 #endif
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif /* defined (__STDC__) */
122 #endif /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
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
136 * double cast.
137 */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
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.
143 */
144 #define BEGIN (yy_start) = 1 + 2 *
145
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
148 * compatibility.
149 */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE as3_restart(as3_in )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #define YY_BUF_SIZE 16384
164 #endif
165
166 /* The state buf must be large enough to hold one state per character in the main buffer.
167 */
168 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
173 #endif
174
175 #ifndef YY_TYPEDEF_YY_SIZE_T
176 #define YY_TYPEDEF_YY_SIZE_T
177 typedef size_t yy_size_t;
178 #endif
179
180 extern yy_size_t as3_leng;
181
182 extern FILE *as3_in, *as3_out;
183
184 #define EOB_ACT_CONTINUE_SCAN 0
185 #define EOB_ACT_END_OF_FILE 1
186 #define EOB_ACT_LAST_MATCH 2
187
188 #define YY_LESS_LINENO(n)
189
190 /* Return all but the first "n" matched characters back to the input stream. */
191 #define yyless(n) \
192 do \
193 { \
194 /* Undo effects of setting up as3_text. */ \
195 int yyless_macro_arg = (n); \
196 YY_LESS_LINENO(yyless_macro_arg);\
197 *yy_cp = (yy_hold_char); \
198 YY_RESTORE_YY_MORE_OFFSET \
199 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
200 YY_DO_BEFORE_ACTION; /* set up as3_text again */ \
201 } \
202 while ( 0 )
203
204 #define unput(c) yyunput( c, (yytext_ptr) )
205
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
209 {
210 FILE *yy_input_file;
211
212 char *yy_ch_buf; /* input buffer */
213 char *yy_buf_pos; /* current position in input buffer */
214
215 /* Size of input buffer in bytes, not including room for EOB
216 * characters.
217 */
218 yy_size_t yy_buf_size;
219
220 /* Number of characters read into yy_ch_buf, not including EOB
221 * characters.
222 */
223 yy_size_t yy_n_chars;
224
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
227 * delete it.
228 */
229 int yy_is_our_buffer;
230
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
234 * each newline.
235 */
236 int yy_is_interactive;
237
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
240 * not.
241 */
242 int yy_at_bol;
243
244 int yy_bs_lineno; /**< The line count. */
245 int yy_bs_column; /**< The column count. */
246
247 /* Whether to try to fill the input buffer when we reach the
248 * end of it.
249 */
250 int yy_fill_buffer;
251
252 int yy_buffer_status;
253
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.
261 *
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.
265 */
266 #define YY_BUFFER_EOF_PENDING 2
267
268 };
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
270
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. */
275
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
278 * "scanner state".
279 *
280 * Returns the top of the stack, or NULL.
281 */
282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
284 : NULL)
285
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.
288 */
289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
290
291 /* yy_hold_char holds the character lost when as3_text is formed. */
292 static char yy_hold_char;
293 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
294 yy_size_t as3_leng;
295
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 */
300
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 ...
303 */
304 static int yy_did_buffer_switch_on_eof;
305
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 );
313
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 );
317
318 #define YY_FLUSH_BUFFER as3__flush_buffer(YY_CURRENT_BUFFER )
319
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,yy_size_t len );
323
324 void *as3_alloc (yy_size_t );
325 void *as3_realloc (void *,yy_size_t );
326 void as3_free (void * );
327
328 #define yy_new_buffer as3__create_buffer
329
330 #define yy_set_interactive(is_interactive) \
331 { \
332 if ( ! YY_CURRENT_BUFFER ){ \
333 as3_ensure_buffer_stack (); \
334 YY_CURRENT_BUFFER_LVALUE = \
335 as3__create_buffer(as3_in,YY_BUF_SIZE ); \
336 } \
337 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
338 }
339
340 #define yy_set_bol(at_bol) \
341 { \
342 if ( ! YY_CURRENT_BUFFER ){\
343 as3_ensure_buffer_stack (); \
344 YY_CURRENT_BUFFER_LVALUE = \
345 as3__create_buffer(as3_in,YY_BUF_SIZE ); \
346 } \
347 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
348 }
349
350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
351
352 /* Begin user sect3 */
353
354 typedef unsigned char YY_CHAR;
355
356 FILE *as3_in = (FILE *) 0, *as3_out = (FILE *) 0;
357
358 typedef int yy_state_type;
359
360 extern int as3_lineno;
361
362 int as3_lineno = 1;
363
364 extern char *as3_text;
365 #define yytext_ptr as3_text
366
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[] );
371
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up as3_text.
374 */
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; \
379 *yy_cp = '\0'; \
380 (yy_c_buf_p) = yy_cp;
381
382 #define YY_NUM_RULES 130
383 #define YY_END_OF_BUFFER 131
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
386 struct yy_trans_info
387 {
388 flex_int32_t yy_verify;
389 flex_int32_t yy_nxt;
390 };
391 static yyconst flex_int16_t yy_accept[705] =
392 { 0,
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 131, 130, 31, 127, 130, 127, 127, 127,
395 130, 127, 128, 126, 127, 127, 73, 127, 130, 130,
396 130, 75, 127, 127, 127, 125, 125, 126, 127, 125,
397 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
398 125, 125, 125, 125, 125, 125, 29, 127, 126, 31,
399 130, 130, 125, 129, 31, 127, 129, 127, 127, 127,
400 129, 127, 128, 126, 127, 127, 73, 127, 129, 129,
401 129, 75, 127, 127, 127, 125, 125, 126, 127, 125,
402 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
403
404 125, 125, 125, 125, 125, 125, 28, 127, 126, 31,
405 129, 129, 125, 29, 127, 127, 73, 127, 129, 129,
406 129, 17, 17, 19, 20, 18, 16, 16, 129, 12,
407 15, 11, 14, 13, 10, 15, 15, 49, 0, 6,
408 0, 125, 0, 0, 61, 47, 64, 0, 0, 62,
409 56, 57, 55, 59, 72, 0, 3, 0, 60, 34,
410 34, 0, 0, 0, 0, 74, 0, 68, 54, 52,
411 53, 70, 0, 125, 0, 125, 125, 125, 58, 125,
412 124, 125, 125, 125, 125, 125, 44, 125, 125, 125,
413 125, 125, 125, 125, 125, 125, 123, 125, 122, 121,
414
415 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
416 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
417 125, 63, 48, 125, 31, 0, 122, 0, 0, 0,
418 0, 0, 3, 23, 60, 0, 26, 26, 0, 0,
419 0, 0, 17, 0, 0, 9, 15, 0, 15, 50,
420 125, 0, 71, 35, 0, 0, 0, 0, 0, 1,
421 0, 0, 0, 0, 0, 0, 66, 51, 65, 69,
422 0, 0, 0, 0, 0, 0, 0, 125, 36, 125,
423 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
424 125, 125, 125, 43, 125, 117, 125, 125, 125, 125,
425
426 125, 116, 125, 125, 125, 125, 125, 125, 125, 118,
427 125, 125, 125, 125, 125, 120, 125, 125, 115, 119,
428 125, 125, 125, 30, 125, 0, 26, 26, 0, 0,
429 27, 23, 0, 0, 0, 23, 0, 23, 23, 0,
430 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
431 2, 0, 33, 0, 32, 32, 0, 0, 67, 0,
432 0, 0, 0, 125, 125, 113, 125, 125, 125, 125,
433 125, 125, 125, 108, 112, 125, 125, 125, 125, 125,
434 125, 125, 125, 125, 125, 111, 125, 125, 125, 125,
435 125, 125, 125, 125, 125, 125, 110, 125, 125, 109,
436
437 125, 114, 125, 27, 0, 0, 0, 0, 23, 0,
438 23, 0, 0, 2, 0, 23, 23, 25, 0, 24,
439 24, 0, 0, 0, 0, 2, 37, 0, 39, 0,
440 0, 0, 125, 106, 103, 101, 102, 125, 125, 125,
441 125, 125, 105, 104, 125, 125, 125, 125, 125, 125,
442 125, 125, 125, 125, 125, 125, 125, 125, 107, 125,
443 100, 125, 125, 45, 125, 25, 0, 24, 24, 0,
444 0, 2, 0, 23, 23, 0, 0, 0, 0, 0,
445 0, 38, 0, 0, 125, 125, 125, 93, 125, 125,
446 125, 125, 125, 98, 125, 125, 125, 125, 96, 125,
447
448 125, 125, 125, 95, 94, 97, 46, 99, 125, 125,
449 23, 0, 0, 0, 0, 0, 0, 125, 125, 88,
450 91, 92, 87, 125, 125, 125, 125, 125, 125, 125,
451 89, 90, 125, 125, 125, 23, 8, 21, 0, 0,
452 0, 40, 125, 83, 0, 125, 125, 86, 125, 125,
453 125, 85, 125, 84, 125, 125, 0, 125, 125, 0,
454 0, 41, 82, 0, 125, 125, 125, 125, 78, 80,
455 79, 81, 0, 0, 0, 0, 0, 125, 125, 125,
456 0, 0, 0, 0, 125, 77, 76, 0, 5, 0,
457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458
459 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
460 0, 0, 5, 0, 125, 0, 125, 125, 125, 0,
461 0, 0, 42, 42, 0, 0, 0, 4, 0, 0,
462 0, 0, 4, 0, 0, 5, 0, 0, 0, 0,
463 0, 0, 0, 0, 5, 0, 0, 0, 0, 0,
464 0, 0, 125, 125, 125, 125, 0, 7, 0, 0,
465 0, 39, 5, 39, 39, 0, 0, 0, 0, 0,
466 0, 0, 0, 0, 0, 0, 125, 22, 0, 7,
467 0, 38, 5, 38, 38, 0, 0, 0, 5, 0,
468 22, 0, 0, 0, 0, 40, 5, 40, 40, 41,
469
470 5, 41, 41, 0
471 } ;
472
473 static yyconst flex_int32_t yy_ec[256] =
474 { 0,
475 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
476 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
479 14, 15, 16, 13, 17, 18, 19, 20, 21, 21,
480 22, 21, 21, 21, 21, 21, 21, 23, 13, 24,
481 25, 26, 13, 13, 27, 28, 29, 30, 28, 28,
482 28, 28, 28, 28, 28, 28, 28, 31, 28, 28,
483 28, 28, 28, 32, 28, 28, 28, 28, 28, 28,
484 33, 34, 35, 36, 37, 8, 38, 39, 40, 41,
485
486 42, 43, 44, 45, 46, 28, 47, 48, 49, 50,
487 51, 52, 28, 53, 54, 55, 56, 57, 58, 59,
488 60, 28, 61, 62, 63, 13, 8, 37, 37, 37,
489 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
490 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
491 37, 37, 37, 37, 37, 37, 37, 37, 37, 64,
492 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
493 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
494 37, 37, 37, 37, 37, 37, 65, 37, 37, 37,
495 66, 37, 37, 67, 37, 37, 37, 37, 37, 37,
496
497 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
498 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
499 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
500 37, 37, 37, 37, 37, 37, 37, 37, 68, 37,
501 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
502 37, 37, 37, 37, 37
503 } ;
504
505 static yyconst flex_int32_t yy_meta[69] =
506 { 0,
507 1, 2, 3, 2, 2, 4, 4, 4, 4, 4,
508 4, 4, 4, 4, 4, 4, 4, 5, 4, 6,
509 6, 6, 7, 8, 4, 8, 9, 9, 9, 9,
510 9, 9, 4, 10, 4, 4, 11, 9, 9, 9,
511 9, 12, 9, 9, 9, 9, 9, 9, 9, 9,
512 9, 9, 9, 9, 9, 9, 9, 9, 13, 9,
513 8, 4, 4, 11, 11, 11, 11, 11
514 } ;
515
516 static yyconst flex_int16_t yy_base[749] =
517 { 0,
518 0, 1980, 68, 1979, 1963, 91, 122, 129, 150, 153,
519 214, 0, 2022, 3900, 3900, 1996, 147, 90, 1995, 144,
520 148, 3900, 3900, 1993, 143, 145, 143, 169, 265, 270,
521 275, 1994, 161, 1990, 146, 296, 300, 3900, 1944, 328,
522 138, 149, 153, 268, 299, 156, 293, 316, 256, 303,
523 272, 320, 326, 334, 345, 348, 3900, 286, 3900, 286,
524 1903, 1896, 354, 3900, 3900, 1931, 159, 298, 1903, 283,
525 356, 3900, 3900, 1896, 393, 399, 405, 413, 413, 419,
526 424, 1887, 424, 1878, 380, 397, 405, 3900, 1875, 0,
527 399, 416, 420, 437, 441, 446, 455, 464, 403, 469,
528
529 459, 473, 479, 484, 492, 495, 3900, 360, 3900, 428,
530 1818, 1814, 501, 3900, 164, 451, 538, 538, 146, 1811,
531 0, 0, 0, 1827, 3900, 3900, 3900, 3900, 1806, 3900,
532 1753, 3900, 3900, 3900, 3900, 1717, 297, 1712, 429, 3900,
533 1659, 0, 544, 547, 3900, 3900, 3900, 477, 1646, 3900,
534 3900, 3900, 3900, 3900, 1618, 550, 572, 532, 3900, 3900,
535 562, 1542, 568, 1572, 1526, 3900, 1510, 1502, 3900, 1455,
536 3900, 536, 591, 526, 595, 532, 549, 570, 3900, 562,
537 556, 565, 567, 573, 575, 587, 578, 589, 593, 591,
538 597, 612, 614, 603, 619, 621, 617, 625, 627, 630,
539
540 636, 634, 645, 652, 655, 650, 658, 660, 663, 669,
541 667, 678, 672, 674, 683, 688, 691, 685, 694, 697,
542 699, 3900, 3900, 702, 3900, 1411, 706, 742, 747, 752,
543 755, 629, 780, 812, 752, 759, 3900, 770, 1388, 780,
544 1421, 179, 0, 486, 1409, 3900, 1388, 0, 1381, 3900,
545 0, 783, 3900, 3900, 806, 821, 872, 1377, 754, 3900,
546 806, 857, 899, 962, 1370, 1325, 3900, 3900, 3900, 1311,
547 1244, 987, 1209, 1206, 1138, 1144, 1104, 726, 734, 776,
548 780, 793, 840, 766, 828, 946, 842, 955, 844, 952,
549 959, 784, 964, 832, 967, 929, 978, 961, 980, 985,
550
551 950, 957, 989, 982, 993, 995, 1002, 1005, 1007, 1011,
552 1013, 1020, 1016, 1024, 1030, 1026, 1034, 1039, 1032, 1036,
553 1041, 1043, 1053, 3900, 1051, 1080, 3900, 1088, 1091, 1142,
554 3900, 0, 1113, 1122, 1142, 1123, 1147, 0, 1163, 1098,
555 1113, 1223, 1286, 1114, 1112, 1092, 0, 495, 1168, 1312,
556 1084, 1322, 3900, 0, 3900, 0, 997, 1014, 3900, 0,
557 966, 890, 887, 1105, 1120, 1085, 1132, 1099, 1110, 1134,
558 1264, 1145, 1279, 1125, 1253, 1285, 1292, 1302, 1289, 1298,
559 1276, 1315, 1304, 1306, 1308, 1310, 1313, 1332, 1334, 1329,
560 1327, 1321, 1338, 1323, 1349, 1340, 1325, 1346, 1352, 1354,
561
562 1359, 1356, 1361, 3900, 1398, 1401, 1443, 1506, 0, 1525,
563 1569, 1532, 1559, 873, 1629, 1663, 0, 3900, 0, 3900,
564 0, 873, 871, 815, 1423, 3900, 3900, 804, 3900, 0,
565 758, 750, 1484, 1375, 1377, 1379, 1381, 1495, 1502, 1504,
566 1529, 1511, 1383, 1532, 1535, 1538, 1549, 1584, 1592, 1587,
567 1552, 1597, 1603, 1599, 1692, 1694, 1605, 1696, 1500, 1688,
568 1523, 1700, 1698, 1607, 1714, 3900, 0, 3900, 0, 1755,
569 1760, 0, 1780, 0, 0, 779, 318, 768, 374, 739,
570 717, 3900, 670, 660, 1685, 1724, 1718, 1712, 1747, 1732,
571 1737, 1751, 1754, 1739, 1758, 1765, 1768, 1771, 1762, 1776,
572
573 1778, 1781, 1773, 1783, 1785, 1787, 1789, 1791, 1796, 1805,
574 681, 467, 1110, 654, 627, 592, 0, 1798, 1812, 1858,
575 1802, 1814, 1816, 1821, 1823, 1830, 1838, 1832, 1841, 1845,
576 1835, 1843, 1848, 1851, 1904, 598, 3900, 3900, 578, 544,
577 0, 3900, 1860, 1862, 1915, 1870, 1873, 1877, 1879, 1888,
578 1893, 1890, 1898, 1895, 1909, 1912, 1973, 2040, 1906, 519,
579 512, 3900, 1901, 493, 1934, 1936, 1919, 1938, 1940, 1944,
580 1946, 1948, 2107, 627, 2112, 2123, 2116, 2189, 457, 0,
581 481, 451, 430, 381, 1955, 1951, 1953, 2256, 2260, 2264,
582 2268, 2272, 1977, 2276, 409, 1776, 2280, 2285, 2299, 2291,
583
584 2304, 2371, 2357, 2375, 2382, 2386, 2390, 2404, 2399, 2456,
585 2471, 2477, 2482, 2486, 0, 2493, 0, 346, 2560, 354,
586 342, 1149, 3900, 1959, 285, 2627, 2631, 2635, 254, 312,
587 1952, 2639, 2643, 2647, 2651, 2655, 2667, 225, 2734, 2659,
588 2725, 2759, 2770, 2776, 2813, 2782, 2805, 2849, 2827, 2853,
589 220, 2860, 0, 0, 0, 144, 1734, 3900, 1822, 137,
590 2871, 2884, 2893, 2897, 2901, 2968, 2941, 2950, 3007, 3016,
591 3031, 3038, 3023, 3050, 3074, 3044, 0, 3900, 1910, 143,
592 1984, 3056, 3089, 3122, 3126, 3130, 3140, 2122, 3144, 3157,
593 138, 1988, 3164, 3231, 3294, 3196, 3210, 3214, 3267, 3280,
594
595 3284, 3319, 3333, 3900, 3400, 3413, 3418, 3431, 3444, 3456,
596 3464, 3477, 3490, 3503, 3516, 3524, 3532, 3545, 3557, 3570,
597 3579, 3592, 3605, 3617, 3626, 3634, 3647, 3660, 3668, 3673,
598 3686, 3699, 3712, 3720, 3733, 3746, 3759, 3767, 3775, 3783,
599 3796, 3808, 3821, 3834, 3847, 3860, 3873, 3886
600 } ;
601
602 static yyconst flex_int16_t yy_def[749] =
603 { 0,
604 704, 1, 704, 3, 3, 3, 3, 3, 705, 705,
605 704, 11, 704, 704, 704, 704, 706, 707, 704, 704,
606 708, 704, 704, 704, 704, 704, 704, 704, 709, 709,
607 709, 704, 704, 704, 704, 710, 710, 704, 704, 710,
608 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
609 40, 40, 40, 40, 40, 40, 704, 704, 704, 40,
610 711, 711, 40, 704, 704, 704, 706, 707, 704, 704,
611 708, 704, 704, 704, 704, 704, 704, 712, 713, 713,
612 713, 704, 704, 704, 704, 40, 40, 704, 704, 40,
613 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
614
615 40, 40, 40, 40, 40, 40, 704, 704, 704, 40,
616 711, 711, 40, 704, 704, 704, 704, 704, 31, 31,
617 31, 714, 714, 704, 704, 704, 704, 704, 715, 704,
618 716, 704, 704, 704, 704, 716, 716, 704, 706, 704,
619 706, 717, 707, 707, 704, 704, 704, 708, 708, 704,
620 704, 704, 704, 704, 704, 718, 719, 720, 704, 704,
621 718, 31, 704, 721, 704, 704, 704, 704, 704, 704,
622 704, 704, 704, 40, 704, 40, 40, 40, 704, 40,
623 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
624 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
625
626 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
627 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
628 40, 704, 704, 40, 704, 711, 40, 704, 722, 722,
629 723, 712, 724, 720, 712, 712, 704, 723, 81, 704,
630 725, 704, 714, 704, 715, 704, 716, 726, 716, 704,
631 717, 707, 704, 704, 719, 719, 727, 704, 720, 704,
632 718, 718, 704, 721, 704, 704, 704, 704, 704, 704,
633 704, 704, 704, 704, 704, 704, 704, 40, 40, 40,
634 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
635 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
636
637 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
638 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
639 40, 40, 40, 704, 40, 728, 704, 728, 704, 729,
640 704, 730, 724, 724, 731, 730, 724, 234, 712, 723,
641 723, 704, 725, 704, 704, 704, 726, 732, 719, 727,
642 704, 719, 704, 263, 704, 263, 704, 704, 704, 733,
643 704, 704, 704, 40, 40, 40, 40, 40, 40, 40,
644 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
645 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
646 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
647
648 40, 40, 40, 704, 728, 728, 704, 729, 730, 734,
649 719, 724, 731, 730, 724, 704, 339, 704, 342, 704,
650 342, 735, 736, 704, 719, 704, 704, 704, 704, 737,
651 704, 704, 40, 40, 40, 40, 40, 40, 40, 40,
652 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
653 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
654 40, 40, 40, 40, 40, 704, 407, 704, 407, 724,
655 724, 730, 724, 411, 416, 735, 735, 736, 736, 704,
656 704, 704, 704, 704, 40, 40, 40, 40, 40, 40,
657 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
658
659 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
660 339, 735, 736, 704, 704, 704, 738, 40, 40, 40,
661 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
662 40, 40, 40, 40, 40, 411, 704, 704, 704, 704,
663 739, 704, 40, 40, 704, 40, 40, 40, 40, 40,
664 40, 40, 40, 40, 40, 40, 740, 704, 40, 704,
665 741, 704, 40, 704, 40, 40, 40, 40, 40, 40,
666 40, 40, 742, 743, 744, 742, 742, 704, 578, 558,
667 745, 741, 741, 704, 40, 40, 40, 704, 704, 742,
668 742, 742, 743, 704, 743, 746, 746, 744, 744, 742,
669
670 744, 744, 704, 704, 742, 742, 742, 742, 742, 742,
671 747, 704, 704, 742, 578, 742, 578, 578, 704, 745,
672 745, 741, 704, 40, 704, 742, 704, 704, 704, 746,
673 746, 704, 704, 742, 742, 746, 744, 704, 742, 742,
674 742, 742, 742, 740, 740, 742, 748, 744, 742, 742,
675 704, 742, 578, 578, 619, 578, 745, 704, 741, 704,
676 742, 704, 704, 742, 742, 639, 742, 742, 742, 743,
677 748, 748, 748, 748, 747, 742, 619, 704, 745, 741,
678 741, 704, 704, 742, 742, 742, 742, 743, 743, 748,
679 745, 745, 742, 639, 639, 704, 704, 742, 742, 704,
680
681 704, 742, 742, 0, 704, 704, 704, 704, 704, 704,
682 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
683 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
684 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
685 704, 704, 704, 704, 704, 704, 704, 704
686 } ;
687
688 static yyconst flex_int16_t yy_nxt[3969] =
689 { 0,
690 14, 15, 15, 15, 15, 16, 17, 14, 18, 19,
691 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
692 30, 31, 32, 33, 34, 35, 36, 36, 36, 36,
693 37, 36, 22, 14, 38, 39, 36, 40, 41, 42,
694 43, 44, 45, 46, 36, 47, 36, 36, 36, 48,
695 49, 50, 51, 52, 53, 54, 55, 56, 36, 36,
696 57, 58, 59, 60, 36, 36, 61, 62, 64, 65,
697 15, 65, 65, 66, 67, 64, 68, 69, 70, 71,
698 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
699 82, 83, 84, 85, 86, 86, 86, 86, 87, 86,
700
701 72, 64, 88, 89, 86, 90, 91, 92, 93, 94,
702 95, 96, 86, 97, 86, 86, 86, 98, 99, 100,
703 101, 102, 103, 104, 105, 106, 86, 86, 107, 108,
704 109, 110, 86, 86, 111, 112, 113, 115, 116, 117,
705 118, 119, 120, 121, 115, 116, 117, 118, 119, 120,
706 121, 114, 123, 140, 146, 123, 143, 144, 151, 140,
707 155, 153, 156, 156, 156, 140, 167, 152, 147, 154,
708 171, 172, 621, 124, 113, 125, 124, 583, 125, 151,
709 141, 149, 114, 157, 168, 169, 183, 158, 152, 114,
710 182, 174, 141, 159, 186, 344, 184, 196, 704, 185,
711
712 632, 174, 174, 187, 164, 174, 174, 677, 174, 174,
713 126, 266, 188, 126, 64, 127, 128, 127, 127, 64,
714 129, 64, 64, 64, 64, 64, 64, 64, 64, 64,
715 64, 64, 130, 131, 131, 131, 64, 132, 133, 134,
716 131, 131, 131, 131, 131, 131, 64, 64, 64, 64,
717 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
718 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
719 131, 131, 131, 131, 135, 64, 64, 136, 131, 131,
720 137, 131, 161, 612, 162, 162, 162, 161, 603, 162,
721 162, 162, 161, 146, 162, 162, 162, 173, 173, 173,
722
723 173, 173, 173, 173, 173, 189, 163, 147, 174, 174,
724 222, 163, 204, 208, 596, 190, 163, 627, 175, 248,
725 174, 174, 175, 164, 174, 174, 191, 165, 704, 173,
726 173, 173, 173, 704, 512, 197, 192, 178, 174, 174,
727 205, 198, 199, 704, 193, 174, 200, 223, 588, 194,
728 175, 174, 174, 201, 195, 206, 174, 202, 207, 176,
729 249, 209, 177, 176, 143, 144, 177, 140, 174, 174,
730 213, 203, 174, 174, 210, 211, 657, 212, 214, 174,
731 180, 181, 218, 216, 222, 215, 174, 217, 621, 149,
732 513, 176, 220, 221, 177, 219, 197, 174, 174, 704,
733
734 174, 174, 198, 227, 171, 172, 174, 200, 151, 653,
735 228, 593, 229, 230, 230, 153, 228, 152, 229, 230,
736 230, 223, 155, 154, 231, 231, 231, 233, 623, 242,
737 238, 234, 239, 239, 239, 140, 238, 235, 239, 239,
738 239, 238, 178, 239, 239, 239, 236, 168, 169, 174,
739 174, 182, 174, 183, 240, 174, 174, 174, 174, 204,
740 240, 186, 141, 184, 622, 240, 185, 153, 174, 174,
741 187, 241, 174, 174, 189, 154, 165, 704, 192, 188,
742 174, 174, 704, 512, 190, 583, 193, 196, 140, 174,
743 174, 194, 537, 174, 174, 191, 195, 197, 174, 174,
744
745 208, 201, 345, 198, 199, 202, 205, 174, 200, 425,
746 149, 174, 174, 426, 209, 621, 174, 174, 346, 203,
747 619, 206, 174, 213, 207, 174, 174, 210, 211, 218,
748 212, 214, 174, 216, 260, 260, 174, 217, 215, 220,
749 221, 584, 219, 197, 174, 174, 583, 174, 174, 198,
750 227, 581, 157, 174, 200, 155, 158, 156, 156, 156,
751 269, 270, 159, 142, 142, 142, 142, 142, 142, 156,
752 156, 156, 255, 255, 255, 255, 561, 142, 174, 174,
753 142, 261, 261, 261, 174, 174, 257, 262, 262, 262,
754 258, 163, 173, 173, 173, 173, 272, 272, 272, 272,
755
756 279, 174, 174, 163, 560, 280, 281, 704, 174, 174,
757 284, 252, 278, 175, 174, 174, 258, 174, 174, 174,
758 282, 283, 174, 174, 285, 174, 174, 174, 174, 286,
759 174, 174, 289, 594, 287, 273, 541, 274, 288, 174,
760 174, 174, 174, 174, 290, 174, 174, 332, 275, 174,
761 174, 291, 276, 540, 173, 294, 174, 271, 272, 292,
762 595, 277, 236, 293, 174, 174, 174, 174, 295, 174,
763 174, 174, 174, 174, 174, 296, 297, 174, 174, 174,
764 298, 299, 174, 174, 300, 539, 174, 174, 174, 174,
765 301, 302, 303, 304, 305, 306, 308, 174, 174, 536,
766
767 307, 517, 174, 174, 174, 174, 311, 174, 174, 516,
768 174, 174, 174, 174, 309, 174, 174, 310, 312, 174,
769 174, 174, 174, 313, 314, 174, 174, 174, 318, 315,
770 174, 174, 319, 316, 317, 174, 174, 320, 174, 321,
771 174, 174, 322, 174, 174, 325, 174, 174, 515, 174,
772 174, 174, 174, 323, 174, 174, 260, 260, 174, 298,
773 299, 326, 326, 326, 328, 514, 230, 230, 230, 328,
774 332, 230, 230, 230, 231, 231, 231, 339, 174, 174,
775 333, 333, 255, 333, 479, 236, 174, 174, 329, 340,
776 340, 340, 236, 329, 335, 477, 240, 484, 336, 341,
777
778 341, 341, 142, 142, 142, 330, 255, 255, 255, 255,
779 704, 240, 483, 337, 260, 260, 142, 365, 174, 368,
780 348, 255, 255, 255, 255, 261, 261, 261, 174, 174,
781 481, 364, 174, 174, 366, 348, 174, 377, 338, 338,
782 338, 338, 338, 338, 480, 174, 174, 163, 704, 338,
783 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
784 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
785 338, 338, 349, 349, 349, 349, 262, 262, 262, 367,
786 174, 369, 370, 372, 174, 174, 350, 479, 374, 477,
787 351, 352, 174, 174, 174, 174, 174, 174, 704, 353,
788
789 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
790 353, 353, 353, 353, 353, 353, 353, 353, 354, 354,
791 354, 353, 353, 353, 353, 354, 354, 354, 354, 354,
792 354, 353, 432, 353, 353, 431, 354, 354, 354, 354,
793 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
794 354, 354, 354, 354, 354, 354, 354, 354, 354, 353,
795 353, 353, 355, 355, 355, 355, 355, 355, 355, 355,
796 355, 355, 355, 355, 355, 355, 355, 355, 355, 356,
797 355, 174, 174, 371, 355, 355, 355, 355, 272, 272,
798 272, 272, 373, 375, 355, 385, 355, 355, 174, 174,
799
800 376, 378, 174, 174, 174, 174, 379, 174, 174, 174,
801 174, 174, 174, 174, 174, 382, 174, 174, 430, 174,
802 174, 383, 355, 355, 355, 380, 384, 273, 381, 274,
803 174, 174, 174, 174, 387, 174, 386, 174, 174, 388,
804 275, 174, 174, 428, 276, 174, 174, 174, 174, 427,
805 272, 389, 391, 277, 174, 174, 390, 174, 174, 174,
806 174, 394, 392, 174, 174, 174, 174, 393, 174, 174,
807 395, 397, 174, 174, 396, 398, 174, 174, 174, 174,
808 399, 400, 174, 174, 174, 174, 174, 174, 174, 174,
809 401, 174, 174, 174, 174, 174, 174, 402, 403, 326,
810
811 326, 326, 352, 174, 174, 174, 174, 405, 405, 405,
812 406, 406, 406, 333, 333, 255, 333, 340, 340, 340,
813 424, 329, 333, 333, 255, 333, 513, 410, 423, 329,
814 422, 411, 341, 341, 341, 538, 410, 174, 174, 240,
815 411, 352, 412, 412, 349, 412, 337, 333, 333, 255,
816 333, 174, 436, 433, 704, 337, 413, 174, 174, 407,
817 414, 410, 174, 174, 437, 416, 434, 272, 255, 255,
818 255, 255, 174, 174, 658, 415, 435, 174, 174, 438,
819 337, 332, 348, 659, 174, 174, 174, 174, 363, 417,
820 417, 417, 417, 417, 417, 362, 236, 174, 174, 440,
821
822 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
823 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
824 417, 417, 417, 418, 418, 418, 418, 418, 418, 418,
825 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
826 418, 418, 419, 419, 419, 418, 418, 418, 418, 419,
827 419, 419, 419, 419, 419, 418, 361, 418, 418, 360,
828 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
829 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
830 419, 419, 419, 418, 418, 418, 420, 420, 420, 420,
831 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
832
833 420, 420, 420, 421, 420, 174, 174, 173, 420, 420,
834 420, 420, 349, 349, 349, 349, 174, 174, 420, 439,
835 420, 420, 255, 255, 255, 255, 350, 441, 447, 174,
836 351, 174, 174, 443, 442, 359, 348, 174, 174, 446,
837 258, 174, 174, 445, 174, 174, 420, 420, 420, 444,
838 174, 174, 448, 358, 174, 174, 449, 174, 174, 450,
839 174, 174, 174, 174, 451, 452, 174, 174, 174, 453,
840 455, 454, 456, 457, 174, 459, 174, 174, 174, 174,
841 174, 174, 174, 458, 174, 174, 174, 174, 460, 357,
842 174, 174, 174, 174, 463, 352, 462, 461, 174, 174,
843
844 464, 174, 174, 248, 174, 174, 174, 174, 174, 174,
845 248, 174, 174, 174, 174, 246, 465, 405, 405, 405,
846 406, 406, 406, 255, 255, 255, 255, 174, 174, 174,
847 174, 174, 174, 174, 174, 174, 174, 348, 342, 329,
848 704, 351, 704, 466, 466, 466, 466, 466, 466, 466,
849 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
850 466, 466, 467, 467, 467, 466, 466, 466, 466, 467,
851 467, 467, 467, 467, 467, 466, 324, 466, 466, 268,
852 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
853 467, 467, 467, 467, 467, 467, 467, 467, 467, 467,
854
855 467, 467, 467, 466, 466, 466, 468, 468, 468, 468,
856 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
857 468, 468, 468, 469, 468, 485, 267, 352, 468, 468,
858 468, 468, 333, 333, 255, 333, 174, 174, 468, 471,
859 468, 468, 266, 472, 486, 488, 410, 174, 174, 487,
860 411, 490, 174, 174, 174, 174, 174, 174, 473, 412,
861 412, 349, 412, 174, 174, 337, 468, 468, 468, 255,
862 255, 255, 255, 413, 489, 174, 174, 414, 265, 491,
863 492, 174, 174, 348, 174, 174, 493, 174, 174, 263,
864 174, 174, 415, 499, 704, 474, 474, 474, 474, 474,
865
866 474, 174, 174, 494, 174, 174, 474, 474, 474, 474,
867 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
868 474, 474, 474, 474, 474, 474, 474, 474, 474, 333,
869 333, 255, 333, 495, 496, 253, 174, 174, 498, 174,
870 174, 497, 500, 410, 174, 174, 501, 416, 148, 174,
871 174, 174, 174, 502, 505, 174, 174, 174, 174, 174,
872 174, 139, 337, 333, 333, 255, 333, 334, 334, 334,
873 334, 334, 334, 334, 334, 334, 334, 410, 334, 334,
874 334, 411, 334, 334, 334, 334, 334, 334, 334, 475,
875 475, 475, 475, 475, 475, 334, 337, 334, 334, 334,
876
877 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
878 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
879 475, 475, 475, 334, 334, 334, 334, 334, 334, 334,
880 334, 503, 507, 504, 518, 506, 250, 174, 174, 248,
881 174, 174, 508, 509, 174, 174, 174, 174, 174, 174,
882 174, 174, 174, 174, 510, 333, 333, 255, 333, 678,
883 333, 333, 255, 333, 174, 174, 174, 174, 679, 410,
884 174, 174, 520, 336, 410, 248, 174, 174, 414, 519,
885 333, 333, 255, 333, 174, 522, 521, 594, 337, 174,
886 174, 174, 174, 337, 410, 525, 523, 526, 511, 174,
887
888 174, 524, 527, 174, 174, 528, 174, 174, 529, 630,
889 174, 174, 246, 337, 174, 174, 530, 174, 174, 531,
890 174, 174, 532, 174, 174, 174, 174, 533, 174, 174,
891 174, 174, 244, 174, 174, 174, 174, 174, 174, 174,
892 174, 174, 174, 174, 174, 534, 535, 680, 174, 174,
893 174, 174, 543, 544, 174, 174, 681, 174, 174, 545,
894 545, 545, 545, 704, 174, 174, 174, 174, 174, 174,
895 548, 550, 549, 174, 174, 174, 174, 551, 226, 552,
896 553, 225, 174, 174, 174, 174, 554, 174, 174, 555,
897 174, 174, 556, 174, 174, 174, 174, 174, 174, 179,
898
899 174, 174, 170, 174, 174, 557, 557, 557, 557, 166,
900 174, 174, 174, 563, 174, 174, 173, 173, 173, 173,
901 150, 546, 174, 174, 547, 174, 174, 145, 565, 174,
902 174, 174, 174, 567, 569, 691, 566, 175, 568, 570,
903 174, 174, 174, 174, 692, 174, 174, 174, 174, 571,
904 174, 174, 572, 174, 174, 138, 174, 174, 174, 174,
905 226, 174, 174, 594, 174, 174, 225, 558, 179, 580,
906 559, 174, 586, 564, 557, 557, 557, 557, 173, 574,
907 587, 271, 585, 594, 575, 630, 174, 174, 174, 174,
908 174, 174, 174, 174, 565, 576, 174, 174, 174, 174,
909
910 174, 174, 624, 174, 174, 174, 174, 174, 174, 680,
911 595, 174, 174, 691, 170, 597, 166, 150, 622, 145,
912 138, 704, 657, 114, 113, 63, 704, 704, 704, 704,
913 704, 704, 704, 704, 704, 704, 557, 704, 704, 577,
914 573, 557, 557, 557, 557, 573, 574, 573, 573, 573,
915 573, 575, 573, 573, 573, 573, 573, 573, 573, 578,
916 578, 578, 576, 573, 573, 573, 578, 578, 578, 578,
917 578, 578, 573, 578, 573, 573, 578, 578, 578, 578,
918 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
919 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
920
921 573, 573, 573, 558, 578, 578, 579, 578, 588, 589,
922 588, 590, 596, 597, 589, 597, 598, 588, 589, 588,
923 590, 704, 704, 600, 603, 604, 603, 605, 594, 704,
924 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
925 704, 704, 704, 704, 704, 601, 704, 704, 704, 704,
926 704, 704, 704, 704, 704, 595, 704, 704, 704, 704,
927 704, 704, 704, 606, 704, 607, 704, 704, 704, 704,
928 590, 704, 704, 592, 704, 598, 608, 704, 602, 611,
929 609, 704, 592, 704, 704, 670, 605, 704, 704, 610,
930 612, 613, 612, 614, 591, 591, 591, 591, 591, 591,
931
932 591, 591, 591, 591, 591, 591, 591, 591, 615, 615,
933 615, 616, 591, 591, 591, 615, 615, 615, 615, 615,
934 615, 591, 615, 591, 591, 615, 615, 615, 615, 615,
935 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
936 615, 615, 615, 615, 615, 615, 615, 615, 615, 591,
937 591, 591, 617, 615, 615, 618, 615, 588, 589, 588,
938 588, 588, 589, 588, 588, 588, 589, 588, 590, 588,
939 589, 588, 590, 588, 589, 588, 590, 627, 628, 627,
940 627, 597, 589, 597, 597, 596, 597, 589, 597, 598,
941 704, 594, 632, 633, 632, 634, 600, 704, 704, 596,
942
943 597, 589, 597, 598, 596, 597, 636, 597, 598, 704,
944 600, 704, 704, 630, 704, 704, 704, 704, 601, 588,
945 704, 704, 625, 588, 704, 704, 625, 590, 704, 704,
946 592, 590, 601, 704, 592, 626, 704, 704, 592, 627,
947 704, 704, 629, 597, 704, 704, 631, 704, 598, 704,
948 704, 602, 704, 704, 634, 704, 704, 635, 603, 604,
949 603, 603, 598, 704, 704, 602, 704, 598, 704, 704,
950 602, 596, 597, 589, 597, 598, 603, 604, 603, 603,
951 704, 704, 600, 603, 604, 603, 605, 588, 589, 588,
952 590, 588, 589, 588, 590, 704, 704, 273, 704, 274,
953
954 588, 589, 588, 590, 601, 588, 589, 588, 590, 704,
955 275, 704, 704, 704, 276, 273, 704, 274, 704, 704,
956 603, 704, 606, 638, 607, 704, 704, 704, 275, 704,
957 704, 704, 276, 704, 637, 608, 639, 602, 603, 609,
958 640, 638, 704, 642, 704, 605, 704, 704, 610, 590,
959 704, 704, 592, 590, 704, 704, 592, 588, 589, 588,
960 590, 641, 590, 704, 704, 592, 704, 590, 704, 704,
961 592, 573, 644, 645, 644, 611, 704, 647, 612, 613,
962 612, 612, 648, 612, 613, 612, 612, 612, 613, 612,
963 614, 704, 704, 649, 603, 604, 603, 605, 704, 175,
964
965 704, 704, 704, 704, 175, 704, 704, 704, 616, 704,
966 704, 704, 704, 704, 704, 704, 704, 704, 704, 643,
967 704, 704, 592, 704, 704, 704, 704, 704, 704, 704,
968 704, 704, 704, 606, 611, 607, 704, 650, 704, 704,
969 612, 704, 704, 651, 704, 612, 608, 704, 651, 614,
970 609, 704, 652, 704, 704, 704, 605, 704, 704, 610,
971 573, 644, 645, 644, 611, 646, 647, 646, 646, 646,
972 646, 648, 646, 646, 646, 646, 646, 646, 646, 654,
973 654, 654, 649, 646, 646, 646, 654, 654, 654, 654,
974 654, 654, 646, 654, 646, 646, 654, 654, 654, 654,
975
976 654, 654, 654, 654, 654, 654, 654, 654, 654, 654,
977 654, 654, 654, 654, 654, 654, 654, 654, 654, 654,
978 646, 646, 646, 655, 654, 654, 656, 654, 588, 589,
979 588, 590, 627, 628, 627, 627, 627, 628, 627, 627,
980 632, 633, 632, 632, 632, 633, 632, 632, 632, 633,
981 632, 634, 588, 589, 588, 590, 597, 589, 597, 597,
982 588, 589, 588, 590, 704, 704, 594, 596, 597, 589,
983 597, 598, 704, 704, 704, 704, 704, 704, 600, 704,
984 704, 704, 704, 704, 704, 704, 704, 704, 630, 704,
985 590, 704, 704, 592, 627, 704, 704, 629, 627, 704,
986
987 601, 629, 632, 704, 704, 660, 632, 704, 704, 660,
988 634, 666, 704, 635, 661, 704, 704, 592, 597, 704,
989 704, 631, 590, 704, 704, 592, 588, 589, 588, 590,
990 598, 704, 704, 602, 429, 662, 663, 662, 664, 665,
991 665, 665, 665, 665, 665, 665, 665, 665, 665, 665,
992 665, 665, 665, 704, 704, 704, 665, 665, 665, 665,
993 588, 589, 588, 590, 704, 704, 665, 704, 665, 665,
994 667, 603, 604, 603, 605, 704, 704, 644, 645, 644,
995 644, 704, 574, 588, 589, 588, 590, 575, 590, 704,
996 704, 592, 704, 704, 665, 665, 665, 590, 576, 704,
997
998 592, 704, 704, 704, 668, 593, 670, 589, 670, 671,
999 606, 600, 607, 704, 644, 645, 644, 644, 704, 574,
1000 704, 704, 590, 608, 575, 592, 704, 609, 603, 604,
1001 603, 605, 704, 605, 704, 576, 610, 704, 673, 644,
1002 704, 704, 669, 704, 704, 590, 704, 704, 592, 596,
1003 597, 589, 597, 598, 588, 589, 588, 590, 704, 704,
1004 600, 588, 589, 588, 590, 704, 704, 606, 671, 607,
1005 704, 674, 632, 633, 632, 634, 644, 704, 704, 669,
1006 608, 704, 601, 704, 609, 588, 589, 588, 588, 704,
1007 605, 704, 704, 610, 588, 589, 588, 588, 588, 589,
1008
1009 588, 590, 588, 589, 588, 590, 704, 704, 704, 704,
1010 704, 704, 598, 704, 704, 602, 675, 704, 704, 592,
1011 704, 704, 704, 676, 704, 704, 592, 704, 704, 704,
1012 704, 704, 704, 704, 634, 704, 704, 635, 704, 704,
1013 704, 704, 588, 589, 588, 590, 704, 588, 704, 704,
1014 625, 588, 589, 588, 590, 704, 588, 704, 704, 625,
1015 590, 704, 704, 592, 590, 704, 704, 592, 482, 682,
1016 683, 682, 684, 685, 685, 685, 685, 685, 685, 685,
1017 685, 685, 685, 685, 685, 685, 685, 704, 704, 704,
1018 685, 685, 685, 685, 704, 686, 704, 687, 704, 704,
1019
1020 685, 704, 685, 685, 590, 704, 704, 592, 588, 589,
1021 588, 590, 704, 590, 704, 704, 592, 670, 589, 670,
1022 670, 704, 594, 593, 670, 689, 670, 671, 685, 685,
1023 685, 593, 670, 589, 670, 671, 704, 600, 593, 670,
1024 589, 670, 671, 704, 600, 612, 613, 612, 614, 595,
1025 593, 670, 589, 670, 671, 704, 600, 588, 589, 588,
1026 588, 704, 704, 704, 673, 704, 616, 704, 704, 704,
1027 675, 673, 704, 592, 573, 644, 645, 644, 611, 670,
1028 647, 704, 688, 673, 704, 648, 671, 704, 704, 674,
1029 588, 589, 588, 588, 671, 704, 649, 674, 704, 704,
1030
1031 704, 671, 704, 704, 674, 704, 704, 614, 704, 704,
1032 652, 704, 704, 690, 704, 704, 674, 704, 704, 588,
1033 704, 704, 625, 588, 589, 588, 590, 588, 589, 588,
1034 590, 588, 589, 588, 590, 704, 704, 611, 704, 704,
1035 650, 588, 589, 588, 590, 670, 589, 670, 670, 704,
1036 594, 704, 588, 704, 704, 625, 704, 593, 670, 589,
1037 670, 671, 704, 600, 704, 588, 589, 588, 590, 693,
1038 704, 704, 704, 704, 704, 704, 704, 595, 704, 704,
1039 704, 694, 704, 704, 704, 590, 704, 704, 592, 590,
1040 673, 704, 592, 590, 704, 704, 592, 588, 589, 588,
1041
1042 588, 704, 704, 590, 704, 704, 592, 670, 695, 704,
1043 688, 588, 589, 588, 588, 588, 589, 588, 590, 704,
1044 671, 704, 704, 674, 704, 704, 704, 590, 704, 704,
1045 592, 542, 696, 697, 696, 698, 699, 699, 699, 699,
1046 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
1047 704, 704, 704, 699, 699, 699, 699, 704, 704, 588,
1048 704, 704, 625, 699, 704, 699, 699, 704, 588, 589,
1049 588, 590, 704, 588, 704, 704, 625, 590, 704, 704,
1050 592, 588, 589, 588, 588, 588, 589, 588, 588, 704,
1051 704, 699, 699, 699, 562, 700, 701, 700, 702, 703,
1052
1053 703, 703, 703, 703, 703, 703, 703, 703, 703, 703,
1054 703, 703, 703, 704, 704, 704, 703, 703, 703, 703,
1055 588, 589, 588, 590, 704, 704, 703, 704, 703, 703,
1056 590, 704, 704, 592, 588, 589, 588, 590, 704, 704,
1057 704, 704, 704, 588, 704, 704, 625, 588, 704, 704,
1058 625, 704, 704, 704, 703, 703, 703, 704, 704, 704,
1059 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1060 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1061 704, 704, 590, 704, 704, 592, 704, 704, 704, 704,
1062 704, 704, 704, 704, 704, 704, 590, 704, 704, 592,
1063
1064 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
1065 122, 122, 122, 139, 139, 704, 139, 139, 139, 139,
1066 139, 139, 139, 139, 139, 139, 142, 704, 142, 142,
1067 142, 148, 148, 704, 148, 148, 148, 148, 148, 148,
1068 148, 148, 148, 148, 160, 160, 160, 160, 160, 160,
1069 160, 160, 704, 704, 704, 160, 160, 174, 174, 704,
1070 704, 174, 174, 704, 174, 174, 174, 174, 174, 224,
1071 704, 704, 224, 224, 224, 224, 224, 232, 232, 704,
1072 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1073 237, 237, 237, 237, 237, 237, 237, 237, 704, 704,
1074
1075 704, 237, 237, 243, 243, 243, 243, 243, 243, 243,
1076 704, 243, 243, 243, 243, 243, 245, 245, 245, 245,
1077 245, 245, 245, 245, 245, 245, 245, 245, 245, 247,
1078 247, 704, 247, 704, 247, 247, 247, 251, 704, 704,
1079 251, 251, 251, 251, 251, 254, 254, 254, 254, 254,
1080 254, 254, 254, 704, 704, 704, 254, 256, 256, 256,
1081 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
1082 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
1083 259, 259, 259, 264, 264, 704, 704, 264, 704, 704,
1084 264, 264, 327, 327, 327, 327, 327, 327, 327, 327,
1085
1086 704, 704, 704, 327, 327, 331, 331, 331, 331, 331,
1087 331, 331, 331, 704, 704, 704, 331, 334, 334, 334,
1088 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
1089 343, 343, 704, 704, 343, 704, 704, 343, 343, 347,
1090 704, 704, 347, 704, 347, 347, 347, 255, 255, 255,
1091 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
1092 404, 404, 404, 404, 404, 404, 404, 404, 704, 704,
1093 704, 404, 408, 408, 704, 704, 408, 704, 704, 408,
1094 408, 409, 704, 704, 409, 409, 333, 333, 333, 333,
1095 333, 333, 333, 333, 333, 333, 333, 333, 333, 352,
1096
1097 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1098 352, 352, 429, 429, 429, 429, 429, 704, 429, 429,
1099 470, 470, 470, 470, 470, 470, 470, 470, 470, 470,
1100 470, 470, 470, 476, 476, 476, 476, 476, 476, 476,
1101 476, 476, 476, 476, 476, 476, 478, 478, 478, 478,
1102 478, 478, 478, 478, 478, 478, 478, 478, 478, 482,
1103 482, 482, 482, 482, 704, 482, 482, 542, 542, 542,
1104 542, 542, 704, 542, 542, 562, 562, 562, 562, 562,
1105 704, 562, 562, 573, 573, 573, 573, 573, 573, 573,
1106 573, 573, 573, 573, 573, 573, 582, 582, 582, 582,
1107
1108 582, 582, 582, 582, 582, 582, 582, 582, 582, 591,
1109 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
1110 591, 593, 593, 704, 593, 593, 593, 593, 593, 593,
1111 593, 593, 593, 593, 599, 599, 599, 599, 599, 599,
1112 599, 599, 599, 599, 599, 599, 599, 620, 620, 620,
1113 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
1114 596, 596, 704, 596, 596, 596, 596, 596, 596, 596,
1115 596, 596, 596, 646, 646, 646, 646, 646, 646, 646,
1116 646, 646, 646, 646, 646, 646, 672, 672, 672, 672,
1117 672, 672, 672, 672, 672, 672, 672, 672, 672, 13,
1118
1119 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1120 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1121 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1122 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1123 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1124 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1125 704, 704, 704, 704, 704, 704, 704, 704
1126 } ;
1127
1128 static yyconst flex_int16_t yy_chk[3969] =
1129 { 0,
1130 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1131 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1132 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1133 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1134 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1135 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1136 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
1137 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1138 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1139 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1140
1141 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1142 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1143 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1144 3, 3, 3, 3, 3, 3, 6, 7, 7, 7,
1145 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,
1146 8, 6, 9, 17, 20, 10, 18, 18, 25, 21,
1147 27, 26, 27, 27, 27, 67, 33, 25, 20, 26,
1148 35, 35, 691, 9, 8, 9, 10, 680, 10, 115,
1149 17, 21, 7, 28, 33, 33, 42, 28, 115, 8,
1150 41, 41, 67, 28, 43, 242, 42, 46, 119, 42,
1151
1152 660, 42, 42, 43, 119, 43, 43, 656, 46, 46,
1153 9, 242, 43, 10, 11, 11, 11, 11, 11, 11,
1154 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1155 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1156 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1157 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1158 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1159 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1160 11, 11, 29, 651, 29, 29, 29, 30, 638, 30,
1161 30, 30, 31, 70, 31, 31, 31, 36, 36, 36,
1162
1163 36, 37, 37, 37, 37, 44, 29, 70, 49, 49,
1164 58, 30, 49, 51, 630, 44, 31, 629, 36, 137,
1165 44, 44, 37, 29, 51, 51, 44, 31, 30, 40,
1166 40, 40, 40, 31, 477, 47, 45, 37, 60, 60,
1167 50, 47, 47, 477, 45, 47, 47, 58, 625, 45,
1168 40, 45, 45, 48, 45, 50, 50, 48, 50, 36,
1169 137, 52, 36, 37, 68, 68, 37, 71, 48, 48,
1170 53, 48, 52, 52, 52, 52, 621, 52, 53, 53,
1171 40, 40, 55, 54, 108, 53, 54, 54, 620, 71,
1172 479, 40, 56, 56, 40, 55, 63, 55, 55, 479,
1173
1174 56, 56, 63, 63, 85, 85, 63, 63, 75, 618,
1175 75, 595, 75, 75, 75, 76, 76, 75, 76, 76,
1176 76, 108, 77, 76, 77, 77, 77, 78, 584, 83,
1177 79, 78, 79, 79, 79, 139, 80, 78, 80, 80,
1178 80, 81, 87, 81, 81, 81, 78, 83, 83, 86,
1179 86, 91, 91, 92, 79, 99, 99, 87, 87, 99,
1180 80, 93, 139, 92, 583, 81, 92, 116, 92, 92,
1181 93, 79, 93, 93, 94, 116, 81, 80, 95, 93,
1182 110, 110, 81, 512, 94, 582, 95, 96, 148, 94,
1183 94, 95, 512, 95, 95, 94, 95, 97, 96, 96,
1184
1185 101, 98, 244, 97, 97, 98, 100, 97, 97, 348,
1186 148, 101, 101, 348, 102, 581, 98, 98, 244, 98,
1187 579, 100, 100, 103, 100, 102, 102, 102, 102, 105,
1188 102, 103, 103, 104, 158, 158, 104, 104, 103, 106,
1189 106, 564, 105, 113, 105, 105, 561, 106, 106, 113,
1190 113, 560, 118, 113, 113, 117, 118, 117, 117, 117,
1191 172, 172, 118, 143, 143, 143, 144, 144, 144, 156,
1192 156, 156, 157, 157, 157, 157, 540, 143, 174, 174,
1193 144, 161, 161, 161, 176, 176, 157, 163, 163, 163,
1194 157, 156, 173, 173, 173, 173, 175, 175, 175, 175,
1195
1196 178, 177, 177, 161, 539, 180, 182, 143, 181, 181,
1197 184, 144, 177, 173, 180, 180, 536, 182, 182, 183,
1198 183, 183, 178, 178, 185, 184, 184, 185, 185, 186,
1199 187, 187, 189, 574, 186, 175, 516, 175, 188, 186,
1200 186, 188, 188, 190, 190, 189, 189, 232, 175, 191,
1201 191, 191, 175, 515, 173, 194, 194, 173, 175, 192,
1202 574, 175, 232, 193, 192, 192, 193, 193, 195, 197,
1203 197, 195, 195, 196, 196, 196, 198, 198, 198, 199,
1204 199, 199, 200, 200, 201, 514, 202, 202, 201, 201,
1205 201, 202, 203, 204, 205, 206, 207, 203, 203, 511,
1206
1207 206, 484, 206, 206, 204, 204, 210, 205, 205, 483,
1208 207, 207, 208, 208, 208, 209, 209, 209, 211, 211,
1209 211, 210, 210, 212, 213, 213, 214, 214, 216, 214,
1210 212, 212, 217, 214, 215, 215, 215, 218, 218, 219,
1211 216, 216, 220, 217, 217, 227, 219, 219, 481, 220,
1212 220, 221, 221, 221, 224, 224, 259, 259, 227, 227,
1213 227, 228, 228, 228, 229, 480, 229, 229, 229, 230,
1214 235, 230, 230, 230, 231, 231, 231, 236, 278, 278,
1215 233, 233, 233, 233, 478, 235, 279, 279, 229, 238,
1216 238, 238, 236, 230, 233, 476, 231, 432, 233, 240,
1217
1218 240, 240, 252, 252, 252, 229, 255, 255, 255, 255,
1219 230, 238, 431, 233, 234, 234, 252, 281, 284, 284,
1220 255, 256, 256, 256, 256, 261, 261, 261, 280, 280,
1221 428, 280, 281, 281, 282, 256, 292, 292, 234, 234,
1222 234, 234, 234, 234, 424, 282, 282, 261, 252, 234,
1223 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1224 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1225 234, 234, 257, 257, 257, 257, 262, 262, 262, 283,
1226 285, 285, 285, 287, 294, 294, 257, 423, 289, 422,
1227 257, 414, 283, 283, 287, 287, 289, 289, 262, 263,
1228
1229 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1230 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1231 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1232 263, 263, 363, 263, 263, 362, 263, 263, 263, 263,
1233 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1234 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1235 263, 263, 264, 264, 264, 264, 264, 264, 264, 264,
1236 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1237 264, 296, 296, 286, 264, 264, 264, 264, 272, 272,
1238 272, 272, 288, 290, 264, 301, 264, 264, 286, 286,
1239
1240 291, 293, 301, 301, 290, 290, 295, 288, 288, 302,
1241 302, 291, 291, 298, 298, 298, 293, 293, 361, 295,
1242 295, 299, 264, 264, 264, 297, 300, 272, 297, 272,
1243 297, 297, 299, 299, 304, 304, 303, 300, 300, 305,
1244 272, 303, 303, 358, 272, 305, 305, 306, 306, 357,
1245 272, 306, 308, 272, 307, 307, 307, 308, 308, 309,
1246 309, 312, 309, 310, 310, 311, 311, 311, 313, 313,
1247 313, 315, 312, 312, 314, 317, 314, 314, 316, 316,
1248 318, 321, 315, 315, 319, 319, 317, 317, 320, 320,
1249 322, 318, 318, 321, 321, 322, 322, 323, 325, 326,
1250
1251 326, 326, 351, 325, 325, 323, 323, 328, 328, 328,
1252 329, 329, 329, 333, 333, 333, 333, 340, 340, 340,
1253 346, 326, 334, 334, 334, 334, 513, 333, 345, 328,
1254 344, 333, 341, 341, 341, 513, 334, 366, 366, 340,
1255 334, 336, 335, 335, 335, 335, 333, 337, 337, 337,
1256 337, 368, 368, 364, 341, 334, 335, 364, 364, 330,
1257 335, 337, 369, 369, 369, 337, 365, 277, 349, 349,
1258 349, 349, 365, 365, 622, 335, 367, 374, 374, 370,
1259 337, 339, 349, 622, 367, 367, 370, 370, 276, 339,
1260 339, 339, 339, 339, 339, 275, 339, 372, 372, 372,
1261
1262 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
1263 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
1264 339, 339, 339, 342, 342, 342, 342, 342, 342, 342,
1265 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
1266 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
1267 342, 342, 342, 342, 342, 342, 274, 342, 342, 273,
1268 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
1269 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
1270 342, 342, 342, 342, 342, 342, 343, 343, 343, 343,
1271 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
1272
1273 343, 343, 343, 343, 343, 375, 375, 271, 343, 343,
1274 343, 343, 350, 350, 350, 350, 371, 371, 343, 371,
1275 343, 343, 352, 352, 352, 352, 350, 373, 381, 381,
1276 350, 373, 373, 377, 376, 270, 352, 376, 376, 380,
1277 352, 379, 379, 379, 377, 377, 343, 343, 343, 378,
1278 380, 380, 382, 266, 378, 378, 383, 383, 384, 384,
1279 385, 385, 386, 386, 385, 387, 387, 382, 382, 388,
1280 390, 389, 391, 392, 392, 394, 394, 397, 397, 391,
1281 391, 390, 390, 393, 388, 388, 389, 389, 395, 265,
1282 393, 393, 396, 396, 399, 258, 398, 396, 398, 398,
1283
1284 401, 395, 395, 249, 399, 399, 400, 400, 402, 402,
1285 247, 401, 401, 403, 403, 245, 403, 405, 405, 405,
1286 406, 406, 406, 425, 425, 425, 425, 434, 434, 435,
1287 435, 436, 436, 437, 437, 443, 443, 425, 241, 405,
1288 239, 425, 406, 407, 407, 407, 407, 407, 407, 407,
1289 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
1290 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
1291 407, 407, 407, 407, 407, 407, 226, 407, 407, 170,
1292 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
1293 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
1294
1295 407, 407, 407, 407, 407, 407, 408, 408, 408, 408,
1296 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
1297 408, 408, 408, 408, 408, 433, 168, 410, 408, 408,
1298 408, 408, 412, 412, 412, 412, 433, 433, 408, 410,
1299 408, 408, 167, 410, 438, 440, 412, 438, 438, 439,
1300 412, 442, 459, 459, 439, 439, 440, 440, 410, 413,
1301 413, 413, 413, 442, 442, 412, 408, 408, 408, 411,
1302 411, 411, 411, 413, 441, 461, 461, 413, 165, 444,
1303 445, 441, 441, 411, 444, 444, 446, 445, 445, 164,
1304 446, 446, 413, 451, 162, 411, 411, 411, 411, 411,
1305
1306 411, 447, 447, 447, 451, 451, 411, 411, 411, 411,
1307 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
1308 411, 411, 411, 411, 411, 411, 411, 411, 411, 415,
1309 415, 415, 415, 448, 449, 155, 448, 448, 450, 450,
1310 450, 449, 452, 415, 449, 449, 453, 415, 149, 452,
1311 452, 454, 454, 454, 457, 453, 453, 457, 457, 464,
1312 464, 141, 415, 416, 416, 416, 416, 416, 416, 416,
1313 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1314 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1315 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1316
1317 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1318 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1319 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
1320 416, 455, 460, 456, 485, 458, 138, 485, 485, 136,
1321 460, 460, 462, 463, 455, 455, 456, 456, 458, 458,
1322 463, 463, 462, 462, 465, 470, 470, 470, 470, 657,
1323 471, 471, 471, 471, 488, 488, 465, 465, 657, 470,
1324 487, 487, 487, 470, 471, 131, 486, 486, 471, 486,
1325 473, 473, 473, 473, 490, 490, 489, 596, 470, 491,
1326 491, 494, 494, 471, 473, 493, 491, 495, 473, 489,
1327
1328 489, 492, 496, 492, 492, 497, 493, 493, 498, 596,
1329 495, 495, 129, 473, 499, 499, 500, 496, 496, 501,
1330 497, 497, 502, 498, 498, 503, 503, 503, 500, 500,
1331 501, 501, 124, 502, 502, 504, 504, 505, 505, 506,
1332 506, 507, 507, 508, 508, 509, 510, 659, 509, 509,
1333 518, 518, 518, 519, 521, 521, 659, 510, 510, 520,
1334 520, 520, 520, 120, 519, 519, 522, 522, 523, 523,
1335 524, 526, 525, 524, 524, 525, 525, 527, 112, 528,
1336 529, 111, 526, 526, 528, 528, 530, 531, 531, 533,
1337 527, 527, 534, 529, 529, 532, 532, 530, 530, 89,
1338
1339 533, 533, 84, 534, 534, 535, 535, 535, 535, 82,
1340 520, 520, 543, 543, 544, 544, 545, 545, 545, 545,
1341 74, 520, 546, 546, 520, 547, 547, 69, 546, 548,
1342 548, 549, 549, 549, 551, 679, 547, 545, 550, 553,
1343 550, 550, 552, 552, 679, 551, 551, 554, 554, 555,
1344 553, 553, 556, 563, 563, 66, 535, 535, 559, 559,
1345 62, 555, 555, 631, 556, 556, 61, 535, 39, 559,
1346 535, 567, 567, 545, 557, 557, 557, 557, 545, 557,
1347 568, 545, 565, 593, 557, 631, 565, 565, 566, 566,
1348 568, 568, 569, 569, 566, 557, 570, 570, 571, 571,
1349
1350 572, 572, 585, 586, 586, 587, 587, 585, 585, 681,
1351 593, 624, 624, 692, 34, 631, 32, 24, 681, 19,
1352 16, 13, 692, 5, 4, 2, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 557, 0, 0, 557,
1354 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1355 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1356 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1357 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1358 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1359 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1360
1361 558, 558, 558, 558, 558, 558, 558, 558, 573, 573,
1362 573, 573, 575, 575, 575, 575, 575, 577, 577, 577,
1363 577, 0, 0, 575, 576, 576, 576, 576, 688, 0,
1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 575, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 688, 0, 0, 0, 0,
1367 0, 0, 0, 576, 0, 576, 0, 0, 0, 0,
1368 573, 0, 0, 573, 0, 575, 576, 0, 575, 577,
1369 576, 0, 577, 0, 0, 688, 576, 0, 0, 576,
1370 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1371
1372 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1373 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1374 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1375 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1376 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
1377 578, 578, 578, 578, 578, 578, 578, 588, 588, 588,
1378 588, 589, 589, 589, 589, 590, 590, 590, 590, 591,
1379 591, 591, 591, 592, 592, 592, 592, 594, 594, 594,
1380 594, 597, 597, 597, 597, 598, 598, 598, 598, 598,
1381 0, 597, 600, 600, 600, 600, 598, 0, 0, 599,
1382
1383 599, 599, 599, 599, 601, 601, 601, 601, 601, 0,
1384 599, 0, 0, 597, 0, 0, 0, 0, 598, 588,
1385 0, 0, 588, 589, 0, 0, 589, 590, 0, 0,
1386 590, 591, 599, 0, 591, 592, 0, 0, 592, 594,
1387 0, 0, 594, 597, 0, 0, 597, 0, 598, 0,
1388 0, 598, 0, 0, 600, 0, 0, 600, 603, 603,
1389 603, 603, 599, 0, 0, 599, 0, 601, 0, 0,
1390 601, 602, 602, 602, 602, 602, 604, 604, 604, 604,
1391 0, 0, 602, 605, 605, 605, 605, 606, 606, 606,
1392 606, 607, 607, 607, 607, 0, 0, 603, 0, 603,
1393
1394 609, 609, 609, 609, 602, 608, 608, 608, 608, 0,
1395 603, 0, 0, 0, 603, 604, 0, 604, 0, 0,
1396 603, 0, 605, 603, 605, 0, 0, 0, 604, 0,
1397 0, 0, 604, 0, 602, 605, 606, 602, 604, 605,
1398 607, 604, 0, 609, 0, 605, 0, 0, 605, 606,
1399 0, 0, 606, 607, 0, 0, 607, 610, 610, 610,
1400 610, 608, 609, 0, 0, 609, 0, 608, 0, 0,
1401 608, 611, 611, 611, 611, 611, 0, 611, 612, 612,
1402 612, 612, 611, 613, 613, 613, 613, 614, 614, 614,
1403 614, 0, 0, 611, 616, 616, 616, 616, 0, 612,
1404
1405 0, 0, 0, 0, 613, 0, 0, 0, 614, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 610,
1407 0, 0, 610, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 616, 611, 616, 0, 611, 0, 0,
1409 612, 0, 0, 612, 0, 613, 616, 0, 613, 614,
1410 616, 0, 614, 0, 0, 0, 616, 0, 0, 616,
1411 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1412 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1413 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1414 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1415
1416 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1417 619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
1418 619, 619, 619, 619, 619, 619, 619, 619, 626, 626,
1419 626, 626, 627, 627, 627, 627, 628, 628, 628, 628,
1420 632, 632, 632, 632, 633, 633, 633, 633, 634, 634,
1421 634, 634, 635, 635, 635, 635, 636, 636, 636, 636,
1422 640, 640, 640, 640, 0, 0, 636, 637, 637, 637,
1423 637, 637, 0, 0, 0, 0, 0, 0, 637, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 636, 0,
1425 626, 0, 0, 626, 627, 0, 0, 627, 628, 0,
1426
1427 637, 628, 632, 0, 0, 632, 633, 0, 0, 633,
1428 634, 640, 0, 634, 635, 0, 0, 635, 636, 0,
1429 0, 636, 640, 0, 0, 640, 641, 641, 641, 641,
1430 637, 0, 0, 637, 639, 639, 639, 639, 639, 639,
1431 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
1432 639, 639, 639, 0, 0, 0, 639, 639, 639, 639,
1433 642, 642, 642, 642, 0, 0, 639, 0, 639, 639,
1434 641, 643, 643, 643, 643, 0, 0, 644, 644, 644,
1435 644, 0, 644, 646, 646, 646, 646, 644, 641, 0,
1436 0, 641, 0, 0, 639, 639, 639, 639, 644, 0,
1437
1438 639, 0, 0, 0, 642, 647, 647, 647, 647, 647,
1439 643, 647, 643, 0, 645, 645, 645, 645, 0, 645,
1440 0, 0, 642, 643, 645, 642, 0, 643, 649, 649,
1441 649, 649, 0, 643, 0, 645, 643, 0, 647, 644,
1442 0, 0, 644, 0, 0, 646, 0, 0, 646, 648,
1443 648, 648, 648, 648, 650, 650, 650, 650, 0, 0,
1444 648, 652, 652, 652, 652, 0, 0, 649, 647, 649,
1445 0, 647, 661, 661, 661, 661, 645, 0, 0, 645,
1446 649, 0, 648, 0, 649, 662, 662, 662, 662, 0,
1447 649, 0, 0, 649, 663, 663, 663, 663, 664, 664,
1448
1449 664, 664, 665, 665, 665, 665, 0, 0, 0, 0,
1450 0, 0, 648, 0, 0, 648, 650, 0, 0, 650,
1451 0, 0, 0, 652, 0, 0, 652, 0, 0, 0,
1452 0, 0, 0, 0, 661, 0, 0, 661, 0, 0,
1453 0, 0, 667, 667, 667, 667, 0, 662, 0, 0,
1454 662, 668, 668, 668, 668, 0, 663, 0, 0, 663,
1455 664, 0, 0, 664, 665, 0, 0, 665, 666, 666,
1456 666, 666, 666, 666, 666, 666, 666, 666, 666, 666,
1457 666, 666, 666, 666, 666, 666, 666, 0, 0, 0,
1458 666, 666, 666, 666, 0, 667, 0, 668, 0, 0,
1459
1460 666, 0, 666, 666, 667, 0, 0, 667, 669, 669,
1461 669, 669, 0, 668, 0, 0, 668, 670, 670, 670,
1462 670, 0, 670, 673, 673, 673, 673, 673, 666, 666,
1463 666, 671, 671, 671, 671, 671, 0, 671, 672, 672,
1464 672, 672, 672, 0, 672, 676, 676, 676, 676, 670,
1465 674, 674, 674, 674, 674, 0, 674, 682, 682, 682,
1466 682, 0, 0, 0, 671, 0, 676, 0, 0, 0,
1467 669, 672, 0, 669, 675, 675, 675, 675, 675, 670,
1468 675, 0, 670, 674, 0, 675, 673, 0, 0, 673,
1469 683, 683, 683, 683, 671, 0, 675, 671, 0, 0,
1470
1471 0, 672, 0, 0, 672, 0, 0, 676, 0, 0,
1472 676, 0, 0, 674, 0, 0, 674, 0, 0, 682,
1473 0, 0, 682, 684, 684, 684, 684, 685, 685, 685,
1474 685, 686, 686, 686, 686, 0, 0, 675, 0, 0,
1475 675, 687, 687, 687, 687, 689, 689, 689, 689, 0,
1476 689, 0, 683, 0, 0, 683, 0, 690, 690, 690,
1477 690, 690, 0, 690, 0, 693, 693, 693, 693, 686,
1478 0, 0, 0, 0, 0, 0, 0, 689, 0, 0,
1479 0, 687, 0, 0, 0, 684, 0, 0, 684, 685,
1480 690, 0, 685, 686, 0, 0, 686, 696, 696, 696,
1481
1482 696, 0, 0, 687, 0, 0, 687, 689, 693, 0,
1483 689, 697, 697, 697, 697, 698, 698, 698, 698, 0,
1484 690, 0, 0, 690, 0, 0, 0, 693, 0, 0,
1485 693, 694, 694, 694, 694, 694, 694, 694, 694, 694,
1486 694, 694, 694, 694, 694, 694, 694, 694, 694, 694,
1487 0, 0, 0, 694, 694, 694, 694, 0, 0, 696,
1488 0, 0, 696, 694, 0, 694, 694, 0, 699, 699,
1489 699, 699, 0, 697, 0, 0, 697, 698, 0, 0,
1490 698, 700, 700, 700, 700, 701, 701, 701, 701, 0,
1491 0, 694, 694, 694, 695, 695, 695, 695, 695, 695,
1492
1493 695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
1494 695, 695, 695, 0, 0, 0, 695, 695, 695, 695,
1495 702, 702, 702, 702, 0, 0, 695, 0, 695, 695,
1496 699, 0, 0, 699, 703, 703, 703, 703, 0, 0,
1497 0, 0, 0, 700, 0, 0, 700, 701, 0, 0,
1498 701, 0, 0, 0, 695, 695, 695, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 702, 0, 0, 702, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 703, 0, 0, 703,
1503
1504 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
1505 705, 705, 705, 706, 706, 0, 706, 706, 706, 706,
1506 706, 706, 706, 706, 706, 706, 707, 0, 707, 707,
1507 707, 708, 708, 0, 708, 708, 708, 708, 708, 708,
1508 708, 708, 708, 708, 709, 709, 709, 709, 709, 709,
1509 709, 709, 0, 0, 0, 709, 709, 710, 710, 0,
1510 0, 710, 710, 0, 710, 710, 710, 710, 710, 711,
1511 0, 0, 711, 711, 711, 711, 711, 712, 712, 0,
1512 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
1513 713, 713, 713, 713, 713, 713, 713, 713, 0, 0,
1514
1515 0, 713, 713, 714, 714, 714, 714, 714, 714, 714,
1516 0, 714, 714, 714, 714, 714, 715, 715, 715, 715,
1517 715, 715, 715, 715, 715, 715, 715, 715, 715, 716,
1518 716, 0, 716, 0, 716, 716, 716, 717, 0, 0,
1519 717, 717, 717, 717, 717, 718, 718, 718, 718, 718,
1520 718, 718, 718, 0, 0, 0, 718, 719, 719, 719,
1521 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1522 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1523 720, 720, 720, 721, 721, 0, 0, 721, 0, 0,
1524 721, 721, 722, 722, 722, 722, 722, 722, 722, 722,
1525
1526 0, 0, 0, 722, 722, 723, 723, 723, 723, 723,
1527 723, 723, 723, 0, 0, 0, 723, 724, 724, 724,
1528 724, 724, 724, 724, 724, 724, 724, 724, 724, 724,
1529 725, 725, 0, 0, 725, 0, 0, 725, 725, 726,
1530 0, 0, 726, 0, 726, 726, 726, 727, 727, 727,
1531 727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
1532 728, 728, 728, 728, 728, 728, 728, 728, 0, 0,
1533 0, 728, 729, 729, 0, 0, 729, 0, 0, 729,
1534 729, 730, 0, 0, 730, 730, 731, 731, 731, 731,
1535 731, 731, 731, 731, 731, 731, 731, 731, 731, 732,
1536
1537 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
1538 732, 732, 733, 733, 733, 733, 733, 0, 733, 733,
1539 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
1540 734, 734, 734, 735, 735, 735, 735, 735, 735, 735,
1541 735, 735, 735, 735, 735, 735, 736, 736, 736, 736,
1542 736, 736, 736, 736, 736, 736, 736, 736, 736, 737,
1543 737, 737, 737, 737, 0, 737, 737, 738, 738, 738,
1544 738, 738, 0, 738, 738, 739, 739, 739, 739, 739,
1545 0, 739, 739, 740, 740, 740, 740, 740, 740, 740,
1546 740, 740, 740, 740, 740, 740, 741, 741, 741, 741,
1547
1548 741, 741, 741, 741, 741, 741, 741, 741, 741, 742,
1549 742, 742, 742, 742, 742, 742, 742, 742, 742, 742,
1550 742, 743, 743, 0, 743, 743, 743, 743, 743, 743,
1551 743, 743, 743, 743, 744, 744, 744, 744, 744, 744,
1552 744, 744, 744, 744, 744, 744, 744, 745, 745, 745,
1553 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
1554 746, 746, 0, 746, 746, 746, 746, 746, 746, 746,
1555 746, 746, 746, 747, 747, 747, 747, 747, 747, 747,
1556 747, 747, 747, 747, 747, 747, 748, 748, 748, 748,
1557 748, 748, 748, 748, 748, 748, 748, 748, 748, 704,
1558
1559 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1560 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1561 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1562 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1563 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1564 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
1565 704, 704, 704, 704, 704, 704, 704, 704
1566 } ;
1567
1568 static yy_state_type yy_last_accepting_state;
1569 static char *yy_last_accepting_cpos;
1570
1571 extern int as3__flex_debug;
1572 int as3__flex_debug = 0;
1573
1574 /* The intent behind this definition is that it'll catch
1575 * any uses of REJECT which flex missed.
1576 */
1577 #define REJECT reject_used_but_not_detected
1578 #define yymore() yymore_used_but_not_detected
1579 #define YY_MORE_ADJ 0
1580 #define YY_RESTORE_YY_MORE_OFFSET
1581 char *as3_text;
1582 #line 1 "tokenizer.lex"
1583 /* tokenizer.lex
1584
1585 Routines for compiling Flash2 AVM2 ABC Actionscript
1586
1587 Extension module for the rfxswf library.
1588 Part of the swftools package.
1589
1590 Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
1591
1592 This program is free software; you can redistribute it and/or modify
1593 it under the terms of the GNU General Public License as published by
1594 the Free Software Foundation; either version 2 of the License, or
1595 (at your option) any later version.
1596
1597 This program is distributed in the hope that it will be useful,
1598 but WITHOUT ANY WARRANTY; without even the implied warranty of
1599 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1600 GNU General Public License for more details.
1601
1602 You should have received a copy of the GNU General Public License
1603 along with this program; if not, write to the Free Software
1604 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1605 #line 24 "tokenizer.lex"
1606
1607
1608 #include <string.h>
1609 #include <stdlib.h>
1610 #include <stdio.h>
1611 #include <stdarg.h>
1612 #include "../utf8.h"
1613 #include "common.h"
1614 #include "tokenizer.h"
1615 #include "files.h"
1616
1617 unsigned int as3_tokencount = 0;
1618
dbg(const char * format,...)1619 static void dbg(const char*format, ...)
1620 {
1621 char buf[1024];
1622 int l;
1623 va_list arglist;
1624 if(as3_verbosity<3)
1625 return;
1626 va_start(arglist, format);
1627 vsnprintf(buf, sizeof(buf)-1, format, arglist);
1628 va_end(arglist);
1629 l = strlen(buf);
1630 while(l && buf[l-1]=='\n') {
1631 buf[l-1] = 0;
1632 l--;
1633 }
1634 printf("(tokenizer) ");
1635 printf("%s\n", buf);
1636 fflush(stdout);
1637 }
1638
1639 #ifndef YY_CURRENT_BUFFER
1640 #define YY_CURRENT_BUFFER yy_current_buffer
1641 #endif
1642
1643 static void*as3_buffer=0;
1644 static int as3_buffer_pos=0;
1645 static int as3_buffer_len=0;
as3_file_input(FILE * fi)1646 void as3_file_input(FILE*fi)
1647 {
1648 as3_in = fi;
1649 as3_buffer = 0;
1650 }
as3_buffer_input(void * buffer,int len)1651 void as3_buffer_input(void*buffer, int len)
1652 {
1653 if(!buffer)
1654 syntaxerror("trying to parse zero bytearray");
1655 as3_buffer = buffer;
1656 as3_buffer_len = len;
1657 as3_buffer_pos = 0;
1658 as3_in = 0;
1659 }
1660
1661 //#undef BEGIN
1662 //#define BEGIN(x) {(yy_start) = 1 + 2 *x;dbg("entering state %d", x);}
1663
1664 #define YY_INPUT(buf,result,max_size) { \
1665 if(!as3_buffer) { \
1666 errno=0; \
1667 while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1668 { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1669 errno=0; clearerr(as3_in); \
1670 } \
1671 } else { \
1672 int to_read = max_size; \
1673 if(to_read + as3_buffer_pos > as3_buffer_len) \
1674 to_read = as3_buffer_len - as3_buffer_pos; \
1675 memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1676 as3_buffer_pos += to_read; \
1677 result=to_read; \
1678 } \
1679 }
1680
handleInclude(char * text,int len,char quotes)1681 void handleInclude(char*text, int len, char quotes)
1682 {
1683 char*filename = 0;
1684 if(quotes) {
1685 char*p1 = strchr(text, '"');
1686 char*p2 = strrchr(text, '"');
1687 if(!p1 || !p2 || p1==p2) {
1688 syntaxerror("Invalid include in line %d\n", current_line);
1689 }
1690 *p2 = 0;
1691 filename = strdup(p1+1);
1692 } else {
1693 int i1=0,i2=len;
1694 // find start
1695 while(!strchr(" \n\r\t\xa0", text[i1])) i1++;
1696 // strip
1697 while(strchr(" \n\r\t\xa0", text[i1])) i1++;
1698 while(strchr(" \n\r\t\xa0", text[i2-1])) i2--;
1699 if(i2!=len) text[i2]=0;
1700 filename = strdup(&text[i1]);
1701 }
1702
1703 char*fullfilename = find_file(filename, 1);
1704 enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1705 as3_in = fopen(fullfilename, "rb");
1706 if (!as3_in) {
1707 syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1708 }
1709
1710 as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1711 //BEGIN(DEFAULT); keep context
1712 }
1713
do_unescape(const char * s,const char * end,char * n)1714 static int do_unescape(const char*s, const char*end, char*n)
1715 {
1716 char*o = n;
1717 int len=0;
1718 while(s<end) {
1719 if(*s!='\\') {
1720 if(o) o[len] = *s;len++;
1721 s++;
1722 continue;
1723 }
1724 s++; //skip past '\'
1725 if(s==end) syntaxerror("invalid \\ at end of string");
1726
1727 /* handle the various line endings (mac, dos, unix) */
1728 if(*s=='\r') {
1729 s++;
1730 if(s==end) break;
1731 if(*s=='\n')
1732 s++;
1733 continue;
1734 }
1735 if(*s=='\n') {
1736 s++;
1737 continue;
1738 }
1739 switch(*s) {
1740 case '\\': if(o) o[len] = '\\';s++;len++; break;
1741 case '"': if(o) o[len] = '"';s++;len++; break;
1742 case '\'': if(o) o[len] = '\'';s++;len++; break;
1743 case 'b': if(o) o[len] = '\b';s++;len++; break;
1744 case 'f': if(o) o[len] = '\f';s++;len++; break;
1745 case 'n': if(o) o[len] = '\n';s++;len++; break;
1746 case 'r': if(o) o[len] = '\r';s++;len++; break;
1747 case 't': if(o) o[len] = '\t';s++;len++; break;
1748 case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1749 unsigned int num=0;
1750 int nr = 0;
1751 while(strchr("01234567", *s) && nr<3 && s<end) {
1752 num <<= 3;
1753 num |= *s-'0';
1754 nr++;
1755 s++;
1756 }
1757 if(num>256)
1758 syntaxerror("octal number out of range (0-255): %d", num);
1759 if(o) o[len] = num;len++;
1760 continue;
1761 }
1762 case 'x': case 'u': {
1763 int max=2;
1764 char bracket = 0;
1765 char unicode = 0;
1766 if(*s == 'u') {
1767 max = 6;
1768 unicode = 1;
1769 }
1770 s++;
1771 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1772 if(*s == '{') {
1773 s++;
1774 if(s==end) syntaxerror("invalid \\u{ at end of string");
1775 bracket=1;
1776 }
1777 unsigned int num=0;
1778 int nr = 0;
1779 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1780 num <<= 4;
1781 if(*s>='0' && *s<='9') num |= *s - '0';
1782 if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1783 if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1784 nr++;
1785 s++;
1786 }
1787 if(bracket) {
1788 if(*s=='}' && s<end) {
1789 s++;
1790 } else {
1791 syntaxerror("missing terminating '}'");
1792 }
1793 }
1794 if(unicode) {
1795 char*utf8 = getUTF8(num);
1796 while(*utf8) {
1797 if(o) o[len] = *utf8;utf8++;len++;
1798 }
1799 } else {
1800 if(num>256)
1801 syntaxerror("byte out of range (0-255): %d", num);
1802 if(o) o[len] = num;len++;
1803 }
1804 break;
1805 }
1806 default: {
1807 if(o) {
1808 o[len+0] = '\\';
1809 o[len+1] = *s;
1810 }
1811 s++;
1812 len+=2;
1813 break;
1814 }
1815 }
1816 }
1817 if(o) o[len]=0;
1818 return len;
1819 }
1820
string_unescape(const char * in,int l)1821 static string_t string_unescape(const char*in, int l)
1822 {
1823 const char*s = in;
1824 const char*end = &in[l];
1825
1826 int len = do_unescape(s, end, 0);
1827 char*n = (char*)malloc(len+1);
1828 do_unescape(s, end, n);
1829 string_t out = string_new(n, len);
1830 return out;
1831 }
1832
handleCData(char * s,int len)1833 static void handleCData(char*s, int len)
1834 {
1835 a3_lval.str.str = s+9; // <![CDATA[
1836 a3_lval.str.len = len-9-3;// ]]>
1837 a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1838 }
1839
handleRaw(char * s,int len)1840 static void handleRaw(char*s, int len)
1841 {
1842 a3_lval.str.len = len;
1843 a3_lval.str.str = strdup_n(s, a3_lval.str.len);
1844 }
1845
handleString(char * s,int len)1846 static void handleString(char*s, int len)
1847 {
1848 if(s[0]=='"') {
1849 if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1850 s++;len-=2;
1851 }
1852 else if(s[0]=='\'') {
1853 if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1854 s++;len-=2;
1855 }
1856 else syntaxerror("String incorrectly terminated");
1857
1858 a3_lval.str = string_unescape(s, len);
1859 }
1860
1861
1862 char start_of_expression;
1863
m(int type)1864 static inline int m(int type)
1865 {
1866 a3_lval.token = type;
1867 return type;
1868 }
1869
1870 static char numberbuf[64];
nrbuf()1871 static char*nrbuf()
1872 {
1873 if(as3_leng>sizeof(numberbuf)-1)
1874 syntaxerror("decimal number overflow");
1875 char*s = numberbuf;
1876 memcpy(s, as3_text, as3_leng);
1877 s[as3_leng]=0;
1878 return s;
1879 }
1880
setint(int v)1881 static inline int setint(int v)
1882 {
1883 a3_lval.number_int = v;
1884 return T_INT;
1885 }
setfloat(double v)1886 static inline int setfloat(double v)
1887 {
1888 a3_lval.number_float = v;
1889 return T_FLOAT;
1890 }
1891
handlefloat()1892 static inline int handlefloat()
1893 {
1894 char*s = nrbuf();
1895 a3_lval.number_float = atof(s);
1896 return T_FLOAT;
1897 }
1898
handleint()1899 static inline int handleint()
1900 {
1901 char*s = nrbuf();
1902 char l = (as3_text[0]=='-');
1903
1904 //char*max = l?"1073741824":"2147483647";
1905 char*max = l?"2147483648":"2147483647";
1906
1907 if(as3_leng-l>10) {
1908 as3_softwarning("integer overflow: %s (converted to Number)", s);
1909 return handlefloat();
1910 }
1911 if(as3_leng-l==10) {
1912 int t;
1913 for(t=0;t<as3_leng-l;t++) {
1914 if(as3_text[l+t]>max[t]) {
1915 as3_softwarning("integer overflow: %s (converted to Number)", s);
1916 return handlefloat();
1917 }
1918 else if(as3_text[l+t]<max[t])
1919 break;
1920 }
1921 }
1922 if(as3_text[0]=='-') {
1923 int v = atoi(s);
1924 return setint(v);
1925 } else {
1926 unsigned int v = 0;
1927 int t;
1928 for(t=0;t<as3_leng;t++) {
1929 v*=10;
1930 v+=as3_text[t]-'0';
1931 }
1932 return setint(v);
1933 }
1934 }
1935
handlehexfloat()1936 static inline int handlehexfloat()
1937 {
1938 char l = (as3_text[0]=='-')+2;
1939 double d=0;
1940 char dot=0;
1941 double base=1;
1942 int t;
1943 for(t=l;t<as3_leng;t++) {
1944 char c = as3_text[t];
1945 if(c=='.') {
1946 dot=1;
1947 continue;
1948 }
1949 if(!dot) {
1950 d*=16;
1951 } else {
1952 base*=1/16.0;
1953 }
1954 if(c>='0' && c<='9')
1955 d+=(c&15)*base;
1956 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1957 d+=((c&0x0f)+9)*base;
1958 }
1959 return setfloat(d);
1960 }
handlehex()1961 static inline int handlehex()
1962 {
1963 char l = (as3_text[0]=='-')+2;
1964 int len = as3_leng;
1965
1966 if(len-l>8) {
1967 char*s = nrbuf();
1968 syntaxerror("integer overflow %s", s);
1969 }
1970
1971 int t;
1972 unsigned int v = 0;
1973 for(t=l;t<len;t++) {
1974 v<<=4;
1975 char c = as3_text[t];
1976 if(c>='0' && c<='9')
1977 v|=(c&15);
1978 else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1979 v|=(c&0x0f)+9;
1980 }
1981 if(l && v>=0x80000000) {
1982 char*s = nrbuf();
1983 as3_softwarning("integer overflow: %s (converted to Number)", s);
1984 return setfloat(v);
1985 }
1986 if(!l && v>0x7fffffff) {
1987 char*s = nrbuf();
1988 as3_softwarning("integer overflow: %s (converted to Number)", s);
1989 return setfloat(v);
1990 }
1991
1992 if(l==3) {
1993 return setint(-(int)v);
1994 } else {
1995 return setint(v);
1996 }
1997 }
1998
handleLabel(char * text,int len)1999 void handleLabel(char*text, int len)
2000 {
2001 int t;
2002 for(t=len-1;t>=0;--t) {
2003 if(text[t]!=' ' &&
2004 text[t]!=':')
2005 break;
2006 }
2007 char*s = malloc(t+1);
2008 memcpy(s, as3_text, t);
2009 s[t]=0;
2010 a3_lval.id = s;
2011 }
2012
handleregexp()2013 static int handleregexp()
2014 {
2015 char*s = malloc(as3_leng);
2016 int len=as3_leng-1;
2017 memcpy(s, as3_text+1, len);
2018 s[len] = 0;
2019 int t;
2020 for(t=len;t>=0;--t) {
2021 if(s[t]=='/') {
2022 s[t] = 0;
2023 break;
2024 }
2025 }
2026 a3_lval.regexp.pattern = s;
2027 if(t==len) {
2028 a3_lval.regexp.options = 0;
2029 } else {
2030 a3_lval.regexp.options = s+t+1;
2031 }
2032 return T_REGEXP;
2033 }
2034
2035 void initialize_scanner();
2036 #define YY_USER_INIT initialize_scanner();
2037
2038 /* count the number of lines+columns consumed by this token */
l()2039 static inline void l() {
2040 int t;
2041 for(t=0;t<as3_leng;t++) {
2042 if(as3_text[t]=='\n') {
2043 current_line++;
2044 current_column=0;
2045 } else {
2046 current_column++;
2047 }
2048 }
2049 }
2050 /* count the number of columns consumed by this token */
c()2051 static inline void c() {
2052 current_column+=as3_leng;
2053 }
2054
handleIdentifier()2055 static inline int handleIdentifier()
2056 {
2057 char*s = malloc(as3_leng+1);
2058 memcpy(s, as3_text, as3_leng);
2059 s[as3_leng]=0;
2060 a3_lval.id = s;
2061 return T_IDENTIFIER;
2062 }
2063 static int tokenerror();
2064
2065
2066 //Boolean {c();return m(KW_BOOLEAN);}
2067 //int {c();return m(KW_INT);}
2068 //uint {c();return m(KW_UINT);}
2069 //Number {c();return m(KW_NUMBER);}
2070 //XMLCOMMENT <!--([^->]|(-/[^-])|(--/[^>]))*-->
2071
2072 //{XMLCOMMENT}
2073
2074
2075
2076
2077
2078
2079 #line 2080 "tokenizer.yy.c"
2080
2081 #define INITIAL 0
2082 #define REGEXPOK 1
2083 #define BEGINNING 2
2084 #define DEFAULT 3
2085 #define XMLTEXT 4
2086 #define XML 5
2087
2088 #ifndef YY_NO_UNISTD_H
2089 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2090 * down here because we want the user's section 1 to have been scanned first.
2091 * The user has a chance to override it with an option.
2092 */
2093 #include <unistd.h>
2094 #endif
2095
2096 #ifndef YY_EXTRA_TYPE
2097 #define YY_EXTRA_TYPE void *
2098 #endif
2099
2100 static int yy_init_globals (void );
2101
2102 /* Accessor methods to globals.
2103 These are made visible to non-reentrant scanners for convenience. */
2104
2105 int as3_lex_destroy (void );
2106
2107 int as3_get_debug (void );
2108
2109 void as3_set_debug (int debug_flag );
2110
2111 YY_EXTRA_TYPE as3_get_extra (void );
2112
2113 void as3_set_extra (YY_EXTRA_TYPE user_defined );
2114
2115 FILE *as3_get_in (void );
2116
2117 void as3_set_in (FILE * in_str );
2118
2119 FILE *as3_get_out (void );
2120
2121 void as3_set_out (FILE * out_str );
2122
2123 yy_size_t as3_get_leng (void );
2124
2125 char *as3_get_text (void );
2126
2127 int as3_get_lineno (void );
2128
2129 void as3_set_lineno (int line_number );
2130
2131 /* Macros after this point can all be overridden by user definitions in
2132 * section 1.
2133 */
2134
2135 #ifndef YY_SKIP_YYWRAP
2136 #ifdef __cplusplus
2137 extern "C" int as3_wrap (void );
2138 #else
2139 extern int as3_wrap (void );
2140 #endif
2141 #endif
2142
2143 static void yyunput (int c,char *buf_ptr );
2144
2145 #ifndef yytext_ptr
2146 static void yy_flex_strncpy (char *,yyconst char *,int );
2147 #endif
2148
2149 #ifdef YY_NEED_STRLEN
2150 static int yy_flex_strlen (yyconst char * );
2151 #endif
2152
2153 #ifndef YY_NO_INPUT
2154
2155 #ifdef __cplusplus
2156 static int yyinput (void );
2157 #else
2158 static int input (void );
2159 #endif
2160
2161 #endif
2162
2163 /* Amount of stuff to slurp up with each read. */
2164 #ifndef YY_READ_BUF_SIZE
2165 #define YY_READ_BUF_SIZE 8192
2166 #endif
2167
2168 /* Copy whatever the last rule matched to the standard output. */
2169 #ifndef ECHO
2170 /* This used to be an fputs(), but since the string might contain NUL's,
2171 * we now use fwrite().
2172 */
2173 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
2174 #endif
2175
2176 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2177 * is returned in "result".
2178 */
2179 #ifndef YY_INPUT
2180 #define YY_INPUT(buf,result,max_size) \
2181 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2182 { \
2183 int c = '*'; \
2184 yy_size_t n; \
2185 for ( n = 0; n < max_size && \
2186 (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
2187 buf[n] = (char) c; \
2188 if ( c == '\n' ) \
2189 buf[n++] = (char) c; \
2190 if ( c == EOF && ferror( as3_in ) ) \
2191 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2192 result = n; \
2193 } \
2194 else \
2195 { \
2196 errno=0; \
2197 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
2198 { \
2199 if( errno != EINTR) \
2200 { \
2201 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2202 break; \
2203 } \
2204 errno=0; \
2205 clearerr(as3_in); \
2206 } \
2207 }\
2208 \
2209
2210 #endif
2211
2212 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2213 * we don't want an extra ';' after the "return" because that will cause
2214 * some compilers to complain about unreachable statements.
2215 */
2216 #ifndef yyterminate
2217 #define yyterminate() return YY_NULL
2218 #endif
2219
2220 /* Number of entries by which start-condition stack grows. */
2221 #ifndef YY_START_STACK_INCR
2222 #define YY_START_STACK_INCR 25
2223 #endif
2224
2225 /* Report a fatal error. */
2226 #ifndef YY_FATAL_ERROR
2227 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2228 #endif
2229
2230 /* end tables serialization structures and prototypes */
2231
2232 /* Default declaration of generated scanner - a define so the user can
2233 * easily add parameters.
2234 */
2235 #ifndef YY_DECL
2236 #define YY_DECL_IS_OURS 1
2237
2238 extern int as3_lex (void);
2239
2240 #define YY_DECL int as3_lex (void)
2241 #endif /* !YY_DECL */
2242
2243 /* Code executed at the beginning of each rule, after as3_text and as3_leng
2244 * have been set up.
2245 */
2246 #ifndef YY_USER_ACTION
2247 #define YY_USER_ACTION
2248 #endif
2249
2250 /* Code executed at the end of each rule. */
2251 #ifndef YY_BREAK
2252 #define YY_BREAK break;
2253 #endif
2254
2255 #define YY_RULE_SETUP \
2256 if ( as3_leng > 0 ) \
2257 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2258 (as3_text[as3_leng - 1] == '\n'); \
2259 YY_USER_ACTION
2260
2261 /** The main scanner function which does all the work.
2262 */
2263 YY_DECL
2264 {
2265 register yy_state_type yy_current_state;
2266 register char *yy_cp, *yy_bp;
2267 register int yy_act;
2268
2269 #line 536 "tokenizer.lex"
2270
2271
2272
2273 #line 2274 "tokenizer.yy.c"
2274
2275 if ( !(yy_init) )
2276 {
2277 (yy_init) = 1;
2278
2279 #ifdef YY_USER_INIT
2280 YY_USER_INIT;
2281 #endif
2282
2283 if ( ! (yy_start) )
2284 (yy_start) = 1; /* first start state */
2285
2286 if ( ! as3_in )
2287 as3_in = stdin;
2288
2289 if ( ! as3_out )
2290 as3_out = stdout;
2291
2292 if ( ! YY_CURRENT_BUFFER ) {
2293 as3_ensure_buffer_stack ();
2294 YY_CURRENT_BUFFER_LVALUE =
2295 as3__create_buffer(as3_in,YY_BUF_SIZE );
2296 }
2297
2298 as3__load_buffer_state( );
2299 }
2300
2301 while ( 1 ) /* loops until end-of-file is reached */
2302 {
2303 yy_cp = (yy_c_buf_p);
2304
2305 /* Support of as3_text. */
2306 *yy_cp = (yy_hold_char);
2307
2308 /* yy_bp points to the position in yy_ch_buf of the start of
2309 * the current run.
2310 */
2311 yy_bp = yy_cp;
2312
2313 yy_current_state = (yy_start);
2314 yy_current_state += YY_AT_BOL();
2315 yy_match:
2316 do
2317 {
2318 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2319 if ( yy_accept[yy_current_state] )
2320 {
2321 (yy_last_accepting_state) = yy_current_state;
2322 (yy_last_accepting_cpos) = yy_cp;
2323 }
2324 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2325 {
2326 yy_current_state = (int) yy_def[yy_current_state];
2327 if ( yy_current_state >= 705 )
2328 yy_c = yy_meta[(unsigned int) yy_c];
2329 }
2330 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2331 ++yy_cp;
2332 }
2333 while ( yy_current_state != 704 );
2334 yy_cp = (yy_last_accepting_cpos);
2335 yy_current_state = (yy_last_accepting_state);
2336
2337 yy_find_action:
2338 yy_act = yy_accept[yy_current_state];
2339
2340 YY_DO_BEFORE_ACTION;
2341
2342 do_action: /* This label is used only to access EOF actions. */
2343
2344 switch ( yy_act )
2345 { /* beginning of action switch */
2346 case 0: /* must back up */
2347 /* undo the effects of YY_DO_BEFORE_ACTION */
2348 *yy_cp = (yy_hold_char);
2349 yy_cp = (yy_last_accepting_cpos);
2350 yy_current_state = (yy_last_accepting_state);
2351 goto yy_find_action;
2352
2353 case 1:
2354 /* rule 1 can match eol */
2355 YY_RULE_SETUP
2356 #line 539 "tokenizer.lex"
2357 {l(); /* single line comment */}
2358 YY_BREAK
2359 case 2:
2360 /* rule 2 can match eol */
2361 YY_RULE_SETUP
2362 #line 540 "tokenizer.lex"
2363 {l(); /* multi line comment */}
2364 YY_BREAK
2365 case 3:
2366 YY_RULE_SETUP
2367 #line 541 "tokenizer.lex"
2368 {syntaxerror("syntax error: unterminated comment", as3_text);}
2369 YY_BREAK
2370 case 4:
2371 /* rule 4 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 */
2375 YY_RULE_SETUP
2376 #line 543 "tokenizer.lex"
2377 {l();handleInclude(as3_text, as3_leng, 1);}
2378 YY_BREAK
2379 case 5:
2380 /* rule 5 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 */
2384 YY_RULE_SETUP
2385 #line 544 "tokenizer.lex"
2386 {l();handleInclude(as3_text, as3_leng, 0);}
2387 YY_BREAK
2388 case 6:
2389 /* rule 6 can match eol */
2390 YY_RULE_SETUP
2391 #line 545 "tokenizer.lex"
2392 {l(); BEGIN(DEFAULT);handleString(as3_text, as3_leng);return T_STRING;}
2393 YY_BREAK
2394 case 7:
2395 /* rule 7 can match eol */
2396 YY_RULE_SETUP
2397 #line 546 "tokenizer.lex"
2398 {l(); BEGIN(DEFAULT);handleCData(as3_text, as3_leng);return T_STRING;}
2399 YY_BREAK
2400
2401 case 8:
2402 /* rule 8 can match eol */
2403 YY_RULE_SETUP
2404 #line 549 "tokenizer.lex"
2405 {l(); BEGIN(DEFAULT);handleRaw(as3_text, as3_leng);return T_STRING;}
2406 YY_BREAK
2407
2408
2409 case 9:
2410 /* rule 9 can match eol */
2411 YY_RULE_SETUP
2412 #line 553 "tokenizer.lex"
2413 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2414 YY_BREAK
2415 case 10:
2416 YY_RULE_SETUP
2417 #line 554 "tokenizer.lex"
2418 {c(); BEGIN(REGEXPOK);return m('{');}
2419 YY_BREAK
2420 case 11:
2421 YY_RULE_SETUP
2422 #line 555 "tokenizer.lex"
2423 {c(); return m('<');}
2424 YY_BREAK
2425 case 12:
2426 YY_RULE_SETUP
2427 #line 556 "tokenizer.lex"
2428 {c(); return m('/');}
2429 YY_BREAK
2430 case 13:
2431 YY_RULE_SETUP
2432 #line 557 "tokenizer.lex"
2433 {c(); return m('>');}
2434 YY_BREAK
2435 case 14:
2436 YY_RULE_SETUP
2437 #line 558 "tokenizer.lex"
2438 {c(); return m('=');}
2439 YY_BREAK
2440 case 15:
2441 YY_RULE_SETUP
2442 #line 559 "tokenizer.lex"
2443 {c(); handleRaw(as3_text, as3_leng);return T_IDENTIFIER;}
2444 YY_BREAK
2445 case 16:
2446 /* rule 16 can match eol */
2447 YY_RULE_SETUP
2448 #line 560 "tokenizer.lex"
2449 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2450 YY_BREAK
2451 case YY_STATE_EOF(XML):
2452 #line 561 "tokenizer.lex"
2453 {syntaxerror("unexpected end of file");}
2454 YY_BREAK
2455
2456
2457 case 17:
2458 /* rule 17 can match eol */
2459 YY_RULE_SETUP
2460 #line 565 "tokenizer.lex"
2461 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2462 YY_BREAK
2463 case 18:
2464 YY_RULE_SETUP
2465 #line 566 "tokenizer.lex"
2466 {c(); BEGIN(REGEXPOK);return m('{');}
2467 YY_BREAK
2468 case 19:
2469 YY_RULE_SETUP
2470 #line 567 "tokenizer.lex"
2471 {c(); BEGIN(XML);return m('<');}
2472 YY_BREAK
2473 case 20:
2474 YY_RULE_SETUP
2475 #line 568 "tokenizer.lex"
2476 {c(); return m('>');}
2477 YY_BREAK
2478 case 21:
2479 /* rule 21 can match eol */
2480 YY_RULE_SETUP
2481 #line 569 "tokenizer.lex"
2482 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2483 YY_BREAK
2484 case 22:
2485 /* rule 22 can match eol */
2486 YY_RULE_SETUP
2487 #line 570 "tokenizer.lex"
2488 {l(); handleRaw(as3_text, as3_leng);return T_STRING;}
2489 YY_BREAK
2490 case YY_STATE_EOF(XMLTEXT):
2491 #line 571 "tokenizer.lex"
2492 {syntaxerror("unexpected end of file");}
2493 YY_BREAK
2494
2495
2496 case 23:
2497 YY_RULE_SETUP
2498 #line 575 "tokenizer.lex"
2499 {c(); BEGIN(DEFAULT);return handleregexp();}
2500 YY_BREAK
2501 case 24:
2502 /* rule 24 can match eol */
2503 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2504 (yy_c_buf_p) = yy_cp -= 1;
2505 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2506 YY_RULE_SETUP
2507 #line 576 "tokenizer.lex"
2508 {c(); BEGIN(DEFAULT);return handlehex();}
2509 YY_BREAK
2510 case 25:
2511 /* rule 25 can match eol */
2512 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2513 (yy_c_buf_p) = yy_cp -= 1;
2514 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2515 YY_RULE_SETUP
2516 #line 577 "tokenizer.lex"
2517 {c(); BEGIN(DEFAULT);return handlehexfloat();}
2518 YY_BREAK
2519 case 26:
2520 /* rule 26 can match eol */
2521 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2522 (yy_c_buf_p) = yy_cp -= 1;
2523 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2524 YY_RULE_SETUP
2525 #line 578 "tokenizer.lex"
2526 {c(); BEGIN(DEFAULT);return handleint();}
2527 YY_BREAK
2528 case 27:
2529 /* rule 27 can match eol */
2530 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2531 (yy_c_buf_p) = yy_cp -= 1;
2532 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2533 YY_RULE_SETUP
2534 #line 579 "tokenizer.lex"
2535 {c(); BEGIN(DEFAULT);return handlefloat();}
2536 YY_BREAK
2537
2538 case 28:
2539 YY_RULE_SETUP
2540 #line 582 "tokenizer.lex"
2541 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2542 YY_BREAK
2543 case 29:
2544 YY_RULE_SETUP
2545 #line 583 "tokenizer.lex"
2546 {c(); BEGIN(DEFAULT); return m('{');}
2547 YY_BREAK
2548 case 30:
2549 YY_RULE_SETUP
2550 #line 585 "tokenizer.lex"
2551 {/* utf 8 bom (0xfeff) */}
2552 YY_BREAK
2553 case 31:
2554 /* rule 31 can match eol */
2555 YY_RULE_SETUP
2556 #line 586 "tokenizer.lex"
2557 {l();}
2558 YY_BREAK
2559 case 32:
2560 /* rule 32 can match eol */
2561 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2562 (yy_c_buf_p) = yy_cp -= 1;
2563 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2564 YY_RULE_SETUP
2565 #line 588 "tokenizer.lex"
2566 {c(); BEGIN(DEFAULT);return handlehex();}
2567 YY_BREAK
2568 case 33:
2569 /* rule 33 can match eol */
2570 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2571 (yy_c_buf_p) = yy_cp -= 1;
2572 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2573 YY_RULE_SETUP
2574 #line 589 "tokenizer.lex"
2575 {c(); BEGIN(DEFAULT);return handlehexfloat();}
2576 YY_BREAK
2577 case 34:
2578 /* rule 34 can match eol */
2579 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2580 (yy_c_buf_p) = yy_cp -= 1;
2581 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2582 YY_RULE_SETUP
2583 #line 590 "tokenizer.lex"
2584 {c(); BEGIN(DEFAULT);return handleint();}
2585 YY_BREAK
2586 case 35:
2587 /* rule 35 can match eol */
2588 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2589 (yy_c_buf_p) = yy_cp -= 1;
2590 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2591 YY_RULE_SETUP
2592 #line 591 "tokenizer.lex"
2593 {c(); BEGIN(DEFAULT);return handlefloat();}
2594 YY_BREAK
2595 case 36:
2596 YY_RULE_SETUP
2597 #line 592 "tokenizer.lex"
2598 {c(); BEGIN(DEFAULT);return m(KW_NAN);}
2599 YY_BREAK
2600 case 37:
2601 YY_RULE_SETUP
2602 #line 594 "tokenizer.lex"
2603 {/* for debugging: generates a tokenizer-level error */
2604 syntaxerror("3rr0r");}
2605 YY_BREAK
2606 case 38:
2607 /* rule 38 can match eol */
2608 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2609 (yy_c_buf_p) = yy_cp -= 1;
2610 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2611 YY_RULE_SETUP
2612 #line 597 "tokenizer.lex"
2613 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2614 YY_BREAK
2615 case 39:
2616 /* rule 39 can match eol */
2617 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2618 (yy_c_buf_p) = yy_cp -= 1;
2619 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2620 YY_RULE_SETUP
2621 #line 598 "tokenizer.lex"
2622 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-2);return T_DO;}
2623 YY_BREAK
2624 case 40:
2625 /* rule 40 can match eol */
2626 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2627 (yy_c_buf_p) = yy_cp -= 1;
2628 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2629 YY_RULE_SETUP
2630 #line 599 "tokenizer.lex"
2631 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2632 YY_BREAK
2633 case 41:
2634 /* rule 41 can match eol */
2635 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2636 (yy_c_buf_p) = yy_cp -= 1;
2637 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2638 YY_RULE_SETUP
2639 #line 600 "tokenizer.lex"
2640 {l();BEGIN(DEFAULT);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2641 YY_BREAK
2642 case 42:
2643 /* rule 42 can match eol */
2644 YY_RULE_SETUP
2645 #line 601 "tokenizer.lex"
2646 {l();BEGIN(DEFAULT);return m(KW_DEFAULT_XML);}
2647 YY_BREAK
2648 case 43:
2649 YY_RULE_SETUP
2650 #line 602 "tokenizer.lex"
2651 {c();BEGIN(DEFAULT);a3_lval.id="";return T_FOR;}
2652 YY_BREAK
2653 case 44:
2654 YY_RULE_SETUP
2655 #line 603 "tokenizer.lex"
2656 {c();BEGIN(DEFAULT);a3_lval.id="";return T_DO;}
2657 YY_BREAK
2658 case 45:
2659 YY_RULE_SETUP
2660 #line 604 "tokenizer.lex"
2661 {c();BEGIN(DEFAULT);a3_lval.id="";return T_WHILE;}
2662 YY_BREAK
2663 case 46:
2664 YY_RULE_SETUP
2665 #line 605 "tokenizer.lex"
2666 {c();BEGIN(DEFAULT);a3_lval.id="";return T_SWITCH;}
2667 YY_BREAK
2668 case 47:
2669 YY_RULE_SETUP
2670 #line 607 "tokenizer.lex"
2671 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2672 YY_BREAK
2673 case 48:
2674 YY_RULE_SETUP
2675 #line 608 "tokenizer.lex"
2676 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2677 YY_BREAK
2678 case 49:
2679 YY_RULE_SETUP
2680 #line 609 "tokenizer.lex"
2681 {c();BEGIN(REGEXPOK);return m(T_NE);}
2682 YY_BREAK
2683 case 50:
2684 YY_RULE_SETUP
2685 #line 610 "tokenizer.lex"
2686 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2687 YY_BREAK
2688 case 51:
2689 YY_RULE_SETUP
2690 #line 611 "tokenizer.lex"
2691 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2692 YY_BREAK
2693 case 52:
2694 YY_RULE_SETUP
2695 #line 612 "tokenizer.lex"
2696 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2697 YY_BREAK
2698 case 53:
2699 YY_RULE_SETUP
2700 #line 613 "tokenizer.lex"
2701 {c();BEGIN(REGEXPOK);return m(T_GE);}
2702 YY_BREAK
2703 case 54:
2704 YY_RULE_SETUP
2705 #line 614 "tokenizer.lex"
2706 {c();BEGIN(REGEXPOK);return m(T_LE);}
2707 YY_BREAK
2708 case 55:
2709 YY_RULE_SETUP
2710 #line 615 "tokenizer.lex"
2711 {c();BEGIN(DEFAULT);return m(T_MINUSMINUS);}
2712 YY_BREAK
2713 case 56:
2714 YY_RULE_SETUP
2715 #line 616 "tokenizer.lex"
2716 {c();BEGIN(DEFAULT);return m(T_PLUSPLUS);}
2717 YY_BREAK
2718 case 57:
2719 YY_RULE_SETUP
2720 #line 617 "tokenizer.lex"
2721 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2722 YY_BREAK
2723 case 58:
2724 YY_RULE_SETUP
2725 #line 618 "tokenizer.lex"
2726 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2727 YY_BREAK
2728 case 59:
2729 YY_RULE_SETUP
2730 #line 619 "tokenizer.lex"
2731 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2732 YY_BREAK
2733 case 60:
2734 YY_RULE_SETUP
2735 #line 620 "tokenizer.lex"
2736 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2737 YY_BREAK
2738 case 61:
2739 YY_RULE_SETUP
2740 #line 621 "tokenizer.lex"
2741 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2742 YY_BREAK
2743 case 62:
2744 YY_RULE_SETUP
2745 #line 622 "tokenizer.lex"
2746 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2747 YY_BREAK
2748 case 63:
2749 YY_RULE_SETUP
2750 #line 623 "tokenizer.lex"
2751 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2752 YY_BREAK
2753 case 64:
2754 YY_RULE_SETUP
2755 #line 624 "tokenizer.lex"
2756 {c();BEGIN(REGEXPOK);return m(T_ANDBY);}
2757 YY_BREAK
2758 case 65:
2759 YY_RULE_SETUP
2760 #line 625 "tokenizer.lex"
2761 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2762 YY_BREAK
2763 case 66:
2764 YY_RULE_SETUP
2765 #line 626 "tokenizer.lex"
2766 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2767 YY_BREAK
2768 case 67:
2769 YY_RULE_SETUP
2770 #line 627 "tokenizer.lex"
2771 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2772 YY_BREAK
2773 case 68:
2774 YY_RULE_SETUP
2775 #line 628 "tokenizer.lex"
2776 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2777 YY_BREAK
2778 case 69:
2779 YY_RULE_SETUP
2780 #line 629 "tokenizer.lex"
2781 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2782 YY_BREAK
2783 case 70:
2784 YY_RULE_SETUP
2785 #line 630 "tokenizer.lex"
2786 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2787 YY_BREAK
2788 case 71:
2789 YY_RULE_SETUP
2790 #line 631 "tokenizer.lex"
2791 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2792 YY_BREAK
2793 case 72:
2794 YY_RULE_SETUP
2795 #line 632 "tokenizer.lex"
2796 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2797 YY_BREAK
2798 case 73:
2799 YY_RULE_SETUP
2800 #line 633 "tokenizer.lex"
2801 {c();BEGIN(REGEXPOK);return m('.');}
2802 YY_BREAK
2803 case 74:
2804 YY_RULE_SETUP
2805 #line 634 "tokenizer.lex"
2806 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2807 YY_BREAK
2808 case 75:
2809 YY_RULE_SETUP
2810 #line 635 "tokenizer.lex"
2811 {c();BEGIN(REGEXPOK);return m(':');}
2812 YY_BREAK
2813 case 76:
2814 YY_RULE_SETUP
2815 #line 636 "tokenizer.lex"
2816 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2817 YY_BREAK
2818 case 77:
2819 YY_RULE_SETUP
2820 #line 637 "tokenizer.lex"
2821 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2822 YY_BREAK
2823 case 78:
2824 YY_RULE_SETUP
2825 #line 638 "tokenizer.lex"
2826 {c();BEGIN(DEFAULT);return m(KW_INTERFACE);}
2827 YY_BREAK
2828 case 79:
2829 YY_RULE_SETUP
2830 #line 639 "tokenizer.lex"
2831 {c();BEGIN(DEFAULT);return m(KW_PROTECTED);}
2832 YY_BREAK
2833 case 80:
2834 YY_RULE_SETUP
2835 #line 640 "tokenizer.lex"
2836 {c();BEGIN(DEFAULT);return m(KW_NAMESPACE);}
2837 YY_BREAK
2838 case 81:
2839 YY_RULE_SETUP
2840 #line 641 "tokenizer.lex"
2841 {c();BEGIN(DEFAULT);return m(KW_UNDEFINED);}
2842 YY_BREAK
2843 case 82:
2844 YY_RULE_SETUP
2845 #line 642 "tokenizer.lex"
2846 {c();BEGIN(DEFAULT);return m(KW_ARGUMENTS);}
2847 YY_BREAK
2848 case 83:
2849 YY_RULE_SETUP
2850 #line 643 "tokenizer.lex"
2851 {c();BEGIN(DEFAULT);return m(KW_CONTINUE);}
2852 YY_BREAK
2853 case 84:
2854 YY_RULE_SETUP
2855 #line 644 "tokenizer.lex"
2856 {c();BEGIN(DEFAULT);return m(KW_OVERRIDE);}
2857 YY_BREAK
2858 case 85:
2859 YY_RULE_SETUP
2860 #line 645 "tokenizer.lex"
2861 {c();BEGIN(DEFAULT);return m(KW_INTERNAL);}
2862 YY_BREAK
2863 case 86:
2864 YY_RULE_SETUP
2865 #line 646 "tokenizer.lex"
2866 {c();BEGIN(DEFAULT);return m(KW_FUNCTION);}
2867 YY_BREAK
2868 case 87:
2869 YY_RULE_SETUP
2870 #line 647 "tokenizer.lex"
2871 {c();BEGIN(DEFAULT);return m(KW_FINALLY);}
2872 YY_BREAK
2873 case 88:
2874 YY_RULE_SETUP
2875 #line 648 "tokenizer.lex"
2876 {c();BEGIN(DEFAULT);return m(KW_DEFAULT);}
2877 YY_BREAK
2878 case 89:
2879 YY_RULE_SETUP
2880 #line 649 "tokenizer.lex"
2881 {c();BEGIN(DEFAULT);return m(KW_PACKAGE);}
2882 YY_BREAK
2883 case 90:
2884 YY_RULE_SETUP
2885 #line 650 "tokenizer.lex"
2886 {c();BEGIN(DEFAULT);return m(KW_PRIVATE);}
2887 YY_BREAK
2888 case 91:
2889 YY_RULE_SETUP
2890 #line 651 "tokenizer.lex"
2891 {c();BEGIN(DEFAULT);return m(KW_DYNAMIC);}
2892 YY_BREAK
2893 case 92:
2894 YY_RULE_SETUP
2895 #line 652 "tokenizer.lex"
2896 {c();BEGIN(DEFAULT);return m(KW_EXTENDS);}
2897 YY_BREAK
2898 case 93:
2899 YY_RULE_SETUP
2900 #line 653 "tokenizer.lex"
2901 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2902 YY_BREAK
2903 case 94:
2904 YY_RULE_SETUP
2905 #line 654 "tokenizer.lex"
2906 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2907 YY_BREAK
2908 case 95:
2909 YY_RULE_SETUP
2910 #line 655 "tokenizer.lex"
2911 {c();BEGIN(DEFAULT);return m(KW_PUBLIC);}
2912 YY_BREAK
2913 case 96:
2914 YY_RULE_SETUP
2915 #line 656 "tokenizer.lex"
2916 {c();BEGIN(DEFAULT);return m(KW_NATIVE);}
2917 YY_BREAK
2918 case 97:
2919 YY_RULE_SETUP
2920 #line 657 "tokenizer.lex"
2921 {c();BEGIN(DEFAULT);return m(KW_STATIC);}
2922 YY_BREAK
2923 case 98:
2924 YY_RULE_SETUP
2925 #line 658 "tokenizer.lex"
2926 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2927 YY_BREAK
2928 case 99:
2929 YY_RULE_SETUP
2930 #line 659 "tokenizer.lex"
2931 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2932 YY_BREAK
2933 case 100:
2934 YY_RULE_SETUP
2935 #line 660 "tokenizer.lex"
2936 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2937 YY_BREAK
2938 case 101:
2939 YY_RULE_SETUP
2940 #line 661 "tokenizer.lex"
2941 {c();BEGIN(DEFAULT);return m(KW_CLASS);}
2942 YY_BREAK
2943 case 102:
2944 YY_RULE_SETUP
2945 #line 662 "tokenizer.lex"
2946 {c();BEGIN(DEFAULT);return m(KW_CONST);}
2947 YY_BREAK
2948 case 103:
2949 YY_RULE_SETUP
2950 #line 663 "tokenizer.lex"
2951 {c();BEGIN(DEFAULT);return m(KW_CATCH);}
2952 YY_BREAK
2953 case 104:
2954 YY_RULE_SETUP
2955 #line 664 "tokenizer.lex"
2956 {c();BEGIN(DEFAULT);return m(KW_FINAL);}
2957 YY_BREAK
2958 case 105:
2959 YY_RULE_SETUP
2960 #line 665 "tokenizer.lex"
2961 {c();BEGIN(DEFAULT);return m(KW_FALSE);}
2962 YY_BREAK
2963 case 106:
2964 YY_RULE_SETUP
2965 #line 666 "tokenizer.lex"
2966 {c();BEGIN(DEFAULT);return m(KW_BREAK);}
2967 YY_BREAK
2968 case 107:
2969 YY_RULE_SETUP
2970 #line 667 "tokenizer.lex"
2971 {c();BEGIN(DEFAULT);return m(KW_SUPER);}
2972 YY_BREAK
2973 case 108:
2974 YY_RULE_SETUP
2975 #line 668 "tokenizer.lex"
2976 {c();BEGIN(DEFAULT);return m(KW_EACH);}
2977 YY_BREAK
2978 case 109:
2979 YY_RULE_SETUP
2980 #line 669 "tokenizer.lex"
2981 {c();BEGIN(DEFAULT);return m(KW_VOID);}
2982 YY_BREAK
2983 case 110:
2984 YY_RULE_SETUP
2985 #line 670 "tokenizer.lex"
2986 {c();BEGIN(DEFAULT);return m(KW_TRUE);}
2987 YY_BREAK
2988 case 111:
2989 YY_RULE_SETUP
2990 #line 671 "tokenizer.lex"
2991 {c();BEGIN(DEFAULT);return m(KW_NULL);}
2992 YY_BREAK
2993 case 112:
2994 YY_RULE_SETUP
2995 #line 672 "tokenizer.lex"
2996 {c();BEGIN(DEFAULT);return m(KW_ELSE);}
2997 YY_BREAK
2998 case 113:
2999 YY_RULE_SETUP
3000 #line 673 "tokenizer.lex"
3001 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
3002 YY_BREAK
3003 case 114:
3004 YY_RULE_SETUP
3005 #line 674 "tokenizer.lex"
3006 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
3007 YY_BREAK
3008 case 115:
3009 YY_RULE_SETUP
3010 #line 675 "tokenizer.lex"
3011 {c();BEGIN(REGEXPOK);return m(KW_USE);}
3012 YY_BREAK
3013 case 116:
3014 YY_RULE_SETUP
3015 #line 676 "tokenizer.lex"
3016 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
3017 YY_BREAK
3018 case 117:
3019 YY_RULE_SETUP
3020 #line 677 "tokenizer.lex"
3021 {c();BEGIN(DEFAULT);return m(KW_GET);}
3022 YY_BREAK
3023 case 118:
3024 YY_RULE_SETUP
3025 #line 678 "tokenizer.lex"
3026 {c();BEGIN(DEFAULT);return m(KW_SET);}
3027 YY_BREAK
3028 case 119:
3029 YY_RULE_SETUP
3030 #line 679 "tokenizer.lex"
3031 {c();BEGIN(DEFAULT);return m(KW_VAR);}
3032 YY_BREAK
3033 case 120:
3034 YY_RULE_SETUP
3035 #line 680 "tokenizer.lex"
3036 {c();BEGIN(DEFAULT);return m(KW_TRY);}
3037 YY_BREAK
3038 case 121:
3039 YY_RULE_SETUP
3040 #line 681 "tokenizer.lex"
3041 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
3042 YY_BREAK
3043 case 122:
3044 YY_RULE_SETUP
3045 #line 682 "tokenizer.lex"
3046 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
3047 YY_BREAK
3048 case 123:
3049 YY_RULE_SETUP
3050 #line 683 "tokenizer.lex"
3051 {c();BEGIN(DEFAULT);return m(KW_IF) ;}
3052 YY_BREAK
3053 case 124:
3054 YY_RULE_SETUP
3055 #line 684 "tokenizer.lex"
3056 {c();BEGIN(REGEXPOK);return m(KW_AS);}
3057 YY_BREAK
3058 case 125:
3059 YY_RULE_SETUP
3060 #line 685 "tokenizer.lex"
3061 {c();BEGIN(DEFAULT);return handleIdentifier();}
3062 YY_BREAK
3063 case 126:
3064 YY_RULE_SETUP
3065 #line 687 "tokenizer.lex"
3066 {c();BEGIN(DEFAULT);return m(as3_text[0]);}
3067 YY_BREAK
3068 case 127:
3069 YY_RULE_SETUP
3070 #line 688 "tokenizer.lex"
3071 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
3072 YY_BREAK
3073 case 128:
3074 YY_RULE_SETUP
3075 #line 689 "tokenizer.lex"
3076 {c();BEGIN(DEFAULT);return m(as3_text[0]);}
3077 YY_BREAK
3078
3079 case 129:
3080 YY_RULE_SETUP
3081 #line 692 "tokenizer.lex"
3082 {tokenerror();}
3083 YY_BREAK
3084
3085 case YY_STATE_EOF(INITIAL):
3086 case YY_STATE_EOF(REGEXPOK):
3087 case YY_STATE_EOF(BEGINNING):
3088 case YY_STATE_EOF(DEFAULT):
3089 #line 694 "tokenizer.lex"
3090 {l();
3091 void*b = leave_file();
3092 if (!b) {
3093 yyterminate();
3094 as3__delete_buffer(YY_CURRENT_BUFFER);
3095 return m(T_EOF);
3096 } else {
3097 as3__delete_buffer(YY_CURRENT_BUFFER);
3098 as3__switch_to_buffer(b);
3099 }
3100 }
3101 YY_BREAK
3102 case 130:
3103 YY_RULE_SETUP
3104 #line 706 "tokenizer.lex"
3105 ECHO;
3106 YY_BREAK
3107 #line 3108 "tokenizer.yy.c"
3108
3109 case YY_END_OF_BUFFER:
3110 {
3111 /* Amount of text matched not including the EOB char. */
3112 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3113
3114 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3115 *yy_cp = (yy_hold_char);
3116 YY_RESTORE_YY_MORE_OFFSET
3117
3118 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3119 {
3120 /* We're scanning a new file or input source. It's
3121 * possible that this happened because the user
3122 * just pointed as3_in at a new source and called
3123 * as3_lex(). If so, then we have to assure
3124 * consistency between YY_CURRENT_BUFFER and our
3125 * globals. Here is the right place to do so, because
3126 * this is the first action (other than possibly a
3127 * back-up) that will match for the new input source.
3128 */
3129 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3130 YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
3131 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3132 }
3133
3134 /* Note that here we test for yy_c_buf_p "<=" to the position
3135 * of the first EOB in the buffer, since yy_c_buf_p will
3136 * already have been incremented past the NUL character
3137 * (since all states make transitions on EOB to the
3138 * end-of-buffer state). Contrast this with the test
3139 * in input().
3140 */
3141 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3142 { /* This was really a NUL. */
3143 yy_state_type yy_next_state;
3144
3145 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3146
3147 yy_current_state = yy_get_previous_state( );
3148
3149 /* Okay, we're now positioned to make the NUL
3150 * transition. We couldn't have
3151 * yy_get_previous_state() go ahead and do it
3152 * for us because it doesn't know how to deal
3153 * with the possibility of jamming (and we don't
3154 * want to build jamming into it because then it
3155 * will run more slowly).
3156 */
3157
3158 yy_next_state = yy_try_NUL_trans( yy_current_state );
3159
3160 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3161
3162 if ( yy_next_state )
3163 {
3164 /* Consume the NUL. */
3165 yy_cp = ++(yy_c_buf_p);
3166 yy_current_state = yy_next_state;
3167 goto yy_match;
3168 }
3169
3170 else
3171 {
3172 yy_cp = (yy_last_accepting_cpos);
3173 yy_current_state = (yy_last_accepting_state);
3174 goto yy_find_action;
3175 }
3176 }
3177
3178 else switch ( yy_get_next_buffer( ) )
3179 {
3180 case EOB_ACT_END_OF_FILE:
3181 {
3182 (yy_did_buffer_switch_on_eof) = 0;
3183
3184 if ( as3_wrap( ) )
3185 {
3186 /* Note: because we've taken care in
3187 * yy_get_next_buffer() to have set up
3188 * as3_text, we can now set up
3189 * yy_c_buf_p so that if some total
3190 * hoser (like flex itself) wants to
3191 * call the scanner after we return the
3192 * YY_NULL, it'll still work - another
3193 * YY_NULL will get returned.
3194 */
3195 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3196
3197 yy_act = YY_STATE_EOF(YY_START);
3198 goto do_action;
3199 }
3200
3201 else
3202 {
3203 if ( ! (yy_did_buffer_switch_on_eof) )
3204 YY_NEW_FILE;
3205 }
3206 break;
3207 }
3208
3209 case EOB_ACT_CONTINUE_SCAN:
3210 (yy_c_buf_p) =
3211 (yytext_ptr) + yy_amount_of_matched_text;
3212
3213 yy_current_state = yy_get_previous_state( );
3214
3215 yy_cp = (yy_c_buf_p);
3216 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3217 goto yy_match;
3218
3219 case EOB_ACT_LAST_MATCH:
3220 (yy_c_buf_p) =
3221 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3222
3223 yy_current_state = yy_get_previous_state( );
3224
3225 yy_cp = (yy_c_buf_p);
3226 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3227 goto yy_find_action;
3228 }
3229 break;
3230 }
3231
3232 default:
3233 YY_FATAL_ERROR(
3234 "fatal flex scanner internal error--no action found" );
3235 } /* end of action switch */
3236 } /* end of scanning one token */
3237 } /* end of as3_lex */
3238
3239 /* yy_get_next_buffer - try to read in a new buffer
3240 *
3241 * Returns a code representing an action:
3242 * EOB_ACT_LAST_MATCH -
3243 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3244 * EOB_ACT_END_OF_FILE - end of file
3245 */
yy_get_next_buffer(void)3246 static int yy_get_next_buffer (void)
3247 {
3248 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3249 register char *source = (yytext_ptr);
3250 register int number_to_move, i;
3251 int ret_val;
3252
3253 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3254 YY_FATAL_ERROR(
3255 "fatal flex scanner internal error--end of buffer missed" );
3256
3257 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3258 { /* Don't try to fill the buffer, so this is an EOF. */
3259 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3260 {
3261 /* We matched a single character, the EOB, so
3262 * treat this as a final EOF.
3263 */
3264 return EOB_ACT_END_OF_FILE;
3265 }
3266
3267 else
3268 {
3269 /* We matched some text prior to the EOB, first
3270 * process it.
3271 */
3272 return EOB_ACT_LAST_MATCH;
3273 }
3274 }
3275
3276 /* Try to read more data. */
3277
3278 /* First move last chars to start of buffer. */
3279 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3280
3281 for ( i = 0; i < number_to_move; ++i )
3282 *(dest++) = *(source++);
3283
3284 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3285 /* don't do the read, it's not guaranteed to return an EOF,
3286 * just force an EOF
3287 */
3288 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3289
3290 else
3291 {
3292 yy_size_t num_to_read =
3293 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3294
3295 while ( num_to_read <= 0 )
3296 { /* Not enough room in the buffer - grow it. */
3297
3298 /* just a shorter name for the current buffer */
3299 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3300
3301 int yy_c_buf_p_offset =
3302 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3303
3304 if ( b->yy_is_our_buffer )
3305 {
3306 yy_size_t new_size = b->yy_buf_size * 2;
3307
3308 if ( new_size <= 0 )
3309 b->yy_buf_size += b->yy_buf_size / 8;
3310 else
3311 b->yy_buf_size *= 2;
3312
3313 b->yy_ch_buf = (char *)
3314 /* Include room in for 2 EOB chars. */
3315 as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3316 }
3317 else
3318 /* Can't grow it, we don't own it. */
3319 b->yy_ch_buf = 0;
3320
3321 if ( ! b->yy_ch_buf )
3322 YY_FATAL_ERROR(
3323 "fatal error - scanner input buffer overflow" );
3324
3325 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3326
3327 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3328 number_to_move - 1;
3329
3330 }
3331
3332 if ( num_to_read > YY_READ_BUF_SIZE )
3333 num_to_read = YY_READ_BUF_SIZE;
3334
3335 /* Read in more data. */
3336 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3337 (yy_n_chars), num_to_read );
3338
3339 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3340 }
3341
3342 if ( (yy_n_chars) == 0 )
3343 {
3344 if ( number_to_move == YY_MORE_ADJ )
3345 {
3346 ret_val = EOB_ACT_END_OF_FILE;
3347 as3_restart(as3_in );
3348 }
3349
3350 else
3351 {
3352 ret_val = EOB_ACT_LAST_MATCH;
3353 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3354 YY_BUFFER_EOF_PENDING;
3355 }
3356 }
3357
3358 else
3359 ret_val = EOB_ACT_CONTINUE_SCAN;
3360
3361 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3362 /* Extend the array by 50%, plus the number we really need. */
3363 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3364 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
3365 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3366 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3367 }
3368
3369 (yy_n_chars) += number_to_move;
3370 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3371 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3372
3373 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3374
3375 return ret_val;
3376 }
3377
3378 /* yy_get_previous_state - get the state just before the EOB char was reached */
3379
yy_get_previous_state(void)3380 static yy_state_type yy_get_previous_state (void)
3381 {
3382 register yy_state_type yy_current_state;
3383 register char *yy_cp;
3384
3385 yy_current_state = (yy_start);
3386 yy_current_state += YY_AT_BOL();
3387
3388 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3389 {
3390 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3391 if ( yy_accept[yy_current_state] )
3392 {
3393 (yy_last_accepting_state) = yy_current_state;
3394 (yy_last_accepting_cpos) = yy_cp;
3395 }
3396 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3397 {
3398 yy_current_state = (int) yy_def[yy_current_state];
3399 if ( yy_current_state >= 705 )
3400 yy_c = yy_meta[(unsigned int) yy_c];
3401 }
3402 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3403 }
3404
3405 return yy_current_state;
3406 }
3407
3408 /* yy_try_NUL_trans - try to make a transition on the NUL character
3409 *
3410 * synopsis
3411 * next_state = yy_try_NUL_trans( current_state );
3412 */
yy_try_NUL_trans(yy_state_type yy_current_state)3413 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3414 {
3415 register int yy_is_jam;
3416 register char *yy_cp = (yy_c_buf_p);
3417
3418 register YY_CHAR yy_c = 1;
3419 if ( yy_accept[yy_current_state] )
3420 {
3421 (yy_last_accepting_state) = yy_current_state;
3422 (yy_last_accepting_cpos) = yy_cp;
3423 }
3424 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3425 {
3426 yy_current_state = (int) yy_def[yy_current_state];
3427 if ( yy_current_state >= 705 )
3428 yy_c = yy_meta[(unsigned int) yy_c];
3429 }
3430 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3431 yy_is_jam = (yy_current_state == 704);
3432
3433 return yy_is_jam ? 0 : yy_current_state;
3434 }
3435
yyunput(int c,register char * yy_bp)3436 static void yyunput (int c, register char * yy_bp )
3437 {
3438 register char *yy_cp;
3439
3440 yy_cp = (yy_c_buf_p);
3441
3442 /* undo effects of setting up as3_text */
3443 *yy_cp = (yy_hold_char);
3444
3445 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3446 { /* need to shift things up to make room */
3447 /* +2 for EOB chars. */
3448 register yy_size_t number_to_move = (yy_n_chars) + 2;
3449 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3450 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3451 register char *source =
3452 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3453
3454 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3455 *--dest = *--source;
3456
3457 yy_cp += (int) (dest - source);
3458 yy_bp += (int) (dest - source);
3459 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3460 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3461
3462 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3463 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3464 }
3465
3466 *--yy_cp = (char) c;
3467
3468 (yytext_ptr) = yy_bp;
3469 (yy_hold_char) = *yy_cp;
3470 (yy_c_buf_p) = yy_cp;
3471 }
3472
3473 #ifndef YY_NO_INPUT
3474 #ifdef __cplusplus
yyinput(void)3475 static int yyinput (void)
3476 #else
3477 static int input (void)
3478 #endif
3479
3480 {
3481 int c;
3482
3483 *(yy_c_buf_p) = (yy_hold_char);
3484
3485 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3486 {
3487 /* yy_c_buf_p now points to the character we want to return.
3488 * If this occurs *before* the EOB characters, then it's a
3489 * valid NUL; if not, then we've hit the end of the buffer.
3490 */
3491 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3492 /* This was really a NUL. */
3493 *(yy_c_buf_p) = '\0';
3494
3495 else
3496 { /* need more input */
3497 yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3498 ++(yy_c_buf_p);
3499
3500 switch ( yy_get_next_buffer( ) )
3501 {
3502 case EOB_ACT_LAST_MATCH:
3503 /* This happens because yy_g_n_b()
3504 * sees that we've accumulated a
3505 * token and flags that we need to
3506 * try matching the token before
3507 * proceeding. But for input(),
3508 * there's no matching to consider.
3509 * So convert the EOB_ACT_LAST_MATCH
3510 * to EOB_ACT_END_OF_FILE.
3511 */
3512
3513 /* Reset buffer status. */
3514 as3_restart(as3_in );
3515
3516 /*FALLTHROUGH*/
3517
3518 case EOB_ACT_END_OF_FILE:
3519 {
3520 if ( as3_wrap( ) )
3521 return 0;
3522
3523 if ( ! (yy_did_buffer_switch_on_eof) )
3524 YY_NEW_FILE;
3525 #ifdef __cplusplus
3526 return yyinput();
3527 #else
3528 return input();
3529 #endif
3530 }
3531
3532 case EOB_ACT_CONTINUE_SCAN:
3533 (yy_c_buf_p) = (yytext_ptr) + offset;
3534 break;
3535 }
3536 }
3537 }
3538
3539 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3540 *(yy_c_buf_p) = '\0'; /* preserve as3_text */
3541 (yy_hold_char) = *++(yy_c_buf_p);
3542
3543 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3544
3545 return c;
3546 }
3547 #endif /* ifndef YY_NO_INPUT */
3548
3549 /** Immediately switch to a different input stream.
3550 * @param input_file A readable stream.
3551 *
3552 * @note This function does not reset the start condition to @c INITIAL .
3553 */
as3_restart(FILE * input_file)3554 void as3_restart (FILE * input_file )
3555 {
3556
3557 if ( ! YY_CURRENT_BUFFER ){
3558 as3_ensure_buffer_stack ();
3559 YY_CURRENT_BUFFER_LVALUE =
3560 as3__create_buffer(as3_in,YY_BUF_SIZE );
3561 }
3562
3563 as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3564 as3__load_buffer_state( );
3565 }
3566
3567 /** Switch to a different input buffer.
3568 * @param new_buffer The new input buffer.
3569 *
3570 */
as3__switch_to_buffer(YY_BUFFER_STATE new_buffer)3571 void as3__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3572 {
3573
3574 /* TODO. We should be able to replace this entire function body
3575 * with
3576 * as3_pop_buffer_state();
3577 * as3_push_buffer_state(new_buffer);
3578 */
3579 as3_ensure_buffer_stack ();
3580 if ( YY_CURRENT_BUFFER == new_buffer )
3581 return;
3582
3583 if ( YY_CURRENT_BUFFER )
3584 {
3585 /* Flush out information for old buffer. */
3586 *(yy_c_buf_p) = (yy_hold_char);
3587 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3588 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3589 }
3590
3591 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3592 as3__load_buffer_state( );
3593
3594 /* We don't actually know whether we did this switch during
3595 * EOF (as3_wrap()) processing, but the only time this flag
3596 * is looked at is after as3_wrap() is called, so it's safe
3597 * to go ahead and always set it.
3598 */
3599 (yy_did_buffer_switch_on_eof) = 1;
3600 }
3601
as3__load_buffer_state(void)3602 static void as3__load_buffer_state (void)
3603 {
3604 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3605 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3606 as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3607 (yy_hold_char) = *(yy_c_buf_p);
3608 }
3609
3610 /** Allocate and initialize an input buffer state.
3611 * @param file A readable stream.
3612 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3613 *
3614 * @return the allocated buffer state.
3615 */
as3__create_buffer(FILE * file,int size)3616 YY_BUFFER_STATE as3__create_buffer (FILE * file, int size )
3617 {
3618 YY_BUFFER_STATE b;
3619
3620 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3621 if ( ! b )
3622 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3623
3624 b->yy_buf_size = size;
3625
3626 /* yy_ch_buf has to be 2 characters longer than the size given because
3627 * we need to put in 2 end-of-buffer characters.
3628 */
3629 b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2 );
3630 if ( ! b->yy_ch_buf )
3631 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3632
3633 b->yy_is_our_buffer = 1;
3634
3635 as3__init_buffer(b,file );
3636
3637 return b;
3638 }
3639
3640 /** Destroy the buffer.
3641 * @param b a buffer created with as3__create_buffer()
3642 *
3643 */
as3__delete_buffer(YY_BUFFER_STATE b)3644 void as3__delete_buffer (YY_BUFFER_STATE b )
3645 {
3646
3647 if ( ! b )
3648 return;
3649
3650 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3651 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3652
3653 if ( b->yy_is_our_buffer )
3654 as3_free((void *) b->yy_ch_buf );
3655
3656 as3_free((void *) b );
3657 }
3658
3659 #ifndef __cplusplus
3660 extern int isatty (int );
3661 #endif /* __cplusplus */
3662
3663 /* Initializes or reinitializes a buffer.
3664 * This function is sometimes called more than once on the same buffer,
3665 * such as during a as3_restart() or at EOF.
3666 */
as3__init_buffer(YY_BUFFER_STATE b,FILE * file)3667 static void as3__init_buffer (YY_BUFFER_STATE b, FILE * file )
3668
3669 {
3670 int oerrno = errno;
3671
3672 as3__flush_buffer(b );
3673
3674 b->yy_input_file = file;
3675 b->yy_fill_buffer = 1;
3676
3677 /* If b is the current buffer, then as3__init_buffer was _probably_
3678 * called from as3_restart() or through yy_get_next_buffer.
3679 * In that case, we don't want to reset the lineno or column.
3680 */
3681 if (b != YY_CURRENT_BUFFER){
3682 b->yy_bs_lineno = 1;
3683 b->yy_bs_column = 0;
3684 }
3685
3686 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3687
3688 errno = oerrno;
3689 }
3690
3691 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3692 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3693 *
3694 */
as3__flush_buffer(YY_BUFFER_STATE b)3695 void as3__flush_buffer (YY_BUFFER_STATE b )
3696 {
3697 if ( ! b )
3698 return;
3699
3700 b->yy_n_chars = 0;
3701
3702 /* We always need two end-of-buffer characters. The first causes
3703 * a transition to the end-of-buffer state. The second causes
3704 * a jam in that state.
3705 */
3706 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3707 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3708
3709 b->yy_buf_pos = &b->yy_ch_buf[0];
3710
3711 b->yy_at_bol = 1;
3712 b->yy_buffer_status = YY_BUFFER_NEW;
3713
3714 if ( b == YY_CURRENT_BUFFER )
3715 as3__load_buffer_state( );
3716 }
3717
3718 /** Pushes the new state onto the stack. The new state becomes
3719 * the current state. This function will allocate the stack
3720 * if necessary.
3721 * @param new_buffer The new state.
3722 *
3723 */
as3_push_buffer_state(YY_BUFFER_STATE new_buffer)3724 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3725 {
3726 if (new_buffer == NULL)
3727 return;
3728
3729 as3_ensure_buffer_stack();
3730
3731 /* This block is copied from as3__switch_to_buffer. */
3732 if ( YY_CURRENT_BUFFER )
3733 {
3734 /* Flush out information for old buffer. */
3735 *(yy_c_buf_p) = (yy_hold_char);
3736 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3737 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3738 }
3739
3740 /* Only push if top exists. Otherwise, replace top. */
3741 if (YY_CURRENT_BUFFER)
3742 (yy_buffer_stack_top)++;
3743 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3744
3745 /* copied from as3__switch_to_buffer. */
3746 as3__load_buffer_state( );
3747 (yy_did_buffer_switch_on_eof) = 1;
3748 }
3749
3750 /** Removes and deletes the top of the stack, if present.
3751 * The next element becomes the new top.
3752 *
3753 */
as3_pop_buffer_state(void)3754 void as3_pop_buffer_state (void)
3755 {
3756 if (!YY_CURRENT_BUFFER)
3757 return;
3758
3759 as3__delete_buffer(YY_CURRENT_BUFFER );
3760 YY_CURRENT_BUFFER_LVALUE = NULL;
3761 if ((yy_buffer_stack_top) > 0)
3762 --(yy_buffer_stack_top);
3763
3764 if (YY_CURRENT_BUFFER) {
3765 as3__load_buffer_state( );
3766 (yy_did_buffer_switch_on_eof) = 1;
3767 }
3768 }
3769
3770 /* Allocates the stack if it does not exist.
3771 * Guarantees space for at least one push.
3772 */
as3_ensure_buffer_stack(void)3773 static void as3_ensure_buffer_stack (void)
3774 {
3775 yy_size_t num_to_alloc;
3776
3777 if (!(yy_buffer_stack)) {
3778
3779 /* First allocation is just for 2 elements, since we don't know if this
3780 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3781 * immediate realloc on the next call.
3782 */
3783 num_to_alloc = 1;
3784 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3785 (num_to_alloc * sizeof(struct yy_buffer_state*)
3786 );
3787 if ( ! (yy_buffer_stack) )
3788 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3789
3790 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3791
3792 (yy_buffer_stack_max) = num_to_alloc;
3793 (yy_buffer_stack_top) = 0;
3794 return;
3795 }
3796
3797 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3798
3799 /* Increase the buffer to prepare for a possible push. */
3800 int grow_size = 8 /* arbitrary grow size */;
3801
3802 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3803 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3804 ((yy_buffer_stack),
3805 num_to_alloc * sizeof(struct yy_buffer_state*)
3806 );
3807 if ( ! (yy_buffer_stack) )
3808 YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3809
3810 /* zero only the new slots.*/
3811 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3812 (yy_buffer_stack_max) = num_to_alloc;
3813 }
3814 }
3815
3816 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3817 * @param base the character buffer
3818 * @param size the size in bytes of the character buffer
3819 *
3820 * @return the newly allocated buffer state object.
3821 */
as3__scan_buffer(char * base,yy_size_t size)3822 YY_BUFFER_STATE as3__scan_buffer (char * base, yy_size_t size )
3823 {
3824 YY_BUFFER_STATE b;
3825
3826 if ( size < 2 ||
3827 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3828 base[size-1] != YY_END_OF_BUFFER_CHAR )
3829 /* They forgot to leave room for the EOB's. */
3830 return 0;
3831
3832 b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state ) );
3833 if ( ! b )
3834 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3835
3836 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3837 b->yy_buf_pos = b->yy_ch_buf = base;
3838 b->yy_is_our_buffer = 0;
3839 b->yy_input_file = 0;
3840 b->yy_n_chars = b->yy_buf_size;
3841 b->yy_is_interactive = 0;
3842 b->yy_at_bol = 1;
3843 b->yy_fill_buffer = 0;
3844 b->yy_buffer_status = YY_BUFFER_NEW;
3845
3846 as3__switch_to_buffer(b );
3847
3848 return b;
3849 }
3850
3851 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3852 * scan from a @e copy of @a str.
3853 * @param yystr a NUL-terminated string to scan
3854 *
3855 * @return the newly allocated buffer state object.
3856 * @note If you want to scan bytes that may contain NUL values, then use
3857 * as3__scan_bytes() instead.
3858 */
as3__scan_string(yyconst char * yystr)3859 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3860 {
3861
3862 return as3__scan_bytes(yystr,strlen(yystr) );
3863 }
3864
3865 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3866 * scan from a @e copy of @a bytes.
3867 * @param bytes the byte buffer to scan
3868 * @param len the number of bytes in the buffer pointed to by @a bytes.
3869 *
3870 * @return the newly allocated buffer state object.
3871 */
as3__scan_bytes(yyconst char * yybytes,yy_size_t _yybytes_len)3872 YY_BUFFER_STATE as3__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
3873 {
3874 YY_BUFFER_STATE b;
3875 char *buf;
3876 yy_size_t n, i;
3877
3878 /* Get memory for full buffer, including space for trailing EOB's. */
3879 n = _yybytes_len + 2;
3880 buf = (char *) as3_alloc(n );
3881 if ( ! buf )
3882 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3883
3884 for ( i = 0; i < _yybytes_len; ++i )
3885 buf[i] = yybytes[i];
3886
3887 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3888
3889 b = as3__scan_buffer(buf,n );
3890 if ( ! b )
3891 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3892
3893 /* It's okay to grow etc. this buffer, and we should throw it
3894 * away when we're done.
3895 */
3896 b->yy_is_our_buffer = 1;
3897
3898 return b;
3899 }
3900
3901 #ifndef YY_EXIT_FAILURE
3902 #define YY_EXIT_FAILURE 2
3903 #endif
3904
yy_fatal_error(yyconst char * msg)3905 static void yy_fatal_error (yyconst char* msg )
3906 {
3907 (void) fprintf( stderr, "%s\n", msg );
3908 exit( YY_EXIT_FAILURE );
3909 }
3910
3911 /* Redefine yyless() so it works in section 3 code. */
3912
3913 #undef yyless
3914 #define yyless(n) \
3915 do \
3916 { \
3917 /* Undo effects of setting up as3_text. */ \
3918 int yyless_macro_arg = (n); \
3919 YY_LESS_LINENO(yyless_macro_arg);\
3920 as3_text[as3_leng] = (yy_hold_char); \
3921 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3922 (yy_hold_char) = *(yy_c_buf_p); \
3923 *(yy_c_buf_p) = '\0'; \
3924 as3_leng = yyless_macro_arg; \
3925 } \
3926 while ( 0 )
3927
3928 /* Accessor methods (get/set functions) to struct members. */
3929
3930 /** Get the current line number.
3931 *
3932 */
as3_get_lineno(void)3933 int as3_get_lineno (void)
3934 {
3935
3936 return as3_lineno;
3937 }
3938
3939 /** Get the input stream.
3940 *
3941 */
as3_get_in(void)3942 FILE *as3_get_in (void)
3943 {
3944 return as3_in;
3945 }
3946
3947 /** Get the output stream.
3948 *
3949 */
as3_get_out(void)3950 FILE *as3_get_out (void)
3951 {
3952 return as3_out;
3953 }
3954
3955 /** Get the length of the current token.
3956 *
3957 */
as3_get_leng(void)3958 yy_size_t as3_get_leng (void)
3959 {
3960 return as3_leng;
3961 }
3962
3963 /** Get the current token.
3964 *
3965 */
3966
as3_get_text(void)3967 char *as3_get_text (void)
3968 {
3969 return as3_text;
3970 }
3971
3972 /** Set the current line number.
3973 * @param line_number
3974 *
3975 */
as3_set_lineno(int line_number)3976 void as3_set_lineno (int line_number )
3977 {
3978
3979 as3_lineno = line_number;
3980 }
3981
3982 /** Set the input stream. This does not discard the current
3983 * input buffer.
3984 * @param in_str A readable stream.
3985 *
3986 * @see as3__switch_to_buffer
3987 */
as3_set_in(FILE * in_str)3988 void as3_set_in (FILE * in_str )
3989 {
3990 as3_in = in_str ;
3991 }
3992
as3_set_out(FILE * out_str)3993 void as3_set_out (FILE * out_str )
3994 {
3995 as3_out = out_str ;
3996 }
3997
as3_get_debug(void)3998 int as3_get_debug (void)
3999 {
4000 return as3__flex_debug;
4001 }
4002
as3_set_debug(int bdebug)4003 void as3_set_debug (int bdebug )
4004 {
4005 as3__flex_debug = bdebug ;
4006 }
4007
yy_init_globals(void)4008 static int yy_init_globals (void)
4009 {
4010 /* Initialization is the same as for the non-reentrant scanner.
4011 * This function is called from as3_lex_destroy(), so don't allocate here.
4012 */
4013
4014 (yy_buffer_stack) = 0;
4015 (yy_buffer_stack_top) = 0;
4016 (yy_buffer_stack_max) = 0;
4017 (yy_c_buf_p) = (char *) 0;
4018 (yy_init) = 0;
4019 (yy_start) = 0;
4020
4021 /* Defined in main.c */
4022 #ifdef YY_STDINIT
4023 as3_in = stdin;
4024 as3_out = stdout;
4025 #else
4026 as3_in = (FILE *) 0;
4027 as3_out = (FILE *) 0;
4028 #endif
4029
4030 /* For future reference: Set errno on error, since we are called by
4031 * as3_lex_init()
4032 */
4033 return 0;
4034 }
4035
4036 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
as3_lex_destroy(void)4037 int as3_lex_destroy (void)
4038 {
4039
4040 /* Pop the buffer stack, destroying each element. */
4041 while(YY_CURRENT_BUFFER){
4042 as3__delete_buffer(YY_CURRENT_BUFFER );
4043 YY_CURRENT_BUFFER_LVALUE = NULL;
4044 as3_pop_buffer_state();
4045 }
4046
4047 /* Destroy the stack itself. */
4048 as3_free((yy_buffer_stack) );
4049 (yy_buffer_stack) = NULL;
4050
4051 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4052 * as3_lex() is called, initialization will occur. */
4053 yy_init_globals( );
4054
4055 return 0;
4056 }
4057
4058 /*
4059 * Internal utility routines.
4060 */
4061
4062 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)4063 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4064 {
4065 register int i;
4066 for ( i = 0; i < n; ++i )
4067 s1[i] = s2[i];
4068 }
4069 #endif
4070
4071 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)4072 static int yy_flex_strlen (yyconst char * s )
4073 {
4074 register int n;
4075 for ( n = 0; s[n]; ++n )
4076 ;
4077
4078 return n;
4079 }
4080 #endif
4081
as3_alloc(yy_size_t size)4082 void *as3_alloc (yy_size_t size )
4083 {
4084 return (void *) malloc( size );
4085 }
4086
as3_realloc(void * ptr,yy_size_t size)4087 void *as3_realloc (void * ptr, yy_size_t size )
4088 {
4089 /* The cast to (char *) in the following accommodates both
4090 * implementations that use char* generic pointers, and those
4091 * that use void* generic pointers. It works with the latter
4092 * because both ANSI C and C++ allow castless assignment from
4093 * any pointer type to void*, and deal with argument conversions
4094 * as though doing an assignment.
4095 */
4096 return (void *) realloc( (char *) ptr, size );
4097 }
4098
as3_free(void * ptr)4099 void as3_free (void * ptr )
4100 {
4101 free( (char *) ptr ); /* see as3_realloc() for (char *) cast */
4102 }
4103
4104 #define YYTABLES_NAME "yytables"
4105
4106 #line 706 "tokenizer.lex"
4107
4108
4109
as3_wrap()4110 int as3_wrap()
4111 {
4112 return 1;
4113 }
4114
tokenerror()4115 static int tokenerror()
4116 {
4117 char c1=as3_text[0];
4118 char buf[128];
4119 buf[0] = as3_text[0];
4120 int t;
4121 for(t=1;t<128;t++) {
4122 char c = buf[t]=input();
4123 if(c=='\n' || c==EOF) {
4124 buf[t] = 0;
4125 break;
4126 }
4127 }
4128 if(c1>='0' && c1<='9')
4129 syntaxerror("syntax error: %s (identifiers must not start with a digit)");
4130 else
4131 syntaxerror("syntax error [state=%d]: %s", (yy_start-1)/2, buf);
4132 printf("\n");
4133 exit(1);
4134 yyterminate();
4135 }
4136
4137
4138 static char mbuf[256];
token2string(enum yytokentype nr,YYSTYPE v)4139 char*token2string(enum yytokentype nr, YYSTYPE v)
4140 {
4141 if(nr==T_STRING) {
4142 char*s = malloc(v.str.len+10);
4143 strcpy(s, "<string>");
4144 memcpy(s+8, v.str.str, v.str.len);
4145 sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
4146 return s;
4147 }
4148 else if(nr==T_REGEXP) {
4149 char*s = malloc(strlen(v.regexp.pattern)+10);
4150 sprintf(s, "<regexp>%s", v.regexp.pattern);
4151 return s;
4152 }
4153 else if(nr==T_IDENTIFIER) {
4154 char*s = malloc(strlen(v.id)+10);
4155 sprintf(s, "<ID>%s", v.id);
4156 return s;
4157 }
4158 else if(nr==T_INT) return "<int>";
4159 else if(nr==T_UINT) return "<uint>";
4160 else if(nr==T_FLOAT) return "<float>";
4161 else if(nr==T_EOF) return "***END***";
4162 else if(nr==T_GE) return ">=";
4163 else if(nr==T_LE) return "<=";
4164 else if(nr==T_MINUSMINUS) return "--";
4165 else if(nr==T_PLUSPLUS) return "++";
4166 else if(nr==KW_IMPLEMENTS) return "implements";
4167 else if(nr==KW_INTERFACE) return "interface";
4168 else if(nr==KW_NAMESPACE) return "namespace";
4169 else if(nr==KW_PROTECTED) return "protected";
4170 else if(nr==KW_OVERRIDE) return "override";
4171 else if(nr==KW_INTERNAL) return "internal";
4172 else if(nr==KW_FUNCTION) return "function";
4173 else if(nr==KW_PACKAGE) return "package";
4174 else if(nr==KW_PRIVATE) return "private";
4175 else if(nr==KW_BOOLEAN) return "Boolean";
4176 else if(nr==KW_DYNAMIC) return "dynamic";
4177 else if(nr==KW_EXTENDS) return "extends";
4178 else if(nr==KW_PUBLIC) return "public";
4179 else if(nr==KW_NATIVE) return "native";
4180 else if(nr==KW_STATIC) return "static";
4181 else if(nr==KW_IMPORT) return "import";
4182 else if(nr==KW_NUMBER) return "number";
4183 else if(nr==KW_CLASS) return "class";
4184 else if(nr==KW_CONST) return "const";
4185 else if(nr==KW_FINAL) return "final";
4186 else if(nr==KW_FALSE) return "False";
4187 else if(nr==KW_TRUE) return "True";
4188 else if(nr==KW_UINT) return "uint";
4189 else if(nr==KW_NULL) return "null";
4190 else if(nr==KW_ELSE) return "else";
4191 else if(nr==KW_USE) return "use";
4192 else if(nr==KW_INT) return "int";
4193 else if(nr==KW_NEW) return "new";
4194 else if(nr==KW_GET) return "get";
4195 else if(nr==KW_SET) return "set";
4196 else if(nr==KW_VAR) return "var";
4197 else if(nr==KW_IS) return "is";
4198 else if(nr==KW_AS) return "as";
4199 else {
4200 sprintf(mbuf, "%d", nr);
4201 return mbuf;
4202 }
4203 }
4204
tokenizer_begin_xml()4205 void tokenizer_begin_xml()
4206 {
4207 dbg("begin reading xml");
4208 BEGIN(XML);
4209 }
tokenizer_begin_xmltext()4210 void tokenizer_begin_xmltext()
4211 {
4212 dbg("begin reading xml text");
4213 BEGIN(XMLTEXT);
4214 }
tokenizer_end_xmltext()4215 void tokenizer_end_xmltext()
4216 {
4217 dbg("end reading xml text");
4218 BEGIN(XML);
4219 }
tokenizer_end_xml()4220 void tokenizer_end_xml()
4221 {
4222 dbg("end reading xml");
4223 BEGIN(DEFAULT);
4224 }
4225
initialize_scanner()4226 void initialize_scanner()
4227 {
4228 BEGIN(BEGINNING);
4229 }
4230
4231
4232
4233