source: src/Parser/lex.cc@ efe4d730

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

small changes to bring me up to date

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