source: src/Parser/lex.cc @ 59db689

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

constant types, first attempt

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