source: src/Parser/lex.cc@ 5447e09

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 5447e09 was 4040425, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

change keyword type to otype and context to trait

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