source: translator/Parser.old/lex.yy.cc @ 51b7345

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

initial commit

  • Property mode set to 100644
File size: 91.7 KB
Line 
1#line 2 "Parser/lex.yy.cc"
2/* A lexical scanner generated by flex */
3
4/* Scanner skeleton version:
5 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
6 */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 5
11
12#include <stdio.h>
13
14
15/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
16#ifdef c_plusplus
17#ifndef __cplusplus
18#define __cplusplus
19#endif
20#endif
21
22
23#ifdef __cplusplus
24
25#include <stdlib.h>
26#include <unistd.h>
27
28/* Use prototypes in function declarations. */
29#define YY_USE_PROTOS
30
31/* The "const" storage-class-modifier is valid. */
32#define YY_USE_CONST
33
34#else   /* ! __cplusplus */
35
36#if __STDC__
37
38#define YY_USE_PROTOS
39#define YY_USE_CONST
40
41#endif  /* __STDC__ */
42#endif  /* ! __cplusplus */
43
44#ifdef __TURBOC__
45 #pragma warn -rch
46 #pragma warn -use
47#include <io.h>
48#include <stdlib.h>
49#define YY_USE_CONST
50#define YY_USE_PROTOS
51#endif
52
53#ifdef YY_USE_CONST
54#define yyconst const
55#else
56#define yyconst
57#endif
58
59
60#ifdef YY_USE_PROTOS
61#define YY_PROTO(proto) proto
62#else
63#define YY_PROTO(proto) ()
64#endif
65
66/* Returned upon end-of-file. */
67#define YY_NULL 0
68
69/* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index.  If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
72 * double cast.
73 */
74#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
75
76/* Enter a start condition.  This macro really ought to take a parameter,
77 * but we do it the disgusting crufty way forced on us by the ()-less
78 * definition of BEGIN.
79 */
80#define BEGIN yy_start = 1 + 2 *
81
82/* Translate the current start state into a value that can be later handed
83 * to BEGIN to return to the state.  The YYSTATE alias is for lex
84 * compatibility.
85 */
86#define YY_START ((yy_start - 1) / 2)
87#define YYSTATE YY_START
88
89/* Action number for EOF rule of a given start state. */
90#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
91
92/* Special action meaning "start processing a new file". */
93#define YY_NEW_FILE yyrestart( yyin )
94
95#define YY_END_OF_BUFFER_CHAR 0
96
97/* Size of default input buffer. */
98#define YY_BUF_SIZE 16384
99
100typedef struct yy_buffer_state *YY_BUFFER_STATE;
101
102extern int yyleng;
103extern FILE *yyin, *yyout;
104
105#define EOB_ACT_CONTINUE_SCAN 0
106#define EOB_ACT_END_OF_FILE 1
107#define EOB_ACT_LAST_MATCH 2
108
109/* The funky do-while in the following #define is used to turn the definition
110 * int a single C statement (which needs a semi-colon terminator).  This
111 * avoids problems with code like:
112 *
113 *      if ( condition_holds )
114 *              yyless( 5 );
115 *      else
116 *              do_something_else();
117 *
118 * Prior to using the do-while the compiler would get upset at the
119 * "else" because it interpreted the "if" statement as being all
120 * done when it reached the ';' after the yyless() call.
121 */
122
123/* Return all but the first 'n' matched characters back to the input stream. */
124
125#define yyless(n) \
126        do \
127                { \
128                /* Undo effects of setting up yytext. */ \
129                *yy_cp = yy_hold_char; \
130                YY_RESTORE_YY_MORE_OFFSET \
131                yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
133                } \
134        while ( 0 )
135
136#define unput(c) yyunput( c, yytext_ptr )
137
138/* The following is because we cannot portably get our hands on size_t
139 * (without autoconf's help, which isn't available because we want
140 * flex-generated scanners to compile on their own).
141 */
142typedef unsigned int yy_size_t;
143
144
145struct yy_buffer_state
146        {
147        FILE *yy_input_file;
148
149        char *yy_ch_buf;                /* input buffer */
150        char *yy_buf_pos;               /* current position in input buffer */
151
152        /* Size of input buffer in bytes, not including room for EOB
153         * characters.
154         */
155        yy_size_t yy_buf_size;
156
157        /* Number of characters read into yy_ch_buf, not including EOB
158         * characters.
159         */
160        int yy_n_chars;
161
162        /* Whether we "own" the buffer - i.e., we know we created it,
163         * and can realloc() it to grow it, and should free() it to
164         * delete it.
165         */
166        int yy_is_our_buffer;
167
168        /* Whether this is an "interactive" input source; if so, and
169         * if we're using stdio for input, then we want to use getc()
170         * instead of fread(), to make sure we stop fetching input after
171         * each newline.
172         */
173        int yy_is_interactive;
174
175        /* Whether we're considered to be at the beginning of a line.
176         * If so, '^' rules will be active on the next match, otherwise
177         * not.
178         */
179        int yy_at_bol;
180
181        /* Whether to try to fill the input buffer when we reach the
182         * end of it.
183         */
184        int yy_fill_buffer;
185
186        int yy_buffer_status;
187#define YY_BUFFER_NEW 0
188#define YY_BUFFER_NORMAL 1
189        /* When an EOF's been seen but there's still some text to process
190         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191         * shouldn't try reading from the input source any more.  We might
192         * still have a bunch of tokens to match, though, because of
193         * possible backing-up.
194         *
195         * When we actually see the EOF, we change the status to "new"
196         * (via yyrestart()), so that the user can continue scanning by
197         * just pointing yyin at a new input file.
198         */
199#define YY_BUFFER_EOF_PENDING 2
200        };
201
202static YY_BUFFER_STATE yy_current_buffer = 0;
203
204/* We provide macros for accessing buffer states in case in the
205 * future we want to put the buffer states in a more general
206 * "scanner state".
207 */
208#define YY_CURRENT_BUFFER yy_current_buffer
209
210
211/* yy_hold_char holds the character lost when yytext is formed. */
212static char yy_hold_char;
213
214static int yy_n_chars;          /* number of characters read into yy_ch_buf */
215
216
217int yyleng;
218
219/* Points to current character in buffer. */
220static char *yy_c_buf_p = (char *) 0;
221static int yy_init = 1;         /* whether we need to initialize */
222static int yy_start = 0;        /* start state number */
223
224/* Flag which is used to allow yywrap()'s to do buffer switches
225 * instead of setting up a fresh yyin.  A bit of a hack ...
226 */
227static int yy_did_buffer_switch_on_eof;
228
229void yyrestart YY_PROTO(( FILE *input_file ));
230
231void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232void yy_load_buffer_state YY_PROTO(( void ));
233YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
238
239YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
242
243static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
244static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
245static void yy_flex_free YY_PROTO(( void * ));
246
247#define yy_new_buffer yy_create_buffer
248
249#define yy_set_interactive(is_interactive) \
250        { \
251        if ( ! yy_current_buffer ) \
252                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
253        yy_current_buffer->yy_is_interactive = is_interactive; \
254        }
255
256#define yy_set_bol(at_bol) \
257        { \
258        if ( ! yy_current_buffer ) \
259                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
260        yy_current_buffer->yy_at_bol = at_bol; \
261        }
262
263#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
264
265
266#define YY_USES_REJECT
267typedef unsigned char YY_CHAR;
268FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
269typedef int yy_state_type;
270extern int yylineno;
271int yylineno = 1;
272extern char *yytext;
273#define yytext_ptr yytext
274
275static yy_state_type yy_get_previous_state YY_PROTO(( void ));
276static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
277static int yy_get_next_buffer YY_PROTO(( void ));
278static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
279
280/* Done after the current pattern has been matched and before the
281 * corresponding action - sets up yytext.
282 */
283#define YY_DO_BEFORE_ACTION \
284        yytext_ptr = yy_bp; \
285        yyleng = (int) (yy_cp - yy_bp); \
286        yy_hold_char = *yy_cp; \
287        *yy_cp = '\0'; \
288        yy_c_buf_p = yy_cp;
289
290#define YY_NUM_RULES 150
291#define YY_END_OF_BUFFER 151
292static yyconst short int yy_acclist[636] =
293    {   0,
294      151,  149,  150,    7,  149,  150,    9,  150,    8,  149,
295      150,  110,  149,  150,  149,  150,   85,  149,  150,  115,
296      149,  150,  118,  149,  150,  149,  150,   97,  149,  150,
297       98,  149,  150,  113,  149,  150,  111,  149,  150,  101,
298      149,  150,  112,  149,  150,  104,  149,  150,  114,  149,
299      150,   86,   89,  149,  150,   87,   88,  149,  150,   88,
300      149,  150,  102,  149,  150,  103,  149,  150,  120,  149,
301      150,  122,  149,  150,  121,  149,  150,  123,  149,  150,
302       85,  149,  150,   95,  149,  150,  149,  150,   96,  149,
303      150,  116,  149,  150,   85,  149,  150,   85,  149,  150,
304
305       85,  149,  150,   85,  149,  150,   85,  149,  150,   85,
306      149,  150,   85,  149,  150,   85,  149,  150,   85,  149,
307      150,   85,  149,  150,   85,  149,  150,   85,  149,  150,
308       85,  149,  150,   85,  149,  150,   85,  149,  150,   85,
309      149,  150,   99,  149,  150,  119,  149,  150,  100,  149,
310      150,  117,  149,  150,    7,  149,  150,  149,  150,    4,
311      150,    4,  150,    7,    9,    8,  127,  145,   94,   85,
312      139,  109,  132,  140,   93,  137,  124,  135,  125,  136,
313      134,   91,    3,  138,   91,   89,   89,   89,   89,   88,
314       88,   88,   88,  107,  108,  106,  128,  130,  126,  131,
315
316      129,  142,   85,   85,   85,   85,   85,   85,   85,   85,
317       85,   85,   85,   33,   85,   85,   85,   85,   85,   85,
318       85,   85,   85,   85,   47,   85,   85,   85,   85,   85,
319       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
320      141,  133,    7,    2,    5,  105,   91,   91,    6,   89,
321       91,   89,   89,   89,   89,   90,   88,   88,   88,   88,
322      143,  144,  147,  146,   85,   85,   85,   85,   85,   85,
323       85,   85,   85,   85,   85,   85,   12,   85,   85,   85,
324       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
325       85,   85,   85,   42,   85,   85,   85,   85,   54,   85,
326
327       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
328       85,   85,   72,   85,   85,   85,   85,   85,   85,   85,
329      148,   91,   91,   89,   89,   90,   90,   90,   90,   88,
330       88,   85,   85,   85,   85,   85,   85,   85,   85,   85,
331       85,   85,   85,   85,   85,   85,   17,   85,   85,   20,
332       85,   85,   22,   85,   85,   85,   85,   85,   85,   85,
333       36,   85,   37,   85,   85,   85,   85,   85,   85,   85,
334       46,   85,   85,   56,   85,   85,   85,   85,   85,   85,
335       85,   85,   85,   85,   85,   85,   73,   85,   85,   85,
336       80,   85,   85,   85,   91,   90,   90,   92,   90,   90,
337
338       18,   85,   85,   85,   85,   13,   85,   85,   85,   85,
339       85,   85,   85,   85,   85,   85,   85,   85,   19,   85,
340       21,   85,   85,   27,   85,   85,   85,   85,   85,   35,
341       85,   85,   85,   41,   85,   85,   85,   45,   85,   85,
342       85,   85,   85,   85,   63,   85,   85,   85,   85,   85,
343       85,   71,   85,   85,   85,   78,   85,   85,   85,   84,
344       85,   92,   90,   92,   92,   90,   85,   85,   85,   85,
345       85,   85,   85,   85,   85,   49,   85,   85,   85,   85,
346       85,   85,   85,   23,   85,   85,   85,   85,   34,   85,
347       39,   85,   85,   43,   85,   85,   51,   85,   57,   85,
348
349       85,   85,   62,   85,   64,   85,   67,   85,   68,   85,
350       69,   85,   70,   85,   85,   75,   85,   85,   85,    1,
351        2,   92,   85,   85,   85,   14,   85,   85,   85,   28,
352       85,   85,   85,   85,   85,   85,   85,   85,   85,   30,
353       85,   85,   32,   85,   85,   44,   85,   85,   85,   74,
354       85,   85,   85,   24,   85,   85,   85,   85,   85,   85,
355       85,   50,   85,   52,   85,   85,   85,   65,   85,   76,
356       85,   85,   31,   85,   40,   85,   58,   85,   59,   85,
357       79,   85,   81,   85,   85,   10,   85,   85,   25,   85,
358       29,   85,   85,   85,   55,   85,   85,   85,   85,   85,
359
360       48,   85,   85,   85,   85,   85,   53,   85,   60,   85,
361       66,   85,   77,   85,   82,   85,   11,   85,   15,   85,
362       26,   85,   85,   85,   85,   85,   85,   61,   85,   83,
363       85,   16,   85,   38,   85
364    } ;
365
366static yyconst short int yy_accept[619] =
367    {   0,
368        1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
369       15,   17,   20,   23,   26,   28,   31,   34,   37,   40,
370       43,   46,   49,   52,   56,   60,   63,   66,   69,   72,
371       75,   78,   81,   84,   87,   89,   92,   95,   98,  101,
372      104,  107,  110,  113,  116,  119,  122,  125,  128,  131,
373      134,  137,  140,  143,  146,  149,  152,  155,  158,  160,
374      162,  164,  165,  166,  166,  167,  168,  169,  169,  170,
375      170,  171,  171,  172,  173,  174,  175,  175,  176,  176,
376      177,  178,  179,  180,  181,  182,  182,  183,  184,  184,
377      185,  186,  187,  187,  187,  188,  189,  189,  189,  190,
378
379      191,  192,  193,  193,  194,  195,  196,  197,  198,  199,
380      200,  201,  202,  202,  202,  202,  202,  202,  202,  202,
381      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
382      202,  203,  204,  205,  206,  207,  208,  209,  210,  211,
383      212,  213,  214,  216,  217,  218,  219,  220,  221,  222,
384      223,  224,  225,  227,  228,  229,  230,  231,  232,  233,
385      234,  235,  236,  237,  238,  239,  240,  241,  242,  243,
386      244,  244,  244,  244,  245,  245,  246,  246,  246,  246,
387      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
388      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
389
390      247,  248,  248,  249,  249,  249,  250,  250,  251,  251,
391      251,  251,  252,  252,  253,  254,  255,  256,  256,  257,
392      257,  257,  258,  259,  260,  261,  261,  262,  263,  263,
393      264,  265,  265,  265,  265,  265,  265,  266,  267,  268,
394      269,  270,  271,  272,  273,  274,  275,  276,  277,  279,
395      280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
396      290,  291,  292,  293,  294,  296,  297,  298,  299,  301,
397      302,  303,  304,  305,  306,  307,  308,  309,  310,  311,
398      312,  313,  315,  316,  317,  318,  319,  320,  321,  321,
399      321,  321,  322,  322,  322,  322,  322,  322,  322,  322,
400
401      322,  322,  322,  322,  322,  322,  322,  323,  323,  323,
402      323,  324,  324,  325,  326,  326,  326,  327,  328,  328,
403      329,  329,  330,  331,  332,  332,  332,  333,  334,  335,
404      336,  337,  338,  339,  340,  341,  342,  343,  344,  345,
405      346,  347,  349,  350,  352,  353,  355,  356,  357,  358,
406      359,  360,  361,  363,  365,  366,  367,  368,  369,  370,
407      371,  373,  374,  376,  377,  378,  379,  380,  381,  382,
408      383,  384,  385,  386,  387,  389,  390,  391,  393,  394,
409      395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
410      395,  395,  396,  396,  396,  396,  396,  396,  396,  397,
411
412      398,  398,  399,  399,  400,  401,  401,  401,  401,  403,
413      404,  405,  406,  408,  409,  410,  411,  412,  413,  414,
414      415,  416,  417,  418,  419,  421,  423,  424,  426,  427,
415      428,  429,  430,  432,  433,  434,  436,  437,  438,  440,
416      441,  442,  443,  444,  445,  447,  448,  449,  450,  451,
417      452,  454,  455,  456,  458,  459,  460,  462,  462,  462,
418      462,  462,  462,  462,  462,  462,  462,  463,  463,  463,
419      464,  465,  466,  466,  467,  467,  468,  469,  470,  471,
420      472,  473,  474,  475,  476,  478,  479,  480,  481,  482,
421      483,  484,  486,  487,  488,  489,  491,  493,  494,  496,
422
423      497,  499,  501,  502,  503,  505,  507,  509,  511,  513,
424      515,  516,  518,  519,  520,  520,  522,  522,  522,  522,
425      522,  522,  523,  523,  523,  523,  524,  525,  526,  528,
426      529,  530,  532,  533,  534,  535,  536,  537,  538,  539,
427      540,  542,  543,  545,  546,  548,  549,  550,  552,  553,
428      554,  554,  554,  554,  554,  554,  556,  557,  558,  559,
429      560,  561,  562,  564,  566,  567,  568,  570,  572,  573,
430      575,  577,  579,  581,  583,  585,  585,  585,  585,  585,
431      586,  588,  589,  591,  593,  594,  595,  597,  598,  599,
432      600,  601,  601,  601,  601,  603,  604,  605,  606,  607,
433
434      609,  611,  613,  615,  617,  619,  621,  623,  624,  625,
435      626,  627,  628,  630,  632,  634,  636,  636
436    } ;
437
438static yyconst int yy_ec[256] =
439    {   0,
440        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
441        4,    5,    6,    1,    1,    1,    1,    1,    1,    1,
442        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
443        1,    7,    8,    9,   10,   11,   12,   13,   14,   15,
444       16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
445       25,   25,   25,   25,   25,   26,   26,   27,   28,   29,
446       30,   31,   32,    1,   33,   34,   35,   33,   36,   37,
447       11,   11,   38,   11,   11,   39,   11,   11,   11,   40,
448       11,   11,   11,   11,   41,   11,   11,   42,   11,   11,
449       43,   44,   45,   46,   47,    1,   48,   49,   50,   51,
450
451       52,   53,   54,   55,   56,   11,   57,   58,   59,   60,
452       61,   62,   11,   63,   64,   65,   66,   67,   68,   69,
453       70,   71,   72,   73,   74,   75,    1,    1,    1,    1,
454        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
455        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
456        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
457        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
458        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
459        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
460        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
461
462        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
463        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
464        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
465        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
466        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
467        1,    1,    1,    1,    1
468    } ;
469
470static yyconst int yy_meta[76] =
471    {   0,
472        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
473        4,    1,    1,    3,    1,    1,    1,    1,    1,    1,
474        5,    1,    6,    6,    6,    7,    1,    1,    1,    1,
475        1,    3,    7,    7,    7,    7,    7,    4,    8,    9,
476       10,    4,    1,   11,    1,    1,   12,    6,    6,    7,
477        7,    6,    6,    4,    4,    4,    4,    8,    4,   11,
478        4,    9,   11,    4,   11,   10,   11,    4,   11,    4,
479        4,    1,    1,    1,    1
480    } ;
481
482static yyconst short int yy_base[678] =
483    {   0,
484        0,   74, 1651, 1650, 1666, 1669,   83, 1669,   89,   47,
485       69, 1621,   52,   67,   84, 1669, 1669,   69,   82, 1669,
486       85,   83,  101,  111,  160,    0, 1633, 1669,  112, 1633,
487       72,  219,  111, 1669,   78, 1669, 1632,  126,   82,   66,
488      101,  107,  131,  144,   77,  134,  149,   78,  189,  127,
489       67,   96,   99, 1669,  103, 1669, 1629,  218,  244, 1669,
490     1638,  269, 1669,  275,  281, 1669,  285,  170, 1669,  271,
491     1615,  163, 1669, 1669, 1669, 1669,  151, 1669,  276, 1669,
492     1626, 1669, 1625, 1669, 1669, 1635,  296, 1669, 1652, 1669,
493      327,  336,  346,  366,  172,  159,  209,  371,  194,    0,
494
495      225,  201,  378,  268, 1669, 1669, 1669, 1624, 1669, 1669,
496     1669, 1623, 1622,  176,  223, 1635,  231,  293,  309,  274,
497      379,  278,  325, 1618,  306,  314,  280,  333,    0,    0,
498     1669,  269,  355,  199,  376,  329,  356,  122,  383,  394,
499      159,  274,  321,  387,  371,  401,  389,  318,  402,  405,
500      406,  407, 1605,  408,  362,  412,  415,  409,  417,  414,
501      430,  420,  421,  431,  434,  438,  441, 1669, 1669,  497,
502      503, 1645,  509, 1669,  515, 1669, 1617,  457,  483,  489,
503      512,  516,  493,  520,  513,  523, 1614,  526,  527,  538,
504        0,    0,    0,    0,    0,  546,    0,    0,    0, 1669,
505
506      541,  561, 1669,  577, 1642, 1669,  559,    0,  595,  602,
507      549,  620,  640,  443, 1669, 1605, 1585,    0,  629,  562,
508      656,  454, 1669, 1603, 1583,  660, 1669, 1669, 1608, 1669,
509     1669,  559,  574, 1594,    0,    0,  470,  548,  589,  644,
510      507,  553,  596,  604,  571,  595,  627,  628, 1594,  631,
511      646,  649,  331,  633,  654,  655,  656,  561,  661,  662,
512      666,  669,  668,  674,  680,  667,  672,  618, 1593,  673,
513      686,  687,  688,  690,  691,  448,  694,  692,  693,  695,
514      697, 1592,  696,  703,  705,  711,  719,  707,  766,  763,
515     1603, 1669,  720,  744, 1589,  761,    0,    0,  797,    0,
516
517        0,  757,    0,    0,  837,  764,  771,  789,  812,  829,
518      854,  871, 1669, 1669,  764,  852,  881,  759,  880,  744,
519      756,  798, 1669, 1669,    0,    0,  734,  755,  813,  735,
520      783,  775,  784,  865,  821,  824,  867,  869,  871,  822,
521      873, 1589,  875, 1588,  879, 1587,  882,  891,  892,  893,
522      894,  831, 1586, 1585,  897,  896,  898,  906,  905,  901,
523     1584,  907, 1583,  910,  911,  914,  918,  913,  921,  922,
524      926,  930,  935,  925,  940,  927,  942, 1582,  944,  945,
525      989,  963,    0,    0,    0,    0,    0,  976,    0,    0,
526        0,  979,  988,  998,  968, 1024,  989,  955,  953, 1669,
527
528     1029, 1033, 1042, 1586, 1566, 1042,    0,    0, 1579, 1017,
529      984,  956,  987, 1025, 1030, 1020, 1033,  989, 1034, 1035,
530     1029, 1049, 1051, 1053, 1578, 1577, 1054, 1576, 1052, 1055,
531     1058, 1061, 1575, 1063, 1067, 1574, 1066, 1070, 1573, 1068,
532     1073, 1075, 1082, 1083, 1572,  955,  588, 1084, 1085, 1086,
533     1571, 1087, 1089, 1570, 1088, 1091, 1569, 1609,    0,    0,
534        0,    0,    0,    0, 1128, 1132, 1137, 1146, 1097, 1669,
535     1154, 1669, 1163, 1669,    0, 1498, 1121, 1123, 1137, 1102,
536     1138, 1141, 1148, 1154, 1159, 1160, 1161, 1152, 1165, 1164,
537     1167, 1497, 1174, 1178, 1180, 1495, 1463, 1179, 1433, 1183,
538
539     1432, 1431, 1182, 1185, 1430, 1412, 1411, 1410, 1408, 1407,
540     1092, 1403, 1184, 1189, 1443, 1669,    0, 1221,    0,    0,
541     1217, 1225, 1229, 1233,    0, 1194, 1193, 1216, 1401, 1225,
542     1223, 1226, 1227, 1237, 1241, 1242, 1244, 1246, 1248, 1250,
543     1399, 1251, 1398, 1252, 1374, 1235, 1255, 1365, 1258, 1260,
544        0,    0,    0, 1290,    0, 1353, 1261, 1264, 1263, 1266,
545     1275, 1267, 1338, 1281, 1283, 1196, 1287, 1289, 1282, 1337,
546     1317, 1124, 1032,  995,  994,    0,    0,    0,    0, 1277,
547     1294, 1288, 1295,  814, 1299, 1301,  772, 1300, 1302, 1307,
548     1306,    0,    0,    0,  749, 1308, 1312, 1315, 1313,  698,
549
550     1319,  532,  493, 1323,  437, 1324,  324, 1325, 1330, 1331,
551     1332, 1336,  246,  198,  171,  123, 1669, 1383, 1395, 1404,
552     1416, 1428, 1438, 1447, 1458, 1466, 1473, 1475, 1477, 1479,
553     1481, 1483, 1485, 1487, 1489, 1491, 1493, 1496, 1503, 1505,
554     1512, 1519, 1521, 1523, 1525, 1527, 1529, 1531, 1538, 1540,
555     1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1563, 1570,
556     1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590,
557     1592, 1594, 1596, 1598, 1600, 1602, 1604
558    } ;
559
560static yyconst short int yy_def[678] =
561    {   0,
562      617,    1,  618,  618,  617,  617,  617,  617,  617,  617,
563      619,  620,  617,  617,  621,  617,  617,  617,  617,  617,
564      617,  617,  617,  617,  617,   25,  617,  617,  617,  617,
565      617,  617,  620,  617,  617,  617,  617,  620,  620,  620,
566      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
567      620,  620,  620,  617,  617,  617,  617,  617,  622,  617,
568      617,  617,  617,  617,  617,  617,  617,  619,  617,  623,
569      620,  617,  617,  617,  617,  617,  621,  617,  624,  617,
570      617,  617,  617,  617,  617,  617,  617,  617,  625,  617,
571      617,   24,  617,  617,  617,  617,  626,  617,  617,   25,
572
573      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
574      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
575      617,  617,  617,  617,  617,  617,  619,  621,  627,  628,
576      617,  620,  620,  620,  620,  620,  620,  620,  620,  620,
577      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
578      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
579      620,  620,  620,  620,  620,  620,  620,  617,  617,  617,
580      622,  622,  622,  617,  622,  617,  617,  617,  617,  617,
581      617,  617,  617,  617,  617,  617,  617,  617,  617,  619,
582      629,  630,  631,  632,  633,  621,  634,  635,  636,  617,
583
584      617,  617,  617,  617,  625,  617,  617,   92,  617,  617,
585      617,  617,  617,  617,  617,  617,  617,  637,  638,  626,
586      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
587      617,  617,  617,  617,  639,  640,  620,  620,  620,  620,
588      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
589      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
590      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
591      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
592      620,  620,  620,  620,  620,  620,  620,  620,  622,  641,
593      617,  617,  617,  617,  617,  619,  642,  643,  619,  644,
594
595      645,  621,  646,  647,  621,  617,  617,  617,  617,  617,
596      617,  617,  617,  617,  648,  637,  638,  617,  617,  617,
597      317,  617,  617,  617,  649,  650,  620,  620,  620,  620,
598      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
599      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
600      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
601      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
602      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
603      641,  619,  651,  652,  299,  653,  654,  621,  655,  656,
604      305,  617,  617,  617,  648,  617,  648,  617,  617,  617,
605
606      617,  617,  617,  617,  617,  317,  657,  658,  620,  620,
607      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
608      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
609      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
610      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
611      620,  620,  620,  620,  620,  620,  620,  659,  660,  661,
612      662,  663,  664,  665,  617,  617,  617,  617,  648,  617,
613      617,  617,  617,  617,  666,  620,  620,  620,  620,  620,
614      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
615      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
616
617      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
618      620,  620,  620,  620,  659,  617,  667,  619,  668,  669,
619      621,  617,  617,  617,  670,  620,  620,  620,  620,  620,
620      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
621      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
622      671,  672,  673,  617,  674,  620,  620,  620,  620,  620,
623      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
624      620,  620,  620,  620,  620,  675,  676,  677,  658,  620,
625      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
626      620,  661,  663,  665,  620,  620,  620,  620,  620,  620,
627
628      620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
629      620,  620,  620,  620,  620,  620,    0,  617,  617,  617,
630      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
631      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
632      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
633      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
634      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
635      617,  617,  617,  617,  617,  617,  617
636    } ;
637
638static yyconst short int yy_nxt[1745] =
639    {   0,
640        6,    7,    8,    9,    9,    9,    7,   10,   11,    6,
641       12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
642       22,   23,   24,   25,   26,   26,   27,   28,   29,   30,
643       31,   32,   12,   12,   12,   12,   12,   12,   33,   12,
644       12,   12,   34,   35,   36,   37,   38,   39,   40,   41,
645       42,   43,   44,   45,   12,   46,   12,   47,   12,   12,
646       12,   12,   48,   49,   50,   51,   52,   53,   12,   12,
647       12,   54,   55,   56,   57,   58,   66,   69,   67,   75,
648       58,   73,   74,   59,   62,   63,   64,   64,   64,   62,
649       64,   63,   65,   65,   65,   64,   76,   78,   80,   81,
650
651       67,  111,  112,   86,   83,   87,   87,   87,   87,   72,
652       72,   82,   70,   67,   84,   85,   67,   88,  129,  127,
653       72,   72,   89,  106,  128,   72,  165,   79,  138,  157,
654       90,   91,  168,   92,   92,   92,   93,  152,  107,   72,
655      108,  109,   72,  130,   72,  136,   94,  137,  139,   95,
656       72,   96,   97,  167,   72,  140,  166,   98,  142,  132,
657      133,  141,   94,  134,   78,   72,   72,  143,   99,   72,
658       72,  144,  135,  251,   72,  169,   96,   72,   69,   97,
659       91,  162,  100,  100,  100,  100,  153,   72,  145,  163,
660      146,  148,   72,  154,   79,   94,  164,  216,  101,  147,
661
662      102,  149,   72,  194,  150,  229,  103,  230,  151,  155,
663      214,   94,  215,   70,   72,  156,  217,  104,  256,  170,
664       63,   64,   64,   64,  170,  102,  113,  171,  195,  218,
665      114,  115,   72,  116,  215,  117,  118,  215,  119,  224,
666      120,   72,   72,  158,  159,  173,  174,  121,  122,  123,
667      173,  214,  229,  160,  230,  220,  161,  239,  225,  215,
668      229,  124,  230,  222,  125,  223,  175,  175,  175,  175,
669       62,   63,   64,   64,   64,   62,   64,   63,   64,   64,
670       64,   64,   64,   63,   65,   65,   65,   64,   69,   72,
671      223,  126,  177,  190,  190,  190,  178,  179,  196,  196,
672
673      196,  180,  181,  229,  182,  230,  183,  229,  223,  230,
674      231,  191,   72,  184,  185,  186,  197,   72,  201,  201,
675      201,  201,  229,   70,  230,  222,  257,  187,  231,  237,
676      188,  202,  203,  223,  203,  229,  192,  230,  229,  193,
677      230,  198,  204,  229,  199,  230,   78,  202,  203,   87,
678       87,   87,   87,  203,  229,  233,  230,  189,  208,  208,
679      208,   72,  202,  203,   72,  203,   91,   72,   93,   93,
680       93,   93,   72,  207,   72,  263,   79,  617,  202,  203,
681      345,   94,  209,  211,  203,  211,  258,  249,  212,  212,
682      212,  212,  210,   92,   92,   92,   93,   94,   72,   72,
683
684      100,  100,  100,  100,  617,   72,   94,  232,  229,   95,
685      230,   96,  213,   94,   72,  238,  101,  221,  102,   72,
686      250,  270,   94,  240,  226,  241,   72,  242,   99,   94,
687       72,  243,   72,  244,  260,  104,   96,   72,  245,  246,
688      247,  254,  248,  102,   72,   72,  252,  253,   72,   72,
689       72,   72,   72,  262,  255,   72,  259,   72,   72,  271,
690       72,  278,  264,   72,   72,  268,  261,  265,  272,  275,
691      276,  267,  269,   72,   72,  266,  279,   72,  273,  274,
692       72,   72,  281,  313,   72,  280,  291,  277,  292,  284,
693      282,   72,  283,  286,  323,  287,  288,  285,  170,   63,
694
695       64,   64,   64,  170,  173,  174,  171,  369,  313,  173,
696      173,  174,  291,   72,  292,  173,  289,  174,  291,  323,
697      292,  289,  291,  290,  292,  175,  175,  175,  175,  292,
698      327,  175,  175,  175,  175,  292,   72,  175,  175,  175,
699      175,  291,  291,  292,  292,  291,   69,  292,  293,  291,
700       72,  292,  291,  294,  292,  291,  291,  292,  292,   78,
701      296,  296,  296,  201,  201,  201,  201,  333,  302,  302,
702      302,  212,  212,  212,  212,   72,  202,  203,  306,  203,
703      306,   70,  218,  307,  307,  307,  307,  204,  229,   79,
704      230,   72,  202,  203,  202,  203,   72,  203,  203,  201,
705
706      201,  201,  201,  229,   72,  230,  328,  308,  617,  351,
707      202,  203,  202,  203,   72,  203,  203,  208,  208,  208,
708       93,  334,  338,  309,   93,   93,   93,   93,  202,  203,
709       94,   72,   72,   95,  203,   96,  329,   94,   72,   72,
710      507,  310,  311,  311,  311,  311,   94,   72,  221,  316,
711      339,  337,   99,   94,  335,  336,  203,  211,  203,  211,
712       96,   72,  212,  212,  212,  212,  312,  318,  319,  320,
713       72,   72,  203,  362,   72,  321,   72,  203,   93,   93,
714       93,   93,  100,  100,  100,  100,  322,   72,  341,   72,
715      319,  342,   72,  343,  320,  346,  340,   72,   72,   72,
716
717      344,  330,  221,  350,   72,   72,  226,  331,  332,   72,
718       72,   72,   72,  353,  347,   72,   72,   72,  348,  349,
719      355,  357,  352,   72,  354,  356,  363,  358,  360,   72,
720       72,   72,  361,   72,   72,   72,   72,   72,   72,   72,
721       72,   72,  365,  364,  359,  370,   72,  375,   72,  291,
722       72,  292,  366,  368,   72,  367,  371,  374,  372,  373,
723      377,  378,   72,  376,  380,  174,  379,  289,  174,   69,
724       78,  172,  289,  291,  290,  292,  617,   72,   72,  388,
725      388,  388,  404,  382,  382,  382,  307,  307,  307,  307,
726      412,  409,   72,  392,  392,  392,  392,  399,   72,  400,
727
728       79,  405,  406,  396,   70,   69,  306,  203,  306,  203,
729      397,  307,  307,  307,  307,   72,  410,  393,   72,  385,
730      385,  385,  385,  203,  400,  396,   72,   72,  203,  385,
731      385,  385,  385,  385,  201,  201,  201,  201,  400,  414,
732       70,  413,  415,  416,  385,  385,  385,  385,  385,  385,
733       78,  208,  208,  208,   93,  399,   72,   72,  309,  391,
734      391,  391,  391,  400,   72,   72,  411,   72,  418,  391,
735      391,  391,  391,  391,   72,  310,  311,  311,  311,  311,
736       79,  419,  433,  423,  391,  391,  391,  391,  391,  391,
737      203,  396,  203,  311,  311,  311,  311,  401,  398,  401,
738
739      312,  316,  402,  402,  402,  402,  203,  203,   72,  203,
740       72,  203,   72,  396,   72,  420,   72,  394,   72,  318,
741      319,  320,   72,  203,  422,   72,  403,  321,  203,  417,
742      424,  425,  421,  426,   72,   72,   72,   72,  322,   72,
743       72,   72,  319,  429,   72,  427,  320,  430,   72,   72,
744       72,  432,  439,   72,   72,  428,   72,   72,  431,  434,
745      435,   72,  436,  437,   72,   72,  440,  438,   72,   72,
746       72,   69,  446,   72,  442,  441,  443,  445,   72,  449,
747      444,  448,  447,   72,  450,   72,  454,   72,   72,   78,
748      452,  174,  451,  470,  396,  455,  457,  458,   72,   72,
749
750      453,  392,  392,  392,  392,  506,   70,  396,  456,  479,
751      392,  392,  392,  392,  397,  203,  396,  203,  470,   79,
752      311,  311,  311,  311,  203,  393,  203,   72,  396,  396,
753       72,  203,   72,  480,  465,  469,  203,   72,   72,  478,
754      203,  466,  485,  466,  394,  203,  467,  467,  467,  467,
755      396,  402,  402,  402,  402,  471,  471,  471,  471,  401,
756       72,  401,  617,   72,  402,  402,  402,  402,   72,  472,
757      468,  472,   72,   72,  477,   72,   72,   72,   72,  473,
758      617,  617,  617,  483,  484,  472,  487,  481,  406,  486,
759      472,  482,   72,  488,   72,   72,   72,   72,   72,  617,
760
761      491,   72,  490,  617,   72,  492,   72,  617,  489,   72,
762       72,   72,  496,   72,  494,  495,   72,  500,   72,  501,
763      493,  498,  497,  499,  502,   72,   72,   72,   72,   72,
764       72,   72,   72,  508,   72,   72,  617,  504,  511,  503,
765      510,  512,  505,  469,  548,   72,  514,  513,  529,  509,
766      392,  392,  392,  392,  467,  467,  467,  467,  617,  522,
767      522,  522,  522,  466,   72,  466,   72,   72,  467,  467,
768      467,  467,  526,  472,  465,  472,  471,  471,  471,  471,
769       72,   72,  527,  523,   72,  471,  471,  471,  471,  472,
770      472,   72,  472,  530,  472,   72,  528,   72,  531,  472,
771
772      473,  472,   72,   72,   72,  534,  472,   72,   72,  524,
773       72,  472,  532,  533,  537,  472,  538,   72,  536,  535,
774      472,   72,   72,   72,  539,   72,   72,   72,   72,   69,
775       78,  540,   72,  546,  547,  549,   72,   72,  541,   72,
776      557,  544,  545,  542,  543,  588,  550,  522,  522,  522,
777      522,  522,  522,  522,  522,  471,  471,  471,  471,   72,
778       79,  472,  556,  472,   70,  472,   72,  472,   72,   72,
779       72,  523,  561,  559,  560,  554,  558,  472,   72,  524,
780       72,  472,  472,  563,   72,   72,  472,   72,  565,   72,
781      562,   72,  564,   72,   72,   72,  567,  572,   72,  566,
782
783      568,   72,  570,   72,   72,  569,   72,   72,  574,   72,
784       72,  575,  522,  522,  522,  522,  581,  571,   72,  573,
785       72,  584,  585,  580,   72,   72,   72,  586,  582,  587,
786       72,   72,   72,  589,  583,  590,  554,   72,   72,  591,
787      596,  598,   72,   72,   72,   72,  595,  600,  602,   72,
788       72,   72,  597,  603,  605,   72,   72,  604,   72,  599,
789       72,  607,   72,  606,  601,  609,   72,   72,   72,  610,
790      611,  612,  608,   72,   72,   72,  613,  614,  615,   72,
791       72,   72,  616,   60,   60,   60,   60,   60,   60,   60,
792       60,   60,   60,   60,   60,   68,   72,   68,   68,   68,
793
794       68,   68,   68,   68,   68,   68,   68,   71,   72,   71,
795       71,   71,   71,   71,   71,   71,   77,   72,   77,   77,
796       77,   77,   77,   77,   77,   77,   77,   77,  172,  172,
797      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
798       68,   72,   72,   68,   72,  516,   72,   68,   68,   77,
799       72,   72,   77,   72,   72,   72,   77,   77,  205,  205,
800      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
801      219,  219,  219,   72,   72,   72,   72,  219,  235,  235,
802      236,  236,  297,  297,  298,  298,  299,  299,  300,  300,
803      301,  301,  303,  303,  304,  304,  305,  305,  315,  315,
804
805      317,  317,  317,  317,  317,  317,   72,  317,  325,  325,
806      326,  326,  381,  381,  381,  381,  381,  381,  381,  381,
807      381,  381,  381,  381,  383,  383,  384,  384,  386,  386,
808      387,  387,  389,  389,  390,  390,  395,  395,   72,  395,
809       72,   72,  395,  407,  407,  408,  408,  459,  459,  460,
810      460,  461,  461,  462,  462,  463,  463,  464,  464,  475,
811      475,  476,  476,  515,  515,  515,  515,  515,  515,  515,
812      515,  515,  515,  515,  515,  517,  517,  518,  518,  519,
813      519,   71,   71,  520,  520,  521,  521,  525,  525,  551,
814      551,  552,  552,  553,  553,  555,  555,  576,  576,  577,
815
816      577,  578,  578,  579,  579,  592,  592,  593,  593,  594,
817      594,  516,   72,   72,   72,   72,   72,   72,   72,   72,
818       72,   72,   72,  474,  474,   72,   72,   72,   72,   72,
819       72,   72,   72,  292,  292,   72,   72,   72,  231,  230,
820      324,  324,  314,  314,  206,  295,  291,  174,   72,  234,
821      231,  229,  228,  227,  206,  200,   67,   67,   72,  176,
822       67,  131,  110,  105,   72,  617,   61,   61,    5,  617,
823      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
824      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
825      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
826
827      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
828      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
829      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
830      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
831      617,  617,  617,  617
832    } ;
833
834static yyconst short int yy_chk[1745] =
835    {   0,
836        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
837        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
838        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
839        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
840        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
841        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
842        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
843        1,    1,    1,    1,    1,    2,   10,   11,   10,   14,
844        2,   13,   13,    2,    7,    7,    7,    7,    7,    7,
845        9,    9,    9,    9,    9,    9,   14,   15,   18,   19,
846
847       18,   31,   31,   22,   21,   22,   22,   22,   22,   40,
848       51,   19,   11,   19,   21,   21,   21,   23,   35,   33,
849       45,   48,   23,   29,   33,   39,   51,   15,   40,   48,
850       23,   24,   55,   24,   24,   24,   24,   45,   29,   52,
851       29,   29,   53,   35,   41,   39,   24,   39,   41,   24,
852       42,   24,   24,   53,   33,   41,   52,   24,   42,   38,
853       38,   41,   24,   38,   77,  138,  616,   42,   24,   38,
854       50,   42,   38,  138,   43,   55,   24,   46,   68,   24,
855       25,   50,   25,   25,   25,   25,   46,   44,   43,   50,
856       43,   44,   47,   46,   77,   25,   50,   96,   25,   43,
857
858       25,   44,  141,   72,   44,  114,   25,  114,   44,   47,
859       95,   25,   95,   68,  615,   47,   96,   25,  141,   58,
860       58,   58,   58,   58,   58,   25,   32,   58,   72,   97,
861       32,   32,   49,   32,   99,   32,   32,   95,   32,  102,
862       32,  614,  134,   49,   49,   59,   59,   32,   32,   32,
863       59,   99,  115,   49,  115,   97,   49,  134,  102,   99,
864      117,   32,  117,  101,   32,  101,   59,   59,   59,   59,
865       62,   62,   62,   62,   62,   62,   64,   64,   64,   64,
866       64,   64,   65,   65,   65,   65,   65,   65,  127,  613,
867      101,   32,   67,   70,   70,   70,   67,   67,   79,   79,
868
869       79,   67,   67,  120,   67,  120,   67,  122,  104,  122,
870      118,   70,  132,   67,   67,   67,   79,  142,   87,   87,
871       87,   87,  118,  127,  118,  104,  142,   67,  119,  132,
872       67,   87,   87,  104,   87,  125,   70,  125,  119,   70,
873      119,   79,   87,  126,   79,  126,  128,   87,   87,   91,
874       91,   91,   91,   87,  123,  123,  123,   67,   92,   92,
875       92,  148,   91,   91,  143,   91,   93,  607,   93,   93,
876       93,   93,  136,   91,  253,  148,  128,   92,   91,   91,
877      253,   93,   92,   94,   91,   94,  143,  136,   94,   94,
878       94,   94,   93,   98,   98,   98,   98,   93,  133,  137,
879
880      103,  103,  103,  103,   92,  155,   98,  121,  121,   98,
881      121,   98,   94,  103,  145,  133,  103,   98,  103,  135,
882      137,  155,   98,  135,  103,  135,  139,  135,   98,  103,
883      144,  135,  147,  135,  145,  103,   98,  140,  135,  135,
884      135,  140,  135,  103,  146,  149,  139,  139,  150,  151,
885      152,  154,  158,  147,  140,  156,  144,  160,  157,  156,
886      159,  160,  149,  162,  163,  154,  146,  150,  157,  158,
887      159,  152,  154,  161,  164,  151,  160,  165,  157,  157,
888      605,  166,  162,  214,  167,  161,  178,  159,  178,  165,
889      163,  276,  164,  166,  222,  166,  167,  165,  170,  170,
890
891      170,  170,  170,  170,  171,  171,  170,  276,  214,  171,
892      173,  173,  179,  237,  179,  173,  175,  175,  180,  222,
893      180,  175,  183,  175,  183,  171,  171,  171,  171,  181,
894      237,  173,  173,  173,  173,  182,  603,  175,  175,  175,
895      175,  181,  185,  181,  185,  182,  190,  182,  184,  184,
896      241,  184,  186,  186,  186,  188,  189,  188,  189,  196,
897      190,  190,  190,  201,  201,  201,  201,  241,  196,  196,
898      196,  211,  211,  211,  211,  602,  201,  201,  202,  201,
899      202,  190,  220,  202,  202,  202,  202,  201,  232,  196,
900      232,  238,  201,  201,  207,  207,  242,  207,  201,  204,
901
902      204,  204,  204,  233,  258,  233,  238,  202,  220,  258,
903      207,  207,  204,  204,  245,  204,  207,  209,  209,  209,
904      209,  242,  245,  204,  210,  210,  210,  210,  204,  204,
905      209,  447,  239,  209,  204,  209,  239,  210,  246,  243,
906      447,  209,  212,  212,  212,  212,  209,  244,  210,  219,
907      246,  244,  209,  210,  243,  243,  212,  213,  212,  213,
908      209,  268,  213,  213,  213,  213,  212,  219,  219,  219,
909      247,  248,  212,  268,  250,  219,  254,  212,  221,  221,
910      221,  221,  226,  226,  226,  226,  219,  240,  248,  251,
911      219,  250,  252,  251,  219,  254,  247,  255,  256,  257,
912
913      252,  240,  221,  257,  259,  260,  226,  240,  240,  261,
914      266,  263,  262,  260,  255,  267,  270,  264,  256,  256,
915      262,  264,  259,  265,  261,  263,  270,  265,  266,  271,
916      272,  273,  267,  274,  275,  278,  279,  277,  280,  283,
917      281,  600,  272,  271,  265,  277,  284,  283,  285,  293,
918      288,  293,  273,  275,  286,  274,  278,  281,  279,  280,
919      285,  286,  287,  284,  288,  290,  287,  289,  289,  296,
920      302,  290,  289,  294,  289,  294,  321,  327,  330,  302,
921      302,  302,  320,  296,  296,  296,  306,  306,  306,  306,
922      330,  327,  595,  307,  307,  307,  307,  318,  328,  318,
923
924      302,  320,  321,  315,  296,  299,  308,  307,  308,  307,
925      315,  308,  308,  308,  308,  587,  328,  307,  332,  299,
926      299,  299,  299,  307,  318,  315,  331,  333,  307,  299,
927      299,  299,  299,  299,  309,  309,  309,  309,  322,  332,
928      299,  331,  333,  333,  299,  299,  299,  299,  299,  299,
929      305,  310,  310,  310,  310,  322,  329,  584,  309,  305,
930      305,  305,  305,  322,  335,  340,  329,  336,  335,  305,
931      305,  305,  305,  305,  352,  310,  311,  311,  311,  311,
932      305,  336,  352,  340,  305,  305,  305,  305,  305,  305,
933      311,  316,  311,  312,  312,  312,  312,  319,  316,  319,
934
935      311,  317,  319,  319,  319,  319,  311,  312,  334,  312,
936      337,  311,  338,  316,  339,  337,  341,  312,  343,  317,
937      317,  317,  345,  312,  339,  347,  319,  317,  312,  334,
938      341,  343,  338,  345,  348,  349,  350,  351,  317,  356,
939      355,  357,  317,  349,  360,  347,  317,  349,  359,  358,
940      362,  351,  360,  364,  365,  348,  368,  366,  350,  355,
941      356,  367,  357,  358,  369,  370,  362,  359,  374,  371,
942      376,  382,  369,  372,  365,  364,  366,  368,  373,  372,
943      367,  371,  370,  375,  373,  377,  376,  379,  380,  388,
944      375,  381,  374,  399,  398,  377,  380,  381,  446,  412,
945
946      375,  392,  392,  392,  392,  446,  382,  395,  379,  412,
947      393,  393,  393,  393,  395,  392,  398,  392,  399,  388,
948      394,  394,  394,  394,  393,  392,  393,  411,  397,  395,
949      413,  392,  418,  413,  393,  397,  392,  575,  574,  411,
950      393,  396,  418,  396,  394,  393,  396,  396,  396,  396,
951      397,  401,  401,  401,  401,  402,  402,  402,  402,  403,
952      410,  403,  406,  416,  403,  403,  403,  403,  414,  402,
953      396,  402,  421,  415,  410,  573,  417,  419,  420,  402,
954      406,  406,  406,  416,  417,  402,  420,  414,  406,  419,
955      402,  415,  422,  421,  423,  429,  424,  427,  430,  406,
956
957      424,  431,  423,  406,  432,  427,  434,  406,  422,  437,
958      435,  440,  432,  438,  430,  431,  441,  438,  442,  440,
959      429,  435,  434,  437,  441,  443,  444,  448,  449,  450,
960      452,  455,  453,  448,  456,  511,  469,  443,  452,  442,
961      450,  453,  444,  469,  511,  480,  456,  455,  480,  449,
962      465,  465,  465,  465,  466,  466,  466,  466,  469,  467,
963      467,  467,  467,  468,  477,  468,  478,  572,  468,  468,
964      468,  468,  477,  467,  465,  467,  471,  471,  471,  471,
965      479,  481,  478,  467,  482,  473,  473,  473,  473,  467,
966      471,  483,  471,  481,  467,  488,  479,  484,  482,  473,
967
968      471,  473,  485,  486,  487,  485,  471,  490,  489,  473,
969      491,  471,  483,  484,  488,  473,  489,  493,  487,  486,
970      473,  494,  498,  495,  490,  503,  500,  513,  504,  518,
971      521,  491,  514,  503,  504,  513,  527,  526,  493,  566,
972      527,  498,  500,  494,  495,  566,  514,  522,  522,  522,
973      522,  523,  523,  523,  523,  524,  524,  524,  524,  528,
974      521,  522,  526,  522,  518,  523,  531,  523,  530,  532,
975      533,  522,  532,  530,  531,  523,  528,  522,  546,  524,
976      534,  523,  522,  534,  535,  536,  523,  537,  536,  538,
977      533,  539,  535,  540,  542,  544,  538,  546,  547,  537,
978
979      539,  549,  542,  550,  557,  540,  559,  558,  549,  560,
980      562,  550,  554,  554,  554,  554,  558,  544,  561,  547,
981      580,  561,  562,  557,  564,  569,  565,  564,  559,  565,
982      567,  582,  568,  567,  560,  568,  554,  581,  583,  569,
983      581,  583,  585,  588,  586,  589,  580,  586,  589,  591,
984      590,  596,  582,  590,  596,  597,  599,  591,  598,  585,
985      571,  598,  601,  597,  588,  601,  604,  606,  608,  604,
986      606,  608,  599,  609,  610,  611,  609,  610,  611,  612,
987      570,  563,  612,  618,  618,  618,  618,  618,  618,  618,
988      618,  618,  618,  618,  618,  619,  556,  619,  619,  619,
989
990      619,  619,  619,  619,  619,  619,  619,  620,  548,  620,
991      620,  620,  620,  620,  620,  620,  621,  545,  621,  621,
992      621,  621,  621,  621,  621,  621,  621,  621,  622,  622,
993      622,  622,  622,  622,  622,  622,  622,  622,  622,  622,
994      623,  543,  541,  623,  529,  515,  512,  623,  623,  624,
995      510,  509,  624,  508,  507,  506,  624,  624,  625,  625,
996      625,  625,  625,  625,  625,  625,  625,  625,  625,  625,
997      626,  626,  626,  505,  502,  501,  499,  626,  627,  627,
998      628,  628,  629,  629,  630,  630,  631,  631,  632,  632,
999      633,  633,  634,  634,  635,  635,  636,  636,  637,  637,
1000
1001      638,  638,  638,  638,  638,  638,  497,  638,  639,  639,
1002      640,  640,  641,  641,  641,  641,  641,  641,  641,  641,
1003      641,  641,  641,  641,  642,  642,  643,  643,  644,  644,
1004      645,  645,  646,  646,  647,  647,  648,  648,  496,  648,
1005      492,  476,  648,  649,  649,  650,  650,  651,  651,  652,
1006      652,  653,  653,  654,  654,  655,  655,  656,  656,  657,
1007      657,  658,  658,  659,  659,  659,  659,  659,  659,  659,
1008      659,  659,  659,  659,  659,  660,  660,  661,  661,  662,
1009      662,  663,  663,  664,  664,  665,  665,  666,  666,  667,
1010      667,  668,  668,  669,  669,  670,  670,  671,  671,  672,
1011
1012      672,  673,  673,  674,  674,  675,  675,  676,  676,  677,
1013      677,  458,  457,  454,  451,  445,  439,  436,  433,  428,
1014      426,  425,  409,  405,  404,  378,  363,  361,  354,  353,
1015      346,  344,  342,  295,  291,  282,  269,  249,  234,  229,
1016      225,  224,  217,  216,  205,  187,  177,  172,  153,  124,
1017      116,  113,  112,  108,   89,   86,   83,   81,   71,   61,
1018       57,   37,   30,   27,   12,    5,    4,    3,  617,  617,
1019      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1020      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1021      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1022
1023      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1024      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1025      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1026      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
1027      617,  617,  617,  617
1028    } ;
1029
1030static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
1031static char *yy_full_match;
1032static int yy_lp;
1033#define REJECT \
1034{ \
1035*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
1036yy_cp = yy_full_match; /* restore poss. backed-over text */ \
1037++yy_lp; \
1038goto find_rule; \
1039}
1040#define yymore() yymore_used_but_not_detected
1041#define YY_MORE_ADJ 0
1042#define YY_RESTORE_YY_MORE_OFFSET
1043char *yytext;
1044#line 1 "Parser/lex.l"
1045#define INITIAL 0
1046/*                               -*- Mode: C -*-
1047 *
1048 * CForall Lexer Version 1.0, Copyright (C) Peter A. Buhr 2001 -- Permission is granted to copy this
1049 *      grammar and to use it within software systems.  THIS GRAMMAR IS PROVIDED "AS IS" AND WITHOUT
1050 *      ANY EXPRESS OR IMPLIED WARRANTIES.
1051 *
1052 * lex.l --
1053 *
1054 * Author           : Peter A. Buhr
1055 * Created On       : Sat Sep 22 08:58:10 2001
1056 * Last Modified By : Peter A. Buhr
1057 * Last Modified On : Thu Jan 23 16:17:09 2003
1058 * Update Count     : 191
1059 */
1060#line 19 "Parser/lex.l"
1061/* This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor
1062   directive have been performed and removed from the source. The only exceptions are preprocessor
1063   directives passed to the compiler (e.g., line-number directives) and C/C++ style comments, which
1064   are ignored. */
1065
1066/*************** Includes and Defines *****************************/
1067
1068#include <string>
1069
1070#include "ParseNode.h"
1071#include "cfa.tab.h" /* YACC generated definitions based on C++ grammar */
1072#include "lex.h"
1073
1074char *yyfilename;
1075
1076#define WHITE_RETURN(x)         /* do nothing */
1077#define NEWLINE_RETURN()        WHITE_RETURN('\n')
1078#define RETURN_VAL(x)           yylval.tok.str = new std::string(yytext); yylval.tok.file = yyfilename; yylval.tok.line = yylineno; return(x)
1079
1080#define KEYWORD_RETURN(x)       RETURN_VAL(x)           /* keyword */
1081#define IDENTIFIER_RETURN()     RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
1082
1083#define ASCIIOP_RETURN()        RETURN_VAL((int)yytext[0]) /* single character operator */
1084#define NAMEDOP_RETURN(x)       RETURN_VAL(x)           /* multichar operator, with a name */
1085
1086#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) /* numeric constant */
1087
1088void rm_underscore() {                                  /* remove underscores in constant or escape sequence */
1089    int j = 0;
1090    for ( int i = 0; i < yyleng; i += 1 ) {
1091        if ( yytext[i] != '_' ) {
1092            yytext[j] = yytext[i];
1093            j += 1;
1094        } // if
1095    } // for
1096    yyleng = j;
1097    yytext[yyleng] = '\0';
1098}
1099
1100/* identifier, GCC: $ in identifier */
1101/*  numeric constants, CFA: '_' in constant */
1102/* character escape sequence, GCC: \e => esc character */
1103/* display/white-space characters */
1104/* operators */
1105#define COMMENT 1
1106
1107#line 1108 "Parser/lex.yy.cc"
1108
1109/* Macros after this point can all be overridden by user definitions in
1110 * section 1.
1111 */
1112
1113#ifndef YY_SKIP_YYWRAP
1114#ifdef __cplusplus
1115extern "C" int yywrap YY_PROTO(( void ));
1116#else
1117extern int yywrap YY_PROTO(( void ));
1118#endif
1119#endif
1120
1121#ifndef YY_NO_UNPUT
1122static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1123#endif
1124
1125#ifndef yytext_ptr
1126static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1127#endif
1128
1129#ifdef YY_NEED_STRLEN
1130static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1131#endif
1132
1133#ifndef YY_NO_INPUT
1134#ifdef __cplusplus
1135static int yyinput YY_PROTO(( void ));
1136#else
1137static int input YY_PROTO(( void ));
1138#endif
1139#endif
1140
1141#if YY_STACK_USED
1142static int yy_start_stack_ptr = 0;
1143static int yy_start_stack_depth = 0;
1144static int *yy_start_stack = 0;
1145#ifndef YY_NO_PUSH_STATE
1146static void yy_push_state YY_PROTO(( int new_state ));
1147#endif
1148#ifndef YY_NO_POP_STATE
1149static void yy_pop_state YY_PROTO(( void ));
1150#endif
1151#ifndef YY_NO_TOP_STATE
1152static int yy_top_state YY_PROTO(( void ));
1153#endif
1154
1155#else
1156#define YY_NO_PUSH_STATE 1
1157#define YY_NO_POP_STATE 1
1158#define YY_NO_TOP_STATE 1
1159#endif
1160
1161#ifdef YY_MALLOC_DECL
1162YY_MALLOC_DECL
1163#else
1164#if __STDC__
1165#ifndef __cplusplus
1166#include <stdlib.h>
1167#endif
1168#else
1169/* Just try to get by without declaring the routines.  This will fail
1170 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1171 * or sizeof(void*) != sizeof(int).
1172 */
1173#endif
1174#endif
1175
1176/* Amount of stuff to slurp up with each read. */
1177#ifndef YY_READ_BUF_SIZE
1178#define YY_READ_BUF_SIZE 8192
1179#endif
1180
1181/* Copy whatever the last rule matched to the standard output. */
1182
1183#ifndef ECHO
1184/* This used to be an fputs(), but since the string might contain NUL's,
1185 * we now use fwrite().
1186 */
1187#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1188#endif
1189
1190/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1191 * is returned in "result".
1192 */
1193#ifndef YY_INPUT
1194#define YY_INPUT(buf,result,max_size) \
1195        if ( yy_current_buffer->yy_is_interactive ) \
1196                { \
1197                int c = '*', n; \
1198                for ( n = 0; n < max_size && \
1199                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1200                        buf[n] = (char) c; \
1201                if ( c == '\n' ) \
1202                        buf[n++] = (char) c; \
1203                if ( c == EOF && ferror( yyin ) ) \
1204                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
1205                result = n; \
1206                } \
1207        else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1208                  && ferror( yyin ) ) \
1209                YY_FATAL_ERROR( "input in flex scanner failed" );
1210#endif
1211
1212/* No semi-colon after return; correct usage is to write "yyterminate();" -
1213 * we don't want an extra ';' after the "return" because that will cause
1214 * some compilers to complain about unreachable statements.
1215 */
1216#ifndef yyterminate
1217#define yyterminate() return YY_NULL
1218#endif
1219
1220/* Number of entries by which start-condition stack grows. */
1221#ifndef YY_START_STACK_INCR
1222#define YY_START_STACK_INCR 25
1223#endif
1224
1225/* Report a fatal error. */
1226#ifndef YY_FATAL_ERROR
1227#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1228#endif
1229
1230/* Default declaration of generated scanner - a define so the user can
1231 * easily add parameters.
1232 */
1233#ifndef YY_DECL
1234#define YY_DECL int yylex YY_PROTO(( void ))
1235#endif
1236
1237/* Code executed at the beginning of each rule, after yytext and yyleng
1238 * have been set up.
1239 */
1240#ifndef YY_USER_ACTION
1241#define YY_USER_ACTION
1242#endif
1243
1244/* Code executed at the end of each rule. */
1245#ifndef YY_BREAK
1246#define YY_BREAK break;
1247#endif
1248
1249#define YY_RULE_SETUP \
1250        if ( yyleng > 0 ) \
1251                yy_current_buffer->yy_at_bol = \
1252                                (yytext[yyleng - 1] == '\n'); \
1253        YY_USER_ACTION
1254
1255YY_DECL
1256        {
1257        register yy_state_type yy_current_state;
1258        register char *yy_cp, *yy_bp;
1259        register int yy_act;
1260
1261#line 120 "Parser/lex.l"
1262
1263        /* line directives */
1264#line 1265 "Parser/lex.yy.cc"
1265
1266        if ( yy_init )
1267                {
1268                yy_init = 0;
1269
1270#ifdef YY_USER_INIT
1271                YY_USER_INIT;
1272#endif
1273
1274                if ( ! yy_start )
1275                        yy_start = 1;   /* first start state */
1276
1277                if ( ! yyin )
1278                        yyin = stdin;
1279
1280                if ( ! yyout )
1281                        yyout = stdout;
1282
1283                if ( ! yy_current_buffer )
1284                        yy_current_buffer =
1285                                yy_create_buffer( yyin, YY_BUF_SIZE );
1286
1287                yy_load_buffer_state();
1288                }
1289
1290        while ( 1 )             /* loops until end-of-file is reached */
1291                {
1292                yy_cp = yy_c_buf_p;
1293
1294                /* Support of yytext. */
1295                *yy_cp = yy_hold_char;
1296
1297                /* yy_bp points to the position in yy_ch_buf of the start of
1298                 * the current run.
1299                 */
1300                yy_bp = yy_cp;
1301
1302                yy_current_state = yy_start;
1303                yy_current_state += YY_AT_BOL();
1304                yy_state_ptr = yy_state_buf;
1305                *yy_state_ptr++ = yy_current_state;
1306yy_match:
1307                do
1308                        {
1309                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1310                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1311                                {
1312                                yy_current_state = (int) yy_def[yy_current_state];
1313                                if ( yy_current_state >= 618 )
1314                                        yy_c = yy_meta[(unsigned int) yy_c];
1315                                }
1316                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1317                        *yy_state_ptr++ = yy_current_state;
1318                        ++yy_cp;
1319                        }
1320                while ( yy_base[yy_current_state] != 1669 );
1321
1322yy_find_action:
1323                yy_current_state = *--yy_state_ptr;
1324                yy_lp = yy_accept[yy_current_state];
1325find_rule: /* we branch to this label when backing up */
1326                for ( ; ; ) /* until we find what rule we matched */
1327                        {
1328                        if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1329                                {
1330                                yy_act = yy_acclist[yy_lp];
1331                                        {
1332                                        yy_full_match = yy_cp;
1333                                        break;
1334                                        }
1335                                }
1336                        --yy_cp;
1337                        yy_current_state = *--yy_state_ptr;
1338                        yy_lp = yy_accept[yy_current_state];
1339                        }
1340
1341                YY_DO_BEFORE_ACTION;
1342
1343                if ( yy_act != YY_END_OF_BUFFER )
1344                        {
1345                        int yyl;
1346                        for ( yyl = 0; yyl < yyleng; ++yyl )
1347                                if ( yytext[yyl] == '\n' )
1348                                        ++yylineno;
1349                        }
1350
1351do_action:      /* This label is used only to access EOF actions. */
1352
1353
1354                switch ( yy_act )
1355        { /* beginning of action switch */
1356case 1:
1357YY_RULE_SETUP
1358#line 122 "Parser/lex.l"
1359{
1360        char *end_num;
1361        char *begin_string, *end_string;
1362        char *filename;
1363        long lineno, length;
1364        lineno = strtol( yytext + 1, &end_num, 0 );
1365        begin_string = strchr( end_num, '"' );
1366        if( begin_string ) {
1367          end_string = strchr( begin_string + 1, '"' );
1368          if( end_string ) {
1369            length = end_string - begin_string - 1;
1370            filename = new char[ length + 1 ];
1371            memcpy( filename, begin_string + 1, length );
1372            filename[ length ] = '\0';
1373            //std::cout << "file " << filename << " line " << lineno << std::endl;
1374            yylineno = lineno;
1375            yyfilename = filename;
1376          }
1377        }
1378}
1379        YY_BREAK
1380/* ignore preprocessor directives (for now) */
1381case 2:
1382YY_RULE_SETUP
1383#line 144 "Parser/lex.l"
1384;
1385        YY_BREAK
1386/* ignore C style comments */
1387case 3:
1388YY_RULE_SETUP
1389#line 147 "Parser/lex.l"
1390{BEGIN COMMENT;}
1391        YY_BREAK
1392case 4:
1393YY_RULE_SETUP
1394#line 148 "Parser/lex.l"
1395;
1396        YY_BREAK
1397case 5:
1398YY_RULE_SETUP
1399#line 149 "Parser/lex.l"
1400{BEGIN 0;}
1401        YY_BREAK
1402/* ignore C++ style comments */
1403case 6:
1404YY_RULE_SETUP
1405#line 152 "Parser/lex.l"
1406;
1407        YY_BREAK
1408/* ignore whitespace */
1409case 7:
1410YY_RULE_SETUP
1411#line 155 "Parser/lex.l"
1412{WHITE_RETURN(' ');}
1413        YY_BREAK
1414case 8:
1415YY_RULE_SETUP
1416#line 156 "Parser/lex.l"
1417{WHITE_RETURN(' ');}
1418        YY_BREAK
1419case 9:
1420YY_RULE_SETUP
1421#line 157 "Parser/lex.l"
1422{NEWLINE_RETURN();}
1423        YY_BREAK
1424/* keywords */
1425case 10:
1426YY_RULE_SETUP
1427#line 160 "Parser/lex.l"
1428{KEYWORD_RETURN(ALIGNOF);}      /* GCC */
1429        YY_BREAK
1430case 11:
1431YY_RULE_SETUP
1432#line 161 "Parser/lex.l"
1433{KEYWORD_RETURN(ALIGNOF);}      /* GCC */
1434        YY_BREAK
1435case 12:
1436YY_RULE_SETUP
1437#line 162 "Parser/lex.l"
1438{KEYWORD_RETURN(ASM);}
1439        YY_BREAK
1440case 13:
1441YY_RULE_SETUP
1442#line 163 "Parser/lex.l"
1443{KEYWORD_RETURN(ASM);}          /* GCC */
1444        YY_BREAK
1445case 14:
1446YY_RULE_SETUP
1447#line 164 "Parser/lex.l"
1448{KEYWORD_RETURN(ASM);}          /* GCC */
1449        YY_BREAK
1450case 15:
1451YY_RULE_SETUP
1452#line 165 "Parser/lex.l"
1453{KEYWORD_RETURN(ATTRIBUTE);}    /* GCC */
1454        YY_BREAK
1455case 16:
1456YY_RULE_SETUP
1457#line 166 "Parser/lex.l"
1458{KEYWORD_RETURN(ATTRIBUTE);}    /* GCC */
1459        YY_BREAK
1460case 17:
1461YY_RULE_SETUP
1462#line 167 "Parser/lex.l"
1463{KEYWORD_RETURN(AUTO);}
1464        YY_BREAK
1465case 18:
1466YY_RULE_SETUP
1467#line 168 "Parser/lex.l"
1468{KEYWORD_RETURN(BOOL);}         /* ANSI99 */
1469        YY_BREAK
1470case 19:
1471YY_RULE_SETUP
1472#line 169 "Parser/lex.l"
1473{KEYWORD_RETURN(BREAK);}
1474        YY_BREAK
1475case 20:
1476YY_RULE_SETUP
1477#line 170 "Parser/lex.l"
1478{KEYWORD_RETURN(CASE);}
1479        YY_BREAK
1480case 21:
1481YY_RULE_SETUP
1482#line 171 "Parser/lex.l"
1483{KEYWORD_RETURN(CATCH);}        /* CFA */
1484        YY_BREAK
1485case 22:
1486YY_RULE_SETUP
1487#line 172 "Parser/lex.l"
1488{KEYWORD_RETURN(CHAR);}
1489        YY_BREAK
1490case 23:
1491YY_RULE_SETUP
1492#line 173 "Parser/lex.l"
1493{KEYWORD_RETURN(CHOOSE);}
1494        YY_BREAK
1495case 24:
1496YY_RULE_SETUP
1497#line 174 "Parser/lex.l"
1498{KEYWORD_RETURN(COMPLEX);}      /* ANSI99 */
1499        YY_BREAK
1500case 25:
1501YY_RULE_SETUP
1502#line 175 "Parser/lex.l"
1503{KEYWORD_RETURN(COMPLEX);}      /* GCC */
1504        YY_BREAK
1505case 26:
1506YY_RULE_SETUP
1507#line 176 "Parser/lex.l"
1508{KEYWORD_RETURN(COMPLEX);}      /* GCC */
1509        YY_BREAK
1510case 27:
1511YY_RULE_SETUP
1512#line 177 "Parser/lex.l"
1513{KEYWORD_RETURN(CONST);}
1514        YY_BREAK
1515case 28:
1516YY_RULE_SETUP
1517#line 178 "Parser/lex.l"
1518{KEYWORD_RETURN(CONST);}        /* GCC */
1519        YY_BREAK
1520case 29:
1521YY_RULE_SETUP
1522#line 179 "Parser/lex.l"
1523{KEYWORD_RETURN(CONST);}        /* GCC */
1524        YY_BREAK
1525case 30:
1526YY_RULE_SETUP
1527#line 180 "Parser/lex.l"
1528{KEYWORD_RETURN(CONTEXT);}
1529        YY_BREAK
1530case 31:
1531YY_RULE_SETUP
1532#line 181 "Parser/lex.l"
1533{KEYWORD_RETURN(CONTINUE);}
1534        YY_BREAK
1535case 32:
1536YY_RULE_SETUP
1537#line 182 "Parser/lex.l"
1538{KEYWORD_RETURN(DEFAULT);}
1539        YY_BREAK
1540case 33:
1541YY_RULE_SETUP
1542#line 183 "Parser/lex.l"
1543{KEYWORD_RETURN(DO);}
1544        YY_BREAK
1545case 34:
1546YY_RULE_SETUP
1547#line 184 "Parser/lex.l"
1548{KEYWORD_RETURN(DOUBLE);}
1549        YY_BREAK
1550case 35:
1551YY_RULE_SETUP
1552#line 185 "Parser/lex.l"
1553{KEYWORD_RETURN(DTYPE);}
1554        YY_BREAK
1555case 36:
1556YY_RULE_SETUP
1557#line 186 "Parser/lex.l"
1558{KEYWORD_RETURN(ELSE);}
1559        YY_BREAK
1560case 37:
1561YY_RULE_SETUP
1562#line 187 "Parser/lex.l"
1563{KEYWORD_RETURN(ENUM);}
1564        YY_BREAK
1565case 38:
1566YY_RULE_SETUP
1567#line 188 "Parser/lex.l"
1568{KEYWORD_RETURN(EXTENSION);}    /* GCC */
1569        YY_BREAK
1570case 39:
1571YY_RULE_SETUP
1572#line 189 "Parser/lex.l"
1573{KEYWORD_RETURN(EXTERN);}
1574        YY_BREAK
1575case 40:
1576YY_RULE_SETUP
1577#line 190 "Parser/lex.l"
1578{KEYWORD_RETURN(FALLTHRU);}
1579        YY_BREAK
1580case 41:
1581YY_RULE_SETUP
1582#line 191 "Parser/lex.l"
1583{KEYWORD_RETURN(FLOAT);}
1584        YY_BREAK
1585case 42:
1586YY_RULE_SETUP
1587#line 192 "Parser/lex.l"
1588{KEYWORD_RETURN(FOR);}
1589        YY_BREAK
1590case 43:
1591YY_RULE_SETUP
1592#line 193 "Parser/lex.l"
1593{KEYWORD_RETURN(FORALL);}
1594        YY_BREAK
1595case 44:
1596YY_RULE_SETUP
1597#line 194 "Parser/lex.l"
1598{KEYWORD_RETURN(FORTRAN);}
1599        YY_BREAK
1600case 45:
1601YY_RULE_SETUP
1602#line 195 "Parser/lex.l"
1603{KEYWORD_RETURN(FTYPE);}
1604        YY_BREAK
1605case 46:
1606YY_RULE_SETUP
1607#line 196 "Parser/lex.l"
1608{KEYWORD_RETURN(GOTO);}
1609        YY_BREAK
1610case 47:
1611YY_RULE_SETUP
1612#line 197 "Parser/lex.l"
1613{KEYWORD_RETURN(IF);}
1614        YY_BREAK
1615case 48:
1616YY_RULE_SETUP
1617#line 198 "Parser/lex.l"
1618{KEYWORD_RETURN(IMAGINARY);}    /* ANSI99 */
1619        YY_BREAK
1620case 49:
1621YY_RULE_SETUP
1622#line 199 "Parser/lex.l"
1623{KEYWORD_RETURN(IMAGINARY);}    /* GCC */
1624        YY_BREAK
1625case 50:
1626YY_RULE_SETUP
1627#line 200 "Parser/lex.l"
1628{KEYWORD_RETURN(IMAGINARY);}    /* GCC */
1629        YY_BREAK
1630case 51:
1631YY_RULE_SETUP
1632#line 201 "Parser/lex.l"
1633{KEYWORD_RETURN(INLINE);}       /* ANSI99 */
1634        YY_BREAK
1635case 52:
1636YY_RULE_SETUP
1637#line 202 "Parser/lex.l"
1638{KEYWORD_RETURN(INLINE);}       /* GCC */
1639        YY_BREAK
1640case 53:
1641YY_RULE_SETUP
1642#line 203 "Parser/lex.l"
1643{KEYWORD_RETURN(INLINE);}       /* GCC */
1644        YY_BREAK
1645case 54:
1646YY_RULE_SETUP
1647#line 204 "Parser/lex.l"
1648{KEYWORD_RETURN(INT);}
1649        YY_BREAK
1650case 55:
1651YY_RULE_SETUP
1652#line 205 "Parser/lex.l"
1653{KEYWORD_RETURN(LABEL);}        /* GCC */
1654        YY_BREAK
1655case 56:
1656YY_RULE_SETUP
1657#line 206 "Parser/lex.l"
1658{KEYWORD_RETURN(LONG);}
1659        YY_BREAK
1660case 57:
1661YY_RULE_SETUP
1662#line 207 "Parser/lex.l"
1663{KEYWORD_RETURN(LVALUE);}
1664        YY_BREAK
1665case 58:
1666YY_RULE_SETUP
1667#line 208 "Parser/lex.l"
1668{KEYWORD_RETURN(REGISTER);}
1669        YY_BREAK
1670case 59:
1671YY_RULE_SETUP
1672#line 209 "Parser/lex.l"
1673{KEYWORD_RETURN(RESTRICT);}     /* ANSI99 */
1674        YY_BREAK
1675case 60:
1676YY_RULE_SETUP
1677#line 210 "Parser/lex.l"
1678{KEYWORD_RETURN(RESTRICT);}     /* GCC */
1679        YY_BREAK
1680case 61:
1681YY_RULE_SETUP
1682#line 211 "Parser/lex.l"
1683{KEYWORD_RETURN(RESTRICT);}     /* GCC */
1684        YY_BREAK
1685case 62:
1686YY_RULE_SETUP
1687#line 212 "Parser/lex.l"
1688{KEYWORD_RETURN(RETURN);}
1689        YY_BREAK
1690case 63:
1691YY_RULE_SETUP
1692#line 213 "Parser/lex.l"
1693{KEYWORD_RETURN(SHORT);}
1694        YY_BREAK
1695case 64:
1696YY_RULE_SETUP
1697#line 214 "Parser/lex.l"
1698{KEYWORD_RETURN(SIGNED);}
1699        YY_BREAK
1700case 65:
1701YY_RULE_SETUP
1702#line 215 "Parser/lex.l"
1703{KEYWORD_RETURN(SIGNED);}       /* GCC */
1704        YY_BREAK
1705case 66:
1706YY_RULE_SETUP
1707#line 216 "Parser/lex.l"
1708{KEYWORD_RETURN(SIGNED);}       /* GCC */
1709        YY_BREAK
1710case 67:
1711YY_RULE_SETUP
1712#line 217 "Parser/lex.l"
1713{KEYWORD_RETURN(SIZEOF);}
1714        YY_BREAK
1715case 68:
1716YY_RULE_SETUP
1717#line 218 "Parser/lex.l"
1718{KEYWORD_RETURN(STATIC);}
1719        YY_BREAK
1720case 69:
1721YY_RULE_SETUP
1722#line 219 "Parser/lex.l"
1723{KEYWORD_RETURN(STRUCT);}
1724        YY_BREAK
1725case 70:
1726YY_RULE_SETUP
1727#line 220 "Parser/lex.l"
1728{KEYWORD_RETURN(SWITCH);}
1729        YY_BREAK
1730case 71:
1731YY_RULE_SETUP
1732#line 221 "Parser/lex.l"
1733{KEYWORD_RETURN(THROW);}        /* CFA */
1734        YY_BREAK
1735case 72:
1736YY_RULE_SETUP
1737#line 222 "Parser/lex.l"
1738{KEYWORD_RETURN(TRY);}          /* CFA */
1739        YY_BREAK
1740case 73:
1741YY_RULE_SETUP
1742#line 223 "Parser/lex.l"
1743{KEYWORD_RETURN(TYPE);}
1744        YY_BREAK
1745case 74:
1746YY_RULE_SETUP
1747#line 224 "Parser/lex.l"
1748{KEYWORD_RETURN(TYPEDEF);}
1749        YY_BREAK
1750case 75:
1751YY_RULE_SETUP
1752#line 225 "Parser/lex.l"
1753{KEYWORD_RETURN(TYPEOF);}       /* GCC */
1754        YY_BREAK
1755case 76:
1756YY_RULE_SETUP
1757#line 226 "Parser/lex.l"
1758{KEYWORD_RETURN(TYPEOF);}       /* GCC */
1759        YY_BREAK
1760case 77:
1761YY_RULE_SETUP
1762#line 227 "Parser/lex.l"
1763{KEYWORD_RETURN(TYPEOF);}       /* GCC */
1764        YY_BREAK
1765case 78:
1766YY_RULE_SETUP
1767#line 228 "Parser/lex.l"
1768{KEYWORD_RETURN(UNION);}
1769        YY_BREAK
1770case 79:
1771YY_RULE_SETUP
1772#line 229 "Parser/lex.l"
1773{KEYWORD_RETURN(UNSIGNED);}
1774        YY_BREAK
1775case 80:
1776YY_RULE_SETUP
1777#line 230 "Parser/lex.l"
1778{KEYWORD_RETURN(VOID);}
1779        YY_BREAK
1780case 81:
1781YY_RULE_SETUP
1782#line 231 "Parser/lex.l"
1783{KEYWORD_RETURN(VOLATILE);}
1784        YY_BREAK
1785case 82:
1786YY_RULE_SETUP
1787#line 232 "Parser/lex.l"
1788{KEYWORD_RETURN(VOLATILE);}     /* GCC */
1789        YY_BREAK
1790case 83:
1791YY_RULE_SETUP
1792#line 233 "Parser/lex.l"
1793{KEYWORD_RETURN(VOLATILE);}     /* GCC */
1794        YY_BREAK
1795case 84:
1796YY_RULE_SETUP
1797#line 234 "Parser/lex.l"
1798{KEYWORD_RETURN(WHILE);}
1799        YY_BREAK
1800/* identifier */
1801case 85:
1802YY_RULE_SETUP
1803#line 237 "Parser/lex.l"
1804{IDENTIFIER_RETURN();}
1805        YY_BREAK
1806/* numeric constants */
1807case 86:
1808YY_RULE_SETUP
1809#line 240 "Parser/lex.l"
1810{NUMERIC_RETURN(ZERO);}         /* CFA */
1811        YY_BREAK
1812case 87:
1813YY_RULE_SETUP
1814#line 241 "Parser/lex.l"
1815{NUMERIC_RETURN(ONE);}          /* CFA */
1816        YY_BREAK
1817case 88:
1818YY_RULE_SETUP
1819#line 242 "Parser/lex.l"
1820{NUMERIC_RETURN(INTEGERconstant);}
1821        YY_BREAK
1822case 89:
1823YY_RULE_SETUP
1824#line 243 "Parser/lex.l"
1825{NUMERIC_RETURN(INTEGERconstant);}
1826        YY_BREAK
1827case 90:
1828YY_RULE_SETUP
1829#line 244 "Parser/lex.l"
1830{NUMERIC_RETURN(INTEGERconstant);}
1831        YY_BREAK
1832case 91:
1833YY_RULE_SETUP
1834#line 245 "Parser/lex.l"
1835{NUMERIC_RETURN(FLOATINGconstant);}
1836        YY_BREAK
1837case 92:
1838YY_RULE_SETUP
1839#line 246 "Parser/lex.l"
1840{NUMERIC_RETURN(FLOATINGconstant);}
1841        YY_BREAK
1842/* character constant, allows empty value */
1843case 93:
1844YY_RULE_SETUP
1845#line 249 "Parser/lex.l"
1846{RETURN_VAL(CHARACTERconstant);}
1847        YY_BREAK
1848/* string constant */
1849case 94:
1850YY_RULE_SETUP
1851#line 252 "Parser/lex.l"
1852{RETURN_VAL(STRINGliteral);}
1853        YY_BREAK
1854/* punctuation */
1855case 95:
1856YY_RULE_SETUP
1857#line 255 "Parser/lex.l"
1858{ASCIIOP_RETURN();}
1859        YY_BREAK
1860case 96:
1861YY_RULE_SETUP
1862#line 256 "Parser/lex.l"
1863{ASCIIOP_RETURN();}
1864        YY_BREAK
1865case 97:
1866YY_RULE_SETUP
1867#line 257 "Parser/lex.l"
1868{ASCIIOP_RETURN();}
1869        YY_BREAK
1870case 98:
1871YY_RULE_SETUP
1872#line 258 "Parser/lex.l"
1873{ASCIIOP_RETURN();}
1874        YY_BREAK
1875case 99:
1876YY_RULE_SETUP
1877#line 259 "Parser/lex.l"
1878{ASCIIOP_RETURN();}
1879        YY_BREAK
1880case 100:
1881YY_RULE_SETUP
1882#line 260 "Parser/lex.l"
1883{ASCIIOP_RETURN();}
1884        YY_BREAK
1885case 101:
1886YY_RULE_SETUP
1887#line 261 "Parser/lex.l"
1888{ASCIIOP_RETURN();}             /* also operator */
1889        YY_BREAK
1890case 102:
1891YY_RULE_SETUP
1892#line 262 "Parser/lex.l"
1893{ASCIIOP_RETURN();}
1894        YY_BREAK
1895case 103:
1896YY_RULE_SETUP
1897#line 263 "Parser/lex.l"
1898{ASCIIOP_RETURN();}
1899        YY_BREAK
1900case 104:
1901YY_RULE_SETUP
1902#line 264 "Parser/lex.l"
1903{ASCIIOP_RETURN();}             /* also operator */
1904        YY_BREAK
1905case 105:
1906YY_RULE_SETUP
1907#line 265 "Parser/lex.l"
1908{NAMEDOP_RETURN(ELLIPSIS);}
1909        YY_BREAK
1910/* alternative ANSI99 brackets, "<:" & "<:<:" handled by preprocessor */
1911case 106:
1912YY_RULE_SETUP
1913#line 268 "Parser/lex.l"
1914{RETURN_VAL('[');}
1915        YY_BREAK
1916case 107:
1917YY_RULE_SETUP
1918#line 269 "Parser/lex.l"
1919{RETURN_VAL(']');}
1920        YY_BREAK
1921case 108:
1922YY_RULE_SETUP
1923#line 270 "Parser/lex.l"
1924{RETURN_VAL('{');}
1925        YY_BREAK
1926case 109:
1927YY_RULE_SETUP
1928#line 271 "Parser/lex.l"
1929{RETURN_VAL('}');}
1930        YY_BREAK
1931/* operators */
1932case 110:
1933YY_RULE_SETUP
1934#line 274 "Parser/lex.l"
1935{ASCIIOP_RETURN();}
1936        YY_BREAK
1937case 111:
1938YY_RULE_SETUP
1939#line 275 "Parser/lex.l"
1940{ASCIIOP_RETURN();}
1941        YY_BREAK
1942case 112:
1943YY_RULE_SETUP
1944#line 276 "Parser/lex.l"
1945{ASCIIOP_RETURN();}
1946        YY_BREAK
1947case 113:
1948YY_RULE_SETUP
1949#line 277 "Parser/lex.l"
1950{ASCIIOP_RETURN();}
1951        YY_BREAK
1952case 114:
1953YY_RULE_SETUP
1954#line 278 "Parser/lex.l"
1955{ASCIIOP_RETURN();}
1956        YY_BREAK
1957case 115:
1958YY_RULE_SETUP
1959#line 279 "Parser/lex.l"
1960{ASCIIOP_RETURN();}
1961        YY_BREAK
1962case 116:
1963YY_RULE_SETUP
1964#line 280 "Parser/lex.l"
1965{ASCIIOP_RETURN();}
1966        YY_BREAK
1967case 117:
1968YY_RULE_SETUP
1969#line 281 "Parser/lex.l"
1970{ASCIIOP_RETURN();}
1971        YY_BREAK
1972case 118:
1973YY_RULE_SETUP
1974#line 282 "Parser/lex.l"
1975{ASCIIOP_RETURN();}
1976        YY_BREAK
1977case 119:
1978YY_RULE_SETUP
1979#line 283 "Parser/lex.l"
1980{ASCIIOP_RETURN();}
1981        YY_BREAK
1982case 120:
1983YY_RULE_SETUP
1984#line 284 "Parser/lex.l"
1985{ASCIIOP_RETURN();}
1986        YY_BREAK
1987case 121:
1988YY_RULE_SETUP
1989#line 285 "Parser/lex.l"
1990{ASCIIOP_RETURN();}
1991        YY_BREAK
1992case 122:
1993YY_RULE_SETUP
1994#line 286 "Parser/lex.l"
1995{ASCIIOP_RETURN();}
1996        YY_BREAK
1997case 123:
1998YY_RULE_SETUP
1999#line 287 "Parser/lex.l"
2000{ASCIIOP_RETURN();}
2001        YY_BREAK
2002case 124:
2003YY_RULE_SETUP
2004#line 289 "Parser/lex.l"
2005{NAMEDOP_RETURN(ICR);}
2006        YY_BREAK
2007case 125:
2008YY_RULE_SETUP
2009#line 290 "Parser/lex.l"
2010{NAMEDOP_RETURN(DECR);}
2011        YY_BREAK
2012case 126:
2013YY_RULE_SETUP
2014#line 291 "Parser/lex.l"
2015{NAMEDOP_RETURN(EQ);}
2016        YY_BREAK
2017case 127:
2018YY_RULE_SETUP
2019#line 292 "Parser/lex.l"
2020{NAMEDOP_RETURN(NE);}
2021        YY_BREAK
2022case 128:
2023YY_RULE_SETUP
2024#line 293 "Parser/lex.l"
2025{NAMEDOP_RETURN(LS);}
2026        YY_BREAK
2027case 129:
2028YY_RULE_SETUP
2029#line 294 "Parser/lex.l"
2030{NAMEDOP_RETURN(RS);}
2031        YY_BREAK
2032case 130:
2033YY_RULE_SETUP
2034#line 295 "Parser/lex.l"
2035{NAMEDOP_RETURN(LE);}
2036        YY_BREAK
2037case 131:
2038YY_RULE_SETUP
2039#line 296 "Parser/lex.l"
2040{NAMEDOP_RETURN(GE);}
2041        YY_BREAK
2042case 132:
2043YY_RULE_SETUP
2044#line 297 "Parser/lex.l"
2045{NAMEDOP_RETURN(ANDAND);}
2046        YY_BREAK
2047case 133:
2048YY_RULE_SETUP
2049#line 298 "Parser/lex.l"
2050{NAMEDOP_RETURN(OROR);}
2051        YY_BREAK
2052case 134:
2053YY_RULE_SETUP
2054#line 299 "Parser/lex.l"
2055{NAMEDOP_RETURN(ARROW);}
2056        YY_BREAK
2057case 135:
2058YY_RULE_SETUP
2059#line 300 "Parser/lex.l"
2060{NAMEDOP_RETURN(PLUSassign);}
2061        YY_BREAK
2062case 136:
2063YY_RULE_SETUP
2064#line 301 "Parser/lex.l"
2065{NAMEDOP_RETURN(MINUSassign);}
2066        YY_BREAK
2067case 137:
2068YY_RULE_SETUP
2069#line 302 "Parser/lex.l"
2070{NAMEDOP_RETURN(MULTassign);}
2071        YY_BREAK
2072case 138:
2073YY_RULE_SETUP
2074#line 303 "Parser/lex.l"
2075{NAMEDOP_RETURN(DIVassign);}
2076        YY_BREAK
2077case 139:
2078YY_RULE_SETUP
2079#line 304 "Parser/lex.l"
2080{NAMEDOP_RETURN(MODassign);}
2081        YY_BREAK
2082case 140:
2083YY_RULE_SETUP
2084#line 305 "Parser/lex.l"
2085{NAMEDOP_RETURN(ANDassign);}
2086        YY_BREAK
2087case 141:
2088YY_RULE_SETUP
2089#line 306 "Parser/lex.l"
2090{NAMEDOP_RETURN(ORassign);}
2091        YY_BREAK
2092case 142:
2093YY_RULE_SETUP
2094#line 307 "Parser/lex.l"
2095{NAMEDOP_RETURN(ERassign);}
2096        YY_BREAK
2097case 143:
2098YY_RULE_SETUP
2099#line 308 "Parser/lex.l"
2100{NAMEDOP_RETURN(LSassign);}
2101        YY_BREAK
2102case 144:
2103YY_RULE_SETUP
2104#line 309 "Parser/lex.l"
2105{NAMEDOP_RETURN(RSassign);}
2106        YY_BREAK
2107/* CFA, operator identifier */
2108case 145:
2109YY_RULE_SETUP
2110#line 312 "Parser/lex.l"
2111{IDENTIFIER_RETURN();}          /* unary */
2112        YY_BREAK
2113case 146:
2114YY_RULE_SETUP
2115#line 313 "Parser/lex.l"
2116{IDENTIFIER_RETURN();}
2117        YY_BREAK
2118case 147:
2119YY_RULE_SETUP
2120#line 314 "Parser/lex.l"
2121{IDENTIFIER_RETURN();}          /* binary */
2122        YY_BREAK
2123/*
2124          This rule handles ambiguous cases with operator identifiers, e.g., "int *?*?()", where the
2125          string "*?*?"  can be lexed as "*"/"?*?" or "*?"/"*?". Since it is common practise to put
2126          a unary operator juxtaposed to an identifier, e.g., "*i", users will be annoyed if they
2127          cannot do this with respect to operator identifiers. Even with this special hack, there
2128          are 5 general cases that cannot be handled. The first case is for the function-call
2129          identifier "?()":
2130
2131          int * ?()();  // declaration: space required after '*'
2132          * ?()();      // expression: space required after '*'
2133
2134          Without the space, the string "*?()" is ambiguous without N character look ahead; it
2135          requires scanning ahead to determine if there is a '(', which is the start of an
2136          argument/parameter list.
2137
2138          The 4 remaining cases occur in expressions:
2139
2140          i++?i:0;              // space required before '?'
2141          i--?i:0;              // space required before '?'
2142          i?++i:0;              // space required after '?'
2143          i?--i:0;              // space required after '?'
2144
2145          In the first two cases, the string "i++?" is ambiguous, where this string can be lexed as
2146          "i"/"++?" or "i++"/"?"; it requires scanning ahead to determine if there is a '(', which
2147          is the start of an argument list.  In the second two cases, the string "?++x" is
2148          ambiguous, where this string can be lexed as "?++"/"x" or "?"/"++x"; it requires scanning
2149          ahead to determine if there is a '(', which is the start of an argument list.
2150        */
2151case 148:
2152YY_RULE_SETUP
2153#line 343 "Parser/lex.l"
2154{
2155                            // 1 or 2 character unary operator ?
2156                            int i = yytext[1] == '?' ? 1 : 2;
2157                            yyless( i );                /* put back characters up to first '?' */
2158                            if ( i > 1 ) {
2159                                NAMEDOP_RETURN( yytext[0] == '+' ? ICR : DECR );
2160                            } else {
2161                                ASCIIOP_RETURN();
2162                            } // if
2163                        }
2164        YY_BREAK
2165/* unknown characters */
2166case 149:
2167YY_RULE_SETUP
2168#line 355 "Parser/lex.l"
2169{printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno);}
2170        YY_BREAK
2171case 150:
2172YY_RULE_SETUP
2173#line 357 "Parser/lex.l"
2174ECHO;
2175        YY_BREAK
2176#line 2177 "Parser/lex.yy.cc"
2177                        case YY_STATE_EOF(INITIAL):
2178                        case YY_STATE_EOF(COMMENT):
2179                                yyterminate();
2180
2181        case YY_END_OF_BUFFER:
2182                {
2183                /* Amount of text matched not including the EOB char. */
2184                int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2185
2186                /* Undo the effects of YY_DO_BEFORE_ACTION. */
2187                *yy_cp = yy_hold_char;
2188                YY_RESTORE_YY_MORE_OFFSET
2189
2190                if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2191                        {
2192                        /* We're scanning a new file or input source.  It's
2193                         * possible that this happened because the user
2194                         * just pointed yyin at a new source and called
2195                         * yylex().  If so, then we have to assure
2196                         * consistency between yy_current_buffer and our
2197                         * globals.  Here is the right place to do so, because
2198                         * this is the first action (other than possibly a
2199                         * back-up) that will match for the new input source.
2200                         */
2201                        yy_n_chars = yy_current_buffer->yy_n_chars;
2202                        yy_current_buffer->yy_input_file = yyin;
2203                        yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2204                        }
2205
2206                /* Note that here we test for yy_c_buf_p "<=" to the position
2207                 * of the first EOB in the buffer, since yy_c_buf_p will
2208                 * already have been incremented past the NUL character
2209                 * (since all states make transitions on EOB to the
2210                 * end-of-buffer state).  Contrast this with the test
2211                 * in input().
2212                 */
2213                if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2214                        { /* This was really a NUL. */
2215                        yy_state_type yy_next_state;
2216
2217                        yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2218
2219                        yy_current_state = yy_get_previous_state();
2220
2221                        /* Okay, we're now positioned to make the NUL
2222                         * transition.  We couldn't have
2223                         * yy_get_previous_state() go ahead and do it
2224                         * for us because it doesn't know how to deal
2225                         * with the possibility of jamming (and we don't
2226                         * want to build jamming into it because then it
2227                         * will run more slowly).
2228                         */
2229
2230                        yy_next_state = yy_try_NUL_trans( yy_current_state );
2231
2232                        yy_bp = yytext_ptr + YY_MORE_ADJ;
2233
2234                        if ( yy_next_state )
2235                                {
2236                                /* Consume the NUL. */
2237                                yy_cp = ++yy_c_buf_p;
2238                                yy_current_state = yy_next_state;
2239                                goto yy_match;
2240                                }
2241
2242                        else
2243                                {
2244                                yy_cp = yy_c_buf_p;
2245                                goto yy_find_action;
2246                                }
2247                        }
2248
2249                else switch ( yy_get_next_buffer() )
2250                        {
2251                        case EOB_ACT_END_OF_FILE:
2252                                {
2253                                yy_did_buffer_switch_on_eof = 0;
2254
2255                                if ( yywrap() )
2256                                        {
2257                                        /* Note: because we've taken care in
2258                                         * yy_get_next_buffer() to have set up
2259                                         * yytext, we can now set up
2260                                         * yy_c_buf_p so that if some total
2261                                         * hoser (like flex itself) wants to
2262                                         * call the scanner after we return the
2263                                         * YY_NULL, it'll still work - another
2264                                         * YY_NULL will get returned.
2265                                         */
2266                                        yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2267
2268                                        yy_act = YY_STATE_EOF(YY_START);
2269                                        goto do_action;
2270                                        }
2271
2272                                else
2273                                        {
2274                                        if ( ! yy_did_buffer_switch_on_eof )
2275                                                YY_NEW_FILE;
2276                                        }
2277                                break;
2278                                }
2279
2280                        case EOB_ACT_CONTINUE_SCAN:
2281                                yy_c_buf_p =
2282                                        yytext_ptr + yy_amount_of_matched_text;
2283
2284                                yy_current_state = yy_get_previous_state();
2285
2286                                yy_cp = yy_c_buf_p;
2287                                yy_bp = yytext_ptr + YY_MORE_ADJ;
2288                                goto yy_match;
2289
2290                        case EOB_ACT_LAST_MATCH:
2291                                yy_c_buf_p =
2292                                &yy_current_buffer->yy_ch_buf[yy_n_chars];
2293
2294                                yy_current_state = yy_get_previous_state();
2295
2296                                yy_cp = yy_c_buf_p;
2297                                yy_bp = yytext_ptr + YY_MORE_ADJ;
2298                                goto yy_find_action;
2299                        }
2300                break;
2301                }
2302
2303        default:
2304                YY_FATAL_ERROR(
2305                        "fatal flex scanner internal error--no action found" );
2306        } /* end of action switch */
2307                } /* end of scanning one token */
2308        } /* end of yylex */
2309
2310
2311/* yy_get_next_buffer - try to read in a new buffer
2312 *
2313 * Returns a code representing an action:
2314 *      EOB_ACT_LAST_MATCH -
2315 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2316 *      EOB_ACT_END_OF_FILE - end of file
2317 */
2318
2319static int yy_get_next_buffer()
2320        {
2321        register char *dest = yy_current_buffer->yy_ch_buf;
2322        register char *source = yytext_ptr;
2323        register int number_to_move, i;
2324        int ret_val;
2325
2326        if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2327                YY_FATAL_ERROR(
2328                "fatal flex scanner internal error--end of buffer missed" );
2329
2330        if ( yy_current_buffer->yy_fill_buffer == 0 )
2331                { /* Don't try to fill the buffer, so this is an EOF. */
2332                if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2333                        {
2334                        /* We matched a single character, the EOB, so
2335                         * treat this as a final EOF.
2336                         */
2337                        return EOB_ACT_END_OF_FILE;
2338                        }
2339
2340                else
2341                        {
2342                        /* We matched some text prior to the EOB, first
2343                         * process it.
2344                         */
2345                        return EOB_ACT_LAST_MATCH;
2346                        }
2347                }
2348
2349        /* Try to read more data. */
2350
2351        /* First move last chars to start of buffer. */
2352        number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2353
2354        for ( i = 0; i < number_to_move; ++i )
2355                *(dest++) = *(source++);
2356
2357        if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2358                /* don't do the read, it's not guaranteed to return an EOF,
2359                 * just force an EOF
2360                 */
2361                yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2362
2363        else
2364                {
2365                int num_to_read =
2366                        yy_current_buffer->yy_buf_size - number_to_move - 1;
2367
2368                while ( num_to_read <= 0 )
2369                        { /* Not enough room in the buffer - grow it. */
2370#ifdef YY_USES_REJECT
2371                        YY_FATAL_ERROR(
2372"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2373#else
2374
2375                        /* just a shorter name for the current buffer */
2376                        YY_BUFFER_STATE b = yy_current_buffer;
2377
2378                        int yy_c_buf_p_offset =
2379                                (int) (yy_c_buf_p - b->yy_ch_buf);
2380
2381                        if ( b->yy_is_our_buffer )
2382                                {
2383                                int new_size = b->yy_buf_size * 2;
2384
2385                                if ( new_size <= 0 )
2386                                        b->yy_buf_size += b->yy_buf_size / 8;
2387                                else
2388                                        b->yy_buf_size *= 2;
2389
2390                                b->yy_ch_buf = (char *)
2391                                        /* Include room in for 2 EOB chars. */
2392                                        yy_flex_realloc( (void *) b->yy_ch_buf,
2393                                                         b->yy_buf_size + 2 );
2394                                }
2395                        else
2396                                /* Can't grow it, we don't own it. */
2397                                b->yy_ch_buf = 0;
2398
2399                        if ( ! b->yy_ch_buf )
2400                                YY_FATAL_ERROR(
2401                                "fatal error - scanner input buffer overflow" );
2402
2403                        yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2404
2405                        num_to_read = yy_current_buffer->yy_buf_size -
2406                                                number_to_move - 1;
2407#endif
2408                        }
2409
2410                if ( num_to_read > YY_READ_BUF_SIZE )
2411                        num_to_read = YY_READ_BUF_SIZE;
2412
2413                /* Read in more data. */
2414                YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2415                        yy_n_chars, num_to_read );
2416
2417                yy_current_buffer->yy_n_chars = yy_n_chars;
2418                }
2419
2420        if ( yy_n_chars == 0 )
2421                {
2422                if ( number_to_move == YY_MORE_ADJ )
2423                        {
2424                        ret_val = EOB_ACT_END_OF_FILE;
2425                        yyrestart( yyin );
2426                        }
2427
2428                else
2429                        {
2430                        ret_val = EOB_ACT_LAST_MATCH;
2431                        yy_current_buffer->yy_buffer_status =
2432                                YY_BUFFER_EOF_PENDING;
2433                        }
2434                }
2435
2436        else
2437                ret_val = EOB_ACT_CONTINUE_SCAN;
2438
2439        yy_n_chars += number_to_move;
2440        yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2441        yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2442
2443        yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2444
2445        return ret_val;
2446        }
2447
2448
2449/* yy_get_previous_state - get the state just before the EOB char was reached */
2450
2451static yy_state_type yy_get_previous_state()
2452        {
2453        register yy_state_type yy_current_state;
2454        register char *yy_cp;
2455
2456        yy_current_state = yy_start;
2457        yy_current_state += YY_AT_BOL();
2458        yy_state_ptr = yy_state_buf;
2459        *yy_state_ptr++ = yy_current_state;
2460
2461        for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2462                {
2463                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2464                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2465                        {
2466                        yy_current_state = (int) yy_def[yy_current_state];
2467                        if ( yy_current_state >= 618 )
2468                                yy_c = yy_meta[(unsigned int) yy_c];
2469                        }
2470                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2471                *yy_state_ptr++ = yy_current_state;
2472                }
2473
2474        return yy_current_state;
2475        }
2476
2477
2478/* yy_try_NUL_trans - try to make a transition on the NUL character
2479 *
2480 * synopsis
2481 *      next_state = yy_try_NUL_trans( current_state );
2482 */
2483
2484#ifdef YY_USE_PROTOS
2485static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2486#else
2487static yy_state_type yy_try_NUL_trans( yy_current_state )
2488yy_state_type yy_current_state;
2489#endif
2490        {
2491        register int yy_is_jam;
2492
2493        register YY_CHAR yy_c = 1;
2494        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2495                {
2496                yy_current_state = (int) yy_def[yy_current_state];
2497                if ( yy_current_state >= 618 )
2498                        yy_c = yy_meta[(unsigned int) yy_c];
2499                }
2500        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2501        yy_is_jam = (yy_current_state == 617);
2502        if ( ! yy_is_jam )
2503                *yy_state_ptr++ = yy_current_state;
2504
2505        return yy_is_jam ? 0 : yy_current_state;
2506        }
2507
2508
2509#ifndef YY_NO_UNPUT
2510#ifdef YY_USE_PROTOS
2511static void yyunput( int c, register char *yy_bp )
2512#else
2513static void yyunput( c, yy_bp )
2514int c;
2515register char *yy_bp;
2516#endif
2517        {
2518        register char *yy_cp = yy_c_buf_p;
2519
2520        /* undo effects of setting up yytext */
2521        *yy_cp = yy_hold_char;
2522
2523        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2524                { /* need to shift things up to make room */
2525                /* +2 for EOB chars. */
2526                register int number_to_move = yy_n_chars + 2;
2527                register char *dest = &yy_current_buffer->yy_ch_buf[
2528                                        yy_current_buffer->yy_buf_size + 2];
2529                register char *source =
2530                                &yy_current_buffer->yy_ch_buf[number_to_move];
2531
2532                while ( source > yy_current_buffer->yy_ch_buf )
2533                        *--dest = *--source;
2534
2535                yy_cp += (int) (dest - source);
2536                yy_bp += (int) (dest - source);
2537                yy_current_buffer->yy_n_chars =
2538                        yy_n_chars = yy_current_buffer->yy_buf_size;
2539
2540                if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2541                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
2542                }
2543
2544        *--yy_cp = (char) c;
2545
2546        if ( c == '\n' )
2547                --yylineno;
2548
2549        yytext_ptr = yy_bp;
2550        yy_hold_char = *yy_cp;
2551        yy_c_buf_p = yy_cp;
2552        }
2553#endif  /* ifndef YY_NO_UNPUT */
2554
2555
2556#ifdef __cplusplus
2557static int yyinput()
2558#else
2559static int input()
2560#endif
2561        {
2562        int c;
2563
2564        *yy_c_buf_p = yy_hold_char;
2565
2566        if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2567                {
2568                /* yy_c_buf_p now points to the character we want to return.
2569                 * If this occurs *before* the EOB characters, then it's a
2570                 * valid NUL; if not, then we've hit the end of the buffer.
2571                 */
2572                if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2573                        /* This was really a NUL. */
2574                        *yy_c_buf_p = '\0';
2575
2576                else
2577                        { /* need more input */
2578                        int offset = yy_c_buf_p - yytext_ptr;
2579                        ++yy_c_buf_p;
2580
2581                        switch ( yy_get_next_buffer() )
2582                                {
2583                                case EOB_ACT_LAST_MATCH:
2584                                        /* This happens because yy_g_n_b()
2585                                         * sees that we've accumulated a
2586                                         * token and flags that we need to
2587                                         * try matching the token before
2588                                         * proceeding.  But for input(),
2589                                         * there's no matching to consider.
2590                                         * So convert the EOB_ACT_LAST_MATCH
2591                                         * to EOB_ACT_END_OF_FILE.
2592                                         */
2593
2594                                        /* Reset buffer status. */
2595                                        yyrestart( yyin );
2596
2597                                        /* fall through */
2598
2599                                case EOB_ACT_END_OF_FILE:
2600                                        {
2601                                        if ( yywrap() )
2602                                                return EOF;
2603
2604                                        if ( ! yy_did_buffer_switch_on_eof )
2605                                                YY_NEW_FILE;
2606#ifdef __cplusplus
2607                                        return yyinput();
2608#else
2609                                        return input();
2610#endif
2611                                        }
2612
2613                                case EOB_ACT_CONTINUE_SCAN:
2614                                        yy_c_buf_p = yytext_ptr + offset;
2615                                        break;
2616                                }
2617                        }
2618                }
2619
2620        c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
2621        *yy_c_buf_p = '\0';     /* preserve yytext */
2622        yy_hold_char = *++yy_c_buf_p;
2623
2624        yy_current_buffer->yy_at_bol = (c == '\n');
2625        if ( yy_current_buffer->yy_at_bol )
2626                ++yylineno;
2627
2628        return c;
2629        }
2630
2631
2632#ifdef YY_USE_PROTOS
2633void yyrestart( FILE *input_file )
2634#else
2635void yyrestart( input_file )
2636FILE *input_file;
2637#endif
2638        {
2639        if ( ! yy_current_buffer )
2640                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2641
2642        yy_init_buffer( yy_current_buffer, input_file );
2643        yy_load_buffer_state();
2644        }
2645
2646
2647#ifdef YY_USE_PROTOS
2648void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2649#else
2650void yy_switch_to_buffer( new_buffer )
2651YY_BUFFER_STATE new_buffer;
2652#endif
2653        {
2654        if ( yy_current_buffer == new_buffer )
2655                return;
2656
2657        if ( yy_current_buffer )
2658                {
2659                /* Flush out information for old buffer. */
2660                *yy_c_buf_p = yy_hold_char;
2661                yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2662                yy_current_buffer->yy_n_chars = yy_n_chars;
2663                }
2664
2665        yy_current_buffer = new_buffer;
2666        yy_load_buffer_state();
2667
2668        /* We don't actually know whether we did this switch during
2669         * EOF (yywrap()) processing, but the only time this flag
2670         * is looked at is after yywrap() is called, so it's safe
2671         * to go ahead and always set it.
2672         */
2673        yy_did_buffer_switch_on_eof = 1;
2674        }
2675
2676
2677#ifdef YY_USE_PROTOS
2678void yy_load_buffer_state( void )
2679#else
2680void yy_load_buffer_state()
2681#endif
2682        {
2683        yy_n_chars = yy_current_buffer->yy_n_chars;
2684        yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2685        yyin = yy_current_buffer->yy_input_file;
2686        yy_hold_char = *yy_c_buf_p;
2687        }
2688
2689
2690#ifdef YY_USE_PROTOS
2691YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2692#else
2693YY_BUFFER_STATE yy_create_buffer( file, size )
2694FILE *file;
2695int size;
2696#endif
2697        {
2698        YY_BUFFER_STATE b;
2699
2700        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2701        if ( ! b )
2702                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2703
2704        b->yy_buf_size = size;
2705
2706        /* yy_ch_buf has to be 2 characters longer than the size given because
2707         * we need to put in 2 end-of-buffer characters.
2708         */
2709        b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2710        if ( ! b->yy_ch_buf )
2711                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2712
2713        b->yy_is_our_buffer = 1;
2714
2715        yy_init_buffer( b, file );
2716
2717        return b;
2718        }
2719
2720
2721#ifdef YY_USE_PROTOS
2722void yy_delete_buffer( YY_BUFFER_STATE b )
2723#else
2724void yy_delete_buffer( b )
2725YY_BUFFER_STATE b;
2726#endif
2727        {
2728        if ( ! b )
2729                return;
2730
2731        if ( b == yy_current_buffer )
2732                yy_current_buffer = (YY_BUFFER_STATE) 0;
2733
2734        if ( b->yy_is_our_buffer )
2735                yy_flex_free( (void *) b->yy_ch_buf );
2736
2737        yy_flex_free( (void *) b );
2738        }
2739
2740
2741#ifndef YY_ALWAYS_INTERACTIVE
2742#ifndef YY_NEVER_INTERACTIVE
2743extern int isatty YY_PROTO(( int ));
2744#endif
2745#endif
2746
2747#ifdef YY_USE_PROTOS
2748void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2749#else
2750void yy_init_buffer( b, file )
2751YY_BUFFER_STATE b;
2752FILE *file;
2753#endif
2754
2755
2756        {
2757        yy_flush_buffer( b );
2758
2759        b->yy_input_file = file;
2760        b->yy_fill_buffer = 1;
2761
2762#if YY_ALWAYS_INTERACTIVE
2763        b->yy_is_interactive = 1;
2764#else
2765#if YY_NEVER_INTERACTIVE
2766        b->yy_is_interactive = 0;
2767#else
2768        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2769#endif
2770#endif
2771        }
2772
2773
2774#ifdef YY_USE_PROTOS
2775void yy_flush_buffer( YY_BUFFER_STATE b )
2776#else
2777void yy_flush_buffer( b )
2778YY_BUFFER_STATE b;
2779#endif
2780
2781        {
2782        if ( ! b )
2783                return;
2784
2785        b->yy_n_chars = 0;
2786
2787        /* We always need two end-of-buffer characters.  The first causes
2788         * a transition to the end-of-buffer state.  The second causes
2789         * a jam in that state.
2790         */
2791        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2792        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2793
2794        b->yy_buf_pos = &b->yy_ch_buf[0];
2795
2796        b->yy_at_bol = 1;
2797        b->yy_buffer_status = YY_BUFFER_NEW;
2798
2799        if ( b == yy_current_buffer )
2800                yy_load_buffer_state();
2801        }
2802
2803
2804#ifndef YY_NO_SCAN_BUFFER
2805#ifdef YY_USE_PROTOS
2806YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2807#else
2808YY_BUFFER_STATE yy_scan_buffer( base, size )
2809char *base;
2810yy_size_t size;
2811#endif
2812        {
2813        YY_BUFFER_STATE b;
2814
2815        if ( size < 2 ||
2816             base[size-2] != YY_END_OF_BUFFER_CHAR ||
2817             base[size-1] != YY_END_OF_BUFFER_CHAR )
2818                /* They forgot to leave room for the EOB's. */
2819                return 0;
2820
2821        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2822        if ( ! b )
2823                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2824
2825        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
2826        b->yy_buf_pos = b->yy_ch_buf = base;
2827        b->yy_is_our_buffer = 0;
2828        b->yy_input_file = 0;
2829        b->yy_n_chars = b->yy_buf_size;
2830        b->yy_is_interactive = 0;
2831        b->yy_at_bol = 1;
2832        b->yy_fill_buffer = 0;
2833        b->yy_buffer_status = YY_BUFFER_NEW;
2834
2835        yy_switch_to_buffer( b );
2836
2837        return b;
2838        }
2839#endif
2840
2841
2842#ifndef YY_NO_SCAN_STRING
2843#ifdef YY_USE_PROTOS
2844YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2845#else
2846YY_BUFFER_STATE yy_scan_string( yy_str )
2847yyconst char *yy_str;
2848#endif
2849        {
2850        int len;
2851        for ( len = 0; yy_str[len]; ++len )
2852                ;
2853
2854        return yy_scan_bytes( yy_str, len );
2855        }
2856#endif
2857
2858
2859#ifndef YY_NO_SCAN_BYTES
2860#ifdef YY_USE_PROTOS
2861YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2862#else
2863YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2864yyconst char *bytes;
2865int len;
2866#endif
2867        {
2868        YY_BUFFER_STATE b;
2869        char *buf;
2870        yy_size_t n;
2871        int i;
2872
2873        /* Get memory for full buffer, including space for trailing EOB's. */
2874        n = len + 2;
2875        buf = (char *) yy_flex_alloc( n );
2876        if ( ! buf )
2877                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2878
2879        for ( i = 0; i < len; ++i )
2880                buf[i] = bytes[i];
2881
2882        buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2883
2884        b = yy_scan_buffer( buf, n );
2885        if ( ! b )
2886                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2887
2888        /* It's okay to grow etc. this buffer, and we should throw it
2889         * away when we're done.
2890         */
2891        b->yy_is_our_buffer = 1;
2892
2893        return b;
2894        }
2895#endif
2896
2897
2898#ifndef YY_NO_PUSH_STATE
2899#ifdef YY_USE_PROTOS
2900static void yy_push_state( int new_state )
2901#else
2902static void yy_push_state( new_state )
2903int new_state;
2904#endif
2905        {
2906        if ( yy_start_stack_ptr >= yy_start_stack_depth )
2907                {
2908                yy_size_t new_size;
2909
2910                yy_start_stack_depth += YY_START_STACK_INCR;
2911                new_size = yy_start_stack_depth * sizeof( int );
2912
2913                if ( ! yy_start_stack )
2914                        yy_start_stack = (int *) yy_flex_alloc( new_size );
2915
2916                else
2917                        yy_start_stack = (int *) yy_flex_realloc(
2918                                        (void *) yy_start_stack, new_size );
2919
2920                if ( ! yy_start_stack )
2921                        YY_FATAL_ERROR(
2922                        "out of memory expanding start-condition stack" );
2923                }
2924
2925        yy_start_stack[yy_start_stack_ptr++] = YY_START;
2926
2927        BEGIN(new_state);
2928        }
2929#endif
2930
2931
2932#ifndef YY_NO_POP_STATE
2933static void yy_pop_state()
2934        {
2935        if ( --yy_start_stack_ptr < 0 )
2936                YY_FATAL_ERROR( "start-condition stack underflow" );
2937
2938        BEGIN(yy_start_stack[yy_start_stack_ptr]);
2939        }
2940#endif
2941
2942
2943#ifndef YY_NO_TOP_STATE
2944static int yy_top_state()
2945        {
2946        return yy_start_stack[yy_start_stack_ptr - 1];
2947        }
2948#endif
2949
2950#ifndef YY_EXIT_FAILURE
2951#define YY_EXIT_FAILURE 2
2952#endif
2953
2954#ifdef YY_USE_PROTOS
2955static void yy_fatal_error( yyconst char msg[] )
2956#else
2957static void yy_fatal_error( msg )
2958char msg[];
2959#endif
2960        {
2961        (void) fprintf( stderr, "%s\n", msg );
2962        exit( YY_EXIT_FAILURE );
2963        }
2964
2965
2966
2967/* Redefine yyless() so it works in section 3 code. */
2968
2969#undef yyless
2970#define yyless(n) \
2971        do \
2972                { \
2973                /* Undo effects of setting up yytext. */ \
2974                yytext[yyleng] = yy_hold_char; \
2975                yy_c_buf_p = yytext + n; \
2976                yy_hold_char = *yy_c_buf_p; \
2977                *yy_c_buf_p = '\0'; \
2978                yyleng = n; \
2979                } \
2980        while ( 0 )
2981
2982
2983/* Internal utility routines. */
2984
2985#ifndef yytext_ptr
2986#ifdef YY_USE_PROTOS
2987static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2988#else
2989static void yy_flex_strncpy( s1, s2, n )
2990char *s1;
2991yyconst char *s2;
2992int n;
2993#endif
2994        {
2995        register int i;
2996        for ( i = 0; i < n; ++i )
2997                s1[i] = s2[i];
2998        }
2999#endif
3000
3001#ifdef YY_NEED_STRLEN
3002#ifdef YY_USE_PROTOS
3003static int yy_flex_strlen( yyconst char *s )
3004#else
3005static int yy_flex_strlen( s )
3006yyconst char *s;
3007#endif
3008        {
3009        register int n;
3010        for ( n = 0; s[n]; ++n )
3011                ;
3012
3013        return n;
3014        }
3015#endif
3016
3017
3018#ifdef YY_USE_PROTOS
3019static void *yy_flex_alloc( yy_size_t size )
3020#else
3021static void *yy_flex_alloc( size )
3022yy_size_t size;
3023#endif
3024        {
3025        return (void *) malloc( size );
3026        }
3027
3028#ifdef YY_USE_PROTOS
3029static void *yy_flex_realloc( void *ptr, yy_size_t size )
3030#else
3031static void *yy_flex_realloc( ptr, size )
3032void *ptr;
3033yy_size_t size;
3034#endif
3035        {
3036        /* The cast to (char *) in the following accommodates both
3037         * implementations that use char* generic pointers, and those
3038         * that use void* generic pointers.  It works with the latter
3039         * because both ANSI C and C++ allow castless assignment from
3040         * any pointer type to void*, and deal with argument conversions
3041         * as though doing an assignment.
3042         */
3043        return (void *) realloc( (char *) ptr, size );
3044        }
3045
3046#ifdef YY_USE_PROTOS
3047static void yy_flex_free( void *ptr )
3048#else
3049static void yy_flex_free( ptr )
3050void *ptr;
3051#endif
3052        {
3053        free( ptr );
3054        }
3055
3056#if YY_MAIN
3057int main()
3058        {
3059        yylex();
3060        return 0;
3061        }
3062#endif
3063#line 357 "Parser/lex.l"
3064
3065
3066
3067/* Local Variables: */
3068/* fill-column: 100 */
3069/* compile-command: "gmake" */
3070/* End: */
Note: See TracBrowser for help on using the repository browser.