source: src/Parser/lex.cc @ a61fea9a

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since a61fea9a was a61fea9a, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

enable AM_MAINTAINER_MODE, add operator ?{}, formatting

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