source: src/Parser/lex.cc@ 2c57025

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 2c57025 was 1b29996, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

lex/parse new tuples

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