source: src/Parser/lex.cc @ 1b29996

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newwith_gc
Last change on this file since 1b29996 was 1b29996, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

lex/parse new tuples

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