source: src/Parser/lex.cc@ 334163c

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

redo automake third attempt

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