source: src/Parser/lex.cc@ 7527e63

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

more case statement cleanup

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