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