source: src/Parser/lex.cc @ c1c1112

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

fix segment fault when printing syntax error, more refactoring of parser code

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