source: src/Parser/lex.cc @ 44b7088

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

remove offsetof keyword, parser 0/1 names as structure fields, update examples to new stdlib, rename algorithms to stdlib, extend stdlib, use correct type for box parameters

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