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