source: src/Parser/lex.cc@ 10e81ac

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

only implicitly generate typedef for structures if name not in use and overwrite typedef name if explicit name appears, upate parser symbol table

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