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

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 6c3a988f was 8f60f0b, checked in by Rob Schluntz <rschlunt@…>, 7 years ago

add support for ttype in the parser

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