source: src/Parser/lex.cc@ 6d4d1a6

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 6d4d1a6 was 8f60f0b, checked in by Rob Schluntz <rschlunt@…>, 9 years ago

add support for ttype in the parser

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