source: src/Parser/lex.cc @ 5f98ce5

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

add reference operator, labels cannot be 0/1, small changes to tests

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