source: src/Parser/lex.cc @ 6c4ff37

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 6c4ff37 was 56c3935, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

redo automake third attempt

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