source: src/Parser/lex.cc@ 02e5ab6

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors ctor deferred_resn demangler enum forall-pointer-decay gc_noraii jacob/cs343-translation jenkins-sandbox memory new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new string with_gc
Last change on this file since 02e5ab6 was 02e5ab6, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

add preprocessor flag -DCFORALL=1, add syntax for constructor/destructor

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