source: src/Parser/lex.cc @ a1e67dd

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

small changes to bring me up to date

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