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