numerous small bugfixes
[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 "tokenizer.h"
1347 #include "files.h"
1348
1349 int as3_pass = 0;
1350 int as3_verbosity = 1;
1351 unsigned int as3_tokencount = 0;
1352
1353 void as3_error(const char*format, ...)
1354 {
1355     char buf[1024];
1356     int l;
1357     va_list arglist;
1358     if(as3_verbosity<0)
1359         exit(1);
1360     va_start(arglist, format);
1361     vsprintf(buf, format, arglist);
1362     va_end(arglist);
1363     fprintf(stderr, "%s:%d:%d: error: %s\n", current_filename_short, current_line, current_column, buf);
1364     fflush(stderr);
1365     exit(1);
1366 }
1367 void as3_warning(const char*format, ...)
1368 {
1369     char buf[1024];
1370     int l;
1371     va_list arglist;
1372     if(as3_verbosity<1)
1373         return;
1374     va_start(arglist, format);
1375     vsprintf(buf, format, arglist);
1376     va_end(arglist);
1377     fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1378     fflush(stderr);
1379 }
1380 void as3_softwarning(const char*format, ...)
1381 {
1382     char buf[1024];
1383     int l;
1384     va_list arglist;
1385     if(as3_verbosity<2)
1386         return;
1387     va_start(arglist, format);
1388     vsprintf(buf, format, arglist);
1389     va_end(arglist);
1390     fprintf(stderr, "%s:%d:%d: warning: %s\n", current_filename_short, current_line, current_column, buf);
1391     fflush(stderr);
1392 }
1393 static void dbg(const char*format, ...)
1394 {
1395     char buf[1024];
1396     int l;
1397     va_list arglist;
1398     if(as3_verbosity<3)
1399         return;
1400     va_start(arglist, format);
1401     vsprintf(buf, format, arglist);
1402     va_end(arglist);
1403     l = strlen(buf);
1404     while(l && buf[l-1]=='\n') {
1405         buf[l-1] = 0;
1406         l--;
1407     }
1408     printf("(tokenizer) ");
1409     printf("%s\n", buf);
1410     fflush(stdout);
1411 }
1412
1413 #ifndef YY_CURRENT_BUFFER
1414 #define YY_CURRENT_BUFFER yy_current_buffer
1415 #endif
1416
1417 static void*as3_buffer=0;
1418 static int as3_buffer_pos=0;
1419 static int as3_buffer_len=0;
1420 void as3_file_input(FILE*fi)
1421 {
1422     as3_in = fi;
1423     as3_buffer = 0;
1424 }
1425 void as3_buffer_input(void*buffer, int len)
1426 {
1427     if(!buffer)
1428         syntaxerror("trying to parse zero bytearray");
1429     as3_buffer = buffer;
1430     as3_buffer_len = len;
1431     as3_buffer_pos = 0;
1432     as3_in = 0;
1433 }
1434
1435 #define YY_INPUT(buf,result,max_size) { \
1436   if(!as3_buffer) { \
1437       errno=0; \
1438       while((result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1439       { if(errno != EINTR) {YY_FATAL_ERROR("input in flex scanner failed"); break;} \
1440         errno=0; clearerr(as3_in); \
1441       } \
1442   } else { \
1443       int to_read = max_size; \
1444       if(to_read + as3_buffer_pos > as3_buffer_len) \
1445           to_read = as3_buffer_len - as3_buffer_pos; \
1446       memcpy(buf, as3_buffer+as3_buffer_pos, to_read); \
1447       as3_buffer_pos += to_read; \
1448       result=to_read; \
1449   } \
1450 }
1451
1452 void handleInclude(char*text, int len, char quotes)
1453 {
1454     char*filename = 0;
1455     if(quotes) {
1456         char*p1 = strchr(text, '"');
1457         char*p2 = strrchr(text, '"');
1458         if(!p1 || !p2 || p1==p2) {
1459             syntaxerror("Invalid include in line %d\n", current_line);
1460         }
1461         *p2 = 0;
1462         filename = strdup(p1+1);
1463     } else {
1464         int i1=0,i2=len;
1465         // find start
1466         while(!strchr(" \n\r\t", text[i1])) i1++;
1467         // strip
1468         while(strchr(" \n\r\t", text[i1])) i1++;
1469         while(strchr(" \n\r\t", text[i2-1])) i2--;
1470         if(i2!=len) text[i2]=0;
1471         filename = strdup(&text[i1]);
1472     }
1473     
1474     char*fullfilename = find_file(filename, 1);
1475     enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
1476     as3_in = fopen(fullfilename, "rb");
1477     if (!as3_in) {
1478         syntaxerror("Couldn't open include file \"%s\"\n", fullfilename);
1479     }
1480
1481     as3__switch_to_buffer(as3__create_buffer(as3_in,YY_BUF_SIZE ) );
1482     //BEGIN(INITIAL); keep context
1483 }
1484
1485 static int do_unescape(const char*s, const char*end, char*n) 
1486 {
1487     char*o = n;
1488     int len=0;
1489     while(s<end) {
1490         if(*s!='\\') {
1491             if(o) o[len] = *s;len++;
1492             s++;
1493             continue;
1494         }
1495         s++; //skip past '\'
1496         if(s==end) syntaxerror("invalid \\ at end of string");
1497
1498         /* handle the various line endings (mac, dos, unix) */
1499         if(*s=='\r') { 
1500             s++; 
1501             if(s==end) break;
1502             if(*s=='\n') 
1503                 s++;
1504             continue;
1505         }
1506         if(*s=='\n')  {
1507             s++;
1508             continue;
1509         }
1510         switch(*s) {
1511             case '\\': if(o) o[len] = '\\';s++;len++; break;
1512             case '"': if(o) o[len] = '"';s++;len++; break;
1513             case '\'': if(o) o[len] = '\'';s++;len++; break;
1514             case 'b': if(o) o[len] = '\b';s++;len++; break;
1515             case 'f': if(o) o[len] = '\f';s++;len++; break;
1516             case 'n': if(o) o[len] = '\n';s++;len++; break;
1517             case 'r': if(o) o[len] = '\r';s++;len++; break;
1518             case 't': if(o) o[len] = '\t';s++;len++; break;
1519             case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
1520                 unsigned int num=0;
1521                 int nr = 0;
1522                 while(strchr("01234567", *s) && nr<3 && s<end) {
1523                     num <<= 3;
1524                     num |= *s-'0';
1525                     nr++;
1526                     s++;
1527                 }
1528                 if(num>256) 
1529                     syntaxerror("octal number out of range (0-255): %d", num);
1530                 if(o) o[len] = num;len++;
1531                 continue;
1532             }
1533             case 'x': case 'u': {
1534                 int max=2;
1535                 char bracket = 0;
1536                 char unicode = 0;
1537                 if(*s == 'u') {
1538                     max = 6;
1539                     unicode = 1;
1540                 }
1541                 s++;
1542                 if(s==end) syntaxerror("invalid \\u or \\x at end of string");
1543                 if(*s == '{')  {
1544                     s++;
1545                     if(s==end) syntaxerror("invalid \\u{ at end of string");
1546                     bracket=1;
1547                 }
1548                 unsigned int num=0;
1549                 int nr = 0;
1550                 while(strchr("0123456789abcdefABCDEF", *s) && (bracket || nr < max) && s<end) {
1551                     num <<= 4;
1552                     if(*s>='0' && *s<='9') num |= *s - '0';
1553                     if(*s>='a' && *s<='f') num |= *s - 'a' + 10;
1554                     if(*s>='A' && *s<='F') num |= *s - 'A' + 10;
1555                     nr++;
1556                     s++;
1557                 }
1558                 if(bracket) {
1559                     if(*s=='}' && s<end) {
1560                         s++;
1561                     } else {
1562                         syntaxerror("missing terminating '}'");
1563                     }
1564                 }
1565                 if(unicode) {
1566                     char*utf8 = getUTF8(num);
1567                     while(*utf8) {
1568                         if(o) o[len] = *utf8;utf8++;len++;
1569                     }
1570                 } else {
1571                     if(num>256) 
1572                         syntaxerror("byte out of range (0-255): %d", num);
1573                     if(o) o[len] = num;len++;
1574                 }
1575                 break;
1576             }
1577             default:
1578                 syntaxerror("unknown escape sequence: \"\\%c\"", *s);
1579         }
1580     }
1581     if(o) o[len]=0;
1582     return len;
1583 }
1584
1585 static string_t string_unescape(const char*in, int l)
1586 {
1587     const char*s = in;
1588     const char*end = &in[l];
1589
1590     int len = do_unescape(s, end, 0);
1591     char*n = (char*)malloc(len+1);
1592     do_unescape(s, end, n);
1593     string_t out = string_new(n, len);
1594     return out; 
1595 }
1596
1597 static void handleCData(char*s, int len)
1598 {
1599     a3_lval.str.str = s+9;    // <![CDATA[
1600     a3_lval.str.len = len-9-3;// ]]>
1601     a3_lval.str.str = strdup_n(a3_lval.str.str, a3_lval.str.len);
1602 }
1603
1604 static void handleString(char*s, int len)
1605 {
1606     if(as3_pass < 2) {
1607         // don't bother decoding strings in pass 1
1608         memset(&a3_lval, 0, sizeof(a3_lval));
1609         return;
1610     }
1611
1612     if(s[0]=='"') {
1613         if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'");
1614         s++;len-=2;
1615     }
1616     else if(s[0]=='\'') {
1617         if(s[len-1]!='\'') syntaxerror("String doesn't end with '\"'");
1618         s++;len-=2;
1619     }
1620     else syntaxerror("String incorrectly terminated");
1621
1622     
1623     a3_lval.str = string_unescape(s, len);
1624 }
1625
1626
1627 char start_of_expression;
1628
1629 static inline int m(int type)
1630 {
1631     a3_lval.token = type;
1632     return type;
1633 }
1634
1635
1636 static char numberbuf[64];
1637 static char*nrbuf()
1638 {
1639     if(as3_leng>sizeof(numberbuf)-1)
1640         syntaxerror("decimal number overflow");
1641     char*s = numberbuf;
1642     memcpy(s, as3_text, as3_leng);
1643     s[as3_leng]=0;
1644     return s;
1645 }
1646
1647 static inline int setint(int v)
1648 {
1649     a3_lval.number_int = v;
1650     if(v>-128)
1651         return T_BYTE;
1652     else if(v>=-32768)
1653         return T_SHORT;
1654     else
1655         return T_INT;
1656 }
1657 static inline int setuint(unsigned int v)
1658 {
1659     a3_lval.number_uint = v;
1660     if(v<128)
1661         return T_BYTE;
1662     else if(v<32768)
1663         return T_SHORT;
1664     else
1665         return T_UINT;
1666 }
1667 static inline int setfloat(double v)
1668 {
1669     a3_lval.number_float = v;
1670     return T_FLOAT;
1671 }
1672
1673 static inline int handlefloat()
1674 {
1675     char*s = nrbuf();
1676     a3_lval.number_float = atof(s);
1677     return T_FLOAT;
1678 }
1679
1680 static inline int handleint()
1681 {
1682     char*s = nrbuf();
1683     char l = (as3_text[0]=='-');
1684
1685     char*max = l?"1073741824":"2147483647";
1686     if(as3_leng-l>10) {
1687         as3_softwarning("integer overflow: %s (converted to Number)", s);
1688         return handlefloat();
1689     }
1690     if(as3_leng-l==10) {
1691         int t;
1692         for(t=0;t<as3_leng-l;t++) {
1693             if(as3_text[l+t]>max[t]) {
1694                 as3_softwarning("integer overflow: %s (converted to Number)", s);
1695                 return handlefloat();
1696             }
1697             else if(as3_text[l+t]<max[t])
1698                 break;
1699         }
1700     }
1701     if(as3_text[0]=='-') {
1702         int v = atoi(s);
1703         return setint(v);
1704     } else {
1705         unsigned int v = 0;
1706         int t;
1707         for(t=0;t<as3_leng;t++) {
1708             v*=10;
1709             v+=as3_text[t]-'0';
1710         }
1711         return setuint(v);
1712     }
1713 }
1714
1715 static inline int handlehexfloat()
1716 {
1717     char l = (as3_text[0]=='-')+2;
1718     double d=0;
1719     char dot=0;
1720     double base=1;
1721     int t;
1722     for(t=l;t<as3_leng;t++) {
1723         char c = as3_text[t];
1724         if(c=='.') {
1725             dot=1;
1726             continue;
1727         }
1728         if(!dot) {
1729             d*=16;
1730         } else {
1731             base*=1/16.0;
1732         }
1733         if(c>='0' && c<='9')
1734             d+=(c&15)*base;
1735         else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1736             d+=((c&0x0f)+9)*base;
1737     }
1738     return setfloat(d);
1739 }
1740 static inline int handlehex()
1741 {
1742     char l = (as3_text[0]=='-')+2;
1743     int len = as3_leng;
1744
1745     if(len-l>8) {
1746         char*s = nrbuf();
1747         syntaxerror("integer overflow %s", s);
1748     }
1749
1750     int t;
1751     unsigned int v = 0;
1752     for(t=l;t<len;t++) {
1753         v<<=4;
1754         char c = as3_text[t];
1755         if(c>='0' && c<='9')
1756             v|=(c&15);
1757         else if((c>='a' && c<='f') || (c>='A' && c<='F'))
1758             v|=(c&0x0f)+9;
1759     }
1760     if(l && v>1073741824) {
1761         char*s = nrbuf();
1762         as3_softwarning("signed integer overflow: %s (converted to Number)", s);
1763         return setfloat(v);
1764     }
1765     if(!l && v>2147483647) {
1766         char*s = nrbuf();
1767         as3_softwarning("unsigned integer overflow: %s (converted to Number)", s);
1768         return setfloat(v);
1769     }
1770
1771     if(l==3) {
1772         return setint(-(int)v);
1773     } else {
1774         return setuint(v);
1775     }
1776 }
1777
1778 void handleLabel(char*text, int len)
1779 {
1780     int t;
1781     for(t=len-1;t>=0;--t) {
1782         if(text[t]!=' ' &&
1783            text[t]!=':')
1784             break;
1785     }
1786     char*s = malloc(t+1);
1787     memcpy(s, as3_text, t);
1788     s[t]=0;
1789     a3_lval.id = s;
1790 }
1791
1792 static int handleregexp()
1793 {
1794     char*s = malloc(as3_leng);
1795     int len=as3_leng-1;
1796     memcpy(s, as3_text+1, len);
1797     s[len] = 0;
1798     int t;
1799     for(t=len;t>=0;--t) {
1800         if(s[t]=='/') {
1801             s[t] = 0;
1802             break;
1803         }
1804     }
1805     a3_lval.regexp.pattern = s;
1806     if(t==len) {
1807         a3_lval.regexp.options = 0;
1808     } else {
1809         a3_lval.regexp.options = s+t+1;
1810     }
1811     return T_REGEXP;
1812 }
1813
1814 void initialize_scanner();
1815 #define YY_USER_INIT initialize_scanner();
1816
1817 /* count the number of lines+columns consumed by this token */
1818 static inline void l() {
1819     int t;
1820     for(t=0;t<as3_leng;t++) {
1821         if(as3_text[t]=='\n') {
1822             current_line++;
1823             current_column=0;
1824         } else {
1825             current_column++;
1826         }
1827     }
1828 }
1829 /* count the number of columns consumed by this token */
1830 static inline void c() {
1831     current_column+=as3_leng;
1832 }
1833
1834 static trie_t*namespaces = 0;
1835 void tokenizer_register_namespace(const char*id)
1836 {
1837     trie_put(&namespaces, id);
1838 }
1839 static inline tokenizer_is_namespace(const char*id)
1840 {
1841     return trie_lookup(namespaces, id);
1842 }
1843
1844 static inline int handleIdentifier()
1845 {
1846     char*s = malloc(as3_leng+1);
1847     memcpy(s, as3_text, as3_leng);
1848     s[as3_leng]=0;
1849     a3_lval.id = s;
1850     if(tokenizer_is_namespace(s)) 
1851         return T_NAMESPACE;
1852     else
1853         return T_IDENTIFIER;
1854 }
1855
1856
1857 //Boolean                      {c();return m(KW_BOOLEAN);}
1858 //int                          {c();return m(KW_INT);}
1859 //uint                         {c();return m(KW_UINT);}
1860 //Number                       {c();return m(KW_NUMBER);}
1861
1862
1863
1864 #line 1865 "tokenizer.yy.c"
1865
1866 #define INITIAL 0
1867 #define REGEXPOK 1
1868 #define BEGINNING 2
1869
1870 #ifndef YY_NO_UNISTD_H
1871 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1872  * down here because we want the user's section 1 to have been scanned first.
1873  * The user has a chance to override it with an option.
1874  */
1875 #include <unistd.h>
1876 #endif
1877
1878 #ifndef YY_EXTRA_TYPE
1879 #define YY_EXTRA_TYPE void *
1880 #endif
1881
1882 static int yy_init_globals (void );
1883
1884 /* Accessor methods to globals.
1885    These are made visible to non-reentrant scanners for convenience. */
1886
1887 int as3_lex_destroy (void );
1888
1889 int as3_get_debug (void );
1890
1891 void as3_set_debug (int debug_flag  );
1892
1893 YY_EXTRA_TYPE as3_get_extra (void );
1894
1895 void as3_set_extra (YY_EXTRA_TYPE user_defined  );
1896
1897 FILE *as3_get_in (void );
1898
1899 void as3_set_in  (FILE * in_str  );
1900
1901 FILE *as3_get_out (void );
1902
1903 void as3_set_out  (FILE * out_str  );
1904
1905 int as3_get_leng (void );
1906
1907 char *as3_get_text (void );
1908
1909 int as3_get_lineno (void );
1910
1911 void as3_set_lineno (int line_number  );
1912
1913 /* Macros after this point can all be overridden by user definitions in
1914  * section 1.
1915  */
1916
1917 #ifndef YY_SKIP_YYWRAP
1918 #ifdef __cplusplus
1919 extern "C" int as3_wrap (void );
1920 #else
1921 extern int as3_wrap (void );
1922 #endif
1923 #endif
1924
1925     static void yyunput (int c,char *buf_ptr  );
1926     
1927 #ifndef yytext_ptr
1928 static void yy_flex_strncpy (char *,yyconst char *,int );
1929 #endif
1930
1931 #ifdef YY_NEED_STRLEN
1932 static int yy_flex_strlen (yyconst char * );
1933 #endif
1934
1935 #ifndef YY_NO_INPUT
1936
1937 #ifdef __cplusplus
1938 static int yyinput (void );
1939 #else
1940 static int input (void );
1941 #endif
1942
1943 #endif
1944
1945 /* Amount of stuff to slurp up with each read. */
1946 #ifndef YY_READ_BUF_SIZE
1947 #define YY_READ_BUF_SIZE 8192
1948 #endif
1949
1950 /* Copy whatever the last rule matched to the standard output. */
1951 #ifndef ECHO
1952 /* This used to be an fputs(), but since the string might contain NUL's,
1953  * we now use fwrite().
1954  */
1955 #define ECHO fwrite( as3_text, as3_leng, 1, as3_out )
1956 #endif
1957
1958 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1959  * is returned in "result".
1960  */
1961 #ifndef YY_INPUT
1962 #define YY_INPUT(buf,result,max_size) \
1963         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1964                 { \
1965                 int c = '*'; \
1966                 int n; \
1967                 for ( n = 0; n < max_size && \
1968                              (c = getc( as3_in )) != EOF && c != '\n'; ++n ) \
1969                         buf[n] = (char) c; \
1970                 if ( c == '\n' ) \
1971                         buf[n++] = (char) c; \
1972                 if ( c == EOF && ferror( as3_in ) ) \
1973                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1974                 result = n; \
1975                 } \
1976         else \
1977                 { \
1978                 errno=0; \
1979                 while ( (result = fread(buf, 1, max_size, as3_in))==0 && ferror(as3_in)) \
1980                         { \
1981                         if( errno != EINTR) \
1982                                 { \
1983                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1984                                 break; \
1985                                 } \
1986                         errno=0; \
1987                         clearerr(as3_in); \
1988                         } \
1989                 }\
1990 \
1991
1992 #endif
1993
1994 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1995  * we don't want an extra ';' after the "return" because that will cause
1996  * some compilers to complain about unreachable statements.
1997  */
1998 #ifndef yyterminate
1999 #define yyterminate() return YY_NULL
2000 #endif
2001
2002 /* Number of entries by which start-condition stack grows. */
2003 #ifndef YY_START_STACK_INCR
2004 #define YY_START_STACK_INCR 25
2005 #endif
2006
2007 /* Report a fatal error. */
2008 #ifndef YY_FATAL_ERROR
2009 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2010 #endif
2011
2012 /* end tables serialization structures and prototypes */
2013
2014 /* Default declaration of generated scanner - a define so the user can
2015  * easily add parameters.
2016  */
2017 #ifndef YY_DECL
2018 #define YY_DECL_IS_OURS 1
2019
2020 extern int as3_lex (void);
2021
2022 #define YY_DECL int as3_lex (void)
2023 #endif /* !YY_DECL */
2024
2025 /* Code executed at the beginning of each rule, after as3_text and as3_leng
2026  * have been set up.
2027  */
2028 #ifndef YY_USER_ACTION
2029 #define YY_USER_ACTION
2030 #endif
2031
2032 /* Code executed at the end of each rule. */
2033 #ifndef YY_BREAK
2034 #define YY_BREAK break;
2035 #endif
2036
2037 #define YY_RULE_SETUP \
2038         if ( as3_leng > 0 ) \
2039                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2040                                 (as3_text[as3_leng - 1] == '\n'); \
2041         YY_USER_ACTION
2042
2043 /** The main scanner function which does all the work.
2044  */
2045 YY_DECL
2046 {
2047         register yy_state_type yy_current_state;
2048         register char *yy_cp, *yy_bp;
2049         register int yy_act;
2050     
2051 #line 571 "tokenizer.lex"
2052
2053
2054
2055 #line 2056 "tokenizer.yy.c"
2056
2057         if ( !(yy_init) )
2058                 {
2059                 (yy_init) = 1;
2060
2061 #ifdef YY_USER_INIT
2062                 YY_USER_INIT;
2063 #endif
2064
2065                 if ( ! (yy_start) )
2066                         (yy_start) = 1; /* first start state */
2067
2068                 if ( ! as3_in )
2069                         as3_in = stdin;
2070
2071                 if ( ! as3_out )
2072                         as3_out = stdout;
2073
2074                 if ( ! YY_CURRENT_BUFFER ) {
2075                         as3_ensure_buffer_stack ();
2076                         YY_CURRENT_BUFFER_LVALUE =
2077                                 as3__create_buffer(as3_in,YY_BUF_SIZE );
2078                 }
2079
2080                 as3__load_buffer_state( );
2081                 }
2082
2083         while ( 1 )             /* loops until end-of-file is reached */
2084                 {
2085                 yy_cp = (yy_c_buf_p);
2086
2087                 /* Support of as3_text. */
2088                 *yy_cp = (yy_hold_char);
2089
2090                 /* yy_bp points to the position in yy_ch_buf of the start of
2091                  * the current run.
2092                  */
2093                 yy_bp = yy_cp;
2094
2095                 yy_current_state = (yy_start);
2096                 yy_current_state += YY_AT_BOL();
2097 yy_match:
2098                 do
2099                         {
2100                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2101                         if ( yy_accept[yy_current_state] )
2102                                 {
2103                                 (yy_last_accepting_state) = yy_current_state;
2104                                 (yy_last_accepting_cpos) = yy_cp;
2105                                 }
2106                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2107                                 {
2108                                 yy_current_state = (int) yy_def[yy_current_state];
2109                                 if ( yy_current_state >= 512 )
2110                                         yy_c = yy_meta[(unsigned int) yy_c];
2111                                 }
2112                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2113                         ++yy_cp;
2114                         }
2115                 while ( yy_current_state != 511 );
2116                 yy_cp = (yy_last_accepting_cpos);
2117                 yy_current_state = (yy_last_accepting_state);
2118
2119 yy_find_action:
2120                 yy_act = yy_accept[yy_current_state];
2121
2122                 YY_DO_BEFORE_ACTION;
2123
2124 do_action:      /* This label is used only to access EOF actions. */
2125
2126                 switch ( yy_act )
2127         { /* beginning of action switch */
2128                         case 0: /* must back up */
2129                         /* undo the effects of YY_DO_BEFORE_ACTION */
2130                         *yy_cp = (yy_hold_char);
2131                         yy_cp = (yy_last_accepting_cpos);
2132                         yy_current_state = (yy_last_accepting_state);
2133                         goto yy_find_action;
2134
2135 case 1:
2136 /* rule 1 can match eol */
2137 YY_RULE_SETUP
2138 #line 574 "tokenizer.lex"
2139 {l(); /* single line comment */}
2140         YY_BREAK
2141 case 2:
2142 /* rule 2 can match eol */
2143 YY_RULE_SETUP
2144 #line 575 "tokenizer.lex"
2145 {l(); /* multi line comment */}
2146         YY_BREAK
2147 case 3:
2148 YY_RULE_SETUP
2149 #line 576 "tokenizer.lex"
2150 {syntaxerror("syntax error: unterminated comment", as3_text);}
2151         YY_BREAK
2152 case 4:
2153 /* rule 4 can match eol */
2154 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2155 (yy_c_buf_p) = yy_cp -= 1;
2156 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2157 YY_RULE_SETUP
2158 #line 578 "tokenizer.lex"
2159 {l();handleInclude(as3_text, as3_leng, 1);}
2160         YY_BREAK
2161 case 5:
2162 /* rule 5 can match eol */
2163 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2164 (yy_c_buf_p) = yy_cp -= 1;
2165 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2166 YY_RULE_SETUP
2167 #line 579 "tokenizer.lex"
2168 {l();handleInclude(as3_text, as3_leng, 0);}
2169         YY_BREAK
2170 case 6:
2171 /* rule 6 can match eol */
2172 YY_RULE_SETUP
2173 #line 580 "tokenizer.lex"
2174 {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;}
2175         YY_BREAK
2176 case 7:
2177 /* rule 7 can match eol */
2178 YY_RULE_SETUP
2179 #line 581 "tokenizer.lex"
2180 {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;}
2181         YY_BREAK
2182
2183 case 8:
2184 YY_RULE_SETUP
2185 #line 584 "tokenizer.lex"
2186 {c(); BEGIN(INITIAL);return handleregexp();} 
2187         YY_BREAK
2188 case 9:
2189 /* rule 9 can match eol */
2190 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2191 (yy_c_buf_p) = yy_cp -= 1;
2192 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2193 YY_RULE_SETUP
2194 #line 585 "tokenizer.lex"
2195 {c(); BEGIN(INITIAL);return handlehex();}
2196         YY_BREAK
2197 case 10:
2198 /* rule 10 can match eol */
2199 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2200 (yy_c_buf_p) = yy_cp -= 1;
2201 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2202 YY_RULE_SETUP
2203 #line 586 "tokenizer.lex"
2204 {c(); BEGIN(INITIAL);return handlehexfloat();}
2205         YY_BREAK
2206 case 11:
2207 /* rule 11 can match eol */
2208 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2209 (yy_c_buf_p) = yy_cp -= 1;
2210 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2211 YY_RULE_SETUP
2212 #line 587 "tokenizer.lex"
2213 {c(); BEGIN(INITIAL);return handleint();}
2214         YY_BREAK
2215 case 12:
2216 /* rule 12 can match eol */
2217 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2218 (yy_c_buf_p) = yy_cp -= 1;
2219 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2220 YY_RULE_SETUP
2221 #line 588 "tokenizer.lex"
2222 {c(); BEGIN(INITIAL);return handlefloat();}
2223         YY_BREAK
2224
2225 case 13:
2226 YY_RULE_SETUP
2227 #line 591 "tokenizer.lex"
2228 {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);}
2229         YY_BREAK
2230 case 14:
2231 YY_RULE_SETUP
2232 #line 592 "tokenizer.lex"
2233 {c(); BEGIN(INITIAL); return m('{');}
2234         YY_BREAK
2235 case 15:
2236 YY_RULE_SETUP
2237 #line 594 "tokenizer.lex"
2238 {/* utf 8 bom */}
2239         YY_BREAK
2240 case 16:
2241 /* rule 16 can match eol */
2242 YY_RULE_SETUP
2243 #line 595 "tokenizer.lex"
2244 {l();}
2245         YY_BREAK
2246 case 17:
2247 /* rule 17 can match eol */
2248 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2249 (yy_c_buf_p) = yy_cp -= 1;
2250 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2251 YY_RULE_SETUP
2252 #line 597 "tokenizer.lex"
2253 {c(); BEGIN(INITIAL);return handlehex();}
2254         YY_BREAK
2255 case 18:
2256 /* rule 18 can match eol */
2257 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2258 (yy_c_buf_p) = yy_cp -= 1;
2259 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2260 YY_RULE_SETUP
2261 #line 598 "tokenizer.lex"
2262 {c(); BEGIN(INITIAL);return handlehexfloat();}
2263         YY_BREAK
2264 case 19:
2265 /* rule 19 can match eol */
2266 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2267 (yy_c_buf_p) = yy_cp -= 1;
2268 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2269 YY_RULE_SETUP
2270 #line 599 "tokenizer.lex"
2271 {c(); BEGIN(INITIAL);return handleint();}
2272         YY_BREAK
2273 case 20:
2274 /* rule 20 can match eol */
2275 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2276 (yy_c_buf_p) = yy_cp -= 1;
2277 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2278 YY_RULE_SETUP
2279 #line 600 "tokenizer.lex"
2280 {c(); BEGIN(INITIAL);return handlefloat();}
2281         YY_BREAK
2282 case 21:
2283 YY_RULE_SETUP
2284 #line 602 "tokenizer.lex"
2285 {/* for debugging: generates a tokenizer-level error */
2286                               syntaxerror("3rr0r");}
2287         YY_BREAK
2288 case 22:
2289 /* rule 22 can match eol */
2290 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2291 (yy_c_buf_p) = yy_cp -= 1;
2292 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2293 YY_RULE_SETUP
2294 #line 605 "tokenizer.lex"
2295 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-3);return T_FOR;}
2296         YY_BREAK
2297 case 23:
2298 /* rule 23 can match eol */
2299 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2300 (yy_c_buf_p) = yy_cp -= 1;
2301 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2302 YY_RULE_SETUP
2303 #line 606 "tokenizer.lex"
2304 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-2);return T_DO;}
2305         YY_BREAK
2306 case 24:
2307 /* rule 24 can match eol */
2308 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2309 (yy_c_buf_p) = yy_cp -= 1;
2310 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2311 YY_RULE_SETUP
2312 #line 607 "tokenizer.lex"
2313 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-5);return T_WHILE;}
2314         YY_BREAK
2315 case 25:
2316 /* rule 25 can match eol */
2317 *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */
2318 (yy_c_buf_p) = yy_cp -= 1;
2319 YY_DO_BEFORE_ACTION; /* set up as3_text again */
2320 YY_RULE_SETUP
2321 #line 608 "tokenizer.lex"
2322 {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-6);return T_SWITCH;}
2323         YY_BREAK
2324 case 26:
2325 YY_RULE_SETUP
2326 #line 609 "tokenizer.lex"
2327 {c();BEGIN(INITIAL);a3_lval.id="";return T_FOR;}
2328         YY_BREAK
2329 case 27:
2330 YY_RULE_SETUP
2331 #line 610 "tokenizer.lex"
2332 {c();BEGIN(INITIAL);a3_lval.id="";return T_DO;}
2333         YY_BREAK
2334 case 28:
2335 YY_RULE_SETUP
2336 #line 611 "tokenizer.lex"
2337 {c();BEGIN(INITIAL);a3_lval.id="";return T_WHILE;}
2338         YY_BREAK
2339 case 29:
2340 YY_RULE_SETUP
2341 #line 612 "tokenizer.lex"
2342 {c();BEGIN(INITIAL);a3_lval.id="";return T_SWITCH;}
2343         YY_BREAK
2344 case 30:
2345 YY_RULE_SETUP
2346 #line 614 "tokenizer.lex"
2347 {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
2348         YY_BREAK
2349 case 31:
2350 YY_RULE_SETUP
2351 #line 615 "tokenizer.lex"
2352 {c();BEGIN(REGEXPOK);return m(T_OROR);}
2353         YY_BREAK
2354 case 32:
2355 YY_RULE_SETUP
2356 #line 616 "tokenizer.lex"
2357 {c();BEGIN(REGEXPOK);return m(T_NE);}
2358         YY_BREAK
2359 case 33:
2360 YY_RULE_SETUP
2361 #line 617 "tokenizer.lex"
2362 {c();BEGIN(REGEXPOK);return m(T_NEE);}
2363         YY_BREAK
2364 case 34:
2365 YY_RULE_SETUP
2366 #line 618 "tokenizer.lex"
2367 {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);}
2368         YY_BREAK
2369 case 35:
2370 YY_RULE_SETUP
2371 #line 619 "tokenizer.lex"
2372 {c();BEGIN(REGEXPOK);return m(T_EQEQ);}
2373         YY_BREAK
2374 case 36:
2375 YY_RULE_SETUP
2376 #line 620 "tokenizer.lex"
2377 {c();BEGIN(REGEXPOK);return m(T_GE);}
2378         YY_BREAK
2379 case 37:
2380 YY_RULE_SETUP
2381 #line 621 "tokenizer.lex"
2382 {c();BEGIN(REGEXPOK);return m(T_LE);}
2383         YY_BREAK
2384 case 38:
2385 YY_RULE_SETUP
2386 #line 622 "tokenizer.lex"
2387 {c();BEGIN(INITIAL);return m(T_MINUSMINUS);}
2388         YY_BREAK
2389 case 39:
2390 YY_RULE_SETUP
2391 #line 623 "tokenizer.lex"
2392 {c();BEGIN(INITIAL);return m(T_PLUSPLUS);}
2393         YY_BREAK
2394 case 40:
2395 YY_RULE_SETUP
2396 #line 624 "tokenizer.lex"
2397 {c();BEGIN(REGEXPOK);return m(T_PLUSBY);}
2398         YY_BREAK
2399 case 41:
2400 YY_RULE_SETUP
2401 #line 625 "tokenizer.lex"
2402 {c();BEGIN(REGEXPOK);return m(T_XORBY);}
2403         YY_BREAK
2404 case 42:
2405 YY_RULE_SETUP
2406 #line 626 "tokenizer.lex"
2407 {c();BEGIN(REGEXPOK);return m(T_MINUSBY);}
2408         YY_BREAK
2409 case 43:
2410 YY_RULE_SETUP
2411 #line 627 "tokenizer.lex"
2412 {c();BEGIN(REGEXPOK);return m(T_DIVBY);}
2413         YY_BREAK
2414 case 44:
2415 YY_RULE_SETUP
2416 #line 628 "tokenizer.lex"
2417 {c();BEGIN(REGEXPOK);return m(T_MODBY);}
2418         YY_BREAK
2419 case 45:
2420 YY_RULE_SETUP
2421 #line 629 "tokenizer.lex"
2422 {c();BEGIN(REGEXPOK);return m(T_MULBY);}
2423         YY_BREAK
2424 case 46:
2425 YY_RULE_SETUP
2426 #line 630 "tokenizer.lex"
2427 {c();BEGIN(REGEXPOK);return m(T_ORBY);}
2428         YY_BREAK
2429 case 47:
2430 YY_RULE_SETUP
2431 #line 631 "tokenizer.lex"
2432 {c();BEGIN(REGEXPOK);return m(T_SHRBY);}
2433         YY_BREAK
2434 case 48:
2435 YY_RULE_SETUP
2436 #line 632 "tokenizer.lex"
2437 {c();BEGIN(REGEXPOK);return m(T_SHLBY);}
2438         YY_BREAK
2439 case 49:
2440 YY_RULE_SETUP
2441 #line 633 "tokenizer.lex"
2442 {c();BEGIN(REGEXPOK);return m(T_USHRBY);}
2443         YY_BREAK
2444 case 50:
2445 YY_RULE_SETUP
2446 #line 634 "tokenizer.lex"
2447 {c();BEGIN(REGEXPOK);return m(T_SHL);}
2448         YY_BREAK
2449 case 51:
2450 YY_RULE_SETUP
2451 #line 635 "tokenizer.lex"
2452 {c();BEGIN(REGEXPOK);return m(T_USHR);}
2453         YY_BREAK
2454 case 52:
2455 YY_RULE_SETUP
2456 #line 636 "tokenizer.lex"
2457 {c();BEGIN(REGEXPOK);return m(T_SHR);}
2458         YY_BREAK
2459 case 53:
2460 YY_RULE_SETUP
2461 #line 637 "tokenizer.lex"
2462 {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);}
2463         YY_BREAK
2464 case 54:
2465 YY_RULE_SETUP
2466 #line 638 "tokenizer.lex"
2467 {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
2468         YY_BREAK
2469 case 55:
2470 YY_RULE_SETUP
2471 #line 639 "tokenizer.lex"
2472 {c();BEGIN(REGEXPOK);return m('.');}
2473         YY_BREAK
2474 case 56:
2475 YY_RULE_SETUP
2476 #line 640 "tokenizer.lex"
2477 {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
2478         YY_BREAK
2479 case 57:
2480 YY_RULE_SETUP
2481 #line 641 "tokenizer.lex"
2482 {c();BEGIN(REGEXPOK);return m(':');}
2483         YY_BREAK
2484 case 58:
2485 YY_RULE_SETUP
2486 #line 642 "tokenizer.lex"
2487 {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
2488         YY_BREAK
2489 case 59:
2490 YY_RULE_SETUP
2491 #line 643 "tokenizer.lex"
2492 {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
2493         YY_BREAK
2494 case 60:
2495 YY_RULE_SETUP
2496 #line 644 "tokenizer.lex"
2497 {c();BEGIN(INITIAL);return m(KW_INTERFACE);}
2498         YY_BREAK
2499 case 61:
2500 YY_RULE_SETUP
2501 #line 645 "tokenizer.lex"
2502 {c();BEGIN(INITIAL);return m(KW_NAMESPACE);}
2503         YY_BREAK
2504 case 62:
2505 YY_RULE_SETUP
2506 #line 646 "tokenizer.lex"
2507 {c();BEGIN(INITIAL);return m(KW_PROTECTED);}
2508         YY_BREAK
2509 case 63:
2510 YY_RULE_SETUP
2511 #line 647 "tokenizer.lex"
2512 {c();BEGIN(INITIAL);return m(KW_UNDEFINED);}
2513         YY_BREAK
2514 case 64:
2515 YY_RULE_SETUP
2516 #line 648 "tokenizer.lex"
2517 {c();BEGIN(INITIAL);return m(KW_CONTINUE);}
2518         YY_BREAK
2519 case 65:
2520 YY_RULE_SETUP
2521 #line 649 "tokenizer.lex"
2522 {c();BEGIN(INITIAL);return m(KW_OVERRIDE);}
2523         YY_BREAK
2524 case 66:
2525 YY_RULE_SETUP
2526 #line 650 "tokenizer.lex"
2527 {c();BEGIN(INITIAL);return m(KW_INTERNAL);}
2528         YY_BREAK
2529 case 67:
2530 YY_RULE_SETUP
2531 #line 651 "tokenizer.lex"
2532 {c();BEGIN(INITIAL);return m(KW_FUNCTION);}
2533         YY_BREAK
2534 case 68:
2535 YY_RULE_SETUP
2536 #line 652 "tokenizer.lex"
2537 {c();BEGIN(INITIAL);return m(KW_FINALLY);}
2538         YY_BREAK
2539 case 69:
2540 YY_RULE_SETUP
2541 #line 653 "tokenizer.lex"
2542 {c();BEGIN(INITIAL);return m(KW_DEFAULT);}
2543         YY_BREAK
2544 case 70:
2545 YY_RULE_SETUP
2546 #line 654 "tokenizer.lex"
2547 {c();BEGIN(INITIAL);return m(KW_PACKAGE);}
2548         YY_BREAK
2549 case 71:
2550 YY_RULE_SETUP
2551 #line 655 "tokenizer.lex"
2552 {c();BEGIN(INITIAL);return m(KW_PRIVATE);}
2553         YY_BREAK
2554 case 72:
2555 YY_RULE_SETUP
2556 #line 656 "tokenizer.lex"
2557 {c();BEGIN(INITIAL);return m(KW_DYNAMIC);}
2558         YY_BREAK
2559 case 73:
2560 YY_RULE_SETUP
2561 #line 657 "tokenizer.lex"
2562 {c();BEGIN(INITIAL);return m(KW_EXTENDS);}
2563         YY_BREAK
2564 case 74:
2565 YY_RULE_SETUP
2566 #line 658 "tokenizer.lex"
2567 {c();BEGIN(REGEXPOK);return m(KW_DELETE);}
2568         YY_BREAK
2569 case 75:
2570 YY_RULE_SETUP
2571 #line 659 "tokenizer.lex"
2572 {c();BEGIN(REGEXPOK);return m(KW_RETURN);}
2573         YY_BREAK
2574 case 76:
2575 YY_RULE_SETUP
2576 #line 660 "tokenizer.lex"
2577 {c();BEGIN(INITIAL);return m(KW_PUBLIC);}
2578         YY_BREAK
2579 case 77:
2580 YY_RULE_SETUP
2581 #line 661 "tokenizer.lex"
2582 {c();BEGIN(INITIAL);return m(KW_NATIVE);}
2583         YY_BREAK
2584 case 78:
2585 YY_RULE_SETUP
2586 #line 662 "tokenizer.lex"
2587 {c();BEGIN(INITIAL);return m(KW_STATIC);}
2588         YY_BREAK
2589 case 79:
2590 YY_RULE_SETUP
2591 #line 663 "tokenizer.lex"
2592 {c();BEGIN(REGEXPOK);return m(KW_IMPORT);}
2593         YY_BREAK
2594 case 80:
2595 YY_RULE_SETUP
2596 #line 664 "tokenizer.lex"
2597 {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);}
2598         YY_BREAK
2599 case 81:
2600 YY_RULE_SETUP
2601 #line 665 "tokenizer.lex"
2602 {c();BEGIN(REGEXPOK);return m(KW_THROW);}
2603         YY_BREAK
2604 case 82:
2605 YY_RULE_SETUP
2606 #line 666 "tokenizer.lex"
2607 {c();BEGIN(INITIAL);return m(KW_CLASS);}
2608         YY_BREAK
2609 case 83:
2610 YY_RULE_SETUP
2611 #line 667 "tokenizer.lex"
2612 {c();BEGIN(INITIAL);return m(KW_CONST);}
2613         YY_BREAK
2614 case 84:
2615 YY_RULE_SETUP
2616 #line 668 "tokenizer.lex"
2617 {c();BEGIN(INITIAL);return m(KW_CATCH);}
2618         YY_BREAK
2619 case 85:
2620 YY_RULE_SETUP
2621 #line 669 "tokenizer.lex"
2622 {c();BEGIN(INITIAL);return m(KW_FINAL);}
2623         YY_BREAK
2624 case 86:
2625 YY_RULE_SETUP
2626 #line 670 "tokenizer.lex"
2627 {c();BEGIN(INITIAL);return m(KW_FALSE);}
2628         YY_BREAK
2629 case 87:
2630 YY_RULE_SETUP
2631 #line 671 "tokenizer.lex"
2632 {c();BEGIN(INITIAL);return m(KW_BREAK);}
2633         YY_BREAK
2634 case 88:
2635 YY_RULE_SETUP
2636 #line 672 "tokenizer.lex"
2637 {c();BEGIN(INITIAL);return m(KW_SUPER);}
2638         YY_BREAK
2639 case 89:
2640 YY_RULE_SETUP
2641 #line 673 "tokenizer.lex"
2642 {c();BEGIN(INITIAL);return m(KW_EACH);}
2643         YY_BREAK
2644 case 90:
2645 YY_RULE_SETUP
2646 #line 674 "tokenizer.lex"
2647 {c();BEGIN(INITIAL);return m(KW_VOID);}
2648         YY_BREAK
2649 case 91:
2650 YY_RULE_SETUP
2651 #line 675 "tokenizer.lex"
2652 {c();BEGIN(INITIAL);return m(KW_TRUE);}
2653         YY_BREAK
2654 case 92:
2655 YY_RULE_SETUP
2656 #line 676 "tokenizer.lex"
2657 {c();BEGIN(INITIAL);return m(KW_NULL);}
2658         YY_BREAK
2659 case 93:
2660 YY_RULE_SETUP
2661 #line 677 "tokenizer.lex"
2662 {c();BEGIN(INITIAL);return m(KW_ELSE);}
2663         YY_BREAK
2664 case 94:
2665 YY_RULE_SETUP
2666 #line 678 "tokenizer.lex"
2667 {c();BEGIN(REGEXPOK);return m(KW_CASE);}
2668         YY_BREAK
2669 case 95:
2670 YY_RULE_SETUP
2671 #line 679 "tokenizer.lex"
2672 {c();BEGIN(REGEXPOK);return m(KW_WITH);}
2673         YY_BREAK
2674 case 96:
2675 YY_RULE_SETUP
2676 #line 680 "tokenizer.lex"
2677 {c();BEGIN(REGEXPOK);return m(KW_USE);}
2678         YY_BREAK
2679 case 97:
2680 YY_RULE_SETUP
2681 #line 681 "tokenizer.lex"
2682 {c();BEGIN(REGEXPOK);return m(KW_NEW);}
2683         YY_BREAK
2684 case 98:
2685 YY_RULE_SETUP
2686 #line 682 "tokenizer.lex"
2687 {c();BEGIN(INITIAL);return m(KW_GET);}
2688         YY_BREAK
2689 case 99:
2690 YY_RULE_SETUP
2691 #line 683 "tokenizer.lex"
2692 {c();BEGIN(INITIAL);return m(KW_SET);}
2693         YY_BREAK
2694 case 100:
2695 YY_RULE_SETUP
2696 #line 684 "tokenizer.lex"
2697 {c();BEGIN(INITIAL);return m(KW_VAR);}
2698         YY_BREAK
2699 case 101:
2700 YY_RULE_SETUP
2701 #line 685 "tokenizer.lex"
2702 {c();BEGIN(INITIAL);return m(KW_TRY);}
2703         YY_BREAK
2704 case 102:
2705 YY_RULE_SETUP
2706 #line 686 "tokenizer.lex"
2707 {c();BEGIN(REGEXPOK);return m(KW_IS) ;}
2708         YY_BREAK
2709 case 103:
2710 YY_RULE_SETUP
2711 #line 687 "tokenizer.lex"
2712 {c();BEGIN(REGEXPOK);return m(KW_IN) ;}
2713         YY_BREAK
2714 case 104:
2715 YY_RULE_SETUP
2716 #line 688 "tokenizer.lex"
2717 {c();BEGIN(INITIAL);return m(KW_IF) ;}
2718         YY_BREAK
2719 case 105:
2720 YY_RULE_SETUP
2721 #line 689 "tokenizer.lex"
2722 {c();BEGIN(REGEXPOK);return m(KW_AS);}
2723         YY_BREAK
2724 case 106:
2725 YY_RULE_SETUP
2726 #line 690 "tokenizer.lex"
2727 {c();BEGIN(INITIAL);return handleIdentifier();}
2728         YY_BREAK
2729 case 107:
2730 YY_RULE_SETUP
2731 #line 692 "tokenizer.lex"
2732 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2733         YY_BREAK
2734 case 108:
2735 YY_RULE_SETUP
2736 #line 693 "tokenizer.lex"
2737 {c();BEGIN(REGEXPOK);return m(as3_text[0]);}
2738         YY_BREAK
2739 case 109:
2740 YY_RULE_SETUP
2741 #line 694 "tokenizer.lex"
2742 {c();BEGIN(INITIAL);return m(as3_text[0]);}
2743         YY_BREAK
2744 case 110:
2745 YY_RULE_SETUP
2746 #line 696 "tokenizer.lex"
2747 {/* ERROR */
2748                               char c1=as3_text[0];
2749                               char buf[128];
2750                               buf[0] = as3_text[0];
2751                               int t;
2752                               for(t=1;t<128;t++) {
2753                                   char c = buf[t]=input();
2754                                   if(c=='\n' || c==EOF)  {
2755                                       buf[t] = 0;
2756                                       break;
2757                                   }
2758                               }
2759                               if(c1>='0' && c1<='9')
2760                                   syntaxerror("syntax error: %s (identifiers must not start with a digit)");
2761                               else
2762                                   syntaxerror("syntax error: %s", buf);
2763                               printf("\n");
2764                               exit(1);
2765                               yyterminate();
2766                              }
2767         YY_BREAK
2768 case YY_STATE_EOF(INITIAL):
2769 case YY_STATE_EOF(REGEXPOK):
2770 case YY_STATE_EOF(BEGINNING):
2771 #line 716 "tokenizer.lex"
2772 {l();
2773                               void*b = leave_file();
2774                               if (!b) {
2775                                  yyterminate();
2776                                  as3__delete_buffer(YY_CURRENT_BUFFER);
2777                                  return m(T_EOF);
2778                               } else {
2779                                   as3__delete_buffer(YY_CURRENT_BUFFER);
2780                                   as3__switch_to_buffer(b);
2781                               }
2782                              }
2783         YY_BREAK
2784 case 111:
2785 YY_RULE_SETUP
2786 #line 728 "tokenizer.lex"
2787 ECHO;
2788         YY_BREAK
2789 #line 2790 "tokenizer.yy.c"
2790
2791         case YY_END_OF_BUFFER:
2792                 {
2793                 /* Amount of text matched not including the EOB char. */
2794                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2795
2796                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2797                 *yy_cp = (yy_hold_char);
2798                 YY_RESTORE_YY_MORE_OFFSET
2799
2800                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2801                         {
2802                         /* We're scanning a new file or input source.  It's
2803                          * possible that this happened because the user
2804                          * just pointed as3_in at a new source and called
2805                          * as3_lex().  If so, then we have to assure
2806                          * consistency between YY_CURRENT_BUFFER and our
2807                          * globals.  Here is the right place to do so, because
2808                          * this is the first action (other than possibly a
2809                          * back-up) that will match for the new input source.
2810                          */
2811                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2812                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = as3_in;
2813                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2814                         }
2815
2816                 /* Note that here we test for yy_c_buf_p "<=" to the position
2817                  * of the first EOB in the buffer, since yy_c_buf_p will
2818                  * already have been incremented past the NUL character
2819                  * (since all states make transitions on EOB to the
2820                  * end-of-buffer state).  Contrast this with the test
2821                  * in input().
2822                  */
2823                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2824                         { /* This was really a NUL. */
2825                         yy_state_type yy_next_state;
2826
2827                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2828
2829                         yy_current_state = yy_get_previous_state(  );
2830
2831                         /* Okay, we're now positioned to make the NUL
2832                          * transition.  We couldn't have
2833                          * yy_get_previous_state() go ahead and do it
2834                          * for us because it doesn't know how to deal
2835                          * with the possibility of jamming (and we don't
2836                          * want to build jamming into it because then it
2837                          * will run more slowly).
2838                          */
2839
2840                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2841
2842                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2843
2844                         if ( yy_next_state )
2845                                 {
2846                                 /* Consume the NUL. */
2847                                 yy_cp = ++(yy_c_buf_p);
2848                                 yy_current_state = yy_next_state;
2849                                 goto yy_match;
2850                                 }
2851
2852                         else
2853                                 {
2854                                 yy_cp = (yy_last_accepting_cpos);
2855                                 yy_current_state = (yy_last_accepting_state);
2856                                 goto yy_find_action;
2857                                 }
2858                         }
2859
2860                 else switch ( yy_get_next_buffer(  ) )
2861                         {
2862                         case EOB_ACT_END_OF_FILE:
2863                                 {
2864                                 (yy_did_buffer_switch_on_eof) = 0;
2865
2866                                 if ( as3_wrap( ) )
2867                                         {
2868                                         /* Note: because we've taken care in
2869                                          * yy_get_next_buffer() to have set up
2870                                          * as3_text, we can now set up
2871                                          * yy_c_buf_p so that if some total
2872                                          * hoser (like flex itself) wants to
2873                                          * call the scanner after we return the
2874                                          * YY_NULL, it'll still work - another
2875                                          * YY_NULL will get returned.
2876                                          */
2877                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2878
2879                                         yy_act = YY_STATE_EOF(YY_START);
2880                                         goto do_action;
2881                                         }
2882
2883                                 else
2884                                         {
2885                                         if ( ! (yy_did_buffer_switch_on_eof) )
2886                                                 YY_NEW_FILE;
2887                                         }
2888                                 break;
2889                                 }
2890
2891                         case EOB_ACT_CONTINUE_SCAN:
2892                                 (yy_c_buf_p) =
2893                                         (yytext_ptr) + yy_amount_of_matched_text;
2894
2895                                 yy_current_state = yy_get_previous_state(  );
2896
2897                                 yy_cp = (yy_c_buf_p);
2898                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2899                                 goto yy_match;
2900
2901                         case EOB_ACT_LAST_MATCH:
2902                                 (yy_c_buf_p) =
2903                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2904
2905                                 yy_current_state = yy_get_previous_state(  );
2906
2907                                 yy_cp = (yy_c_buf_p);
2908                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2909                                 goto yy_find_action;
2910                         }
2911                 break;
2912                 }
2913
2914         default:
2915                 YY_FATAL_ERROR(
2916                         "fatal flex scanner internal error--no action found" );
2917         } /* end of action switch */
2918                 } /* end of scanning one token */
2919 } /* end of as3_lex */
2920
2921 /* yy_get_next_buffer - try to read in a new buffer
2922  *
2923  * Returns a code representing an action:
2924  *      EOB_ACT_LAST_MATCH -
2925  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2926  *      EOB_ACT_END_OF_FILE - end of file
2927  */
2928 static int yy_get_next_buffer (void)
2929 {
2930         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2931         register char *source = (yytext_ptr);
2932         register int number_to_move, i;
2933         int ret_val;
2934
2935         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2936                 YY_FATAL_ERROR(
2937                 "fatal flex scanner internal error--end of buffer missed" );
2938
2939         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2940                 { /* Don't try to fill the buffer, so this is an EOF. */
2941                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2942                         {
2943                         /* We matched a single character, the EOB, so
2944                          * treat this as a final EOF.
2945                          */
2946                         return EOB_ACT_END_OF_FILE;
2947                         }
2948
2949                 else
2950                         {
2951                         /* We matched some text prior to the EOB, first
2952                          * process it.
2953                          */
2954                         return EOB_ACT_LAST_MATCH;
2955                         }
2956                 }
2957
2958         /* Try to read more data. */
2959
2960         /* First move last chars to start of buffer. */
2961         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2962
2963         for ( i = 0; i < number_to_move; ++i )
2964                 *(dest++) = *(source++);
2965
2966         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2967                 /* don't do the read, it's not guaranteed to return an EOF,
2968                  * just force an EOF
2969                  */
2970                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2971
2972         else
2973                 {
2974                         int num_to_read =
2975                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2976
2977                 while ( num_to_read <= 0 )
2978                         { /* Not enough room in the buffer - grow it. */
2979
2980                         /* just a shorter name for the current buffer */
2981                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2982
2983                         int yy_c_buf_p_offset =
2984                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2985
2986                         if ( b->yy_is_our_buffer )
2987                                 {
2988                                 int new_size = b->yy_buf_size * 2;
2989
2990                                 if ( new_size <= 0 )
2991                                         b->yy_buf_size += b->yy_buf_size / 8;
2992                                 else
2993                                         b->yy_buf_size *= 2;
2994
2995                                 b->yy_ch_buf = (char *)
2996                                         /* Include room in for 2 EOB chars. */
2997                                         as3_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
2998                                 }
2999                         else
3000                                 /* Can't grow it, we don't own it. */
3001                                 b->yy_ch_buf = 0;
3002
3003                         if ( ! b->yy_ch_buf )
3004                                 YY_FATAL_ERROR(
3005                                 "fatal error - scanner input buffer overflow" );
3006
3007                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3008
3009                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3010                                                 number_to_move - 1;
3011
3012                         }
3013
3014                 if ( num_to_read > YY_READ_BUF_SIZE )
3015                         num_to_read = YY_READ_BUF_SIZE;
3016
3017                 /* Read in more data. */
3018                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3019                         (yy_n_chars), (size_t) num_to_read );
3020
3021                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3022                 }
3023
3024         if ( (yy_n_chars) == 0 )
3025                 {
3026                 if ( number_to_move == YY_MORE_ADJ )
3027                         {
3028                         ret_val = EOB_ACT_END_OF_FILE;
3029                         as3_restart(as3_in  );
3030                         }
3031
3032                 else
3033                         {
3034                         ret_val = EOB_ACT_LAST_MATCH;
3035                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3036                                 YY_BUFFER_EOF_PENDING;
3037                         }
3038                 }
3039
3040         else
3041                 ret_val = EOB_ACT_CONTINUE_SCAN;
3042
3043         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3044                 /* Extend the array by 50%, plus the number we really need. */
3045                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3046                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) as3_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3047                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3048                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3049         }
3050
3051         (yy_n_chars) += number_to_move;
3052         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3053         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3054
3055         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3056
3057         return ret_val;
3058 }
3059
3060 /* yy_get_previous_state - get the state just before the EOB char was reached */
3061
3062     static yy_state_type yy_get_previous_state (void)
3063 {
3064         register yy_state_type yy_current_state;
3065         register char *yy_cp;
3066     
3067         yy_current_state = (yy_start);
3068         yy_current_state += YY_AT_BOL();
3069
3070         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3071                 {
3072                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3073                 if ( yy_accept[yy_current_state] )
3074                         {
3075                         (yy_last_accepting_state) = yy_current_state;
3076                         (yy_last_accepting_cpos) = yy_cp;
3077                         }
3078                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3079                         {
3080                         yy_current_state = (int) yy_def[yy_current_state];
3081                         if ( yy_current_state >= 512 )
3082                                 yy_c = yy_meta[(unsigned int) yy_c];
3083                         }
3084                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3085                 }
3086
3087         return yy_current_state;
3088 }
3089
3090 /* yy_try_NUL_trans - try to make a transition on the NUL character
3091  *
3092  * synopsis
3093  *      next_state = yy_try_NUL_trans( current_state );
3094  */
3095     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3096 {
3097         register int yy_is_jam;
3098         register char *yy_cp = (yy_c_buf_p);
3099
3100         register YY_CHAR yy_c = 1;
3101         if ( yy_accept[yy_current_state] )
3102                 {
3103                 (yy_last_accepting_state) = yy_current_state;
3104                 (yy_last_accepting_cpos) = yy_cp;
3105                 }
3106         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3107                 {
3108                 yy_current_state = (int) yy_def[yy_current_state];
3109                 if ( yy_current_state >= 512 )
3110                         yy_c = yy_meta[(unsigned int) yy_c];
3111                 }
3112         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3113         yy_is_jam = (yy_current_state == 511);
3114
3115         return yy_is_jam ? 0 : yy_current_state;
3116 }
3117
3118     static void yyunput (int c, register char * yy_bp )
3119 {
3120         register char *yy_cp;
3121     
3122     yy_cp = (yy_c_buf_p);
3123
3124         /* undo effects of setting up as3_text */
3125         *yy_cp = (yy_hold_char);
3126
3127         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3128                 { /* need to shift things up to make room */
3129                 /* +2 for EOB chars. */
3130                 register int number_to_move = (yy_n_chars) + 2;
3131                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3132                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3133                 register char *source =
3134                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3135
3136                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3137                         *--dest = *--source;
3138
3139                 yy_cp += (int) (dest - source);
3140                 yy_bp += (int) (dest - source);
3141                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3142                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3143
3144                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3145                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3146                 }
3147
3148         *--yy_cp = (char) c;
3149
3150         (yytext_ptr) = yy_bp;
3151         (yy_hold_char) = *yy_cp;
3152         (yy_c_buf_p) = yy_cp;
3153 }
3154
3155 #ifndef YY_NO_INPUT
3156 #ifdef __cplusplus
3157     static int yyinput (void)
3158 #else
3159     static int input  (void)
3160 #endif
3161
3162 {
3163         int c;
3164     
3165         *(yy_c_buf_p) = (yy_hold_char);
3166
3167         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3168                 {
3169                 /* yy_c_buf_p now points to the character we want to return.
3170                  * If this occurs *before* the EOB characters, then it's a
3171                  * valid NUL; if not, then we've hit the end of the buffer.
3172                  */
3173                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3174                         /* This was really a NUL. */
3175                         *(yy_c_buf_p) = '\0';
3176
3177                 else
3178                         { /* need more input */
3179                         int offset = (yy_c_buf_p) - (yytext_ptr);
3180                         ++(yy_c_buf_p);
3181
3182                         switch ( yy_get_next_buffer(  ) )
3183                                 {
3184                                 case EOB_ACT_LAST_MATCH:
3185                                         /* This happens because yy_g_n_b()
3186                                          * sees that we've accumulated a
3187                                          * token and flags that we need to
3188                                          * try matching the token before
3189                                          * proceeding.  But for input(),
3190                                          * there's no matching to consider.
3191                                          * So convert the EOB_ACT_LAST_MATCH
3192                                          * to EOB_ACT_END_OF_FILE.
3193                                          */
3194
3195                                         /* Reset buffer status. */
3196                                         as3_restart(as3_in );
3197
3198                                         /*FALLTHROUGH*/
3199
3200                                 case EOB_ACT_END_OF_FILE:
3201                                         {
3202                                         if ( as3_wrap( ) )
3203                                                 return EOF;
3204
3205                                         if ( ! (yy_did_buffer_switch_on_eof) )
3206                                                 YY_NEW_FILE;
3207 #ifdef __cplusplus
3208                                         return yyinput();
3209 #else
3210                                         return input();
3211 #endif
3212                                         }
3213
3214                                 case EOB_ACT_CONTINUE_SCAN:
3215                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3216                                         break;
3217                                 }
3218                         }
3219                 }
3220
3221         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3222         *(yy_c_buf_p) = '\0';   /* preserve as3_text */
3223         (yy_hold_char) = *++(yy_c_buf_p);
3224
3225         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3226
3227         return c;
3228 }
3229 #endif  /* ifndef YY_NO_INPUT */
3230
3231 /** Immediately switch to a different input stream.
3232  * @param input_file A readable stream.
3233  * 
3234  * @note This function does not reset the start condition to @c INITIAL .
3235  */
3236     void as3_restart  (FILE * input_file )
3237 {
3238     
3239         if ( ! YY_CURRENT_BUFFER ){
3240         as3_ensure_buffer_stack ();
3241                 YY_CURRENT_BUFFER_LVALUE =
3242             as3__create_buffer(as3_in,YY_BUF_SIZE );
3243         }
3244
3245         as3__init_buffer(YY_CURRENT_BUFFER,input_file );
3246         as3__load_buffer_state( );
3247 }
3248
3249 /** Switch to a different input buffer.
3250  * @param new_buffer The new input buffer.
3251  * 
3252  */
3253     void as3__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3254 {
3255     
3256         /* TODO. We should be able to replace this entire function body
3257          * with
3258          *              as3_pop_buffer_state();
3259          *              as3_push_buffer_state(new_buffer);
3260      */
3261         as3_ensure_buffer_stack ();
3262         if ( YY_CURRENT_BUFFER == new_buffer )
3263                 return;
3264
3265         if ( YY_CURRENT_BUFFER )
3266                 {
3267                 /* Flush out information for old buffer. */
3268                 *(yy_c_buf_p) = (yy_hold_char);
3269                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3270                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3271                 }
3272
3273         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3274         as3__load_buffer_state( );
3275
3276         /* We don't actually know whether we did this switch during
3277          * EOF (as3_wrap()) processing, but the only time this flag
3278          * is looked at is after as3_wrap() is called, so it's safe
3279          * to go ahead and always set it.
3280          */
3281         (yy_did_buffer_switch_on_eof) = 1;
3282 }
3283
3284 static void as3__load_buffer_state  (void)
3285 {
3286         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3287         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3288         as3_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3289         (yy_hold_char) = *(yy_c_buf_p);
3290 }
3291
3292 /** Allocate and initialize an input buffer state.
3293  * @param file A readable stream.
3294  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3295  * 
3296  * @return the allocated buffer state.
3297  */
3298     YY_BUFFER_STATE as3__create_buffer  (FILE * file, int  size )
3299 {
3300         YY_BUFFER_STATE b;
3301     
3302         b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state )  );
3303         if ( ! b )
3304                 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3305
3306         b->yy_buf_size = size;
3307
3308         /* yy_ch_buf has to be 2 characters longer than the size given because
3309          * we need to put in 2 end-of-buffer characters.
3310          */
3311         b->yy_ch_buf = (char *) as3_alloc(b->yy_buf_size + 2  );
3312         if ( ! b->yy_ch_buf )
3313                 YY_FATAL_ERROR( "out of dynamic memory in as3__create_buffer()" );
3314
3315         b->yy_is_our_buffer = 1;
3316
3317         as3__init_buffer(b,file );
3318
3319         return b;
3320 }
3321
3322 /** Destroy the buffer.
3323  * @param b a buffer created with as3__create_buffer()
3324  * 
3325  */
3326     void as3__delete_buffer (YY_BUFFER_STATE  b )
3327 {
3328     
3329         if ( ! b )
3330                 return;
3331
3332         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3333                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3334
3335         if ( b->yy_is_our_buffer )
3336                 as3_free((void *) b->yy_ch_buf  );
3337
3338         as3_free((void *) b  );
3339 }
3340
3341 #ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
3342 #ifdef __cplusplus
3343 extern "C" {
3344 #endif
3345 #ifdef __THROW /* this is a gnuism */
3346 extern int isatty (int ) __THROW;
3347 #else
3348 extern int isatty (int );
3349 #endif
3350 #ifdef __cplusplus
3351 }
3352 #endif
3353 #endif
3354     
3355 /* Initializes or reinitializes a buffer.
3356  * This function is sometimes called more than once on the same buffer,
3357  * such as during a as3_restart() or at EOF.
3358  */
3359     static void as3__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3360
3361 {
3362         int oerrno = errno;
3363     
3364         as3__flush_buffer(b );
3365
3366         b->yy_input_file = file;
3367         b->yy_fill_buffer = 1;
3368
3369     /* If b is the current buffer, then as3__init_buffer was _probably_
3370      * called from as3_restart() or through yy_get_next_buffer.
3371      * In that case, we don't want to reset the lineno or column.
3372      */
3373     if (b != YY_CURRENT_BUFFER){
3374         b->yy_bs_lineno = 1;
3375         b->yy_bs_column = 0;
3376     }
3377
3378         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3379     
3380         errno = oerrno;
3381 }
3382
3383 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3384  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3385  * 
3386  */
3387     void as3__flush_buffer (YY_BUFFER_STATE  b )
3388 {
3389         if ( ! b )
3390                 return;
3391
3392         b->yy_n_chars = 0;
3393
3394         /* We always need two end-of-buffer characters.  The first causes
3395          * a transition to the end-of-buffer state.  The second causes
3396          * a jam in that state.
3397          */
3398         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3399         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3400
3401         b->yy_buf_pos = &b->yy_ch_buf[0];
3402
3403         b->yy_at_bol = 1;
3404         b->yy_buffer_status = YY_BUFFER_NEW;
3405
3406         if ( b == YY_CURRENT_BUFFER )
3407                 as3__load_buffer_state( );
3408 }
3409
3410 /** Pushes the new state onto the stack. The new state becomes
3411  *  the current state. This function will allocate the stack
3412  *  if necessary.
3413  *  @param new_buffer The new state.
3414  *  
3415  */
3416 void as3_push_buffer_state (YY_BUFFER_STATE new_buffer )
3417 {
3418         if (new_buffer == NULL)
3419                 return;
3420
3421         as3_ensure_buffer_stack();
3422
3423         /* This block is copied from as3__switch_to_buffer. */
3424         if ( YY_CURRENT_BUFFER )
3425                 {
3426                 /* Flush out information for old buffer. */
3427                 *(yy_c_buf_p) = (yy_hold_char);
3428                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3429                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3430                 }
3431
3432         /* Only push if top exists. Otherwise, replace top. */
3433         if (YY_CURRENT_BUFFER)
3434                 (yy_buffer_stack_top)++;
3435         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3436
3437         /* copied from as3__switch_to_buffer. */
3438         as3__load_buffer_state( );
3439         (yy_did_buffer_switch_on_eof) = 1;
3440 }
3441
3442 /** Removes and deletes the top of the stack, if present.
3443  *  The next element becomes the new top.
3444  *  
3445  */
3446 void as3_pop_buffer_state (void)
3447 {
3448         if (!YY_CURRENT_BUFFER)
3449                 return;
3450
3451         as3__delete_buffer(YY_CURRENT_BUFFER );
3452         YY_CURRENT_BUFFER_LVALUE = NULL;
3453         if ((yy_buffer_stack_top) > 0)
3454                 --(yy_buffer_stack_top);
3455
3456         if (YY_CURRENT_BUFFER) {
3457                 as3__load_buffer_state( );
3458                 (yy_did_buffer_switch_on_eof) = 1;
3459         }
3460 }
3461
3462 /* Allocates the stack if it does not exist.
3463  *  Guarantees space for at least one push.
3464  */
3465 static void as3_ensure_buffer_stack (void)
3466 {
3467         int num_to_alloc;
3468     
3469         if (!(yy_buffer_stack)) {
3470
3471                 /* First allocation is just for 2 elements, since we don't know if this
3472                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3473                  * immediate realloc on the next call.
3474          */
3475                 num_to_alloc = 1;
3476                 (yy_buffer_stack) = (struct yy_buffer_state**)as3_alloc
3477                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
3478                                                                 );
3479                 if ( ! (yy_buffer_stack) )
3480                         YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3481                                                                   
3482                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3483                                 
3484                 (yy_buffer_stack_max) = num_to_alloc;
3485                 (yy_buffer_stack_top) = 0;
3486                 return;
3487         }
3488
3489         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3490
3491                 /* Increase the buffer to prepare for a possible push. */
3492                 int grow_size = 8 /* arbitrary grow size */;
3493
3494                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3495                 (yy_buffer_stack) = (struct yy_buffer_state**)as3_realloc
3496                                                                 ((yy_buffer_stack),
3497                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
3498                                                                 );
3499                 if ( ! (yy_buffer_stack) )
3500                         YY_FATAL_ERROR( "out of dynamic memory in as3_ensure_buffer_stack()" );
3501
3502                 /* zero only the new slots.*/
3503                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3504                 (yy_buffer_stack_max) = num_to_alloc;
3505         }
3506 }
3507
3508 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3509  * @param base the character buffer
3510  * @param size the size in bytes of the character buffer
3511  * 
3512  * @return the newly allocated buffer state object. 
3513  */
3514 YY_BUFFER_STATE as3__scan_buffer  (char * base, yy_size_t  size )
3515 {
3516         YY_BUFFER_STATE b;
3517     
3518         if ( size < 2 ||
3519              base[size-2] != YY_END_OF_BUFFER_CHAR ||
3520              base[size-1] != YY_END_OF_BUFFER_CHAR )
3521                 /* They forgot to leave room for the EOB's. */
3522                 return 0;
3523
3524         b = (YY_BUFFER_STATE) as3_alloc(sizeof( struct yy_buffer_state )  );
3525         if ( ! b )
3526                 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_buffer()" );
3527
3528         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
3529         b->yy_buf_pos = b->yy_ch_buf = base;
3530         b->yy_is_our_buffer = 0;
3531         b->yy_input_file = 0;
3532         b->yy_n_chars = b->yy_buf_size;
3533         b->yy_is_interactive = 0;
3534         b->yy_at_bol = 1;
3535         b->yy_fill_buffer = 0;
3536         b->yy_buffer_status = YY_BUFFER_NEW;
3537
3538         as3__switch_to_buffer(b  );
3539
3540         return b;
3541 }
3542
3543 /** Setup the input buffer state to scan a string. The next call to as3_lex() will
3544  * scan from a @e copy of @a str.
3545  * @param yystr a NUL-terminated string to scan
3546  * 
3547  * @return the newly allocated buffer state object.
3548  * @note If you want to scan bytes that may contain NUL values, then use
3549  *       as3__scan_bytes() instead.
3550  */
3551 YY_BUFFER_STATE as3__scan_string (yyconst char * yystr )
3552 {
3553     
3554         return as3__scan_bytes(yystr,strlen(yystr) );
3555 }
3556
3557 /** Setup the input buffer state to scan the given bytes. The next call to as3_lex() will
3558  * scan from a @e copy of @a bytes.
3559  * @param bytes the byte buffer to scan
3560  * @param len the number of bytes in the buffer pointed to by @a bytes.
3561  * 
3562  * @return the newly allocated buffer state object.
3563  */
3564 YY_BUFFER_STATE as3__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
3565 {
3566         YY_BUFFER_STATE b;
3567         char *buf;
3568         yy_size_t n;
3569         int i;
3570     
3571         /* Get memory for full buffer, including space for trailing EOB's. */
3572         n = _yybytes_len + 2;
3573         buf = (char *) as3_alloc(n  );
3574         if ( ! buf )
3575                 YY_FATAL_ERROR( "out of dynamic memory in as3__scan_bytes()" );
3576
3577         for ( i = 0; i < _yybytes_len; ++i )
3578                 buf[i] = yybytes[i];
3579
3580         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3581
3582         b = as3__scan_buffer(buf,n );
3583         if ( ! b )
3584                 YY_FATAL_ERROR( "bad buffer in as3__scan_bytes()" );
3585
3586         /* It's okay to grow etc. this buffer, and we should throw it
3587          * away when we're done.
3588          */
3589         b->yy_is_our_buffer = 1;
3590
3591         return b;
3592 }
3593
3594 #ifndef YY_EXIT_FAILURE
3595 #define YY_EXIT_FAILURE 2
3596 #endif
3597
3598 static void yy_fatal_error (yyconst char* msg )
3599 {
3600         (void) fprintf( stderr, "%s\n", msg );
3601         exit( YY_EXIT_FAILURE );
3602 }
3603
3604 /* Redefine yyless() so it works in section 3 code. */
3605
3606 #undef yyless
3607 #define yyless(n) \
3608         do \
3609                 { \
3610                 /* Undo effects of setting up as3_text. */ \
3611         int yyless_macro_arg = (n); \
3612         YY_LESS_LINENO(yyless_macro_arg);\
3613                 as3_text[as3_leng] = (yy_hold_char); \
3614                 (yy_c_buf_p) = as3_text + yyless_macro_arg; \
3615                 (yy_hold_char) = *(yy_c_buf_p); \
3616                 *(yy_c_buf_p) = '\0'; \
3617                 as3_leng = yyless_macro_arg; \
3618                 } \
3619         while ( 0 )
3620
3621 /* Accessor  methods (get/set functions) to struct members. */
3622
3623 /** Get the current line number.
3624  * 
3625  */
3626 int as3_get_lineno  (void)
3627 {
3628         
3629     return as3_lineno;
3630 }
3631
3632 /** Get the input stream.
3633  * 
3634  */
3635 FILE *as3_get_in  (void)
3636 {
3637         return as3_in;
3638 }
3639
3640 /** Get the output stream.
3641  * 
3642  */
3643 FILE *as3_get_out  (void)
3644 {
3645         return as3_out;
3646 }
3647
3648 /** Get the length of the current token.
3649  * 
3650  */
3651 int as3_get_leng  (void)
3652 {
3653         return as3_leng;
3654 }
3655
3656 /** Get the current token.
3657  * 
3658  */
3659
3660 char *as3_get_text  (void)
3661 {
3662         return as3_text;
3663 }
3664
3665 /** Set the current line number.
3666  * @param line_number
3667  * 
3668  */
3669 void as3_set_lineno (int  line_number )
3670 {
3671     
3672     as3_lineno = line_number;
3673 }
3674
3675 /** Set the input stream. This does not discard the current
3676  * input buffer.
3677  * @param in_str A readable stream.
3678  * 
3679  * @see as3__switch_to_buffer
3680  */
3681 void as3_set_in (FILE *  in_str )
3682 {
3683         as3_in = in_str ;
3684 }
3685
3686 void as3_set_out (FILE *  out_str )
3687 {
3688         as3_out = out_str ;
3689 }
3690
3691 int as3_get_debug  (void)
3692 {
3693         return as3__flex_debug;
3694 }
3695
3696 void as3_set_debug (int  bdebug )
3697 {
3698         as3__flex_debug = bdebug ;
3699 }
3700
3701 static int yy_init_globals (void)
3702 {
3703         /* Initialization is the same as for the non-reentrant scanner.
3704      * This function is called from as3_lex_destroy(), so don't allocate here.
3705      */
3706
3707     (yy_buffer_stack) = 0;
3708     (yy_buffer_stack_top) = 0;
3709     (yy_buffer_stack_max) = 0;
3710     (yy_c_buf_p) = (char *) 0;
3711     (yy_init) = 0;
3712     (yy_start) = 0;
3713
3714 /* Defined in main.c */
3715 #ifdef YY_STDINIT
3716     as3_in = stdin;
3717     as3_out = stdout;
3718 #else
3719     as3_in = (FILE *) 0;
3720     as3_out = (FILE *) 0;
3721 #endif
3722
3723     /* For future reference: Set errno on error, since we are called by
3724      * as3_lex_init()
3725      */
3726     return 0;
3727 }
3728
3729 /* as3_lex_destroy is for both reentrant and non-reentrant scanners. */
3730 int as3_lex_destroy  (void)
3731 {
3732     
3733     /* Pop the buffer stack, destroying each element. */
3734         while(YY_CURRENT_BUFFER){
3735                 as3__delete_buffer(YY_CURRENT_BUFFER  );
3736                 YY_CURRENT_BUFFER_LVALUE = NULL;
3737                 as3_pop_buffer_state();
3738         }
3739
3740         /* Destroy the stack itself. */
3741         as3_free((yy_buffer_stack) );
3742         (yy_buffer_stack) = NULL;
3743
3744     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3745      * as3_lex() is called, initialization will occur. */
3746     yy_init_globals( );
3747
3748     return 0;
3749 }
3750
3751 /*
3752  * Internal utility routines.
3753  */
3754
3755 #ifndef yytext_ptr
3756 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3757 {
3758         register int i;
3759         for ( i = 0; i < n; ++i )
3760                 s1[i] = s2[i];
3761 }
3762 #endif
3763
3764 #ifdef YY_NEED_STRLEN
3765 static int yy_flex_strlen (yyconst char * s )
3766 {
3767         register int n;
3768         for ( n = 0; s[n]; ++n )
3769                 ;
3770
3771         return n;
3772 }
3773 #endif
3774
3775 void *as3_alloc (yy_size_t  size )
3776 {
3777         return (void *) malloc( size );
3778 }
3779
3780 void *as3_realloc  (void * ptr, yy_size_t  size )
3781 {
3782         /* The cast to (char *) in the following accommodates both
3783          * implementations that use char* generic pointers, and those
3784          * that use void* generic pointers.  It works with the latter
3785          * because both ANSI C and C++ allow castless assignment from
3786          * any pointer type to void*, and deal with argument conversions
3787          * as though doing an assignment.
3788          */
3789         return (void *) realloc( (char *) ptr, size );
3790 }
3791
3792 void as3_free (void * ptr )
3793 {
3794         free( (char *) ptr );   /* see as3_realloc() for (char *) cast */
3795 }
3796
3797 #define YYTABLES_NAME "yytables"
3798
3799 #line 728 "tokenizer.lex"
3800
3801
3802
3803 int as3_wrap()
3804 {
3805     return 1;
3806 }
3807
3808 static char mbuf[256];
3809 char*token2string(enum yytokentype nr, YYSTYPE v)
3810 {
3811     if(nr==T_STRING) {
3812         char*s = malloc(v.str.len+10);
3813         strcpy(s, "<string>");
3814         memcpy(s+8, v.str.str, v.str.len);
3815         sprintf(s+8+v.str.len, " (%d bytes)", v.str.len);
3816         return s;
3817     }
3818     else if(nr==T_REGEXP) {
3819         char*s = malloc(strlen(v.regexp.pattern)+10);
3820         sprintf(s, "<regexp>%s", v.regexp.pattern);
3821         return s;
3822     }
3823     else if(nr==T_IDENTIFIER) {
3824         char*s = malloc(strlen(v.id)+10);
3825         sprintf(s, "<ID>%s", v.id);
3826         return s;
3827     }
3828     else if(nr==T_INT)     return "<int>";
3829     else if(nr==T_UINT)     return "<uint>";
3830     else if(nr==T_BYTE)     return "<byte>";
3831     else if(nr==T_FLOAT)     return "<float>";
3832     else if(nr==T_EOF)        return "***END***";
3833     else if(nr==T_GE)         return ">=";
3834     else if(nr==T_LE)         return "<=";
3835     else if(nr==T_MINUSMINUS) return "--";
3836     else if(nr==T_PLUSPLUS)   return "++";
3837     else if(nr==KW_IMPLEMENTS) return "implements";
3838     else if(nr==KW_INTERFACE)  return "interface";
3839     else if(nr==KW_NAMESPACE)  return "namespace";
3840     else if(nr==KW_PROTECTED)  return "protected";
3841     else if(nr==KW_OVERRIDE)   return "override";
3842     else if(nr==KW_INTERNAL)   return "internal";
3843     else if(nr==KW_FUNCTION)   return "function";
3844     else if(nr==KW_PACKAGE)    return "package";
3845     else if(nr==KW_PRIVATE)    return "private";
3846     else if(nr==KW_BOOLEAN)    return "Boolean";
3847     else if(nr==KW_DYNAMIC)    return "dynamic";
3848     else if(nr==KW_EXTENDS)    return "extends";
3849     else if(nr==KW_PUBLIC)     return "public";
3850     else if(nr==KW_NATIVE)     return "native";
3851     else if(nr==KW_STATIC)     return "static";
3852     else if(nr==KW_IMPORT)     return "import";
3853     else if(nr==KW_NUMBER)     return "number";
3854     else if(nr==KW_CLASS)      return "class";
3855     else if(nr==KW_CONST)      return "const";
3856     else if(nr==KW_FINAL)      return "final";
3857     else if(nr==KW_FALSE)      return "False";
3858     else if(nr==KW_TRUE)       return "True";
3859     else if(nr==KW_UINT)       return "uint";
3860     else if(nr==KW_NULL)       return "null";
3861     else if(nr==KW_ELSE)       return "else";
3862     else if(nr==KW_USE)        return "use";
3863     else if(nr==KW_INT)        return "int";
3864     else if(nr==KW_NEW)        return "new";
3865     else if(nr==KW_GET)        return "get";
3866     else if(nr==KW_SET)        return "set";
3867     else if(nr==KW_VAR)        return "var";
3868     else if(nr==KW_IS)         return "is";
3869     else if(nr==KW_AS)         return "as";
3870     else {
3871         sprintf(mbuf, "%d", nr);
3872         return mbuf;
3873     }
3874 }
3875
3876 void initialize_scanner()
3877 {
3878     BEGIN(BEGINNING);
3879 }
3880
3881
3882