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