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