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