source: src/Parser/lex.cc @ 04c8bba

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 04c8bba was 3a2128f, checked in by Peter A. Buhr <pabuhr@…>, 8 years ago

add types zero_t and one_t to lexer/parser

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