source: src/Parser/lex.cc@ cd623a4

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

constant types, second attempt

  • Property mode set to 100644
File size: 116.8 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 : Sun Jun 7 07:14:16 2015
1393 * Update Count : 374
1394 */
1395#line 19 "lex.ll"
1396// This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive
1397// have been performed and removed from the source. The only exceptions are preprocessor directives passed to
1398// the compiler (e.g., 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 WHITE_RETURN(x) // do nothing
1412#define NEWLINE_RETURN() WHITE_RETURN('\n')
1413#define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); \
1414 yylval.tok.loc.file = yyfilename; \
1415 yylval.tok.loc.line = yylineno; \
1416 return(x)
1417#define RETURN_STR(x) yylval.tok.str = strtext; \
1418 yylval.tok.loc.file = yyfilename; \
1419 yylval.tok.loc.line = yylineno; \
1420 return(x)
1421
1422#define KEYWORD_RETURN(x) RETURN_VAL(x) // keyword
1423#define IDENTIFIER_RETURN() RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
1424//#define ATTRIBUTE_RETURN() RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
1425#define ATTRIBUTE_RETURN() RETURN_VAL(ATTR_IDENTIFIER)
1426
1427#define ASCIIOP_RETURN() RETURN_VAL((int)yytext[0]) // single character operator
1428#define NAMEDOP_RETURN(x) RETURN_VAL(x) // multichar operator, with a name
1429
1430#define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL(x) // numeric constant
1431
1432void rm_underscore() {
1433 // remove underscores in numeric constant
1434 int j = 0;
1435 for ( int i = 0; yytext[i] != '\0'; i += 1 ) {
1436 if ( yytext[i] != '_' ) {
1437 yytext[j] = yytext[i];
1438 j += 1;
1439 } // if
1440 } // for
1441 yyleng = j;
1442 yytext[yyleng] = '\0';
1443}
1444
1445// identifier, GCC: $ in identifier
1446// quoted identifier
1447// attribute identifier, GCC: $ in identifier
1448// numeric constants, CFA: '_' in constant
1449// character escape sequence, GCC: \e => esc character
1450// ' stop highlighting
1451// display/white-space characters
1452// operators
1453
1454
1455
1456
1457#line 1458 "Parser/lex.cc"
1458
1459#define INITIAL 0
1460#define COMMENT 1
1461#define BKQUOTE 2
1462#define QUOTE 3
1463#define STRING 4
1464
1465#ifndef YY_NO_UNISTD_H
1466/* Special case for "unistd.h", since it is non-ANSI. We include it way
1467 * down here because we want the user's section 1 to have been scanned first.
1468 * The user has a chance to override it with an option.
1469 */
1470#include <unistd.h>
1471#endif
1472
1473#ifndef YY_EXTRA_TYPE
1474#define YY_EXTRA_TYPE void *
1475#endif
1476
1477static int yy_init_globals (void );
1478
1479/* Accessor methods to globals.
1480 These are made visible to non-reentrant scanners for convenience. */
1481
1482int yylex_destroy (void );
1483
1484int yyget_debug (void );
1485
1486void yyset_debug (int debug_flag );
1487
1488YY_EXTRA_TYPE yyget_extra (void );
1489
1490void yyset_extra (YY_EXTRA_TYPE user_defined );
1491
1492FILE *yyget_in (void );
1493
1494void yyset_in (FILE * in_str );
1495
1496FILE *yyget_out (void );
1497
1498void yyset_out (FILE * out_str );
1499
1500int yyget_leng (void );
1501
1502char *yyget_text (void );
1503
1504int yyget_lineno (void );
1505
1506void yyset_lineno (int line_number );
1507
1508/* Macros after this point can all be overridden by user definitions in
1509 * section 1.
1510 */
1511
1512#ifndef YY_SKIP_YYWRAP
1513#ifdef __cplusplus
1514extern "C" int yywrap (void );
1515#else
1516extern int yywrap (void );
1517#endif
1518#endif
1519
1520 static void yyunput (int c,char *buf_ptr );
1521
1522#ifndef yytext_ptr
1523static void yy_flex_strncpy (char *,yyconst char *,int );
1524#endif
1525
1526#ifdef YY_NEED_STRLEN
1527static int yy_flex_strlen (yyconst char * );
1528#endif
1529
1530#ifndef YY_NO_INPUT
1531
1532#ifdef __cplusplus
1533static int yyinput (void );
1534#else
1535static int input (void );
1536#endif
1537
1538#endif
1539
1540/* Amount of stuff to slurp up with each read. */
1541#ifndef YY_READ_BUF_SIZE
1542#ifdef __ia64__
1543/* On IA-64, the buffer size is 16k, not 8k */
1544#define YY_READ_BUF_SIZE 16384
1545#else
1546#define YY_READ_BUF_SIZE 8192
1547#endif /* __ia64__ */
1548#endif
1549
1550/* Copy whatever the last rule matched to the standard output. */
1551#ifndef ECHO
1552/* This used to be an fputs(), but since the string might contain NUL's,
1553 * we now use fwrite().
1554 */
1555#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1556#endif
1557
1558/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1559 * is returned in "result".
1560 */
1561#ifndef YY_INPUT
1562#define YY_INPUT(buf,result,max_size) \
1563 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1564 { \
1565 int c = '*'; \
1566 size_t n; \
1567 for ( n = 0; n < max_size && \
1568 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1569 buf[n] = (char) c; \
1570 if ( c == '\n' ) \
1571 buf[n++] = (char) c; \
1572 if ( c == EOF && ferror( yyin ) ) \
1573 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1574 result = n; \
1575 } \
1576 else \
1577 { \
1578 errno=0; \
1579 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1580 { \
1581 if( errno != EINTR) \
1582 { \
1583 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1584 break; \
1585 } \
1586 errno=0; \
1587 clearerr(yyin); \
1588 } \
1589 }\
1590\
1591
1592#endif
1593
1594/* No semi-colon after return; correct usage is to write "yyterminate();" -
1595 * we don't want an extra ';' after the "return" because that will cause
1596 * some compilers to complain about unreachable statements.
1597 */
1598#ifndef yyterminate
1599#define yyterminate() return YY_NULL
1600#endif
1601
1602/* Number of entries by which start-condition stack grows. */
1603#ifndef YY_START_STACK_INCR
1604#define YY_START_STACK_INCR 25
1605#endif
1606
1607/* Report a fatal error. */
1608#ifndef YY_FATAL_ERROR
1609#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1610#endif
1611
1612/* end tables serialization structures and prototypes */
1613
1614/* Default declaration of generated scanner - a define so the user can
1615 * easily add parameters.
1616 */
1617#ifndef YY_DECL
1618#define YY_DECL_IS_OURS 1
1619
1620extern int yylex (void);
1621
1622#define YY_DECL int yylex (void)
1623#endif /* !YY_DECL */
1624
1625/* Code executed at the beginning of each rule, after yytext and yyleng
1626 * have been set up.
1627 */
1628#ifndef YY_USER_ACTION
1629#define YY_USER_ACTION
1630#endif
1631
1632/* Code executed at the end of each rule. */
1633#ifndef YY_BREAK
1634#define YY_BREAK break;
1635#endif
1636
1637#define YY_RULE_SETUP \
1638 if ( yyleng > 0 ) \
1639 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1640 (yytext[yyleng - 1] == '\n'); \
1641 YY_USER_ACTION
1642
1643/** The main scanner function which does all the work.
1644 */
1645YY_DECL
1646{
1647 register yy_state_type yy_current_state;
1648 register char *yy_cp, *yy_bp;
1649 register int yy_act;
1650
1651#line 142 "lex.ll"
1652
1653 /* line directives */
1654#line 1655 "Parser/lex.cc"
1655
1656 if ( !(yy_init) )
1657 {
1658 (yy_init) = 1;
1659
1660#ifdef YY_USER_INIT
1661 YY_USER_INIT;
1662#endif
1663
1664 if ( ! (yy_start) )
1665 (yy_start) = 1; /* first start state */
1666
1667 if ( ! yyin )
1668 yyin = stdin;
1669
1670 if ( ! yyout )
1671 yyout = stdout;
1672
1673 if ( ! YY_CURRENT_BUFFER ) {
1674 yyensure_buffer_stack ();
1675 YY_CURRENT_BUFFER_LVALUE =
1676 yy_create_buffer(yyin,YY_BUF_SIZE );
1677 }
1678
1679 yy_load_buffer_state( );
1680 }
1681
1682 while ( 1 ) /* loops until end-of-file is reached */
1683 {
1684 yy_cp = (yy_c_buf_p);
1685
1686 /* Support of yytext. */
1687 *yy_cp = (yy_hold_char);
1688
1689 /* yy_bp points to the position in yy_ch_buf of the start of
1690 * the current run.
1691 */
1692 yy_bp = yy_cp;
1693
1694 yy_current_state = (yy_start);
1695 yy_current_state += YY_AT_BOL();
1696yy_match:
1697 do
1698 {
1699 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1700 if ( yy_accept[yy_current_state] )
1701 {
1702 (yy_last_accepting_state) = yy_current_state;
1703 (yy_last_accepting_cpos) = yy_cp;
1704 }
1705 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1706 {
1707 yy_current_state = (int) yy_def[yy_current_state];
1708 if ( yy_current_state >= 826 )
1709 yy_c = yy_meta[(unsigned int) yy_c];
1710 }
1711 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1712 ++yy_cp;
1713 }
1714 while ( yy_base[yy_current_state] != 2568 );
1715
1716yy_find_action:
1717 yy_act = yy_accept[yy_current_state];
1718 if ( yy_act == 0 )
1719 { /* have to back up */
1720 yy_cp = (yy_last_accepting_cpos);
1721 yy_current_state = (yy_last_accepting_state);
1722 yy_act = yy_accept[yy_current_state];
1723 }
1724
1725 YY_DO_BEFORE_ACTION;
1726
1727 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1728 {
1729 int yyl;
1730 for ( yyl = 0; yyl < yyleng; ++yyl )
1731 if ( yytext[yyl] == '\n' )
1732
1733 yylineno++;
1734;
1735 }
1736
1737do_action: /* This label is used only to access EOF actions. */
1738
1739 switch ( yy_act )
1740 { /* beginning of action switch */
1741 case 0: /* must back up */
1742 /* undo the effects of YY_DO_BEFORE_ACTION */
1743 *yy_cp = (yy_hold_char);
1744 yy_cp = (yy_last_accepting_cpos);
1745 yy_current_state = (yy_last_accepting_state);
1746 goto yy_find_action;
1747
1748case 1:
1749/* rule 1 can match eol */
1750YY_RULE_SETUP
1751#line 144 "lex.ll"
1752{
1753 /* " stop highlighting */
1754 char *end_num;
1755 char *begin_string, *end_string;
1756 char *filename;
1757 long lineno, length;
1758 lineno = strtol( yytext + 1, &end_num, 0 );
1759 begin_string = strchr( end_num, '"' );
1760 if ( begin_string ) {
1761 end_string = strchr( begin_string + 1, '"' );
1762 if ( end_string ) {
1763 length = end_string - begin_string - 1;
1764 filename = new char[ length + 1 ];
1765 memcpy( filename, begin_string + 1, length );
1766 filename[ length ] = '\0';
1767 //std::cout << "file " << filename << " line " << lineno << std::endl;
1768 yylineno = lineno;
1769 yyfilename = filename;
1770 } // if
1771 } // if
1772}
1773 YY_BREAK
1774/* ignore preprocessor directives (for now) */
1775case 2:
1776/* rule 2 can match eol */
1777YY_RULE_SETUP
1778#line 167 "lex.ll"
1779;
1780 YY_BREAK
1781/* ignore C style comments (ALSO HANDLED BY CPP) */
1782case 3:
1783YY_RULE_SETUP
1784#line 170 "lex.ll"
1785{ BEGIN COMMENT; }
1786 YY_BREAK
1787case 4:
1788/* rule 4 can match eol */
1789YY_RULE_SETUP
1790#line 171 "lex.ll"
1791;
1792 YY_BREAK
1793case 5:
1794YY_RULE_SETUP
1795#line 172 "lex.ll"
1796{ BEGIN 0; }
1797 YY_BREAK
1798/* ignore C++ style comments (ALSO HANDLED BY CPP) */
1799case 6:
1800/* rule 6 can match eol */
1801YY_RULE_SETUP
1802#line 175 "lex.ll"
1803;
1804 YY_BREAK
1805/* ignore whitespace */
1806case 7:
1807YY_RULE_SETUP
1808#line 178 "lex.ll"
1809{ WHITE_RETURN(' '); }
1810 YY_BREAK
1811case 8:
1812YY_RULE_SETUP
1813#line 179 "lex.ll"
1814{ WHITE_RETURN(' '); }
1815 YY_BREAK
1816case 9:
1817/* rule 9 can match eol */
1818YY_RULE_SETUP
1819#line 180 "lex.ll"
1820{ NEWLINE_RETURN(); }
1821 YY_BREAK
1822/* keywords */
1823case 10:
1824YY_RULE_SETUP
1825#line 183 "lex.ll"
1826{ KEYWORD_RETURN(ALIGNAS); } // C11
1827 YY_BREAK
1828case 11:
1829YY_RULE_SETUP
1830#line 184 "lex.ll"
1831{ KEYWORD_RETURN(ALIGNOF); } // C11
1832 YY_BREAK
1833case 12:
1834YY_RULE_SETUP
1835#line 185 "lex.ll"
1836{ KEYWORD_RETURN(ALIGNOF); } // GCC
1837 YY_BREAK
1838case 13:
1839YY_RULE_SETUP
1840#line 186 "lex.ll"
1841{ KEYWORD_RETURN(ALIGNOF); } // GCC
1842 YY_BREAK
1843case 14:
1844YY_RULE_SETUP
1845#line 187 "lex.ll"
1846{ KEYWORD_RETURN(ASM); }
1847 YY_BREAK
1848case 15:
1849YY_RULE_SETUP
1850#line 188 "lex.ll"
1851{ KEYWORD_RETURN(ASM); } // GCC
1852 YY_BREAK
1853case 16:
1854YY_RULE_SETUP
1855#line 189 "lex.ll"
1856{ KEYWORD_RETURN(ASM); } // GCC
1857 YY_BREAK
1858case 17:
1859YY_RULE_SETUP
1860#line 190 "lex.ll"
1861{ KEYWORD_RETURN(ATOMIC); } // C11
1862 YY_BREAK
1863case 18:
1864YY_RULE_SETUP
1865#line 191 "lex.ll"
1866{ KEYWORD_RETURN(ATTRIBUTE); } // GCC
1867 YY_BREAK
1868case 19:
1869YY_RULE_SETUP
1870#line 192 "lex.ll"
1871{ KEYWORD_RETURN(ATTRIBUTE); } // GCC
1872 YY_BREAK
1873case 20:
1874YY_RULE_SETUP
1875#line 193 "lex.ll"
1876{ KEYWORD_RETURN(AUTO); }
1877 YY_BREAK
1878case 21:
1879YY_RULE_SETUP
1880#line 194 "lex.ll"
1881{ KEYWORD_RETURN(BOOL); } // C99
1882 YY_BREAK
1883case 22:
1884YY_RULE_SETUP
1885#line 195 "lex.ll"
1886{ KEYWORD_RETURN(BREAK); }
1887 YY_BREAK
1888case 23:
1889YY_RULE_SETUP
1890#line 196 "lex.ll"
1891{ KEYWORD_RETURN(CASE); }
1892 YY_BREAK
1893case 24:
1894YY_RULE_SETUP
1895#line 197 "lex.ll"
1896{ KEYWORD_RETURN(CATCH); } // CFA
1897 YY_BREAK
1898case 25:
1899YY_RULE_SETUP
1900#line 198 "lex.ll"
1901{ KEYWORD_RETURN(CHAR); }
1902 YY_BREAK
1903case 26:
1904YY_RULE_SETUP
1905#line 199 "lex.ll"
1906{ KEYWORD_RETURN(CHOOSE); } // CFA
1907 YY_BREAK
1908case 27:
1909YY_RULE_SETUP
1910#line 200 "lex.ll"
1911{ KEYWORD_RETURN(COMPLEX); } // C99
1912 YY_BREAK
1913case 28:
1914YY_RULE_SETUP
1915#line 201 "lex.ll"
1916{ KEYWORD_RETURN(COMPLEX); } // GCC
1917 YY_BREAK
1918case 29:
1919YY_RULE_SETUP
1920#line 202 "lex.ll"
1921{ KEYWORD_RETURN(COMPLEX); } // GCC
1922 YY_BREAK
1923case 30:
1924YY_RULE_SETUP
1925#line 203 "lex.ll"
1926{ KEYWORD_RETURN(CONST); }
1927 YY_BREAK
1928case 31:
1929YY_RULE_SETUP
1930#line 204 "lex.ll"
1931{ KEYWORD_RETURN(CONST); } // GCC
1932 YY_BREAK
1933case 32:
1934YY_RULE_SETUP
1935#line 205 "lex.ll"
1936{ KEYWORD_RETURN(CONST); } // GCC
1937 YY_BREAK
1938case 33:
1939YY_RULE_SETUP
1940#line 206 "lex.ll"
1941{ KEYWORD_RETURN(CONTEXT); } // CFA
1942 YY_BREAK
1943case 34:
1944YY_RULE_SETUP
1945#line 207 "lex.ll"
1946{ KEYWORD_RETURN(CONTINUE); }
1947 YY_BREAK
1948case 35:
1949YY_RULE_SETUP
1950#line 208 "lex.ll"
1951{ KEYWORD_RETURN(DEFAULT); }
1952 YY_BREAK
1953case 36:
1954YY_RULE_SETUP
1955#line 209 "lex.ll"
1956{ KEYWORD_RETURN(DO); }
1957 YY_BREAK
1958case 37:
1959YY_RULE_SETUP
1960#line 210 "lex.ll"
1961{ KEYWORD_RETURN(DOUBLE); }
1962 YY_BREAK
1963case 38:
1964YY_RULE_SETUP
1965#line 211 "lex.ll"
1966{ KEYWORD_RETURN(DTYPE); } // CFA
1967 YY_BREAK
1968case 39:
1969YY_RULE_SETUP
1970#line 212 "lex.ll"
1971{ KEYWORD_RETURN(ELSE); }
1972 YY_BREAK
1973case 40:
1974YY_RULE_SETUP
1975#line 213 "lex.ll"
1976{ KEYWORD_RETURN(ENUM); }
1977 YY_BREAK
1978case 41:
1979YY_RULE_SETUP
1980#line 214 "lex.ll"
1981{ KEYWORD_RETURN(EXTENSION); } // GCC
1982 YY_BREAK
1983case 42:
1984YY_RULE_SETUP
1985#line 215 "lex.ll"
1986{ KEYWORD_RETURN(EXTERN); }
1987 YY_BREAK
1988case 43:
1989YY_RULE_SETUP
1990#line 216 "lex.ll"
1991{ KEYWORD_RETURN(FALLTHRU); } // CFA
1992 YY_BREAK
1993case 44:
1994YY_RULE_SETUP
1995#line 217 "lex.ll"
1996{ KEYWORD_RETURN(FINALLY); } // CFA
1997 YY_BREAK
1998case 45:
1999YY_RULE_SETUP
2000#line 218 "lex.ll"
2001{ KEYWORD_RETURN(FLOAT); }
2002 YY_BREAK
2003case 46:
2004YY_RULE_SETUP
2005#line 219 "lex.ll"
2006{ KEYWORD_RETURN(FLOAT); } // GCC
2007 YY_BREAK
2008case 47:
2009YY_RULE_SETUP
2010#line 220 "lex.ll"
2011{ KEYWORD_RETURN(FOR); }
2012 YY_BREAK
2013case 48:
2014YY_RULE_SETUP
2015#line 221 "lex.ll"
2016{ KEYWORD_RETURN(FORALL); } // CFA
2017 YY_BREAK
2018case 49:
2019YY_RULE_SETUP
2020#line 222 "lex.ll"
2021{ KEYWORD_RETURN(FORTRAN); }
2022 YY_BREAK
2023case 50:
2024YY_RULE_SETUP
2025#line 223 "lex.ll"
2026{ KEYWORD_RETURN(FTYPE); } // CFA
2027 YY_BREAK
2028case 51:
2029YY_RULE_SETUP
2030#line 224 "lex.ll"
2031{ KEYWORD_RETURN(GENERIC); } // C11
2032 YY_BREAK
2033case 52:
2034YY_RULE_SETUP
2035#line 225 "lex.ll"
2036{ KEYWORD_RETURN(GOTO); }
2037 YY_BREAK
2038case 53:
2039YY_RULE_SETUP
2040#line 226 "lex.ll"
2041{ KEYWORD_RETURN(IF); }
2042 YY_BREAK
2043case 54:
2044YY_RULE_SETUP
2045#line 227 "lex.ll"
2046{ KEYWORD_RETURN(IMAGINARY); } // C99
2047 YY_BREAK
2048case 55:
2049YY_RULE_SETUP
2050#line 228 "lex.ll"
2051{ KEYWORD_RETURN(IMAGINARY); } // GCC
2052 YY_BREAK
2053case 56:
2054YY_RULE_SETUP
2055#line 229 "lex.ll"
2056{ KEYWORD_RETURN(IMAGINARY); } // GCC
2057 YY_BREAK
2058case 57:
2059YY_RULE_SETUP
2060#line 230 "lex.ll"
2061{ KEYWORD_RETURN(INLINE); } // C99
2062 YY_BREAK
2063case 58:
2064YY_RULE_SETUP
2065#line 231 "lex.ll"
2066{ KEYWORD_RETURN(INLINE); } // GCC
2067 YY_BREAK
2068case 59:
2069YY_RULE_SETUP
2070#line 232 "lex.ll"
2071{ KEYWORD_RETURN(INLINE); } // GCC
2072 YY_BREAK
2073case 60:
2074YY_RULE_SETUP
2075#line 233 "lex.ll"
2076{ KEYWORD_RETURN(INT); }
2077 YY_BREAK
2078case 61:
2079YY_RULE_SETUP
2080#line 234 "lex.ll"
2081{ KEYWORD_RETURN(INT); } // GCC
2082 YY_BREAK
2083case 62:
2084YY_RULE_SETUP
2085#line 235 "lex.ll"
2086{ KEYWORD_RETURN(LABEL); } // GCC
2087 YY_BREAK
2088case 63:
2089YY_RULE_SETUP
2090#line 236 "lex.ll"
2091{ KEYWORD_RETURN(LONG); }
2092 YY_BREAK
2093case 64:
2094YY_RULE_SETUP
2095#line 237 "lex.ll"
2096{ KEYWORD_RETURN(LVALUE); } // CFA
2097 YY_BREAK
2098case 65:
2099YY_RULE_SETUP
2100#line 238 "lex.ll"
2101{ KEYWORD_RETURN(NORETURN); } // C11
2102 YY_BREAK
2103case 66:
2104YY_RULE_SETUP
2105#line 239 "lex.ll"
2106{ KEYWORD_RETURN(REGISTER); }
2107 YY_BREAK
2108case 67:
2109YY_RULE_SETUP
2110#line 240 "lex.ll"
2111{ KEYWORD_RETURN(RESTRICT); } // C99
2112 YY_BREAK
2113case 68:
2114YY_RULE_SETUP
2115#line 241 "lex.ll"
2116{ KEYWORD_RETURN(RESTRICT); } // GCC
2117 YY_BREAK
2118case 69:
2119YY_RULE_SETUP
2120#line 242 "lex.ll"
2121{ KEYWORD_RETURN(RESTRICT); } // GCC
2122 YY_BREAK
2123case 70:
2124YY_RULE_SETUP
2125#line 243 "lex.ll"
2126{ KEYWORD_RETURN(RETURN); }
2127 YY_BREAK
2128case 71:
2129YY_RULE_SETUP
2130#line 244 "lex.ll"
2131{ KEYWORD_RETURN(SHORT); }
2132 YY_BREAK
2133case 72:
2134YY_RULE_SETUP
2135#line 245 "lex.ll"
2136{ KEYWORD_RETURN(SIGNED); }
2137 YY_BREAK
2138case 73:
2139YY_RULE_SETUP
2140#line 246 "lex.ll"
2141{ KEYWORD_RETURN(SIGNED); } // GCC
2142 YY_BREAK
2143case 74:
2144YY_RULE_SETUP
2145#line 247 "lex.ll"
2146{ KEYWORD_RETURN(SIGNED); } // GCC
2147 YY_BREAK
2148case 75:
2149YY_RULE_SETUP
2150#line 248 "lex.ll"
2151{ KEYWORD_RETURN(SIZEOF); }
2152 YY_BREAK
2153case 76:
2154YY_RULE_SETUP
2155#line 249 "lex.ll"
2156{ KEYWORD_RETURN(STATIC); }
2157 YY_BREAK
2158case 77:
2159YY_RULE_SETUP
2160#line 250 "lex.ll"
2161{ KEYWORD_RETURN(STATICASSERT); } // C11
2162 YY_BREAK
2163case 78:
2164YY_RULE_SETUP
2165#line 251 "lex.ll"
2166{ KEYWORD_RETURN(STRUCT); }
2167 YY_BREAK
2168case 79:
2169YY_RULE_SETUP
2170#line 252 "lex.ll"
2171{ KEYWORD_RETURN(SWITCH); }
2172 YY_BREAK
2173case 80:
2174YY_RULE_SETUP
2175#line 253 "lex.ll"
2176{ KEYWORD_RETURN(THREADLOCAL); } // C11
2177 YY_BREAK
2178case 81:
2179YY_RULE_SETUP
2180#line 254 "lex.ll"
2181{ KEYWORD_RETURN(THROW); } // CFA
2182 YY_BREAK
2183case 82:
2184YY_RULE_SETUP
2185#line 255 "lex.ll"
2186{ KEYWORD_RETURN(TRY); } // CFA
2187 YY_BREAK
2188case 83:
2189YY_RULE_SETUP
2190#line 256 "lex.ll"
2191{ KEYWORD_RETURN(TYPE); } // CFA
2192 YY_BREAK
2193case 84:
2194YY_RULE_SETUP
2195#line 257 "lex.ll"
2196{ KEYWORD_RETURN(TYPEDEF); }
2197 YY_BREAK
2198case 85:
2199YY_RULE_SETUP
2200#line 258 "lex.ll"
2201{ KEYWORD_RETURN(TYPEOF); } // GCC
2202 YY_BREAK
2203case 86:
2204YY_RULE_SETUP
2205#line 259 "lex.ll"
2206{ KEYWORD_RETURN(TYPEOF); } // GCC
2207 YY_BREAK
2208case 87:
2209YY_RULE_SETUP
2210#line 260 "lex.ll"
2211{ KEYWORD_RETURN(TYPEOF); } // GCC
2212 YY_BREAK
2213case 88:
2214YY_RULE_SETUP
2215#line 261 "lex.ll"
2216{ KEYWORD_RETURN(UNION); }
2217 YY_BREAK
2218case 89:
2219YY_RULE_SETUP
2220#line 262 "lex.ll"
2221{ KEYWORD_RETURN(UNSIGNED); }
2222 YY_BREAK
2223case 90:
2224YY_RULE_SETUP
2225#line 263 "lex.ll"
2226{ KEYWORD_RETURN(VOID); }
2227 YY_BREAK
2228case 91:
2229YY_RULE_SETUP
2230#line 264 "lex.ll"
2231{ KEYWORD_RETURN(VOLATILE); }
2232 YY_BREAK
2233case 92:
2234YY_RULE_SETUP
2235#line 265 "lex.ll"
2236{ KEYWORD_RETURN(VOLATILE); } // GCC
2237 YY_BREAK
2238case 93:
2239YY_RULE_SETUP
2240#line 266 "lex.ll"
2241{ KEYWORD_RETURN(VOLATILE); } // GCC
2242 YY_BREAK
2243case 94:
2244YY_RULE_SETUP
2245#line 267 "lex.ll"
2246{ KEYWORD_RETURN(WHILE); }
2247 YY_BREAK
2248/* identifier */
2249case 95:
2250YY_RULE_SETUP
2251#line 270 "lex.ll"
2252{ IDENTIFIER_RETURN(); }
2253 YY_BREAK
2254case 96:
2255YY_RULE_SETUP
2256#line 271 "lex.ll"
2257{ ATTRIBUTE_RETURN(); }
2258 YY_BREAK
2259case 97:
2260YY_RULE_SETUP
2261#line 272 "lex.ll"
2262{ BEGIN BKQUOTE; }
2263 YY_BREAK
2264case 98:
2265YY_RULE_SETUP
2266#line 273 "lex.ll"
2267{ IDENTIFIER_RETURN(); }
2268 YY_BREAK
2269case 99:
2270YY_RULE_SETUP
2271#line 274 "lex.ll"
2272{ BEGIN 0; }
2273 YY_BREAK
2274/* numeric constants */
2275case 100:
2276YY_RULE_SETUP
2277#line 277 "lex.ll"
2278{ NUMERIC_RETURN(ZERO); } // CFA
2279 YY_BREAK
2280case 101:
2281YY_RULE_SETUP
2282#line 278 "lex.ll"
2283{ NUMERIC_RETURN(ONE); } // CFA
2284 YY_BREAK
2285case 102:
2286YY_RULE_SETUP
2287#line 279 "lex.ll"
2288{ NUMERIC_RETURN(INTEGERconstant); }
2289 YY_BREAK
2290case 103:
2291YY_RULE_SETUP
2292#line 280 "lex.ll"
2293{ NUMERIC_RETURN(INTEGERconstant); }
2294 YY_BREAK
2295case 104:
2296YY_RULE_SETUP
2297#line 281 "lex.ll"
2298{ NUMERIC_RETURN(INTEGERconstant); }
2299 YY_BREAK
2300case 105:
2301YY_RULE_SETUP
2302#line 282 "lex.ll"
2303{ NUMERIC_RETURN(FLOATINGconstant); }
2304 YY_BREAK
2305case 106:
2306YY_RULE_SETUP
2307#line 283 "lex.ll"
2308{ NUMERIC_RETURN(FLOATINGconstant); }
2309 YY_BREAK
2310/* character constant, allows empty value */
2311case 107:
2312YY_RULE_SETUP
2313#line 286 "lex.ll"
2314{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
2315 YY_BREAK
2316case 108:
2317YY_RULE_SETUP
2318#line 287 "lex.ll"
2319{ *strtext += std::string( yytext ); }
2320 YY_BREAK
2321case 109:
2322/* rule 109 can match eol */
2323YY_RULE_SETUP
2324#line 288 "lex.ll"
2325{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
2326 YY_BREAK
2327/* ' stop highlighting */
2328/* string constant */
2329case 110:
2330YY_RULE_SETUP
2331#line 292 "lex.ll"
2332{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
2333 YY_BREAK
2334case 111:
2335YY_RULE_SETUP
2336#line 293 "lex.ll"
2337{ *strtext += std::string( yytext ); }
2338 YY_BREAK
2339case 112:
2340/* rule 112 can match eol */
2341YY_RULE_SETUP
2342#line 294 "lex.ll"
2343{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
2344 YY_BREAK
2345/* " stop highlighting */
2346/* common character/string constant */
2347case 113:
2348YY_RULE_SETUP
2349#line 298 "lex.ll"
2350{ rm_underscore(); *strtext += std::string( yytext ); }
2351 YY_BREAK
2352case 114:
2353/* rule 114 can match eol */
2354YY_RULE_SETUP
2355#line 299 "lex.ll"
2356{} // continuation (ALSO HANDLED BY CPP)
2357 YY_BREAK
2358case 115:
2359YY_RULE_SETUP
2360#line 300 "lex.ll"
2361{ *strtext += std::string( yytext ); } // unknown escape character
2362 YY_BREAK
2363/* punctuation */
2364case 116:
2365YY_RULE_SETUP
2366#line 303 "lex.ll"
2367{ ASCIIOP_RETURN(); }
2368 YY_BREAK
2369case 117:
2370YY_RULE_SETUP
2371#line 304 "lex.ll"
2372{ ASCIIOP_RETURN(); }
2373 YY_BREAK
2374case 118:
2375YY_RULE_SETUP
2376#line 305 "lex.ll"
2377{ ASCIIOP_RETURN(); }
2378 YY_BREAK
2379case 119:
2380YY_RULE_SETUP
2381#line 306 "lex.ll"
2382{ ASCIIOP_RETURN(); }
2383 YY_BREAK
2384case 120:
2385YY_RULE_SETUP
2386#line 307 "lex.ll"
2387{ ASCIIOP_RETURN(); }
2388 YY_BREAK
2389case 121:
2390YY_RULE_SETUP
2391#line 308 "lex.ll"
2392{ ASCIIOP_RETURN(); }
2393 YY_BREAK
2394case 122:
2395YY_RULE_SETUP
2396#line 309 "lex.ll"
2397{ ASCIIOP_RETURN(); } // also operator
2398 YY_BREAK
2399case 123:
2400YY_RULE_SETUP
2401#line 310 "lex.ll"
2402{ ASCIIOP_RETURN(); }
2403 YY_BREAK
2404case 124:
2405YY_RULE_SETUP
2406#line 311 "lex.ll"
2407{ ASCIIOP_RETURN(); }
2408 YY_BREAK
2409case 125:
2410YY_RULE_SETUP
2411#line 312 "lex.ll"
2412{ ASCIIOP_RETURN(); } // also operator
2413 YY_BREAK
2414case 126:
2415YY_RULE_SETUP
2416#line 313 "lex.ll"
2417{ NAMEDOP_RETURN(ELLIPSIS); }
2418 YY_BREAK
2419/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
2420case 127:
2421YY_RULE_SETUP
2422#line 316 "lex.ll"
2423{ RETURN_VAL('['); }
2424 YY_BREAK
2425case 128:
2426YY_RULE_SETUP
2427#line 317 "lex.ll"
2428{ RETURN_VAL(']'); }
2429 YY_BREAK
2430case 129:
2431YY_RULE_SETUP
2432#line 318 "lex.ll"
2433{ RETURN_VAL('{'); }
2434 YY_BREAK
2435case 130:
2436YY_RULE_SETUP
2437#line 319 "lex.ll"
2438{ RETURN_VAL('}'); }
2439 YY_BREAK
2440/* operators */
2441case 131:
2442YY_RULE_SETUP
2443#line 322 "lex.ll"
2444{ ASCIIOP_RETURN(); }
2445 YY_BREAK
2446case 132:
2447YY_RULE_SETUP
2448#line 323 "lex.ll"
2449{ ASCIIOP_RETURN(); }
2450 YY_BREAK
2451case 133:
2452YY_RULE_SETUP
2453#line 324 "lex.ll"
2454{ ASCIIOP_RETURN(); }
2455 YY_BREAK
2456case 134:
2457YY_RULE_SETUP
2458#line 325 "lex.ll"
2459{ ASCIIOP_RETURN(); }
2460 YY_BREAK
2461case 135:
2462YY_RULE_SETUP
2463#line 326 "lex.ll"
2464{ ASCIIOP_RETURN(); }
2465 YY_BREAK
2466case 136:
2467YY_RULE_SETUP
2468#line 327 "lex.ll"
2469{ ASCIIOP_RETURN(); }
2470 YY_BREAK
2471case 137:
2472YY_RULE_SETUP
2473#line 328 "lex.ll"
2474{ ASCIIOP_RETURN(); }
2475 YY_BREAK
2476case 138:
2477YY_RULE_SETUP
2478#line 329 "lex.ll"
2479{ ASCIIOP_RETURN(); }
2480 YY_BREAK
2481case 139:
2482YY_RULE_SETUP
2483#line 330 "lex.ll"
2484{ ASCIIOP_RETURN(); }
2485 YY_BREAK
2486case 140:
2487YY_RULE_SETUP
2488#line 331 "lex.ll"
2489{ ASCIIOP_RETURN(); }
2490 YY_BREAK
2491case 141:
2492YY_RULE_SETUP
2493#line 332 "lex.ll"
2494{ ASCIIOP_RETURN(); }
2495 YY_BREAK
2496case 142:
2497YY_RULE_SETUP
2498#line 333 "lex.ll"
2499{ ASCIIOP_RETURN(); }
2500 YY_BREAK
2501case 143:
2502YY_RULE_SETUP
2503#line 334 "lex.ll"
2504{ ASCIIOP_RETURN(); }
2505 YY_BREAK
2506case 144:
2507YY_RULE_SETUP
2508#line 335 "lex.ll"
2509{ ASCIIOP_RETURN(); }
2510 YY_BREAK
2511case 145:
2512YY_RULE_SETUP
2513#line 337 "lex.ll"
2514{ NAMEDOP_RETURN(ICR); }
2515 YY_BREAK
2516case 146:
2517YY_RULE_SETUP
2518#line 338 "lex.ll"
2519{ NAMEDOP_RETURN(DECR); }
2520 YY_BREAK
2521case 147:
2522YY_RULE_SETUP
2523#line 339 "lex.ll"
2524{ NAMEDOP_RETURN(EQ); }
2525 YY_BREAK
2526case 148:
2527YY_RULE_SETUP
2528#line 340 "lex.ll"
2529{ NAMEDOP_RETURN(NE); }
2530 YY_BREAK
2531case 149:
2532YY_RULE_SETUP
2533#line 341 "lex.ll"
2534{ NAMEDOP_RETURN(LS); }
2535 YY_BREAK
2536case 150:
2537YY_RULE_SETUP
2538#line 342 "lex.ll"
2539{ NAMEDOP_RETURN(RS); }
2540 YY_BREAK
2541case 151:
2542YY_RULE_SETUP
2543#line 343 "lex.ll"
2544{ NAMEDOP_RETURN(LE); }
2545 YY_BREAK
2546case 152:
2547YY_RULE_SETUP
2548#line 344 "lex.ll"
2549{ NAMEDOP_RETURN(GE); }
2550 YY_BREAK
2551case 153:
2552YY_RULE_SETUP
2553#line 345 "lex.ll"
2554{ NAMEDOP_RETURN(ANDAND); }
2555 YY_BREAK
2556case 154:
2557YY_RULE_SETUP
2558#line 346 "lex.ll"
2559{ NAMEDOP_RETURN(OROR); }
2560 YY_BREAK
2561case 155:
2562YY_RULE_SETUP
2563#line 347 "lex.ll"
2564{ NAMEDOP_RETURN(ARROW); }
2565 YY_BREAK
2566case 156:
2567YY_RULE_SETUP
2568#line 348 "lex.ll"
2569{ NAMEDOP_RETURN(PLUSassign); }
2570 YY_BREAK
2571case 157:
2572YY_RULE_SETUP
2573#line 349 "lex.ll"
2574{ NAMEDOP_RETURN(MINUSassign); }
2575 YY_BREAK
2576case 158:
2577YY_RULE_SETUP
2578#line 350 "lex.ll"
2579{ NAMEDOP_RETURN(MULTassign); }
2580 YY_BREAK
2581case 159:
2582YY_RULE_SETUP
2583#line 351 "lex.ll"
2584{ NAMEDOP_RETURN(DIVassign); }
2585 YY_BREAK
2586case 160:
2587YY_RULE_SETUP
2588#line 352 "lex.ll"
2589{ NAMEDOP_RETURN(MODassign); }
2590 YY_BREAK
2591case 161:
2592YY_RULE_SETUP
2593#line 353 "lex.ll"
2594{ NAMEDOP_RETURN(ANDassign); }
2595 YY_BREAK
2596case 162:
2597YY_RULE_SETUP
2598#line 354 "lex.ll"
2599{ NAMEDOP_RETURN(ORassign); }
2600 YY_BREAK
2601case 163:
2602YY_RULE_SETUP
2603#line 355 "lex.ll"
2604{ NAMEDOP_RETURN(ERassign); }
2605 YY_BREAK
2606case 164:
2607YY_RULE_SETUP
2608#line 356 "lex.ll"
2609{ NAMEDOP_RETURN(LSassign); }
2610 YY_BREAK
2611case 165:
2612YY_RULE_SETUP
2613#line 357 "lex.ll"
2614{ NAMEDOP_RETURN(RSassign); }
2615 YY_BREAK
2616/* CFA, operator identifier */
2617case 166:
2618YY_RULE_SETUP
2619#line 360 "lex.ll"
2620{ IDENTIFIER_RETURN(); } // unary
2621 YY_BREAK
2622case 167:
2623YY_RULE_SETUP
2624#line 361 "lex.ll"
2625{ IDENTIFIER_RETURN(); }
2626 YY_BREAK
2627case 168:
2628YY_RULE_SETUP
2629#line 362 "lex.ll"
2630{ IDENTIFIER_RETURN(); } // binary
2631 YY_BREAK
2632/*
2633 This rule handles ambiguous cases with operator identifiers, e.g., "int *?*?()", where the string "*?*?"
2634 can be lexed as "*"/"?*?" or "*?"/"*?". Since it is common practise to put a unary operator juxtaposed
2635 to an identifier, e.g., "*i", users will be annoyed if they cannot do this with respect to operator
2636 identifiers. Even with this special hack, there are 5 general cases that cannot be handled. The first
2637 case is for the function-call identifier "?()":
2638
2639 int * ?()(); // declaration: space required after '*'
2640 * ?()(); // expression: space required after '*'
2641
2642 Without the space, the string "*?()" is ambiguous without N character look ahead; it requires scanning
2643 ahead to determine if there is a '(', which is the start of an argument/parameter list.
2644
2645 The 4 remaining cases occur in expressions:
2646
2647 i++?i:0; // space required before '?'
2648 i--?i:0; // space required before '?'
2649 i?++i:0; // space required after '?'
2650 i?--i:0; // space required after '?'
2651
2652 In the first two cases, the string "i++?" is ambiguous, where this string can be lexed as "i"/"++?" or
2653 "i++"/"?"; it requires scanning ahead to determine if there is a '(', which is the start of an argument
2654 list. In the second two cases, the string "?++x" is ambiguous, where this string can be lexed as
2655 "?++"/"x" or "?"/"++x"; it requires scanning ahead to determine if there is a '(', which is the start of
2656 an argument list.
2657 */
2658case 169:
2659YY_RULE_SETUP
2660#line 389 "lex.ll"
2661{
2662 // 1 or 2 character unary operator ?
2663 int i = yytext[1] == '?' ? 1 : 2;
2664 yyless( i ); // put back characters up to first '?'
2665 if ( i > 1 ) {
2666 NAMEDOP_RETURN( yytext[0] == '+' ? ICR : DECR );
2667 } else {
2668 ASCIIOP_RETURN();
2669 } // if
2670}
2671 YY_BREAK
2672/* unknown characters */
2673case 170:
2674YY_RULE_SETUP
2675#line 401 "lex.ll"
2676{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
2677 YY_BREAK
2678case 171:
2679YY_RULE_SETUP
2680#line 403 "lex.ll"
2681ECHO;
2682 YY_BREAK
2683#line 2684 "Parser/lex.cc"
2684case YY_STATE_EOF(INITIAL):
2685case YY_STATE_EOF(COMMENT):
2686case YY_STATE_EOF(BKQUOTE):
2687case YY_STATE_EOF(QUOTE):
2688case YY_STATE_EOF(STRING):
2689 yyterminate();
2690
2691 case YY_END_OF_BUFFER:
2692 {
2693 /* Amount of text matched not including the EOB char. */
2694 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2695
2696 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2697 *yy_cp = (yy_hold_char);
2698 YY_RESTORE_YY_MORE_OFFSET
2699
2700 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2701 {
2702 /* We're scanning a new file or input source. It's
2703 * possible that this happened because the user
2704 * just pointed yyin at a new source and called
2705 * yylex(). If so, then we have to assure
2706 * consistency between YY_CURRENT_BUFFER and our
2707 * globals. Here is the right place to do so, because
2708 * this is the first action (other than possibly a
2709 * back-up) that will match for the new input source.
2710 */
2711 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2712 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2713 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2714 }
2715
2716 /* Note that here we test for yy_c_buf_p "<=" to the position
2717 * of the first EOB in the buffer, since yy_c_buf_p will
2718 * already have been incremented past the NUL character
2719 * (since all states make transitions on EOB to the
2720 * end-of-buffer state). Contrast this with the test
2721 * in input().
2722 */
2723 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2724 { /* This was really a NUL. */
2725 yy_state_type yy_next_state;
2726
2727 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2728
2729 yy_current_state = yy_get_previous_state( );
2730
2731 /* Okay, we're now positioned to make the NUL
2732 * transition. We couldn't have
2733 * yy_get_previous_state() go ahead and do it
2734 * for us because it doesn't know how to deal
2735 * with the possibility of jamming (and we don't
2736 * want to build jamming into it because then it
2737 * will run more slowly).
2738 */
2739
2740 yy_next_state = yy_try_NUL_trans( yy_current_state );
2741
2742 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2743
2744 if ( yy_next_state )
2745 {
2746 /* Consume the NUL. */
2747 yy_cp = ++(yy_c_buf_p);
2748 yy_current_state = yy_next_state;
2749 goto yy_match;
2750 }
2751
2752 else
2753 {
2754 yy_cp = (yy_c_buf_p);
2755 goto yy_find_action;
2756 }
2757 }
2758
2759 else switch ( yy_get_next_buffer( ) )
2760 {
2761 case EOB_ACT_END_OF_FILE:
2762 {
2763 (yy_did_buffer_switch_on_eof) = 0;
2764
2765 if ( yywrap( ) )
2766 {
2767 /* Note: because we've taken care in
2768 * yy_get_next_buffer() to have set up
2769 * yytext, we can now set up
2770 * yy_c_buf_p so that if some total
2771 * hoser (like flex itself) wants to
2772 * call the scanner after we return the
2773 * YY_NULL, it'll still work - another
2774 * YY_NULL will get returned.
2775 */
2776 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2777
2778 yy_act = YY_STATE_EOF(YY_START);
2779 goto do_action;
2780 }
2781
2782 else
2783 {
2784 if ( ! (yy_did_buffer_switch_on_eof) )
2785 YY_NEW_FILE;
2786 }
2787 break;
2788 }
2789
2790 case EOB_ACT_CONTINUE_SCAN:
2791 (yy_c_buf_p) =
2792 (yytext_ptr) + yy_amount_of_matched_text;
2793
2794 yy_current_state = yy_get_previous_state( );
2795
2796 yy_cp = (yy_c_buf_p);
2797 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2798 goto yy_match;
2799
2800 case EOB_ACT_LAST_MATCH:
2801 (yy_c_buf_p) =
2802 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2803
2804 yy_current_state = yy_get_previous_state( );
2805
2806 yy_cp = (yy_c_buf_p);
2807 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2808 goto yy_find_action;
2809 }
2810 break;
2811 }
2812
2813 default:
2814 YY_FATAL_ERROR(
2815 "fatal flex scanner internal error--no action found" );
2816 } /* end of action switch */
2817 } /* end of scanning one token */
2818} /* end of yylex */
2819
2820/* yy_get_next_buffer - try to read in a new buffer
2821 *
2822 * Returns a code representing an action:
2823 * EOB_ACT_LAST_MATCH -
2824 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2825 * EOB_ACT_END_OF_FILE - end of file
2826 */
2827static int yy_get_next_buffer (void)
2828{
2829 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2830 register char *source = (yytext_ptr);
2831 register int number_to_move, i;
2832 int ret_val;
2833
2834 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2835 YY_FATAL_ERROR(
2836 "fatal flex scanner internal error--end of buffer missed" );
2837
2838 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2839 { /* Don't try to fill the buffer, so this is an EOF. */
2840 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2841 {
2842 /* We matched a single character, the EOB, so
2843 * treat this as a final EOF.
2844 */
2845 return EOB_ACT_END_OF_FILE;
2846 }
2847
2848 else
2849 {
2850 /* We matched some text prior to the EOB, first
2851 * process it.
2852 */
2853 return EOB_ACT_LAST_MATCH;
2854 }
2855 }
2856
2857 /* Try to read more data. */
2858
2859 /* First move last chars to start of buffer. */
2860 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2861
2862 for ( i = 0; i < number_to_move; ++i )
2863 *(dest++) = *(source++);
2864
2865 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2866 /* don't do the read, it's not guaranteed to return an EOF,
2867 * just force an EOF
2868 */
2869 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2870
2871 else
2872 {
2873 int num_to_read =
2874 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2875
2876 while ( num_to_read <= 0 )
2877 { /* Not enough room in the buffer - grow it. */
2878
2879 /* just a shorter name for the current buffer */
2880 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2881
2882 int yy_c_buf_p_offset =
2883 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2884
2885 if ( b->yy_is_our_buffer )
2886 {
2887 int new_size = b->yy_buf_size * 2;
2888
2889 if ( new_size <= 0 )
2890 b->yy_buf_size += b->yy_buf_size / 8;
2891 else
2892 b->yy_buf_size *= 2;
2893
2894 b->yy_ch_buf = (char *)
2895 /* Include room in for 2 EOB chars. */
2896 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2897 }
2898 else
2899 /* Can't grow it, we don't own it. */
2900 b->yy_ch_buf = 0;
2901
2902 if ( ! b->yy_ch_buf )
2903 YY_FATAL_ERROR(
2904 "fatal error - scanner input buffer overflow" );
2905
2906 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2907
2908 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2909 number_to_move - 1;
2910
2911 }
2912
2913 if ( num_to_read > YY_READ_BUF_SIZE )
2914 num_to_read = YY_READ_BUF_SIZE;
2915
2916 /* Read in more data. */
2917 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2918 (yy_n_chars), (size_t) num_to_read );
2919
2920 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2921 }
2922
2923 if ( (yy_n_chars) == 0 )
2924 {
2925 if ( number_to_move == YY_MORE_ADJ )
2926 {
2927 ret_val = EOB_ACT_END_OF_FILE;
2928 yyrestart(yyin );
2929 }
2930
2931 else
2932 {
2933 ret_val = EOB_ACT_LAST_MATCH;
2934 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2935 YY_BUFFER_EOF_PENDING;
2936 }
2937 }
2938
2939 else
2940 ret_val = EOB_ACT_CONTINUE_SCAN;
2941
2942 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2943 /* Extend the array by 50%, plus the number we really need. */
2944 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2945 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2946 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2947 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2948 }
2949
2950 (yy_n_chars) += number_to_move;
2951 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2952 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2953
2954 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2955
2956 return ret_val;
2957}
2958
2959/* yy_get_previous_state - get the state just before the EOB char was reached */
2960
2961 static yy_state_type yy_get_previous_state (void)
2962{
2963 register yy_state_type yy_current_state;
2964 register char *yy_cp;
2965
2966 yy_current_state = (yy_start);
2967 yy_current_state += YY_AT_BOL();
2968
2969 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2970 {
2971 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2972 if ( yy_accept[yy_current_state] )
2973 {
2974 (yy_last_accepting_state) = yy_current_state;
2975 (yy_last_accepting_cpos) = yy_cp;
2976 }
2977 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2978 {
2979 yy_current_state = (int) yy_def[yy_current_state];
2980 if ( yy_current_state >= 826 )
2981 yy_c = yy_meta[(unsigned int) yy_c];
2982 }
2983 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2984 }
2985
2986 return yy_current_state;
2987}
2988
2989/* yy_try_NUL_trans - try to make a transition on the NUL character
2990 *
2991 * synopsis
2992 * next_state = yy_try_NUL_trans( current_state );
2993 */
2994 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2995{
2996 register int yy_is_jam;
2997 register char *yy_cp = (yy_c_buf_p);
2998
2999 register YY_CHAR yy_c = 1;
3000 if ( yy_accept[yy_current_state] )
3001 {
3002 (yy_last_accepting_state) = yy_current_state;
3003 (yy_last_accepting_cpos) = yy_cp;
3004 }
3005 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3006 {
3007 yy_current_state = (int) yy_def[yy_current_state];
3008 if ( yy_current_state >= 826 )
3009 yy_c = yy_meta[(unsigned int) yy_c];
3010 }
3011 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3012 yy_is_jam = (yy_current_state == 825);
3013
3014 return yy_is_jam ? 0 : yy_current_state;
3015}
3016
3017 static void yyunput (int c, register char * yy_bp )
3018{
3019 register char *yy_cp;
3020
3021 yy_cp = (yy_c_buf_p);
3022
3023 /* undo effects of setting up yytext */
3024 *yy_cp = (yy_hold_char);
3025
3026 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3027 { /* need to shift things up to make room */
3028 /* +2 for EOB chars. */
3029 register int number_to_move = (yy_n_chars) + 2;
3030 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3031 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3032 register char *source =
3033 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3034
3035 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3036 *--dest = *--source;
3037
3038 yy_cp += (int) (dest - source);
3039 yy_bp += (int) (dest - source);
3040 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3041 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3042
3043 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3044 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3045 }
3046
3047 *--yy_cp = (char) c;
3048
3049 if ( c == '\n' ){
3050 --yylineno;
3051 }
3052
3053 (yytext_ptr) = yy_bp;
3054 (yy_hold_char) = *yy_cp;
3055 (yy_c_buf_p) = yy_cp;
3056}
3057
3058#ifndef YY_NO_INPUT
3059#ifdef __cplusplus
3060 static int yyinput (void)
3061#else
3062 static int input (void)
3063#endif
3064
3065{
3066 int c;
3067
3068 *(yy_c_buf_p) = (yy_hold_char);
3069
3070 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3071 {
3072 /* yy_c_buf_p now points to the character we want to return.
3073 * If this occurs *before* the EOB characters, then it's a
3074 * valid NUL; if not, then we've hit the end of the buffer.
3075 */
3076 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3077 /* This was really a NUL. */
3078 *(yy_c_buf_p) = '\0';
3079
3080 else
3081 { /* need more input */
3082 int offset = (yy_c_buf_p) - (yytext_ptr);
3083 ++(yy_c_buf_p);
3084
3085 switch ( yy_get_next_buffer( ) )
3086 {
3087 case EOB_ACT_LAST_MATCH:
3088 /* This happens because yy_g_n_b()
3089 * sees that we've accumulated a
3090 * token and flags that we need to
3091 * try matching the token before
3092 * proceeding. But for input(),
3093 * there's no matching to consider.
3094 * So convert the EOB_ACT_LAST_MATCH
3095 * to EOB_ACT_END_OF_FILE.
3096 */
3097
3098 /* Reset buffer status. */
3099 yyrestart(yyin );
3100
3101 /*FALLTHROUGH*/
3102
3103 case EOB_ACT_END_OF_FILE:
3104 {
3105 if ( yywrap( ) )
3106 return EOF;
3107
3108 if ( ! (yy_did_buffer_switch_on_eof) )
3109 YY_NEW_FILE;
3110#ifdef __cplusplus
3111 return yyinput();
3112#else
3113 return input();
3114#endif
3115 }
3116
3117 case EOB_ACT_CONTINUE_SCAN:
3118 (yy_c_buf_p) = (yytext_ptr) + offset;
3119 break;
3120 }
3121 }
3122 }
3123
3124 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3125 *(yy_c_buf_p) = '\0'; /* preserve yytext */
3126 (yy_hold_char) = *++(yy_c_buf_p);
3127
3128 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3129 if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
3130
3131 yylineno++;
3132;
3133
3134 return c;
3135}
3136#endif /* ifndef YY_NO_INPUT */
3137
3138/** Immediately switch to a different input stream.
3139 * @param input_file A readable stream.
3140 *
3141 * @note This function does not reset the start condition to @c INITIAL .
3142 */
3143 void yyrestart (FILE * input_file )
3144{
3145
3146 if ( ! YY_CURRENT_BUFFER ){
3147 yyensure_buffer_stack ();
3148 YY_CURRENT_BUFFER_LVALUE =
3149 yy_create_buffer(yyin,YY_BUF_SIZE );
3150 }
3151
3152 yy_init_buffer(YY_CURRENT_BUFFER,input_file );
3153 yy_load_buffer_state( );
3154}
3155
3156/** Switch to a different input buffer.
3157 * @param new_buffer The new input buffer.
3158 *
3159 */
3160 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
3161{
3162
3163 /* TODO. We should be able to replace this entire function body
3164 * with
3165 * yypop_buffer_state();
3166 * yypush_buffer_state(new_buffer);
3167 */
3168 yyensure_buffer_stack ();
3169 if ( YY_CURRENT_BUFFER == new_buffer )
3170 return;
3171
3172 if ( YY_CURRENT_BUFFER )
3173 {
3174 /* Flush out information for old buffer. */
3175 *(yy_c_buf_p) = (yy_hold_char);
3176 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3177 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3178 }
3179
3180 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3181 yy_load_buffer_state( );
3182
3183 /* We don't actually know whether we did this switch during
3184 * EOF (yywrap()) processing, but the only time this flag
3185 * is looked at is after yywrap() is called, so it's safe
3186 * to go ahead and always set it.
3187 */
3188 (yy_did_buffer_switch_on_eof) = 1;
3189}
3190
3191static void yy_load_buffer_state (void)
3192{
3193 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3194 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3195 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3196 (yy_hold_char) = *(yy_c_buf_p);
3197}
3198
3199/** Allocate and initialize an input buffer state.
3200 * @param file A readable stream.
3201 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3202 *
3203 * @return the allocated buffer state.
3204 */
3205 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
3206{
3207 YY_BUFFER_STATE b;
3208
3209 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
3210 if ( ! b )
3211 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3212
3213 b->yy_buf_size = size;
3214
3215 /* yy_ch_buf has to be 2 characters longer than the size given because
3216 * we need to put in 2 end-of-buffer characters.
3217 */
3218 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
3219 if ( ! b->yy_ch_buf )
3220 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3221
3222 b->yy_is_our_buffer = 1;
3223
3224 yy_init_buffer(b,file );
3225
3226 return b;
3227}
3228
3229/** Destroy the buffer.
3230 * @param b a buffer created with yy_create_buffer()
3231 *
3232 */
3233 void yy_delete_buffer (YY_BUFFER_STATE b )
3234{
3235
3236 if ( ! b )
3237 return;
3238
3239 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3240 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3241
3242 if ( b->yy_is_our_buffer )
3243 yyfree((void *) b->yy_ch_buf );
3244
3245 yyfree((void *) b );
3246}
3247
3248#ifndef __cplusplus
3249extern int isatty (int );
3250#endif /* __cplusplus */
3251
3252/* Initializes or reinitializes a buffer.
3253 * This function is sometimes called more than once on the same buffer,
3254 * such as during a yyrestart() or at EOF.
3255 */
3256 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
3257
3258{
3259 int oerrno = errno;
3260
3261 yy_flush_buffer(b );
3262
3263 b->yy_input_file = file;
3264 b->yy_fill_buffer = 1;
3265
3266 /* If b is the current buffer, then yy_init_buffer was _probably_
3267 * called from yyrestart() or through yy_get_next_buffer.
3268 * In that case, we don't want to reset the lineno or column.
3269 */
3270 if (b != YY_CURRENT_BUFFER){
3271 b->yy_bs_lineno = 1;
3272 b->yy_bs_column = 0;
3273 }
3274
3275 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3276
3277 errno = oerrno;
3278}
3279
3280/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3281 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3282 *
3283 */
3284 void yy_flush_buffer (YY_BUFFER_STATE b )
3285{
3286 if ( ! b )
3287 return;
3288
3289 b->yy_n_chars = 0;
3290
3291 /* We always need two end-of-buffer characters. The first causes
3292 * a transition to the end-of-buffer state. The second causes
3293 * a jam in that state.
3294 */
3295 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3296 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3297
3298 b->yy_buf_pos = &b->yy_ch_buf[0];
3299
3300 b->yy_at_bol = 1;
3301 b->yy_buffer_status = YY_BUFFER_NEW;
3302
3303 if ( b == YY_CURRENT_BUFFER )
3304 yy_load_buffer_state( );
3305}
3306
3307/** Pushes the new state onto the stack. The new state becomes
3308 * the current state. This function will allocate the stack
3309 * if necessary.
3310 * @param new_buffer The new state.
3311 *
3312 */
3313void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3314{
3315 if (new_buffer == NULL)
3316 return;
3317
3318 yyensure_buffer_stack();
3319
3320 /* This block is copied from yy_switch_to_buffer. */
3321 if ( YY_CURRENT_BUFFER )
3322 {
3323 /* Flush out information for old buffer. */
3324 *(yy_c_buf_p) = (yy_hold_char);
3325 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3326 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3327 }
3328
3329 /* Only push if top exists. Otherwise, replace top. */
3330 if (YY_CURRENT_BUFFER)
3331 (yy_buffer_stack_top)++;
3332 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3333
3334 /* copied from yy_switch_to_buffer. */
3335 yy_load_buffer_state( );
3336 (yy_did_buffer_switch_on_eof) = 1;
3337}
3338
3339/** Removes and deletes the top of the stack, if present.
3340 * The next element becomes the new top.
3341 *
3342 */
3343void yypop_buffer_state (void)
3344{
3345 if (!YY_CURRENT_BUFFER)
3346 return;
3347
3348 yy_delete_buffer(YY_CURRENT_BUFFER );
3349 YY_CURRENT_BUFFER_LVALUE = NULL;
3350 if ((yy_buffer_stack_top) > 0)
3351 --(yy_buffer_stack_top);
3352
3353 if (YY_CURRENT_BUFFER) {
3354 yy_load_buffer_state( );
3355 (yy_did_buffer_switch_on_eof) = 1;
3356 }
3357}
3358
3359/* Allocates the stack if it does not exist.
3360 * Guarantees space for at least one push.
3361 */
3362static void yyensure_buffer_stack (void)
3363{
3364 int num_to_alloc;
3365
3366 if (!(yy_buffer_stack)) {
3367
3368 /* First allocation is just for 2 elements, since we don't know if this
3369 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3370 * immediate realloc on the next call.
3371 */
3372 num_to_alloc = 1;
3373 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3374 (num_to_alloc * sizeof(struct yy_buffer_state*)
3375 );
3376 if ( ! (yy_buffer_stack) )
3377 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3378
3379 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3380
3381 (yy_buffer_stack_max) = num_to_alloc;
3382 (yy_buffer_stack_top) = 0;
3383 return;
3384 }
3385
3386 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3387
3388 /* Increase the buffer to prepare for a possible push. */
3389 int grow_size = 8 /* arbitrary grow size */;
3390
3391 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3392 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3393 ((yy_buffer_stack),
3394 num_to_alloc * sizeof(struct yy_buffer_state*)
3395 );
3396 if ( ! (yy_buffer_stack) )
3397 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3398
3399 /* zero only the new slots.*/
3400 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3401 (yy_buffer_stack_max) = num_to_alloc;
3402 }
3403}
3404
3405/** Setup the input buffer state to scan directly from a user-specified character buffer.
3406 * @param base the character buffer
3407 * @param size the size in bytes of the character buffer
3408 *
3409 * @return the newly allocated buffer state object.
3410 */
3411YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
3412{
3413 YY_BUFFER_STATE b;
3414
3415 if ( size < 2 ||
3416 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3417 base[size-1] != YY_END_OF_BUFFER_CHAR )
3418 /* They forgot to leave room for the EOB's. */
3419 return 0;
3420
3421 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
3422 if ( ! b )
3423 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3424
3425 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3426 b->yy_buf_pos = b->yy_ch_buf = base;
3427 b->yy_is_our_buffer = 0;
3428 b->yy_input_file = 0;
3429 b->yy_n_chars = b->yy_buf_size;
3430 b->yy_is_interactive = 0;
3431 b->yy_at_bol = 1;
3432 b->yy_fill_buffer = 0;
3433 b->yy_buffer_status = YY_BUFFER_NEW;
3434
3435 yy_switch_to_buffer(b );
3436
3437 return b;
3438}
3439
3440/** Setup the input buffer state to scan a string. The next call to yylex() will
3441 * scan from a @e copy of @a str.
3442 * @param yystr a NUL-terminated string to scan
3443 *
3444 * @return the newly allocated buffer state object.
3445 * @note If you want to scan bytes that may contain NUL values, then use
3446 * yy_scan_bytes() instead.
3447 */
3448YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
3449{
3450
3451 return yy_scan_bytes(yystr,strlen(yystr) );
3452}
3453
3454/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3455 * scan from a @e copy of @a bytes.
3456 * @param yybytes the byte buffer to scan
3457 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3458 *
3459 * @return the newly allocated buffer state object.
3460 */
3461YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
3462{
3463 YY_BUFFER_STATE b;
3464 char *buf;
3465 yy_size_t n;
3466 int i;
3467
3468 /* Get memory for full buffer, including space for trailing EOB's. */
3469 n = _yybytes_len + 2;
3470 buf = (char *) yyalloc(n );
3471 if ( ! buf )
3472 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3473
3474 for ( i = 0; i < _yybytes_len; ++i )
3475 buf[i] = yybytes[i];
3476
3477 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3478
3479 b = yy_scan_buffer(buf,n );
3480 if ( ! b )
3481 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3482
3483 /* It's okay to grow etc. this buffer, and we should throw it
3484 * away when we're done.
3485 */
3486 b->yy_is_our_buffer = 1;
3487
3488 return b;
3489}
3490
3491#ifndef YY_EXIT_FAILURE
3492#define YY_EXIT_FAILURE 2
3493#endif
3494
3495static void yy_fatal_error (yyconst char* msg )
3496{
3497 (void) fprintf( stderr, "%s\n", msg );
3498 exit( YY_EXIT_FAILURE );
3499}
3500
3501/* Redefine yyless() so it works in section 3 code. */
3502
3503#undef yyless
3504#define yyless(n) \
3505 do \
3506 { \
3507 /* Undo effects of setting up yytext. */ \
3508 int yyless_macro_arg = (n); \
3509 YY_LESS_LINENO(yyless_macro_arg);\
3510 yytext[yyleng] = (yy_hold_char); \
3511 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3512 (yy_hold_char) = *(yy_c_buf_p); \
3513 *(yy_c_buf_p) = '\0'; \
3514 yyleng = yyless_macro_arg; \
3515 } \
3516 while ( 0 )
3517
3518/* Accessor methods (get/set functions) to struct members. */
3519
3520/** Get the current line number.
3521 *
3522 */
3523int yyget_lineno (void)
3524{
3525
3526 return yylineno;
3527}
3528
3529/** Get the input stream.
3530 *
3531 */
3532FILE *yyget_in (void)
3533{
3534 return yyin;
3535}
3536
3537/** Get the output stream.
3538 *
3539 */
3540FILE *yyget_out (void)
3541{
3542 return yyout;
3543}
3544
3545/** Get the length of the current token.
3546 *
3547 */
3548int yyget_leng (void)
3549{
3550 return yyleng;
3551}
3552
3553/** Get the current token.
3554 *
3555 */
3556
3557char *yyget_text (void)
3558{
3559 return yytext;
3560}
3561
3562/** Set the current line number.
3563 * @param line_number
3564 *
3565 */
3566void yyset_lineno (int line_number )
3567{
3568
3569 yylineno = line_number;
3570}
3571
3572/** Set the input stream. This does not discard the current
3573 * input buffer.
3574 * @param in_str A readable stream.
3575 *
3576 * @see yy_switch_to_buffer
3577 */
3578void yyset_in (FILE * in_str )
3579{
3580 yyin = in_str ;
3581}
3582
3583void yyset_out (FILE * out_str )
3584{
3585 yyout = out_str ;
3586}
3587
3588int yyget_debug (void)
3589{
3590 return yy_flex_debug;
3591}
3592
3593void yyset_debug (int bdebug )
3594{
3595 yy_flex_debug = bdebug ;
3596}
3597
3598static int yy_init_globals (void)
3599{
3600 /* Initialization is the same as for the non-reentrant scanner.
3601 * This function is called from yylex_destroy(), so don't allocate here.
3602 */
3603
3604 /* We do not touch yylineno unless the option is enabled. */
3605 yylineno = 1;
3606
3607 (yy_buffer_stack) = 0;
3608 (yy_buffer_stack_top) = 0;
3609 (yy_buffer_stack_max) = 0;
3610 (yy_c_buf_p) = (char *) 0;
3611 (yy_init) = 0;
3612 (yy_start) = 0;
3613
3614/* Defined in main.c */
3615#ifdef YY_STDINIT
3616 yyin = stdin;
3617 yyout = stdout;
3618#else
3619 yyin = (FILE *) 0;
3620 yyout = (FILE *) 0;
3621#endif
3622
3623 /* For future reference: Set errno on error, since we are called by
3624 * yylex_init()
3625 */
3626 return 0;
3627}
3628
3629/* yylex_destroy is for both reentrant and non-reentrant scanners. */
3630int yylex_destroy (void)
3631{
3632
3633 /* Pop the buffer stack, destroying each element. */
3634 while(YY_CURRENT_BUFFER){
3635 yy_delete_buffer(YY_CURRENT_BUFFER );
3636 YY_CURRENT_BUFFER_LVALUE = NULL;
3637 yypop_buffer_state();
3638 }
3639
3640 /* Destroy the stack itself. */
3641 yyfree((yy_buffer_stack) );
3642 (yy_buffer_stack) = NULL;
3643
3644 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3645 * yylex() is called, initialization will occur. */
3646 yy_init_globals( );
3647
3648 return 0;
3649}
3650
3651/*
3652 * Internal utility routines.
3653 */
3654
3655#ifndef yytext_ptr
3656static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3657{
3658 register int i;
3659 for ( i = 0; i < n; ++i )
3660 s1[i] = s2[i];
3661}
3662#endif
3663
3664#ifdef YY_NEED_STRLEN
3665static int yy_flex_strlen (yyconst char * s )
3666{
3667 register int n;
3668 for ( n = 0; s[n]; ++n )
3669 ;
3670
3671 return n;
3672}
3673#endif
3674
3675void *yyalloc (yy_size_t size )
3676{
3677 return (void *) malloc( size );
3678}
3679
3680void *yyrealloc (void * ptr, yy_size_t size )
3681{
3682 /* The cast to (char *) in the following accommodates both
3683 * implementations that use char* generic pointers, and those
3684 * that use void* generic pointers. It works with the latter
3685 * because both ANSI C and C++ allow castless assignment from
3686 * any pointer type to void*, and deal with argument conversions
3687 * as though doing an assignment.
3688 */
3689 return (void *) realloc( (char *) ptr, size );
3690}
3691
3692void yyfree (void * ptr )
3693{
3694 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3695}
3696
3697#define YYTABLES_NAME "yytables"
3698
3699#line 403 "lex.ll"
3700
3701
3702
3703// Local Variables: //
3704// fill-column: 110 //
3705// tab-width: 4 //
3706// mode: c++ //
3707// compile-command: "make install" //
3708// End: //
3709
Note: See TracBrowser for help on using the repository browser.