source: src/Parser/lex.cc@ 2d59d53

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

add types zero_t and one_t to lexer/parser

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