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