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