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