source: src/Parser/lex.cc@ 5aa708c

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 5aa708c was de62360d, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

fix computed goto, fixed -std=, implicit typedefs for enum and aggregates, add _Noreturn _Thread_local

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