source: src/Parser/lex.cc@ a7c90d4

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

change StorageClass to bitset, support _Thread_local as separate storage-class

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