source: src/Parser/lex.cc @ 5721a6d

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 5721a6d was 5721a6d, checked in by Peter A. Buhr <pabuhr@…>, 8 years ago

correctly set type for complex constants, consolidate function name tables, add offsetof, refactor printing complex constants to use basic types

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