source: src/Parser/lex.cc @ 02e5ab6

aaron-thesisarm-ehcleanup-dtorsctordeferred_resndemanglergc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newstringwith_gc
Last change on this file since 02e5ab6 was 02e5ab6, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

add preprocessor flag -DCFORALL=1, add syntax for constructor/destructor

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