source: src/Parser/lex.cc@ f3fc8cbe

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 stuck-waitfor-destruct with_gc
Last change on this file since f3fc8cbe was f3fc8cbe, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

dli suffixes second try

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