source: src/Parser/lex.cc @ ef7d253

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

automake change gnu back to foreign (do not know why it changed), add := and & (reference) to lexer/parser

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