source: src/Parser/lex.cc @ 4040425

aaron-thesisarm-ehcleanup-dtorsctordeferred_resndemanglergc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newstringwith_gc
Last change on this file since 4040425 was 4040425, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

change keyword type to otype and context to trait

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