source: src/Parser/lex.cc @ a7c90d4

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since a7c90d4 was a7c90d4, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

change StorageClass? to bitset, support _Thread_local as separate storage-class

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