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