1 #line 2 "compilers/imcc/imclexer.c"
2 #line 2 "compilers/imcc/imcc.l"
5 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
7 * This file is generated automatically by the Parrot build process
8 * from the file compilers/imcc/imcc.l.
10 * Any changes made here will be lost!
14 /* HEADERIZER HFILE: none */
17 #ifndef __STDC_VERSION__
18 # define __STDC_VERSION__ 0
24 #line 25 "compilers/imcc/imclexer.c"
26 #define YY_INT_ALIGNED short int
28 /* A lexical scanner generated by flex */
31 #define YY_FLEX_MAJOR_VERSION 2
32 #define YY_FLEX_MINOR_VERSION 5
33 #define YY_FLEX_SUBMINOR_VERSION 35
34 #if YY_FLEX_SUBMINOR_VERSION > 0
38 /* First, we deal with platform-specific or compiler-specific issues. */
40 /* begin standard C headers. */
46 /* end standard C headers. */
48 /* flex integer type definitions */
53 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
55 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
57 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
58 * if you want the limit (max/min) macros for int types.
60 #ifndef __STDC_LIMIT_MACROS
61 #define __STDC_LIMIT_MACROS 1
65 typedef int8_t flex_int8_t
;
66 typedef uint8_t flex_uint8_t
;
67 typedef int16_t flex_int16_t
;
68 typedef uint16_t flex_uint16_t
;
69 typedef int32_t flex_int32_t
;
70 typedef uint32_t flex_uint32_t
;
72 typedef signed char flex_int8_t
;
73 typedef short int flex_int16_t
;
74 typedef int flex_int32_t
;
75 typedef unsigned char flex_uint8_t
;
76 typedef unsigned short int flex_uint16_t
;
77 typedef unsigned int flex_uint32_t
;
79 /* Limits of integral types. */
81 #define INT8_MIN (-128)
84 #define INT16_MIN (-32767-1)
87 #define INT32_MIN (-2147483647-1)
90 #define INT8_MAX (127)
93 #define INT16_MAX (32767)
96 #define INT32_MAX (2147483647)
99 #define UINT8_MAX (255U)
102 #define UINT16_MAX (65535U)
105 #define UINT32_MAX (4294967295U)
110 #endif /* ! FLEXINT_H */
114 /* The "const" storage-class-modifier is valid. */
117 #else /* ! __cplusplus */
119 /* C99 requires __STDC__ to be defined as 1. */
120 #if defined (__STDC__)
124 #endif /* defined (__STDC__) */
125 #endif /* ! __cplusplus */
128 #define yyconst const
133 /* Returned upon end-of-file. */
136 /* Promotes a possibly negative, possibly signed char to an unsigned
137 * integer for use as an array index. If the signed char is negative,
138 * we want to instead treat it as an 8-bit unsigned char, hence the
141 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
143 /* An opaque pointer. */
144 #ifndef YY_TYPEDEF_YY_SCANNER_T
145 #define YY_TYPEDEF_YY_SCANNER_T
146 typedef void* yyscan_t
;
149 /* For convenience, these vars (plus the bison vars far below)
150 are macros in the reentrant scanner. */
151 #define yyin yyg->yyin_r
152 #define yyout yyg->yyout_r
153 #define yyextra yyg->yyextra_r
154 #define yyleng yyg->yyleng_r
155 #define yytext yyg->yytext_r
156 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
157 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
158 #define yy_flex_debug yyg->yy_flex_debug_r
160 /* Enter a start condition. This macro really ought to take a parameter,
161 * but we do it the disgusting crufty way forced on us by the ()-less
162 * definition of BEGIN.
164 #define BEGIN yyg->yy_start = 1 + 2 *
166 /* Translate the current start state into a value that can be later handed
167 * to BEGIN to return to the state. The YYSTATE alias is for lex
170 #define YY_START ((yyg->yy_start - 1) / 2)
171 #define YYSTATE YY_START
173 /* Action number for EOF rule of a given start state. */
174 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
176 /* Special action meaning "start processing a new file". */
177 #define YY_NEW_FILE yyrestart(yyin ,yyscanner )
179 #define YY_END_OF_BUFFER_CHAR 0
181 /* Size of default input buffer. */
184 /* On IA-64, the buffer size is 16k, not 8k.
185 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
186 * Ditto for the __ia64__ case accordingly.
188 #define YY_BUF_SIZE 32768
190 #define YY_BUF_SIZE 16384
191 #endif /* __ia64__ */
194 /* The state buf must be large enough to hold one state per character in the main buffer.
196 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
198 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
199 #define YY_TYPEDEF_YY_BUFFER_STATE
200 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
203 #define EOB_ACT_CONTINUE_SCAN 0
204 #define EOB_ACT_END_OF_FILE 1
205 #define EOB_ACT_LAST_MATCH 2
207 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
208 * access to the local variable yy_act. Since yyless() is a macro, it would break
209 * existing scanners that call yyless() from OUTSIDE yylex.
210 * One obvious solution it to make yy_act a global. I tried that, and saw
211 * a 5% performance hit in a non-yylineno scanner, because yy_act is
212 * normally declared as a register variable-- so it is not worth it.
214 #define YY_LESS_LINENO(n) \
217 for ( yyl = n; yyl < yyleng; ++yyl )\
218 if ( yytext[yyl] == '\n' )\
222 /* Return all but the first "n" matched characters back to the input stream. */
226 /* Undo effects of setting up yytext. */ \
227 int yyless_macro_arg = (n); \
228 YY_LESS_LINENO(yyless_macro_arg);\
229 *yy_cp = yyg->yy_hold_char; \
230 YY_RESTORE_YY_MORE_OFFSET \
231 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
232 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
236 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
238 #ifndef YY_TYPEDEF_YY_SIZE_T
239 #define YY_TYPEDEF_YY_SIZE_T
240 typedef size_t yy_size_t
;
243 #ifndef YY_STRUCT_YY_BUFFER_STATE
244 #define YY_STRUCT_YY_BUFFER_STATE
245 struct yy_buffer_state
249 char *yy_ch_buf
; /* input buffer */
250 char *yy_buf_pos
; /* current position in input buffer */
252 /* Size of input buffer in bytes, not including room for EOB
255 yy_size_t yy_buf_size
;
257 /* Number of characters read into yy_ch_buf, not including EOB
262 /* Whether we "own" the buffer - i.e., we know we created it,
263 * and can realloc() it to grow it, and should free() it to
266 int yy_is_our_buffer
;
268 /* Whether this is an "interactive" input source; if so, and
269 * if we're using stdio for input, then we want to use getc()
270 * instead of fread(), to make sure we stop fetching input after
273 int yy_is_interactive
;
275 /* Whether we're considered to be at the beginning of a line.
276 * If so, '^' rules will be active on the next match, otherwise
281 int yy_bs_lineno
; /**< The line count. */
282 int yy_bs_column
; /**< The column count. */
284 /* Whether to try to fill the input buffer when we reach the
289 int yy_buffer_status
;
291 #define YY_BUFFER_NEW 0
292 #define YY_BUFFER_NORMAL 1
293 /* When an EOF's been seen but there's still some text to process
294 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
295 * shouldn't try reading from the input source any more. We might
296 * still have a bunch of tokens to match, though, because of
297 * possible backing-up.
299 * When we actually see the EOF, we change the status to "new"
300 * (via yyrestart()), so that the user can continue scanning by
301 * just pointing yyin at a new input file.
303 #define YY_BUFFER_EOF_PENDING 2
306 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
308 /* We provide macros for accessing buffer states in case in the
309 * future we want to put the buffer states in a more general
312 * Returns the top of the stack, or NULL.
314 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
315 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
318 /* Same as previous macro, but useful when we know that the buffer stack is not
319 * NULL or when we need an lvalue. For internal use only.
321 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
323 void yyrestart (FILE *input_file
,yyscan_t yyscanner
);
324 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
325 YY_BUFFER_STATE
yy_create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
326 void yy_delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
327 void yy_flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
328 void yypush_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
329 void yypop_buffer_state (yyscan_t yyscanner
);
331 static void yyensure_buffer_stack (yyscan_t yyscanner
);
332 static void yy_load_buffer_state (yyscan_t yyscanner
);
333 static void yy_init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
335 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
337 YY_BUFFER_STATE
yy_scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
338 YY_BUFFER_STATE
yy_scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
339 YY_BUFFER_STATE
yy_scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
341 void *yyalloc (yy_size_t
,yyscan_t yyscanner
);
342 void *yyrealloc (void *,yy_size_t
,yyscan_t yyscanner
);
343 void yyfree (void * ,yyscan_t yyscanner
);
345 #define yy_new_buffer yy_create_buffer
347 #define yy_set_interactive(is_interactive) \
349 if ( ! YY_CURRENT_BUFFER ){ \
350 yyensure_buffer_stack (yyscanner); \
351 YY_CURRENT_BUFFER_LVALUE = \
352 yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
354 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
357 #define yy_set_bol(at_bol) \
359 if ( ! YY_CURRENT_BUFFER ){\
360 yyensure_buffer_stack (yyscanner); \
361 YY_CURRENT_BUFFER_LVALUE = \
362 yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
364 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
367 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
369 /* Begin user sect3 */
371 typedef unsigned char YY_CHAR
;
373 typedef int yy_state_type
;
375 #define yytext_ptr yytext_r
377 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
378 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
379 static int yy_get_next_buffer (yyscan_t yyscanner
);
380 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
382 /* Done after the current pattern has been matched and before the
383 * corresponding action - sets up yytext.
385 #define YY_DO_BEFORE_ACTION \
386 yyg->yytext_ptr = yy_bp; \
387 yyleng = (size_t) (yy_cp - yy_bp); \
388 yyg->yy_hold_char = *yy_cp; \
390 yyg->yy_c_buf_p = yy_cp;
392 #define YY_NUM_RULES 148
393 #define YY_END_OF_BUFFER 149
394 /* This struct is not used in this scanner,
395 but its presence is necessary. */
398 flex_int32_t yy_verify
;
401 static yyconst flex_int16_t yy_accept
[1095] =
403 0, 1, 0, 1, 0, 1, 17, 1, 0, 1,
404 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
405 4, 1, 149, 136, 135, 11, 135, 136, 136, 12,
406 136, 136, 136, 136, 136, 136, 116, 136, 96, 136,
407 120, 120, 136, 88, 136, 90, 134, 134, 134, 134,
408 134, 134, 134, 134, 136, 136, 1, 1, 136, 135,
409 135, 136, 136, 136, 136, 134, 1, 1, 136, 147,
410 142, 138, 142, 147, 147, 147, 147, 147, 120, 120,
411 147, 145, 145, 145, 1, 1, 147, 17, 18, 17,
412 17, 17, 17, 17, 17, 17, 17, 17, 17, 1,
414 1, 17, 148, 136, 9, 9, 136, 136, 1, 5,
415 5, 5, 5, 5, 5, 5, 5, 5, 5, 1,
416 6, 136, 10, 136, 136, 136, 136, 136, 120, 120,
417 136, 136, 136, 1, 1, 136, 13, 136, 136, 136,
418 136, 136, 120, 120, 136, 136, 136, 1, 1, 148,
419 2, 148, 148, 148, 148, 148, 120, 120, 148, 148,
420 148, 1, 1, 4, 3, 4, 4, 4, 4, 4,
421 4, 4, 4, 4, 4, 1, 1, 135, 0, 11,
422 93, 0, 125, 0, 132, 132, 132, 132, 132, 101,
423 85, 104, 0, 94, 99, 0, 120, 97, 98, 119,
425 110, 118, 118, 118, 118, 118, 118, 118, 118, 118,
426 118, 118, 118, 118, 118, 118, 118, 118, 102, 100,
427 119, 0, 0, 124, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 82, 89,
429 92, 65, 91, 83, 115, 0, 134, 117, 133, 134,
430 75, 134, 134, 134, 134, 134, 134, 105, 86, 106,
431 87, 1, 0, 15, 0, 92, 65, 0, 135, 118,
432 118, 118, 118, 118, 118, 0, 0, 0, 0, 1,
433 142, 138, 142, 0, 0, 0, 146, 146, 146, 146,
434 145, 0, 143, 145, 1, 1, 17, 18, 17, 17,
436 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
437 17, 17, 17, 17, 17, 17, 17, 1, 17, 0,
438 0, 9, 0, 1, 5, 5, 5, 5, 5, 5,
439 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
440 5, 5, 1, 0, 10, 0, 0, 0, 125, 0,
441 0, 0, 0, 120, 119, 0, 0, 119, 0, 0,
442 124, 0, 0, 0, 0, 0, 0, 1, 1, 0,
443 13, 0, 0, 0, 125, 0, 0, 0, 0, 120,
444 119, 0, 0, 119, 0, 0, 124, 0, 0, 0,
445 0, 0, 0, 1, 1, 0, 2, 0, 0, 0,
447 125, 0, 0, 0, 0, 120, 119, 0, 0, 119,
448 0, 0, 124, 0, 0, 0, 0, 0, 0, 1,
449 1, 4, 3, 4, 4, 4, 4, 4, 4, 4,
450 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
451 4, 4, 1, 95, 128, 129, 131, 130, 0, 118,
452 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
453 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
454 118, 118, 118, 118, 103, 119, 122, 0, 119, 123,
455 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458 0, 0, 108, 107, 84, 114, 0, 0, 133, 134,
459 78, 134, 79, 80, 134, 134, 134, 0, 118, 118,
460 0, 0, 139, 144, 141, 146, 146, 146, 146, 146,
461 145, 17, 17, 17, 17, 17, 17, 17, 17, 17,
462 17, 17, 17, 17, 17, 17, 0, 0, 0, 5,
463 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
464 5, 0, 0, 0, 119, 122, 0, 119, 123, 121,
465 0, 0, 0, 0, 0, 0, 0, 0, 119, 122,
466 0, 119, 123, 121, 0, 0, 0, 0, 0, 0,
467 0, 0, 119, 122, 0, 119, 123, 121, 0, 0,
469 0, 0, 0, 4, 4, 4, 4, 4, 4, 4,
470 4, 4, 4, 4, 4, 4, 4, 0, 119, 69,
471 118, 118, 118, 118, 25, 118, 118, 118, 118, 118,
472 22, 118, 118, 118, 118, 118, 118, 118, 118, 118,
473 118, 118, 24, 118, 118, 0, 0, 0, 0, 0,
474 0, 0, 46, 0, 0, 0, 0, 0, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 126, 0, 0,
476 109, 0, 127, 0, 0, 0, 74, 77, 134, 134,
477 134, 134, 0, 141, 146, 146, 146, 146, 145, 145,
478 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
480 17, 17, 17, 17, 17, 17, 0, 0, 0, 0,
481 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
482 0, 119, 0, 0, 0, 0, 126, 0, 0, 0,
483 0, 0, 127, 0, 0, 0, 0, 0, 0, 119,
484 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
485 127, 0, 0, 0, 0, 0, 0, 119, 0, 0,
486 0, 0, 126, 0, 0, 0, 0, 0, 127, 0,
487 0, 0, 0, 0, 4, 4, 4, 4, 4, 4,
488 4, 4, 4, 4, 4, 4, 4, 4, 4, 118,
489 118, 28, 118, 118, 20, 118, 118, 118, 118, 19,
491 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
492 118, 118, 44, 0, 60, 0, 41, 0, 0, 40,
493 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494 0, 0, 0, 134, 134, 134, 134, 14, 0, 137,
495 20, 146, 19, 145, 145, 17, 17, 17, 17, 16,
496 17, 20, 19, 0, 0, 5, 5, 5, 5, 20,
497 19, 0, 0, 20, 19, 0, 0, 20, 19, 0,
498 0, 4, 4, 4, 4, 118, 118, 71, 118, 118,
499 118, 118, 118, 118, 118, 118, 70, 112, 118, 118,
500 118, 73, 118, 118, 118, 118, 118, 118, 54, 0,
502 0, 0, 0, 0, 38, 64, 0, 0, 0, 45,
503 0, 0, 51, 0, 0, 134, 134, 81, 76, 146,
504 145, 145, 17, 17, 0, 0, 5, 5, 0, 0,
505 0, 0, 0, 0, 4, 4, 118, 118, 118, 118,
506 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
507 118, 56, 118, 118, 118, 118, 0, 0, 0, 0,
508 37, 0, 0, 0, 0, 61, 0, 47, 134, 134,
509 140, 145, 145, 17, 17, 0, 0, 5, 5, 0,
510 0, 0, 0, 0, 0, 4, 4, 118, 118, 118,
511 118, 118, 118, 118, 118, 118, 113, 118, 59, 118,
513 118, 118, 118, 32, 23, 118, 118, 118, 0, 0,
514 0, 0, 48, 0, 0, 0, 0, 0, 8, 17,
515 8, 5, 5, 0, 8, 0, 8, 0, 8, 4,
516 4, 21, 118, 118, 118, 27, 118, 118, 118, 118,
517 31, 118, 118, 118, 29, 118, 118, 58, 67, 0,
518 0, 66, 63, 62, 43, 0, 7, 7, 7, 7,
519 7, 4, 118, 118, 118, 118, 36, 118, 118, 118,
520 30, 68, 118, 55, 42, 0, 0, 26, 118, 118,
521 34, 52, 118, 118, 57, 50, 49, 118, 35, 53,
526 static yyconst flex_int32_t yy_ec
[256] =
528 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
529 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
530 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
531 1, 5, 6, 7, 8, 9, 10, 11, 12, 1,
532 1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
533 21, 21, 21, 21, 21, 22, 22, 23, 1, 24,
534 25, 26, 1, 27, 28, 29, 28, 28, 30, 28,
535 31, 32, 33, 31, 31, 34, 31, 35, 36, 37,
536 31, 31, 38, 31, 31, 31, 31, 39, 31, 31,
537 1, 40, 1, 1, 41, 1, 42, 43, 44, 45,
539 46, 47, 48, 49, 50, 31, 31, 51, 52, 53,
540 54, 55, 56, 57, 58, 59, 60, 61, 31, 62,
541 63, 31, 1, 64, 1, 65, 1, 1, 1, 1,
542 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
545 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
546 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 static yyconst flex_int32_t yy_meta
[66] =
560 1, 1, 2, 1, 1, 1, 3, 1, 4, 1,
561 1, 1, 1, 1, 1, 5, 1, 1, 6, 6,
562 6, 6, 7, 1, 1, 1, 8, 9, 9, 9,
563 10, 10, 10, 10, 10, 10, 10, 10, 10, 1,
564 11, 9, 9, 9, 9, 9, 9, 10, 10, 10,
565 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
569 static yyconst flex_int16_t yy_base
[1251] =
571 0, 64, 88, 70, 153, 75, 218, 82, 283, 113,
572 348, 117, 109, 412, 434, 121, 499, 130, 564, 135,
573 629, 140, 4665, 7097, 693, 7097, 697, 4639, 63, 7097,
574 385, 4638, 56, 4648, 58, 686, 7097, 696, 703, 60,
575 750, 780, 785, 72, 83, 124, 703, 797, 767, 825,
576 765, 759, 769, 833, 63, 766, 848, 856, 851, 422,
577 864, 862, 871, 838, 4623, 848, 803, 898, 819, 7097,
578 902, 7097, 906, 84, 898, 4570, 920, 929, 0, 935,
579 4553, 405, 951, 828, 941, 956, 909, 0, 7097, 4573,
580 689, 4563, 965, 969, 1004, 965, 4550, 1066, 1131, 991,
582 995, 4529, 7097, 990, 1009, 1077, 4549, 87, 1001, 0,
583 0, 791, 1032, 1066, 1180, 1003, 4547, 1242, 1307, 1013,
584 878, 426, 7097, 894, 1111, 1010, 1105, 1160, 1370, 1129,
585 959, 1432, 1497, 1057, 1098, 974, 7097, 1032, 1163, 1052,
586 1218, 1276, 1560, 1300, 1149, 1622, 1687, 1157, 1182, 1041,
587 7097, 1101, 1185, 1116, 1266, 1337, 1750, 1306, 1209, 1812,
588 1877, 1225, 1259, 0, 7097, 4567, 880, 4557, 1254, 1356,
589 1926, 1369, 4544, 1988, 2053, 1213, 1287, 1297, 1346, 7097,
590 7097, 1168, 7097, 0, 0, 1344, 1360, 1374, 1398, 7097,
591 7097, 7097, 4555, 7097, 7097, 1406, 1443, 7097, 7097, 1448,
593 7097, 0, 4532, 4512, 4518, 1136, 4510, 4512, 658, 4508,
594 1425, 105, 883, 922, 4514, 727, 4517, 4508, 4532, 7097,
595 1505, 1174, 1466, 7097, 1185, 0, 4503, 4513, 4502, 1179,
596 816, 1292, 685, 947, 4498, 22, 4498, 4491, 1109, 7097,
597 7097, 7097, 7097, 1252, 4526, 4525, 1406, 4540, 1525, 1533,
598 1443, 1543, 1467, 1544, 1549, 1560, 1562, 7097, 7097, 7097,
599 7097, 1593, 1290, 7097, 1300, 1366, 1382, 1513, 1449, 4492,
600 4492, 1482, 4502, 4501, 4498, 1349, 4483, 4476, 1162, 1582,
601 1616, 7097, 1639, 4512, 1630, 0, 0, 4481, 4483, 1199,
602 1321, 4523, 1638, 1515, 1661, 1665, 0, 7097, 1265, 0,
604 0, 4505, 1652, 1698, 1704, 4458, 4457, 1716, 1391, 1661,
605 0, 1472, 2100, 1543, 2147, 2212, 2277, 1607, 4446, 4455,
606 4454, 1744, 909, 1674, 0, 1736, 0, 1687, 1823, 1828,
607 4453, 4452, 1885, 1510, 1778, 0, 1710, 2324, 1563, 2371,
608 2436, 2501, 1753, 1536, 7097, 1597, 1799, 1856, 1601, 1612,
609 1737, 1756, 1851, 2564, 1905, 1778, 1784, 2004, 1894, 1918,
610 1652, 1954, 2608, 1964, 2655, 2720, 2785, 1805, 1862, 1681,
611 7097, 1718, 1926, 1946, 1772, 1828, 1907, 1975, 2016, 2848,
612 2026, 1960, 1981, 2070, 2013, 2082, 1858, 2091, 2892, 2037,
613 2939, 3004, 3069, 2078, 2103, 1978, 7097, 2018, 2128, 2134,
615 2039, 2084, 2111, 2121, 2163, 3132, 2293, 2136, 2301, 2387,
616 2172, 2174, 2123, 2305, 3176, 2194, 3223, 3288, 3353, 2200,
617 2205, 0, 7097, 1321, 0, 0, 4489, 2299, 2382, 2310,
618 4450, 4449, 2501, 2160, 2341, 0, 2314, 3400, 1735, 3447,
619 3512, 3577, 2345, 2416, 2403, 2410, 2513, 2517, 2529, 0,
620 4464, 4441, 4445, 4441, 4438, 4445, 4367, 4358, 4362, 786,
621 4353, 4361, 1051, 4369, 4353, 4359, 4360, 4352, 4364, 4348,
622 4347, 4362, 4354, 4357, 7097, 2533, 2180, 2537, 2550, 2394,
623 0, 4348, 4350, 4358, 4347, 2249, 4336, 4355, 4346, 4335,
624 4342, 4340, 4345, 4331, 4330, 4330, 4327, 4343, 4335, 4342,
626 1390, 4371, 7097, 7097, 4357, 7097, 1441, 4354, 2564, 2566,
627 2579, 2581, 2583, 2584, 2592, 2624, 2600, 2334, 4332, 4333,
628 4324, 4348, 7097, 2663, 0, 0, 4304, 4297, 4304, 4293,
629 2598, 2677, 4294, 4291, 2785, 2308, 2668, 2681, 2509, 3624,
630 1921, 4331, 1937, 3671, 3736, 4283, 4290, 4287, 1754, 2690,
631 4288, 4282, 2797, 2339, 2694, 2801, 2557, 3783, 2610, 3830,
632 3895, 2826, 2809, 2622, 2834, 2615, 2854, 2868, 2880, 3958,
633 2920, 2829, 2926, 4005, 4070, 2888, 2922, 2832, 2955, 2912,
634 2967, 2977, 3085, 4133, 3104, 2894, 3110, 4180, 4245, 3126,
635 3087, 2914, 3153, 3096, 3099, 3165, 3173, 4308, 3119, 2979,
637 3160, 4355, 4420, 3193, 4283, 4280, 3223, 2345, 2973, 3169,
638 2842, 4467, 2011, 4320, 2129, 4514, 4579, 3235, 3239, 0,
639 4277, 4276, 4274, 4266, 4282, 4276, 4280, 4277, 4268, 4264,
640 0, 4271, 4271, 4273, 4257, 4264, 4197, 4201, 4199, 4199,
641 4179, 4197, 0, 4186, 4185, 4182, 4183, 4174, 4186, 4172,
642 4171, 4175, 7097, 4183, 4174, 4177, 4166, 4178, 4170, 783,
643 4176, 4162, 4162, 4168, 4161, 4173, 2584, 7097, 0, 4203,
644 7097, 2637, 7097, 0, 4191, 4206, 2870, 3116, 3364, 3365,
645 3373, 3194, 2423, 0, 4160, 4165, 4164, 4163, 3108, 3374,
646 3245, 3251, 4162, 4161, 2794, 0, 0, 4190, 2819, 0,
648 0, 4644, 4193, 4709, 4149, 2558, 4128, 4126, 1733, 1818,
649 3255, 3259, 4124, 4123, 3158, 0, 4774, 4161, 4839, 4117,
650 3380, 3388, 3391, 3428, 3475, 3607, 2638, 2704, 3401, 3463,
651 3609, 3615, 2714, 2965, 4904, 3094, 4969, 4115, 3473, 3477,
652 3437, 3593, 3617, 3622, 3178, 3198, 3497, 3595, 3624, 3699,
653 3247, 3279, 5034, 3431, 5099, 4110, 3485, 3688, 3602, 3605,
654 3811, 3817, 3281, 3382, 3701, 3711, 3862, 3986, 3465, 3481,
655 5164, 3630, 5229, 4108, 3639, 3679, 4110, 4105, 2921, 0,
656 0, 4138, 3103, 0, 0, 5294, 4142, 5359, 4098, 4088,
657 4093, 0, 4086, 1855, 0, 4087, 4101, 4082, 4097, 0,
659 4089, 4088, 4084, 4027, 4009, 4022, 4013, 4005, 4005, 1006,
660 4017, 4015, 7097, 4018, 7097, 4013, 7097, 4015, 4012, 7097,
661 7097, 4001, 4000, 3996, 3965, 3950, 3942, 3925, 3931, 3915,
662 3923, 3906, 3842, 3976, 4148, 4016, 3800, 7097, 3487, 0,
663 0, 3834, 0, 2580, 3640, 0, 0, 5424, 1059, 7097,
664 3878, 7097, 7097, 1332, 1986, 0, 0, 5489, 1540, 3499,
665 3713, 3668, 1097, 3717, 3721, 3676, 1231, 3725, 3727, 3682,
666 1504, 0, 0, 3756, 3158, 3821, 3796, 0, 3780, 3773,
667 3767, 3764, 3757, 3689, 3680, 3662, 0, 3649, 3643, 3619,
668 3623, 0, 3580, 3582, 3566, 3569, 3530, 3468, 0, 3428,
670 3400, 3386, 3394, 3388, 7097, 7097, 3370, 3365, 3358, 7097,
671 3352, 3340, 7097, 3352, 3329, 3975, 4150, 3851, 3852, 3874,
672 3836, 3948, 1800, 1908, 1438, 1810, 2247, 2260, 1174, 1745,
673 1870, 2063, 2494, 2496, 2778, 2831, 3313, 3820, 3318, 3227,
674 3222, 3181, 3127, 3114, 3102, 3094, 3083, 3070, 3043, 2951,
675 2947, 0, 2936, 2919, 2926, 2868, 2816, 2797, 2770, 2652,
676 7097, 2629, 2634, 2629, 2553, 7097, 2533, 7097, 3958, 3960,
677 3882, 2382, 3857, 1295, 2643, 772, 1490, 3211, 3599, 942,
678 1965, 2950, 3091, 3458, 3588, 3841, 3990, 2518, 2475, 2462,
679 2384, 2368, 2350, 2349, 2332, 2324, 0, 2289, 0, 2268,
681 2265, 2236, 2164, 0, 0, 2129, 2130, 2112, 2102, 2075,
682 2051, 2025, 7097, 2027, 2018, 1972, 1947, 1709, 1986, 2898,
683 1978, 3418, 1947, 3885, 4030, 4039, 4033, 4044, 4049, 3625,
684 1931, 0, 1842, 1816, 1765, 0, 1728, 1728, 1694, 1650,
685 0, 1585, 1556, 1522, 0, 1476, 1429, 0, 7097, 1375,
686 1360, 7097, 7097, 7097, 7097, 1321, 7097, 0, 3846, 3868,
687 3969, 0, 1275, 1198, 1185, 1145, 0, 1117, 1071, 1024,
688 0, 0, 926, 0, 7097, 869, 827, 0, 752, 675,
689 0, 367, 356, 61, 0, 7097, 7097, 23, 0, 0,
690 0, 0, 0, 7097, 5554, 5560, 5570, 5578, 5589, 5593,
692 5601, 5608, 5619, 5630, 5641, 5652, 5659, 5670, 5681, 5692,
693 5703, 5714, 5725, 5736, 5747, 5758, 5769, 5780, 5791, 5802,
694 5813, 5824, 5835, 5846, 5857, 5868, 5874, 5884, 5890, 5896,
695 5901, 5909, 5918, 5929, 5935, 5939, 5945, 5952, 5963, 5974,
696 5985, 5996, 6007, 6018, 6029, 6040, 6051, 6062, 6073, 6084,
697 6095, 6106, 6117, 6128, 6139, 6150, 6161, 6172, 6183, 6194,
698 6205, 6211, 6216, 6222, 6231, 6242, 6253, 6260, 6268, 6279,
699 6285, 6291, 6297, 6304, 6315, 6326, 6337, 6348, 6359, 6366,
700 6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454, 6465, 6476,
701 6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564, 6575, 6586,
703 6597, 6608, 6619, 6625, 6636, 6647, 6658, 6665, 6673, 6684,
704 6690, 6696, 6703, 6714, 6725, 6736, 6747, 6758, 6765, 6776,
705 6787, 6798, 6809, 6820, 6831, 6842, 6853, 6864, 6875, 6886,
706 6897, 6908, 6919, 6930, 6941, 6952, 6963, 6974, 6985, 6996,
707 7007, 7018, 7024, 7032, 7043, 7049, 7056, 7067, 7074, 7085
710 static yyconst flex_int16_t yy_def
[1251] =
712 1094, 1, 1, 3, 1094, 5, 1094, 7, 1094, 9,
713 1094, 11, 9, 9, 1094, 15, 1094, 17, 1094, 19,
714 1094, 21, 1094, 1094, 1094, 1094, 1094, 1094, 1095, 1094,
715 1096, 1094, 1094, 1097, 1094, 1094, 1094, 1094, 1094, 1094,
716 1094, 1094, 1094, 1094, 1094, 1094, 1098, 1098, 1098, 1098,
717 1098, 1098, 1098, 1098, 1094, 1094, 1094, 1094, 1099, 1094,
718 1094, 1094, 39, 1094, 1094, 1098, 1094, 1094, 1099, 1094,
719 1094, 1094, 1094, 1095, 1100, 1097, 1094, 1101, 41, 1094,
720 1094, 1102, 1102, 1102, 1094, 1094, 1099, 1103, 1094, 1103,
721 1104, 1105, 1103, 1103, 1103, 95, 1103, 1106, 1106, 1103,
723 1103, 1103, 1094, 1094, 41, 1094, 1107, 1107, 1094, 1108,
724 1108, 1109, 1108, 1108, 1108, 115, 1108, 1110, 1110, 1108,
725 1095, 1111, 1094, 1111, 1112, 1113, 1111, 1111, 1111, 129,
726 1111, 1114, 1114, 1111, 1111, 1115, 1094, 1115, 1116, 1117,
727 1115, 1115, 1115, 143, 1115, 1118, 1118, 1115, 1115, 1119,
728 1094, 1119, 1120, 1121, 1119, 1119, 1119, 157, 1119, 1122,
729 1122, 1119, 1119, 1123, 1094, 1123, 1124, 1125, 1123, 1123,
730 1123, 171, 1123, 1126, 1126, 1123, 1123, 1094, 1094, 1094,
731 1094, 1095, 1094, 1095, 1127, 1127, 1127, 1127, 1127, 1094,
732 1094, 1094, 1128, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
734 1094, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
735 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1094, 1094,
736 1094, 1094, 1094, 1094, 1094, 1130, 1094, 1094, 1094, 1094,
737 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
738 1094, 1094, 1094, 1094, 1094, 1131, 1132, 1133, 1132, 1132,
739 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1094, 1094, 1094,
740 1094, 1094, 1134, 1094, 1134, 1134, 1134, 1134, 1094, 1129,
741 1129, 1129, 1129, 1129, 1129, 1094, 1094, 1094, 1094, 1094,
742 1094, 1094, 1094, 1135, 1135, 1136, 1137, 1137, 1137, 1137,
743 1138, 1133, 1138, 1138, 1094, 1094, 1139, 1094, 1140, 1139,
745 1140, 1141, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
746 1139, 1139, 1139, 1139, 1142, 1094, 1142, 1139, 1139, 1094,
747 1094, 1094, 1131, 1094, 1143, 1144, 1143, 1143, 1143, 1143,
748 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145,
749 1094, 1145, 1143, 1146, 1094, 1146, 1147, 1147, 1146, 1147,
750 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
751 1146, 1146, 1146, 1146, 1149, 1094, 1149, 1146, 1146, 1150,
752 1094, 1150, 1151, 1151, 1150, 1151, 1152, 1152, 1150, 1150,
753 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
754 1153, 1094, 1153, 1150, 1150, 1154, 1094, 1154, 1155, 1155,
756 1154, 1155, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154,
757 1154, 1154, 1154, 1154, 1154, 1154, 1157, 1094, 1157, 1154,
758 1154, 1158, 1094, 1159, 1158, 1159, 1160, 1158, 1158, 1158,
759 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1161,
760 1094, 1161, 1158, 1094, 1162, 1162, 1162, 1162, 1094, 1163,
761 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
762 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
763 1163, 1163, 1163, 1163, 1094, 1094, 1094, 1094, 1094, 1094,
764 1164, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
765 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
767 1165, 1166, 1094, 1094, 1094, 1094, 1167, 1168, 1169, 1169,
768 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1163, 1163,
769 1094, 1171, 1094, 1171, 1172, 1173, 1173, 1173, 1173, 1173,
770 1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
771 1176, 1177, 1178, 1179, 1094, 1175, 1094, 1094, 1180, 1181,
772 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183,
773 1094, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
774 1185, 1186, 1187, 1188, 1094, 1189, 1189, 1189, 1189, 1189,
775 1189, 1189, 1189, 1189, 1190, 1191, 1192, 1193, 1094, 1194,
776 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1196,
778 1197, 1198, 1094, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
779 1199, 1199, 1200, 1201, 1202, 1203, 1094, 1094, 1094, 1204,
780 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
781 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
782 1204, 1204, 1204, 1204, 1204, 1094, 1094, 1094, 1094, 1094,
783 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
784 1094, 1094, 1094, 1094, 1094, 1094, 1205, 1094, 1205, 1206,
785 1094, 1207, 1094, 1207, 1208, 1094, 1209, 1209, 1209, 1209,
786 1209, 1209, 1210, 1211, 1212, 1212, 1212, 1212, 1213, 1213,
787 1214, 1214, 1214, 1214, 1215, 1214, 1215, 1216, 1217, 1214,
789 1217, 1218, 1214, 1094, 704, 1214, 1094, 1094, 1219, 1219,
790 1220, 1220, 1220, 1220, 1221, 1220, 1222, 1220, 1094, 719,
791 1223, 1223, 1223, 1223, 1224, 1224, 1223, 1224, 1225, 1225,
792 1226, 1226, 1223, 1226, 1227, 1223, 1094, 737, 1228, 1228,
793 1228, 1228, 1229, 1229, 1228, 1229, 1230, 1230, 1231, 1231,
794 1228, 1231, 1232, 1228, 1094, 755, 1233, 1233, 1233, 1233,
795 1234, 1234, 1233, 1234, 1235, 1235, 1236, 1236, 1233, 1236,
796 1237, 1233, 1094, 773, 1238, 1238, 1238, 1238, 1239, 1238,
797 1239, 1240, 1241, 1238, 1241, 1242, 1238, 1094, 788, 1243,
798 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
800 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
801 1243, 1243, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
802 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
803 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1094, 1245, 1246,
804 1246, 1246, 1246, 1247, 1247, 1248, 1248, 1094, 848, 1094,
805 1248, 1094, 1094, 1249, 1249, 1250, 1250, 1094, 858, 1223,
806 1223, 737, 737, 1228, 1228, 755, 755, 1233, 1233, 773,
807 773, 1238, 1238, 788, 788, 1243, 1243, 1243, 1243, 1243,
808 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
809 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094,
811 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
812 1094, 1094, 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1246,
813 1247, 1247, 848, 848, 1249, 1249, 858, 858, 737, 737,
814 755, 755, 773, 773, 788, 788, 1243, 1243, 1243, 1243,
815 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
816 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1094,
817 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1244, 1244,
818 1094, 1247, 1247, 848, 848, 1249, 1249, 858, 858, 737,
819 737, 755, 755, 773, 773, 788, 788, 1243, 1243, 1243,
820 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
822 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
823 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248,
824 1248, 1250, 1250, 1223, 1223, 1228, 1228, 1233, 1233, 1238,
825 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
826 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
827 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248, 1223, 1228,
828 1233, 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
829 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1243, 1243, 1243,
830 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1243, 1243, 1243,
831 1243, 1243, 1243, 0, 1094, 1094, 1094, 1094, 1094, 1094,
833 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
834 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
835 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
836 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
837 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
838 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
839 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
840 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
841 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
842 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
844 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
845 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
846 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
847 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
848 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094
851 static yyconst flex_int16_t yy_nxt
[7163] =
853 24, 25, 26, 27, 25, 28, 29, 30, 31, 32,
854 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
855 42, 42, 43, 44, 45, 46, 47, 47, 47, 47,
856 47, 47, 48, 47, 48, 47, 48, 48, 47, 24,
857 47, 47, 47, 47, 47, 47, 47, 49, 47, 50,
858 47, 47, 51, 47, 52, 47, 47, 53, 47, 54,
859 47, 47, 47, 55, 56, 57, 191, 58, 57, 183,
860 194, 67, 497, 68, 67, 1093, 85, 219, 86, 85,
861 192, 498, 195, 100, 220, 101, 100, 258, 59, 60,
862 183, 61, 60, 24, 69, 239, 240, 24, 24, 87,
864 24, 62, 184, 62, 63, 24, 102, 241, 242, 292,
865 64, 65, 24, 24, 109, 121, 109, 109, 120, 1092,
866 120, 120, 134, 184, 135, 134, 259, 41, 42, 42,
867 42, 148, 323, 149, 148, 47, 162, 47, 163, 162,
868 47, 176, 47, 177, 176, 66, 464, 47, 243, 244,
869 465, 24, 24, 70, 71, 72, 73, 71, 70, 74,
870 70, 75, 70, 70, 76, 70, 77, 70, 77, 78,
871 70, 79, 80, 80, 80, 70, 81, 70, 70, 82,
872 82, 82, 82, 82, 82, 83, 82, 83, 82, 83,
873 83, 82, 70, 82, 82, 82, 82, 82, 82, 82,
875 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
876 84, 82, 82, 82, 82, 82, 70, 70, 88, 88,
877 89, 90, 88, 88, 91, 88, 88, 88, 88, 92,
878 88, 93, 88, 93, 94, 88, 95, 96, 96, 96,
879 88, 97, 88, 88, 98, 98, 98, 98, 98, 98,
880 98, 98, 98, 98, 98, 98, 98, 88, 98, 98,
881 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
882 98, 98, 98, 98, 98, 99, 98, 98, 98, 98,
883 98, 88, 88, 24, 24, 103, 24, 24, 24, 29,
884 24, 24, 24, 24, 34, 24, 62, 24, 62, 104,
886 24, 105, 106, 106, 106, 24, 65, 24, 24, 107,
887 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
888 107, 107, 24, 107, 107, 107, 107, 107, 107, 107,
889 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
890 108, 107, 107, 107, 107, 107, 24, 24, 110, 110,
891 111, 110, 110, 110, 29, 110, 110, 110, 110, 112,
892 110, 113, 110, 113, 114, 110, 115, 116, 116, 116,
893 110, 117, 110, 110, 118, 118, 118, 118, 118, 118,
894 118, 118, 118, 118, 118, 118, 118, 110, 118, 118,
895 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
897 118, 118, 118, 118, 118, 119, 118, 118, 118, 118,
898 118, 110, 110, 109, 1091, 109, 109, 186, 121, 187,
899 246, 188, 189, 269, 1090, 269, 269, 292, 345, 346,
900 41, 42, 42, 42, 122, 122, 123, 124, 122, 122,
901 125, 122, 122, 122, 122, 126, 122, 127, 122, 127,
902 128, 122, 129, 130, 130, 130, 122, 131, 122, 122,
903 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
904 132, 132, 132, 122, 132, 132, 132, 132, 132, 132,
905 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
906 132, 133, 132, 132, 132, 132, 132, 122, 122, 136,
908 136, 137, 138, 136, 136, 139, 136, 136, 136, 136,
909 140, 136, 141, 136, 141, 142, 136, 143, 144, 144,
910 144, 136, 145, 136, 136, 146, 146, 146, 146, 146,
911 146, 146, 146, 146, 146, 146, 146, 146, 136, 146,
912 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
913 146, 146, 146, 146, 146, 146, 147, 146, 146, 146,
914 146, 146, 136, 136, 150, 150, 151, 152, 150, 150,
915 153, 150, 150, 150, 150, 154, 150, 155, 150, 155,
916 156, 150, 157, 158, 158, 158, 150, 159, 150, 150,
917 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
919 160, 160, 160, 150, 160, 160, 160, 160, 160, 160,
920 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
921 160, 161, 160, 160, 160, 160, 160, 150, 150, 164,
922 164, 165, 166, 164, 164, 167, 164, 164, 164, 164,
923 168, 164, 169, 164, 169, 170, 164, 171, 172, 172,
924 172, 164, 173, 164, 164, 174, 174, 174, 174, 174,
925 174, 174, 174, 174, 174, 174, 174, 174, 164, 174,
926 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
927 174, 174, 174, 174, 174, 174, 175, 174, 174, 174,
928 174, 174, 164, 164, 178, 300, 178, 178, 178, 180,
930 178, 178, 196, 458, 197, 197, 197, 197, 459, 179,
931 198, 245, 196, 179, 197, 197, 197, 197, 246, 1089,
932 199, 200, 200, 200, 200, 248, 492, 201, 301, 202,
933 202, 202, 202, 202, 203, 202, 202, 202, 202, 202,
934 202, 202, 493, 202, 204, 205, 206, 202, 207, 208,
935 209, 202, 210, 211, 212, 213, 202, 214, 202, 215,
936 216, 217, 202, 202, 202, 218, 221, 245, 197, 197,
937 197, 197, 471, 245, 246, 245, 1018, 245, 222, 223,
938 246, 248, 246, 224, 246, 225, 472, 248, 226, 248,
939 260, 248, 222, 325, 292, 223, 221, 193, 197, 197,
941 197, 197, 327, 225, 280, 245, 280, 280, 1088, 223,
942 254, 226, 246, 224, 255, 249, 249, 249, 249, 248,
943 250, 264, 265, 826, 253, 223, 227, 256, 228, 629,
944 261, 229, 827, 245, 230, 231, 232, 233, 234, 235,
945 246, 245, 236, 246, 237, 238, 630, 248, 246, 262,
946 292, 262, 262, 264, 265, 248, 245, 262, 180, 262,
947 262, 487, 268, 246, 179, 269, 180, 269, 269, 488,
948 248, 251, 179, 294, 1087, 266, 267, 252, 196, 227,
949 197, 197, 197, 197, 183, 257, 425, 276, 231, 232,
950 277, 278, 235, 255, 268, 1094, 345, 346, 238, 280,
952 180, 280, 280, 281, 282, 283, 281, 281, 282, 283,
953 281, 264, 265, 202, 270, 1086, 202, 184, 202, 426,
954 271, 272, 273, 274, 466, 275, 467, 202, 202, 202,
955 285, 292, 285, 202, 285, 285, 196, 286, 197, 197,
956 197, 197, 295, 282, 296, 295, 1024, 200, 200, 200,
957 200, 221, 268, 197, 197, 197, 197, 295, 282, 296,
958 295, 345, 346, 468, 223, 469, 246, 549, 224, 293,
959 293, 293, 293, 292, 288, 289, 371, 372, 1085, 290,
960 223, 303, 364, 304, 304, 304, 304, 305, 305, 305,
961 305, 365, 318, 297, 318, 318, 318, 298, 318, 318,
963 297, 494, 324, 297, 324, 324, 495, 297, 200, 200,
964 200, 200, 345, 352, 343, 306, 343, 343, 297, 307,
965 308, 349, 304, 304, 304, 304, 297, 322, 322, 322,
966 322, 325, 309, 310, 371, 372, 320, 311, 325, 312,
967 321, 325, 313, 397, 398, 325, 309, 895, 328, 310,
968 329, 329, 329, 329, 371, 378, 325, 312, 368, 345,
969 369, 368, 896, 375, 325, 313, 297, 297, 897, 297,
970 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
971 297, 1084, 297, 297, 330, 330, 330, 330, 316, 297,
972 297, 297, 633, 221, 634, 322, 322, 322, 322, 368,
974 345, 369, 368, 397, 398, 297, 223, 345, 346, 315,
975 224, 924, 331, 345, 348, 501, 332, 349, 397, 404,
976 502, 353, 223, 354, 354, 354, 354, 401, 1083, 297,
977 297, 297, 297, 503, 297, 297, 297, 297, 297, 297,
978 297, 297, 297, 297, 297, 297, 365, 297, 297, 930,
979 350, 371, 372, 316, 297, 297, 297, 344, 394, 371,
980 395, 394, 345, 346, 344, 371, 374, 344, 501, 375,
981 297, 344, 390, 502, 183, 1082, 317, 454, 355, 355,
982 355, 355, 344, 394, 371, 395, 394, 397, 400, 455,
983 344, 401, 477, 477, 297, 297, 333, 1081, 329, 329,
985 329, 329, 376, 480, 480, 480, 356, 184, 334, 335,
986 357, 397, 398, 336, 443, 337, 443, 443, 338, 980,
987 371, 372, 334, 365, 402, 335, 420, 397, 421, 420,
988 485, 486, 416, 337, 379, 1080, 380, 380, 380, 380,
989 529, 338, 325, 325, 325, 325, 325, 325, 530, 325,
990 325, 325, 325, 325, 325, 325, 325, 1079, 325, 325,
991 420, 397, 421, 420, 341, 325, 325, 325, 397, 398,
992 428, 300, 429, 429, 429, 429, 504, 505, 371, 372,
993 391, 325, 405, 932, 406, 406, 406, 406, 443, 423,
994 443, 443, 264, 265, 381, 381, 381, 381, 178, 1020,
996 178, 178, 264, 265, 301, 325, 325, 325, 325, 325,
997 325, 325, 325, 179, 325, 325, 325, 325, 325, 325,
998 325, 325, 382, 325, 325, 1078, 383, 425, 370, 341,
999 325, 325, 325, 489, 396, 370, 246, 490, 370, 397,
1000 398, 396, 370, 292, 396, 315, 325, 444, 396, 444,
1001 444, 491, 342, 370, 292, 407, 407, 407, 407, 396,
1002 426, 370, 445, 445, 445, 445, 1077, 396, 264, 265,
1003 325, 325, 345, 346, 430, 430, 430, 430, 446, 446,
1004 446, 446, 925, 408, 264, 265, 358, 409, 354, 354,
1005 354, 354, 447, 447, 447, 447, 668, 422, 359, 360,
1007 485, 521, 431, 361, 422, 362, 432, 422, 363, 536,
1008 536, 422, 359, 1076, 245, 360, 448, 448, 448, 448,
1009 1075, 246, 422, 362, 200, 200, 200, 200, 248, 669,
1010 422, 363, 344, 344, 345, 346, 344, 344, 344, 344,
1011 344, 344, 344, 344, 344, 344, 344, 673, 344, 344,
1012 269, 245, 269, 269, 366, 344, 344, 344, 246, 221,
1013 292, 197, 197, 197, 197, 248, 200, 200, 200, 200,
1014 461, 344, 223, 1074, 462, 245, 224, 449, 463, 478,
1015 674, 478, 246, 976, 479, 479, 479, 479, 223, 248,
1016 539, 539, 539, 449, 1019, 344, 344, 344, 344, 345,
1018 346, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1019 344, 344, 292, 344, 344, 264, 265, 512, 513, 366,
1020 344, 344, 344, 476, 476, 476, 476, 461, 554, 554,
1021 246, 462, 1073, 245, 449, 520, 344, 292, 345, 346,
1022 246, 245, 367, 509, 509, 509, 509, 248, 246, 541,
1023 449, 245, 245, 417, 542, 248, 934, 245, 246, 246,
1024 344, 344, 371, 372, 246, 248, 248, 1072, 245, 501,
1025 245, 248, 518, 531, 559, 246, 384, 246, 380, 380,
1026 380, 380, 248, 280, 248, 280, 280, 514, 385, 386,
1027 340, 510, 928, 387, 262, 388, 262, 262, 389, 345,
1029 346, 511, 385, 345, 346, 386, 1071, 515, 318, 179,
1030 318, 318, 517, 388, 345, 348, 516, 281, 282, 283,
1031 281, 389, 370, 370, 371, 372, 370, 370, 370, 370,
1032 370, 370, 370, 370, 370, 370, 370, 1070, 370, 370,
1033 281, 282, 283, 281, 392, 370, 370, 370, 524, 524,
1034 524, 524, 523, 246, 345, 346, 293, 293, 293, 293,
1035 292, 370, 295, 282, 296, 295, 295, 282, 296, 295,
1036 305, 305, 305, 305, 537, 324, 537, 324, 324, 538,
1037 538, 538, 538, 371, 372, 370, 370, 370, 370, 371,
1038 372, 370, 370, 370, 370, 370, 370, 370, 370, 370,
1040 370, 370, 1069, 370, 370, 330, 330, 330, 330, 392,
1041 370, 370, 370, 1018, 308, 1057, 304, 304, 304, 304,
1042 371, 372, 305, 305, 305, 305, 370, 310, 557, 557,
1043 557, 311, 393, 532, 535, 535, 535, 535, 325, 345,
1044 352, 613, 193, 310, 1068, 532, 614, 327, 349, 532,
1045 370, 370, 397, 398, 343, 292, 343, 343, 345, 352,
1046 221, 532, 322, 322, 322, 322, 410, 349, 406, 406,
1047 406, 406, 1067, 223, 371, 372, 292, 224, 411, 412,
1048 345, 346, 854, 413, 1066, 414, 345, 346, 415, 223,
1049 981, 555, 411, 555, 365, 412, 556, 556, 556, 556,
1051 709, 345, 348, 414, 710, 349, 368, 345, 369, 368,
1052 1065, 415, 396, 396, 397, 398, 396, 396, 396, 396,
1053 396, 396, 396, 396, 396, 396, 396, 563, 396, 396,
1054 371, 374, 292, 564, 418, 396, 396, 396, 350, 333,
1055 292, 329, 329, 329, 329, 974, 330, 330, 330, 330,
1056 315, 396, 335, 345, 346, 977, 336, 550, 345, 348,
1057 371, 372, 349, 368, 345, 369, 368, 855, 335, 355,
1058 355, 355, 355, 550, 1064, 396, 396, 396, 396, 397,
1059 398, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1060 396, 396, 1063, 396, 396, 350, 345, 346, 879, 418,
1062 396, 396, 396, 553, 553, 553, 553, 345, 346, 371,
1063 378, 880, 566, 566, 550, 982, 396, 881, 375, 391,
1064 345, 346, 419, 355, 355, 355, 355, 696, 371, 374,
1065 550, 567, 375, 567, 562, 1031, 568, 568, 568, 568,
1066 396, 396, 433, 700, 429, 429, 429, 429, 371, 374,
1067 562, 1023, 375, 975, 434, 435, 345, 346, 315, 436,
1068 697, 437, 371, 372, 438, 376, 345, 346, 434, 1025,
1069 571, 435, 569, 569, 569, 572, 701, 371, 378, 437,
1070 397, 398, 1021, 371, 372, 376, 375, 438, 422, 422,
1071 1019, 422, 422, 422, 422, 422, 422, 422, 422, 422,
1073 422, 422, 422, 1056, 422, 422, 345, 346, 292, 577,
1074 441, 422, 422, 422, 365, 371, 372, 780, 371, 372,
1075 397, 398, 565, 565, 565, 565, 1055, 422, 371, 372,
1076 578, 580, 580, 562, 381, 381, 381, 381, 926, 371,
1077 372, 397, 398, 585, 381, 381, 381, 381, 586, 562,
1078 781, 422, 422, 422, 422, 576, 422, 422, 422, 422,
1079 422, 422, 422, 422, 422, 422, 422, 422, 1054, 422,
1080 422, 576, 371, 372, 1053, 441, 422, 422, 422, 394,
1081 371, 395, 394, 1052, 371, 372, 397, 400, 579, 579,
1082 579, 579, 422, 371, 372, 581, 1051, 581, 442, 576,
1084 582, 582, 582, 582, 394, 371, 395, 394, 983, 583,
1085 583, 583, 391, 397, 404, 576, 422, 422, 540, 540,
1086 540, 540, 401, 397, 404, 397, 398, 540, 540, 540,
1087 397, 400, 401, 1050, 401, 784, 397, 400, 397, 398,
1088 401, 540, 540, 540, 540, 540, 540, 297, 297, 1049,
1089 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
1090 297, 297, 1048, 297, 297, 397, 398, 402, 785, 316,
1091 297, 297, 297, 402, 397, 398, 397, 398, 608, 608,
1092 1047, 407, 407, 407, 407, 591, 297, 595, 1046, 595,
1093 594, 594, 596, 596, 596, 596, 397, 398, 477, 477,
1095 599, 420, 397, 421, 420, 600, 420, 397, 421, 420,
1096 297, 297, 297, 297, 1045, 297, 297, 297, 543, 297,
1097 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
1098 297, 297, 297, 297, 297, 297, 297, 297, 544, 544,
1099 544, 544, 544, 544, 544, 544, 544, 544, 544, 544,
1100 544, 297, 544, 544, 544, 544, 544, 544, 544, 544,
1101 544, 544, 544, 544, 544, 544, 544, 544, 544, 544,
1102 544, 544, 544, 544, 544, 297, 297, 297, 297, 1044,
1103 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
1104 297, 297, 978, 297, 297, 397, 398, 340, 650, 316,
1106 297, 297, 297, 397, 398, 979, 651, 397, 398, 652,
1107 340, 407, 407, 407, 407, 1043, 297, 430, 430, 430,
1108 430, 1042, 590, 597, 597, 597, 536, 536, 430, 430,
1109 430, 430, 611, 611, 611, 545, 264, 265, 590, 604,
1110 297, 297, 558, 558, 558, 558, 443, 1041, 443, 443,
1111 592, 558, 558, 558, 609, 604, 609, 554, 554, 610,
1112 610, 610, 610, 608, 608, 558, 558, 558, 558, 558,
1113 558, 325, 325, 325, 325, 325, 325, 1040, 325, 325,
1114 325, 325, 325, 325, 325, 325, 1018, 325, 325, 397,
1115 398, 1039, 683, 341, 325, 325, 325, 246, 433, 1038,
1117 429, 429, 429, 429, 292, 593, 593, 593, 593, 1037,
1118 325, 435, 480, 480, 480, 436, 590, 444, 1036, 444,
1119 444, 445, 445, 445, 445, 838, 839, 435, 446, 446,
1120 446, 446, 590, 1035, 325, 325, 325, 325, 325, 325,
1121 325, 325, 507, 325, 325, 325, 325, 325, 325, 325,
1122 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
1123 325, 325, 560, 560, 560, 560, 560, 560, 560, 560,
1124 560, 560, 560, 560, 560, 325, 560, 560, 560, 560,
1125 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
1126 560, 560, 560, 560, 560, 560, 560, 560, 560, 325,
1128 325, 325, 325, 325, 325, 325, 325, 1034, 325, 325,
1129 325, 325, 325, 325, 325, 325, 1033, 325, 325, 607,
1130 607, 607, 607, 341, 325, 325, 325, 539, 539, 539,
1131 604, 447, 447, 447, 447, 448, 448, 448, 448, 984,
1132 325, 985, 618, 417, 618, 417, 604, 619, 619, 619,
1133 619, 476, 476, 476, 476, 479, 479, 479, 479, 561,
1134 850, 851, 449, 1032, 325, 325, 345, 346, 479, 479,
1135 479, 479, 245, 1017, 245, 557, 557, 557, 449, 246,
1136 358, 246, 354, 354, 354, 354, 248, 245, 248, 245,
1137 668, 245, 245, 360, 246, 246, 246, 361, 246, 246,
1139 245, 248, 292, 248, 1016, 248, 248, 246, 245, 360,
1140 345, 346, 325, 246, 248, 246, 670, 345, 346, 677,
1141 292, 716, 248, 669, 345, 346, 570, 570, 570, 570,
1142 921, 678, 245, 566, 566, 570, 570, 570, 679, 246,
1143 345, 346, 680, 673, 689, 682, 248, 1021, 690, 570,
1144 570, 570, 570, 570, 570, 344, 344, 345, 346, 344,
1145 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1146 1015, 344, 344, 681, 724, 1014, 674, 366, 344, 344,
1147 344, 524, 524, 524, 524, 523, 538, 538, 538, 538,
1148 691, 1013, 691, 315, 344, 692, 692, 692, 692, 538,
1150 538, 538, 538, 711, 1012, 711, 345, 726, 712, 712,
1151 712, 712, 556, 556, 556, 556, 345, 346, 344, 344,
1152 344, 344, 345, 346, 344, 344, 573, 344, 344, 344,
1153 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1154 344, 344, 344, 344, 344, 344, 574, 574, 574, 574,
1155 574, 574, 574, 574, 574, 574, 574, 574, 574, 344,
1156 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
1157 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
1158 574, 574, 574, 344, 344, 344, 344, 345, 346, 344,
1159 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1161 696, 344, 344, 535, 535, 535, 535, 366, 344, 344,
1162 344, 345, 346, 1011, 532, 553, 553, 553, 553, 556,
1163 556, 556, 556, 986, 344, 700, 550, 440, 345, 346,
1164 532, 345, 730, 697, 371, 372, 345, 346, 1010, 721,
1165 727, 721, 550, 575, 722, 722, 722, 722, 344, 344,
1166 371, 372, 565, 565, 565, 565, 345, 346, 701, 723,
1167 611, 611, 611, 562, 384, 1009, 380, 380, 380, 380,
1168 345, 346, 568, 568, 568, 568, 987, 386, 245, 562,
1169 440, 387, 345, 346, 742, 246, 568, 568, 568, 568,
1170 371, 372, 248, 386, 371, 372, 371, 748, 569, 569,
1172 569, 739, 1020, 739, 1058, 745, 740, 740, 740, 740,
1173 584, 584, 584, 584, 371, 372, 397, 398, 1008, 584,
1174 584, 584, 345, 726, 371, 372, 727, 780, 345, 732,
1175 580, 580, 733, 584, 584, 584, 584, 584, 584, 370,
1176 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
1177 370, 370, 370, 370, 1026, 370, 370, 371, 372, 728,
1178 781, 392, 370, 370, 370, 734, 760, 345, 732, 371,
1179 372, 1007, 741, 579, 579, 579, 579, 1006, 370, 371,
1180 372, 397, 766, 1005, 576, 582, 582, 582, 582, 1004,
1181 763, 610, 610, 610, 610, 582, 582, 582, 582, 391,
1183 576, 1003, 370, 370, 370, 370, 371, 372, 370, 370,
1184 587, 370, 370, 370, 370, 370, 370, 370, 370, 370,
1185 370, 370, 370, 370, 370, 370, 370, 370, 370, 370,
1186 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
1187 588, 588, 588, 370, 588, 588, 588, 588, 588, 588,
1188 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
1189 588, 588, 588, 588, 588, 588, 588, 370, 370, 370,
1190 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
1191 370, 370, 370, 370, 1002, 370, 370, 371, 372, 397,
1192 398, 392, 370, 370, 370, 1027, 345, 346, 397, 398,
1194 573, 397, 398, 583, 583, 583, 371, 744, 370, 784,
1195 745, 1001, 371, 750, 594, 594, 751, 596, 596, 596,
1196 596, 397, 762, 246, 245, 763, 1000, 589, 397, 398,
1197 292, 246, 370, 370, 397, 398, 999, 759, 248, 757,
1198 391, 757, 785, 746, 758, 758, 758, 758, 410, 752,
1199 406, 406, 406, 406, 998, 397, 398, 844, 764, 997,
1200 325, 412, 397, 768, 670, 413, 769, 397, 398, 716,
1201 996, 593, 593, 593, 593, 397, 398, 412, 397, 398,
1202 371, 372, 590, 596, 596, 596, 596, 610, 610, 610,
1203 610, 597, 597, 597, 598, 598, 598, 598, 590, 770,
1205 371, 744, 245, 598, 598, 598, 775, 440, 775, 246,
1206 936, 776, 776, 776, 776, 1022, 248, 598, 598, 598,
1207 598, 598, 598, 396, 396, 397, 398, 396, 396, 396,
1208 396, 396, 396, 396, 396, 396, 396, 396, 995, 396,
1209 396, 607, 607, 607, 607, 418, 396, 396, 396, 371,
1210 372, 837, 604, 619, 619, 619, 619, 619, 619, 619,
1211 619, 340, 396, 692, 692, 692, 692, 994, 604, 692,
1212 692, 692, 692, 712, 712, 712, 712, 712, 712, 712,
1213 712, 371, 750, 397, 398, 993, 396, 396, 396, 396,
1214 397, 398, 396, 396, 601, 396, 396, 396, 396, 396,
1216 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1217 396, 396, 396, 396, 602, 602, 602, 602, 602, 602,
1218 602, 602, 602, 602, 602, 602, 602, 396, 602, 602,
1219 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
1220 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
1221 602, 396, 396, 396, 396, 397, 398, 396, 396, 396,
1222 396, 396, 396, 396, 396, 396, 396, 396, 992, 396,
1223 396, 988, 245, 245, 968, 418, 396, 396, 396, 246,
1224 246, 245, 345, 346, 397, 762, 248, 248, 246, 246,
1225 345, 346, 396, 345, 346, 248, 292, 967, 722, 722,
1227 722, 722, 966, 345, 730, 965, 722, 722, 722, 722,
1228 964, 603, 727, 834, 835, 963, 396, 396, 612, 612,
1229 612, 612, 1022, 845, 1057, 836, 962, 612, 612, 612,
1230 345, 346, 961, 371, 372, 960, 860, 587, 959, 371,
1231 372, 612, 612, 612, 612, 612, 612, 422, 422, 958,
1232 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
1233 422, 422, 1028, 422, 422, 345, 730, 397, 398, 441,
1234 422, 422, 422, 861, 727, 371, 372, 345, 726, 371,
1235 372, 727, 864, 397, 768, 957, 422, 397, 398, 838,
1236 265, 740, 740, 740, 740, 740, 740, 740, 740, 371,
1238 748, 345, 346, 758, 758, 758, 758, 417, 745, 956,
1239 422, 422, 422, 422, 728, 422, 422, 422, 615, 422,
1240 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
1241 422, 422, 422, 422, 422, 422, 422, 422, 616, 616,
1242 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
1243 616, 422, 616, 616, 616, 616, 616, 616, 616, 616,
1244 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
1245 616, 616, 616, 616, 616, 422, 422, 422, 422, 955,
1246 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
1247 422, 422, 1029, 422, 422, 371, 372, 371, 748, 441,
1249 422, 422, 422, 1023, 397, 398, 745, 397, 398, 345,
1250 726, 345, 732, 727, 954, 733, 422, 345, 732, 371,
1251 744, 733, 953, 745, 371, 744, 371, 750, 745, 1030,
1252 751, 1062, 397, 398, 952, 617, 601, 417, 865, 951,
1253 422, 422, 540, 540, 540, 540, 728, 868, 734, 340,
1254 869, 540, 540, 540, 734, 246, 746, 776, 776, 776,
1255 776, 746, 292, 752, 950, 540, 540, 540, 540, 540,
1256 540, 297, 297, 949, 297, 297, 297, 297, 297, 297,
1257 297, 297, 297, 297, 297, 297, 948, 297, 297, 947,
1258 397, 398, 922, 703, 297, 297, 297, 776, 776, 776,
1260 776, 371, 750, 397, 766, 751, 758, 758, 758, 758,
1261 297, 946, 763, 397, 766, 345, 346, 365, 929, 371,
1262 372, 945, 763, 371, 372, 391, 931, 397, 398, 397,
1263 398, 417, 933, 944, 297, 297, 297, 297, 752, 297,
1264 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
1265 297, 315, 297, 297, 315, 315, 315, 315, 316, 297,
1266 297, 297, 315, 315, 315, 315, 315, 315, 315, 315,
1267 315, 315, 315, 315, 315, 297, 315, 315, 315, 315,
1268 315, 315, 704, 315, 315, 315, 705, 315, 315, 315,
1269 315, 315, 315, 315, 315, 315, 315, 315, 315, 297,
1271 297, 558, 558, 558, 558, 440, 935, 943, 245, 942,
1272 558, 558, 558, 397, 762, 246, 941, 763, 940, 397,
1273 762, 939, 248, 763, 558, 558, 558, 558, 558, 558,
1274 325, 325, 325, 325, 325, 325, 938, 325, 325, 325,
1275 325, 325, 325, 325, 325, 1030, 325, 325, 345, 346,
1276 764, 246, 718, 325, 325, 325, 764, 919, 292, 245,
1277 245, 1019, 937, 989, 397, 768, 246, 246, 769, 325,
1278 371, 372, 246, 248, 248, 971, 990, 971, 971, 292,
1279 850, 972, 991, 971, 920, 971, 971, 345, 346, 1024,
1280 440, 1059, 915, 325, 325, 325, 325, 325, 325, 325,
1282 325, 770, 325, 325, 325, 325, 325, 325, 325, 325,
1283 340, 325, 325, 340, 340, 340, 340, 341, 325, 325,
1284 325, 340, 340, 340, 340, 340, 340, 340, 340, 340,
1285 340, 340, 340, 340, 325, 340, 340, 340, 340, 340,
1286 340, 719, 340, 340, 340, 720, 340, 340, 340, 340,
1287 340, 340, 340, 340, 340, 340, 340, 340, 325, 325,
1288 345, 346, 1018, 246, 1019, 914, 245, 913, 245, 912,
1289 292, 397, 398, 246, 911, 246, 570, 570, 570, 570,
1290 248, 910, 248, 245, 245, 570, 570, 570, 397, 768,
1291 246, 246, 769, 973, 1031, 909, 908, 248, 248, 570,
1293 570, 570, 570, 570, 570, 344, 344, 345, 346, 344,
1294 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1295 969, 344, 344, 907, 245, 770, 916, 736, 344, 344,
1296 344, 246, 345, 346, 1025, 371, 372, 1027, 248, 440,
1297 906, 371, 372, 1026, 344, 1060, 397, 398, 1028, 905,
1298 1061, 397, 398, 1029, 904, 903, 902, 901, 900, 899,
1299 898, 894, 893, 918, 892, 891, 890, 889, 344, 344,
1300 344, 344, 345, 346, 344, 344, 344, 344, 344, 344,
1301 344, 344, 344, 344, 344, 365, 344, 344, 365, 365,
1302 365, 365, 366, 344, 344, 344, 365, 365, 365, 365,
1304 365, 365, 365, 365, 365, 365, 365, 365, 365, 344,
1305 365, 365, 365, 365, 365, 365, 737, 365, 365, 365,
1306 738, 365, 365, 365, 365, 365, 365, 365, 365, 365,
1307 365, 365, 365, 344, 344, 371, 372, 888, 887, 886,
1308 885, 884, 883, 882, 878, 877, 876, 875, 615, 780,
1309 873, 584, 584, 584, 584, 872, 245, 871, 245, 867,
1310 584, 584, 584, 246, 863, 246, 859, 507, 857, 856,
1311 248, 853, 248, 852, 584, 584, 584, 584, 584, 584,
1312 370, 370, 371, 372, 370, 370, 370, 370, 370, 370,
1313 370, 370, 370, 370, 370, 970, 370, 370, 849, 543,
1315 917, 696, 754, 370, 370, 370, 847, 846, 843, 842,
1316 841, 840, 507, 676, 668, 833, 832, 831, 830, 370,
1317 829, 828, 825, 824, 823, 822, 821, 820, 819, 818,
1318 817, 816, 815, 814, 813, 812, 811, 810, 809, 808,
1319 807, 806, 805, 370, 370, 370, 370, 371, 372, 370,
1320 370, 370, 370, 370, 370, 370, 370, 370, 370, 370,
1321 391, 370, 370, 391, 391, 391, 391, 392, 370, 370,
1322 370, 391, 391, 391, 391, 391, 391, 391, 391, 391,
1323 391, 391, 391, 391, 370, 391, 391, 391, 391, 391,
1324 391, 755, 391, 391, 391, 756, 391, 391, 391, 391,
1326 391, 391, 391, 391, 391, 391, 391, 391, 370, 370,
1327 397, 398, 804, 803, 802, 801, 800, 799, 798, 797,
1328 796, 795, 794, 793, 792, 791, 598, 598, 598, 598,
1329 790, 780, 778, 777, 714, 598, 598, 598, 713, 708,
1330 707, 706, 696, 694, 693, 688, 687, 686, 685, 598,
1331 598, 598, 598, 598, 598, 396, 396, 397, 398, 396,
1332 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1333 523, 396, 396, 650, 633, 629, 676, 772, 396, 396,
1334 396, 671, 668, 666, 665, 664, 663, 662, 661, 660,
1335 659, 658, 657, 656, 396, 655, 654, 653, 649, 648,
1337 647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
1338 637, 636, 635, 632, 631, 628, 627, 626, 396, 396,
1339 396, 396, 397, 398, 396, 396, 396, 396, 396, 396,
1340 396, 396, 396, 396, 396, 417, 396, 396, 417, 417,
1341 417, 417, 418, 396, 396, 396, 417, 417, 417, 417,
1342 417, 417, 417, 417, 417, 417, 417, 417, 417, 396,
1343 417, 417, 417, 417, 417, 417, 773, 417, 417, 417,
1344 774, 417, 417, 417, 417, 417, 417, 417, 417, 417,
1345 417, 417, 417, 396, 396, 612, 612, 612, 612, 625,
1346 624, 623, 622, 621, 612, 612, 612, 620, 606, 605,
1348 425, 552, 551, 548, 547, 546, 534, 533, 612, 612,
1349 612, 612, 612, 612, 422, 422, 300, 422, 422, 422,
1350 422, 422, 422, 422, 422, 422, 422, 422, 422, 507,
1351 422, 422, 528, 527, 523, 495, 787, 422, 422, 422,
1352 493, 469, 466, 464, 519, 455, 507, 292, 506, 500,
1353 499, 496, 484, 422, 483, 482, 475, 474, 473, 470,
1354 460, 457, 456, 453, 452, 451, 183, 439, 425, 423,
1355 339, 292, 319, 314, 300, 298, 279, 422, 422, 422,
1356 422, 183, 422, 422, 422, 422, 422, 422, 422, 422,
1357 422, 422, 422, 422, 440, 422, 422, 440, 440, 440,
1359 440, 441, 422, 422, 422, 440, 440, 440, 440, 440,
1360 440, 440, 440, 440, 440, 440, 440, 440, 422, 440,
1361 440, 440, 440, 440, 440, 788, 440, 440, 440, 789,
1362 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1363 440, 440, 422, 422, 297, 297, 279, 297, 297, 297,
1364 297, 297, 297, 297, 297, 297, 297, 297, 297, 183,
1365 297, 297, 190, 181, 1094, 1094, 703, 297, 297, 297,
1366 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1367 1094, 1094, 1094, 297, 1094, 1094, 1094, 1094, 1094, 1094,
1368 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1370 1094, 1094, 1094, 1094, 1094, 1094, 1094, 297, 297, 297,
1371 297, 1094, 297, 297, 297, 297, 297, 297, 297, 297,
1372 297, 297, 297, 297, 315, 297, 297, 315, 315, 315,
1373 315, 316, 297, 297, 297, 315, 315, 315, 315, 315,
1374 315, 315, 315, 315, 315, 315, 315, 315, 297, 315,
1375 315, 315, 315, 315, 315, 315, 315, 315, 848, 315,
1376 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
1377 315, 315, 297, 297, 325, 325, 325, 325, 325, 325,
1378 1094, 325, 325, 325, 325, 325, 325, 325, 325, 1094,
1379 325, 325, 1094, 1094, 1094, 1094, 718, 325, 325, 325,
1381 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1382 1094, 1094, 1094, 325, 1094, 1094, 1094, 1094, 1094, 1094,
1383 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1384 1094, 1094, 1094, 1094, 1094, 1094, 1094, 325, 325, 325,
1385 325, 325, 325, 325, 325, 1094, 325, 325, 325, 325,
1386 325, 325, 325, 325, 340, 325, 325, 340, 340, 340,
1387 340, 341, 325, 325, 325, 340, 340, 340, 340, 340,
1388 340, 340, 340, 340, 340, 340, 340, 340, 325, 340,
1389 340, 340, 340, 340, 340, 340, 340, 340, 858, 340,
1390 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
1392 340, 340, 325, 325, 344, 344, 345, 346, 344, 344,
1393 344, 344, 344, 344, 344, 344, 344, 344, 344, 1094,
1394 344, 344, 1094, 1094, 1094, 1094, 736, 344, 344, 344,
1395 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1396 1094, 1094, 1094, 344, 1094, 1094, 1094, 1094, 1094, 1094,
1397 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1398 1094, 1094, 1094, 1094, 1094, 1094, 1094, 344, 344, 344,
1399 344, 345, 346, 344, 344, 344, 344, 344, 344, 344,
1400 344, 344, 344, 344, 365, 344, 344, 365, 365, 365,
1401 365, 366, 344, 344, 344, 365, 365, 365, 365, 365,
1403 365, 365, 365, 365, 365, 365, 365, 365, 344, 365,
1404 365, 365, 365, 365, 365, 365, 365, 365, 862, 365,
1405 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
1406 365, 365, 344, 344, 370, 370, 371, 372, 370, 370,
1407 370, 370, 370, 370, 370, 370, 370, 370, 370, 1094,
1408 370, 370, 1094, 1094, 1094, 1094, 754, 370, 370, 370,
1409 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1410 1094, 1094, 1094, 370, 1094, 1094, 1094, 1094, 1094, 1094,
1411 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1412 1094, 1094, 1094, 1094, 1094, 1094, 1094, 370, 370, 370,
1414 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
1415 370, 370, 370, 370, 391, 370, 370, 391, 391, 391,
1416 391, 392, 370, 370, 370, 391, 391, 391, 391, 391,
1417 391, 391, 391, 391, 391, 391, 391, 391, 370, 391,
1418 391, 391, 391, 391, 391, 391, 391, 391, 866, 391,
1419 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
1420 391, 391, 370, 370, 396, 396, 397, 398, 396, 396,
1421 396, 396, 396, 396, 396, 396, 396, 396, 396, 1094,
1422 396, 396, 1094, 1094, 1094, 1094, 772, 396, 396, 396,
1423 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1425 1094, 1094, 1094, 396, 1094, 1094, 1094, 1094, 1094, 1094,
1426 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1427 1094, 1094, 1094, 1094, 1094, 1094, 1094, 396, 396, 396,
1428 396, 397, 398, 396, 396, 396, 396, 396, 396, 396,
1429 396, 396, 396, 396, 417, 396, 396, 417, 417, 417,
1430 417, 418, 396, 396, 396, 417, 417, 417, 417, 417,
1431 417, 417, 417, 417, 417, 417, 417, 417, 396, 417,
1432 417, 417, 417, 417, 417, 417, 417, 417, 870, 417,
1433 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
1434 417, 417, 396, 396, 422, 422, 1094, 422, 422, 422,
1436 422, 422, 422, 422, 422, 422, 422, 422, 422, 1094,
1437 422, 422, 1094, 1094, 1094, 1094, 787, 422, 422, 422,
1438 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1439 1094, 1094, 1094, 422, 1094, 1094, 1094, 1094, 1094, 1094,
1440 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1441 1094, 1094, 1094, 1094, 1094, 1094, 1094, 422, 422, 422,
1442 422, 1094, 422, 422, 422, 422, 422, 422, 422, 422,
1443 422, 422, 422, 422, 440, 422, 422, 440, 440, 440,
1444 440, 441, 422, 422, 422, 440, 440, 440, 440, 440,
1445 440, 440, 440, 440, 440, 440, 440, 440, 422, 440,
1447 440, 440, 440, 440, 440, 440, 440, 440, 874, 440,
1448 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1449 440, 440, 422, 422, 297, 297, 1094, 297, 297, 297,
1450 297, 297, 297, 297, 297, 297, 297, 297, 297, 315,
1451 297, 297, 315, 315, 315, 315, 316, 297, 297, 297,
1452 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
1453 315, 315, 315, 297, 315, 315, 315, 315, 315, 315,
1454 315, 315, 315, 315, 923, 315, 315, 315, 315, 315,
1455 315, 315, 315, 315, 315, 315, 315, 297, 297, 325,
1456 325, 325, 325, 325, 325, 1094, 325, 325, 325, 325,
1458 325, 325, 325, 325, 340, 325, 325, 340, 340, 340,
1459 340, 341, 325, 325, 325, 340, 340, 340, 340, 340,
1460 340, 340, 340, 340, 340, 340, 340, 340, 325, 340,
1461 340, 340, 340, 340, 340, 340, 340, 340, 340, 927,
1462 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
1463 340, 340, 325, 325, 182, 1094, 182, 182, 182, 182,
1464 182, 182, 182, 182, 182, 185, 1094, 1094, 185, 185,
1465 193, 1094, 193, 193, 193, 193, 193, 193, 193, 193,
1466 193, 247, 247, 247, 247, 247, 247, 247, 247, 263,
1467 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1469 284, 284, 284, 284, 287, 1094, 287, 1094, 287, 287,
1470 287, 287, 291, 291, 291, 291, 291, 291, 291, 297,
1471 1094, 297, 297, 297, 297, 297, 297, 297, 297, 297,
1472 299, 1094, 299, 299, 299, 299, 299, 299, 299, 299,
1473 299, 302, 1094, 302, 302, 302, 302, 302, 302, 302,
1474 302, 302, 315, 1094, 315, 315, 315, 315, 315, 315,
1475 315, 315, 315, 246, 246, 246, 246, 246, 246, 246,
1476 325, 325, 1094, 325, 325, 325, 325, 325, 325, 325,
1477 325, 326, 326, 326, 326, 326, 326, 326, 326, 326,
1478 326, 326, 340, 340, 1094, 340, 340, 340, 340, 340,
1480 340, 340, 340, 344, 344, 344, 344, 344, 344, 344,
1481 344, 344, 344, 344, 347, 347, 347, 347, 347, 347,
1482 347, 347, 347, 347, 347, 351, 351, 351, 351, 351,
1483 351, 351, 351, 351, 351, 351, 365, 365, 365, 365,
1484 365, 365, 365, 365, 365, 365, 365, 370, 370, 370,
1485 370, 370, 370, 370, 370, 370, 370, 370, 373, 373,
1486 373, 373, 373, 373, 373, 373, 373, 373, 373, 377,
1487 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
1488 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
1489 391, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1491 396, 396, 399, 399, 399, 399, 399, 399, 399, 399,
1492 399, 399, 399, 403, 403, 403, 403, 403, 403, 403,
1493 403, 403, 403, 403, 417, 417, 417, 417, 417, 417,
1494 417, 417, 417, 417, 417, 422, 1094, 422, 422, 422,
1495 422, 422, 422, 422, 422, 422, 424, 1094, 424, 424,
1496 424, 424, 424, 424, 424, 424, 424, 427, 1094, 427,
1497 427, 427, 427, 427, 427, 427, 427, 427, 440, 1094,
1498 440, 440, 440, 440, 440, 440, 440, 440, 440, 185,
1499 1094, 1094, 185, 185, 193, 1094, 193, 193, 193, 193,
1500 193, 193, 193, 193, 193, 450, 1094, 1094, 450, 450,
1502 450, 481, 1094, 1094, 481, 246, 246, 246, 246, 246,
1503 246, 246, 247, 247, 247, 247, 247, 247, 247, 247,
1504 508, 1094, 1094, 1094, 1094, 508, 508, 508, 508, 263,
1505 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1506 522, 522, 522, 522, 522, 522, 525, 525, 525, 525,
1507 526, 1094, 526, 526, 526, 526, 291, 291, 291, 291,
1508 291, 291, 291, 297, 1094, 297, 297, 297, 297, 297,
1509 297, 297, 297, 297, 299, 1094, 299, 299, 299, 299,
1510 299, 299, 299, 299, 299, 302, 1094, 302, 302, 302,
1511 302, 302, 302, 302, 302, 302, 315, 1094, 315, 315,
1513 315, 315, 315, 315, 315, 315, 315, 325, 325, 1094,
1514 325, 325, 325, 325, 325, 325, 325, 325, 326, 326,
1515 326, 326, 326, 326, 326, 326, 326, 326, 326, 340,
1516 340, 1094, 340, 340, 340, 340, 340, 340, 340, 340,
1517 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1518 344, 347, 347, 347, 347, 347, 347, 347, 347, 347,
1519 347, 347, 351, 351, 351, 351, 351, 351, 351, 351,
1520 351, 351, 351, 365, 365, 365, 365, 365, 365, 365,
1521 365, 365, 365, 365, 370, 370, 370, 370, 370, 370,
1522 370, 370, 370, 370, 370, 373, 373, 373, 373, 373,
1524 373, 373, 373, 373, 373, 373, 377, 377, 377, 377,
1525 377, 377, 377, 377, 377, 377, 377, 391, 391, 391,
1526 391, 391, 391, 391, 391, 391, 391, 391, 396, 396,
1527 396, 396, 396, 396, 396, 396, 396, 396, 396, 399,
1528 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
1529 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
1530 403, 417, 417, 417, 417, 417, 417, 417, 417, 417,
1531 417, 417, 422, 1094, 422, 422, 422, 422, 422, 422,
1532 422, 422, 422, 424, 1094, 424, 424, 424, 424, 424,
1533 424, 424, 424, 424, 427, 1094, 427, 427, 427, 427,
1535 427, 427, 427, 427, 427, 440, 1094, 440, 440, 440,
1536 440, 440, 440, 440, 440, 440, 185, 1094, 1094, 185,
1537 185, 450, 1094, 1094, 450, 450, 450, 481, 1094, 1094,
1538 481, 667, 1094, 667, 667, 667, 667, 667, 667, 667,
1539 667, 667, 670, 1094, 670, 670, 670, 670, 670, 670,
1540 670, 670, 670, 672, 1094, 672, 672, 672, 672, 672,
1541 672, 672, 672, 672, 675, 675, 675, 675, 675, 675,
1542 675, 247, 247, 247, 247, 247, 247, 247, 247, 263,
1543 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1544 522, 522, 522, 522, 522, 522, 684, 1094, 684, 684,
1546 684, 684, 526, 1094, 526, 526, 526, 526, 291, 291,
1547 291, 291, 291, 291, 291, 297, 1094, 297, 297, 297,
1548 297, 297, 297, 297, 297, 297, 695, 1094, 695, 695,
1549 695, 695, 695, 695, 695, 695, 695, 698, 1094, 698,
1550 698, 698, 698, 698, 698, 698, 698, 698, 699, 1094,
1551 699, 699, 699, 699, 699, 699, 699, 699, 699, 702,
1552 1094, 702, 702, 702, 702, 702, 702, 702, 702, 702,
1553 246, 246, 246, 246, 246, 246, 246, 325, 325, 1094,
1554 325, 325, 325, 325, 325, 325, 325, 325, 715, 715,
1555 715, 715, 715, 715, 715, 715, 715, 715, 715, 717,
1557 717, 1094, 717, 717, 717, 717, 717, 717, 717, 717,
1558 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1559 344, 725, 725, 725, 725, 725, 725, 725, 725, 725,
1560 725, 725, 729, 729, 729, 729, 729, 729, 729, 729,
1561 729, 729, 729, 731, 731, 731, 731, 731, 731, 731,
1562 731, 731, 731, 731, 735, 735, 735, 735, 735, 735,
1563 735, 735, 735, 735, 735, 370, 370, 370, 370, 370,
1564 370, 370, 370, 370, 370, 370, 743, 743, 743, 743,
1565 743, 743, 743, 743, 743, 743, 743, 747, 747, 747,
1566 747, 747, 747, 747, 747, 747, 747, 747, 749, 749,
1568 749, 749, 749, 749, 749, 749, 749, 749, 749, 753,
1569 753, 753, 753, 753, 753, 753, 753, 753, 753, 753,
1570 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1571 396, 761, 761, 761, 761, 761, 761, 761, 761, 761,
1572 761, 761, 765, 765, 765, 765, 765, 765, 765, 765,
1573 765, 765, 765, 767, 767, 767, 767, 767, 767, 767,
1574 767, 767, 767, 767, 771, 771, 771, 771, 771, 771,
1575 771, 771, 771, 771, 771, 422, 1094, 422, 422, 422,
1576 422, 422, 422, 422, 422, 422, 779, 1094, 779, 779,
1577 779, 779, 779, 779, 779, 779, 779, 782, 1094, 782,
1579 782, 782, 782, 782, 782, 782, 782, 782, 783, 1094,
1580 783, 783, 783, 783, 783, 783, 783, 783, 783, 786,
1581 1094, 786, 786, 786, 786, 786, 786, 786, 786, 786,
1582 450, 1094, 1094, 450, 450, 450, 667, 1094, 667, 667,
1583 667, 667, 667, 667, 667, 667, 667, 670, 1094, 670,
1584 670, 670, 670, 670, 670, 670, 670, 670, 672, 1094,
1585 672, 672, 672, 672, 672, 672, 672, 672, 672, 675,
1586 675, 675, 675, 675, 675, 675, 247, 247, 247, 247,
1587 247, 247, 247, 247, 263, 263, 263, 263, 263, 263,
1588 263, 263, 263, 263, 263, 684, 1094, 684, 684, 684,
1590 684, 526, 1094, 526, 526, 526, 526, 291, 291, 291,
1591 291, 291, 291, 291, 297, 1094, 297, 297, 297, 297,
1592 297, 297, 297, 297, 297, 695, 1094, 695, 695, 695,
1593 695, 695, 695, 695, 695, 695, 698, 1094, 698, 698,
1594 698, 698, 698, 698, 698, 698, 698, 699, 1094, 699,
1595 699, 699, 699, 699, 699, 699, 699, 699, 702, 1094,
1596 702, 702, 702, 702, 702, 702, 702, 702, 702, 246,
1597 246, 246, 246, 246, 246, 246, 325, 325, 1094, 325,
1598 325, 325, 325, 325, 325, 325, 325, 715, 715, 715,
1599 715, 715, 715, 715, 715, 715, 715, 715, 717, 717,
1601 1094, 717, 717, 717, 717, 717, 717, 717, 717, 344,
1602 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
1603 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
1604 725, 729, 729, 729, 729, 729, 729, 729, 729, 729,
1605 729, 729, 731, 731, 731, 731, 731, 731, 731, 731,
1606 731, 731, 731, 735, 735, 735, 735, 735, 735, 735,
1607 735, 735, 735, 735, 370, 370, 370, 370, 370, 370,
1608 370, 370, 370, 370, 370, 743, 743, 743, 743, 743,
1609 743, 743, 743, 743, 743, 743, 747, 747, 747, 747,
1610 747, 747, 747, 747, 747, 747, 747, 749, 749, 749,
1612 749, 749, 749, 749, 749, 749, 749, 749, 753, 753,
1613 753, 753, 753, 753, 753, 753, 753, 753, 753, 396,
1614 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1615 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
1616 761, 765, 765, 765, 765, 765, 765, 765, 765, 765,
1617 765, 765, 767, 767, 767, 767, 767, 767, 767, 767,
1618 767, 767, 767, 771, 771, 771, 771, 771, 771, 771,
1619 771, 771, 771, 771, 422, 1094, 422, 422, 422, 422,
1620 422, 422, 422, 422, 422, 779, 1094, 779, 779, 779,
1621 779, 779, 779, 779, 779, 779, 782, 1094, 782, 782,
1623 782, 782, 782, 782, 782, 782, 782, 783, 1094, 783,
1624 783, 783, 783, 783, 783, 783, 783, 783, 786, 1094,
1625 786, 786, 786, 786, 786, 786, 786, 786, 786, 450,
1626 1094, 1094, 450, 450, 450, 247, 247, 247, 247, 247,
1627 247, 247, 247, 263, 263, 263, 263, 263, 263, 263,
1628 263, 263, 263, 263, 526, 1094, 526, 526, 526, 526,
1629 291, 291, 291, 291, 291, 291, 291, 297, 1094, 297,
1630 297, 297, 297, 297, 297, 297, 297, 297, 246, 246,
1631 246, 246, 246, 246, 246, 325, 325, 1094, 325, 325,
1632 325, 325, 325, 325, 325, 325, 23, 1094, 1094, 1094,
1634 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1635 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1636 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1637 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1638 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1639 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
1643 static yyconst flex_int16_t yy_chk
[7163] =
1645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1649 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1650 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 1, 1, 1, 1, 1, 2, 33, 2, 2, 29,
1652 35, 4, 236, 4, 4, 1088, 6, 40, 6, 6,
1653 33, 236, 35, 8, 40, 8, 8, 55, 2, 3,
1654 74, 3, 3, 3, 4, 44, 44, 3, 3, 6,
1656 3, 3, 29, 3, 3, 3, 8, 45, 45, 108,
1657 3, 3, 3, 3, 10, 13, 10, 10, 12, 1084,
1658 12, 12, 16, 74, 16, 16, 55, 13, 13, 13,
1659 13, 18, 108, 18, 18, 3, 20, 3, 20, 20,
1660 3, 22, 3, 22, 22, 3, 212, 3, 46, 46,
1661 212, 3, 3, 5, 5, 5, 5, 5, 5, 5,
1662 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1663 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1664 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1665 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1667 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1668 5, 5, 5, 5, 5, 5, 5, 5, 7, 7,
1669 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1670 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1671 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1672 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1673 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1674 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1675 7, 7, 7, 9, 9, 9, 9, 9, 9, 9,
1676 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1678 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1679 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1680 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1681 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1682 9, 9, 9, 9, 9, 9, 9, 9, 11, 11,
1683 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1684 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1685 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1686 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1687 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1689 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1690 11, 11, 11, 14, 1083, 14, 14, 31, 14, 31,
1691 82, 31, 31, 60, 1082, 60, 60, 82, 122, 122,
1692 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
1693 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1694 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1695 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1696 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1697 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1698 15, 15, 15, 15, 15, 15, 15, 15, 15, 17,
1700 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1701 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1702 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1703 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1704 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1705 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1706 17, 17, 17, 17, 19, 19, 19, 19, 19, 19,
1707 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1708 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1709 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1711 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1712 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1713 19, 19, 19, 19, 19, 19, 19, 19, 19, 21,
1714 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1715 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1716 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1717 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1718 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1719 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1720 21, 21, 21, 21, 25, 91, 25, 25, 27, 27,
1722 27, 27, 36, 209, 36, 36, 36, 36, 209, 25,
1723 36, 47, 38, 27, 38, 38, 38, 38, 47, 1080,
1724 38, 39, 39, 39, 39, 47, 233, 39, 91, 39,
1725 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1726 39, 39, 233, 39, 39, 39, 39, 39, 39, 39,
1727 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1728 39, 39, 39, 39, 39, 39, 41, 52, 41, 41,
1729 41, 41, 216, 51, 52, 49, 976, 53, 41, 41,
1730 51, 52, 49, 41, 53, 41, 216, 51, 41, 49,
1731 56, 53, 41, 112, 976, 41, 42, 112, 42, 42,
1733 42, 42, 112, 41, 67, 48, 67, 67, 1079, 42,
1734 52, 41, 48, 42, 53, 48, 48, 48, 48, 48,
1735 49, 69, 69, 660, 51, 42, 43, 53, 43, 460,
1736 56, 43, 660, 50, 43, 43, 43, 43, 43, 43,
1737 50, 54, 43, 84, 43, 43, 460, 50, 54, 57,
1738 84, 57, 57, 59, 59, 54, 66, 58, 58, 58,
1739 58, 231, 69, 66, 57, 61, 61, 61, 61, 231,
1740 66, 50, 58, 84, 1077, 59, 59, 50, 62, 64,
1741 62, 62, 62, 62, 121, 54, 167, 64, 64, 64,
1742 64, 64, 64, 66, 59, 63, 124, 124, 64, 68,
1744 68, 68, 68, 71, 71, 71, 71, 73, 73, 73,
1745 73, 87, 87, 63, 63, 1076, 63, 121, 63, 167,
1746 63, 63, 63, 63, 213, 63, 213, 63, 63, 63,
1747 75, 323, 75, 63, 75, 75, 77, 78, 77, 77,
1748 77, 77, 85, 85, 85, 85, 980, 78, 78, 78,
1749 78, 80, 87, 80, 80, 80, 80, 86, 86, 86,
1750 86, 131, 131, 214, 80, 214, 83, 323, 80, 83,
1751 83, 83, 83, 83, 78, 78, 136, 136, 1073, 78,
1752 80, 93, 131, 93, 93, 93, 93, 94, 94, 94,
1753 94, 980, 100, 96, 100, 100, 101, 101, 101, 101,
1755 96, 234, 109, 96, 109, 109, 234, 96, 104, 104,
1756 104, 104, 126, 126, 120, 94, 120, 120, 96, 94,
1757 95, 126, 95, 95, 95, 95, 96, 105, 105, 105,
1758 105, 116, 95, 95, 138, 138, 104, 95, 116, 95,
1759 104, 116, 95, 150, 150, 116, 95, 810, 113, 95,
1760 113, 113, 113, 113, 140, 140, 116, 95, 134, 134,
1761 134, 134, 810, 140, 116, 95, 98, 98, 810, 98,
1762 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1763 98, 1070, 98, 98, 114, 114, 114, 114, 98, 98,
1764 98, 98, 463, 106, 463, 106, 106, 106, 106, 135,
1766 135, 135, 135, 152, 152, 98, 106, 127, 127, 849,
1767 106, 849, 114, 125, 125, 239, 114, 125, 154, 154,
1768 239, 127, 106, 127, 127, 127, 127, 154, 1069, 98,
1769 98, 99, 99, 239, 99, 99, 99, 99, 99, 99,
1770 99, 99, 99, 99, 99, 99, 863, 99, 99, 863,
1771 125, 145, 145, 99, 99, 99, 99, 130, 148, 148,
1772 148, 148, 128, 128, 130, 139, 139, 130, 279, 139,
1773 99, 130, 145, 279, 182, 1068, 99, 206, 128, 128,
1774 128, 128, 130, 149, 149, 149, 149, 153, 153, 206,
1775 130, 153, 222, 222, 99, 99, 115, 1066, 115, 115,
1777 115, 115, 139, 225, 225, 225, 128, 182, 115, 115,
1778 128, 159, 159, 115, 176, 115, 176, 176, 115, 929,
1779 141, 141, 115, 929, 153, 115, 162, 162, 162, 162,
1780 230, 230, 159, 115, 141, 1065, 141, 141, 141, 141,
1781 290, 115, 118, 118, 118, 118, 118, 118, 290, 118,
1782 118, 118, 118, 118, 118, 118, 118, 1064, 118, 118,
1783 163, 163, 163, 163, 118, 118, 118, 118, 155, 155,
1784 169, 299, 169, 169, 169, 169, 244, 244, 142, 142,
1785 867, 118, 155, 867, 155, 155, 155, 155, 177, 177,
1786 177, 177, 263, 263, 142, 142, 142, 142, 178, 974,
1788 178, 178, 265, 265, 299, 118, 118, 119, 119, 119,
1789 119, 119, 119, 178, 119, 119, 119, 119, 119, 119,
1790 119, 119, 142, 119, 119, 1063, 142, 424, 144, 119,
1791 119, 119, 119, 232, 158, 144, 291, 232, 144, 156,
1792 156, 158, 144, 291, 158, 974, 119, 179, 158, 179,
1793 179, 232, 119, 144, 854, 156, 156, 156, 156, 158,
1794 424, 144, 186, 186, 186, 186, 1056, 158, 266, 266,
1795 119, 119, 129, 129, 170, 170, 170, 170, 187, 187,
1796 187, 187, 854, 156, 267, 267, 129, 156, 129, 129,
1797 129, 129, 188, 188, 188, 188, 501, 172, 129, 129,
1799 276, 276, 170, 129, 172, 129, 170, 172, 129, 309,
1800 309, 172, 129, 1051, 247, 129, 189, 189, 189, 189,
1801 1050, 247, 172, 129, 196, 196, 196, 196, 247, 501,
1802 172, 129, 132, 132, 132, 132, 132, 132, 132, 132,
1803 132, 132, 132, 132, 132, 132, 132, 507, 132, 132,
1804 269, 251, 269, 269, 132, 132, 132, 132, 251, 197,
1805 925, 197, 197, 197, 197, 251, 200, 200, 200, 200,
1806 211, 132, 197, 1047, 211, 253, 197, 200, 211, 223,
1807 507, 223, 253, 925, 223, 223, 223, 223, 197, 253,
1808 312, 312, 312, 200, 977, 132, 132, 133, 133, 133,
1810 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1811 133, 133, 977, 133, 133, 268, 268, 253, 253, 133,
1812 133, 133, 133, 221, 221, 221, 221, 272, 334, 334,
1813 294, 272, 1046, 249, 221, 272, 133, 294, 344, 344,
1814 249, 250, 133, 249, 249, 249, 249, 249, 250, 314,
1815 221, 252, 254, 871, 314, 250, 871, 255, 252, 254,
1816 133, 133, 143, 143, 255, 252, 254, 1044, 256, 339,
1817 257, 255, 268, 294, 339, 256, 143, 257, 143, 143,
1818 143, 143, 256, 280, 257, 280, 280, 254, 143, 143,
1819 859, 250, 859, 143, 262, 143, 262, 262, 143, 346,
1821 346, 252, 143, 349, 349, 143, 1043, 255, 318, 262,
1822 318, 318, 257, 143, 350, 350, 256, 281, 281, 281,
1823 281, 143, 146, 146, 146, 146, 146, 146, 146, 146,
1824 146, 146, 146, 146, 146, 146, 146, 1042, 146, 146,
1825 283, 283, 283, 283, 146, 146, 146, 146, 285, 285,
1826 285, 285, 285, 293, 361, 361, 293, 293, 293, 293,
1827 293, 146, 295, 295, 295, 295, 296, 296, 296, 296,
1828 303, 303, 303, 303, 310, 324, 310, 324, 324, 310,
1829 310, 310, 310, 370, 370, 146, 146, 147, 147, 147,
1830 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
1832 147, 147, 1040, 147, 147, 328, 328, 328, 328, 147,
1833 147, 147, 147, 1018, 304, 1018, 304, 304, 304, 304,
1834 372, 372, 305, 305, 305, 305, 147, 304, 337, 337,
1835 337, 304, 147, 305, 308, 308, 308, 308, 326, 351,
1836 351, 439, 326, 304, 1039, 308, 439, 326, 351, 305,
1837 147, 147, 157, 157, 343, 709, 343, 343, 352, 352,
1838 322, 308, 322, 322, 322, 322, 157, 352, 157, 157,
1839 157, 157, 1038, 322, 375, 375, 549, 322, 157, 157,
1840 356, 356, 709, 157, 1037, 157, 357, 357, 157, 322,
1841 930, 335, 157, 335, 930, 157, 335, 335, 335, 335,
1843 549, 347, 347, 157, 549, 347, 368, 368, 368, 368,
1844 1035, 157, 160, 160, 160, 160, 160, 160, 160, 160,
1845 160, 160, 160, 160, 160, 160, 160, 356, 160, 160,
1846 376, 376, 926, 357, 160, 160, 160, 160, 347, 329,
1847 710, 329, 329, 329, 329, 923, 330, 330, 330, 330,
1848 923, 160, 329, 353, 353, 926, 329, 330, 348, 348,
1849 387, 387, 348, 369, 369, 369, 369, 710, 329, 353,
1850 353, 353, 353, 330, 1034, 160, 160, 161, 161, 161,
1851 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
1852 161, 161, 1033, 161, 161, 348, 359, 359, 794, 161,
1854 161, 161, 161, 333, 333, 333, 333, 355, 355, 377,
1855 377, 794, 359, 359, 333, 931, 161, 794, 377, 931,
1856 360, 360, 161, 355, 355, 355, 355, 541, 373, 373,
1857 333, 360, 373, 360, 355, 1031, 360, 360, 360, 360,
1858 161, 161, 171, 543, 171, 171, 171, 171, 374, 374,
1859 355, 1023, 374, 924, 171, 171, 362, 362, 924, 171,
1860 541, 171, 382, 382, 171, 373, 364, 364, 171, 981,
1861 364, 171, 362, 362, 362, 364, 543, 378, 378, 171,
1862 396, 396, 1021, 383, 383, 374, 378, 171, 174, 174,
1863 1019, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1865 174, 174, 174, 1017, 174, 174, 358, 358, 855, 382,
1866 174, 174, 174, 174, 981, 385, 385, 613, 379, 379,
1867 398, 398, 358, 358, 358, 358, 1016, 174, 381, 381,
1868 383, 385, 385, 358, 379, 379, 379, 379, 855, 390,
1869 390, 401, 401, 390, 381, 381, 381, 381, 390, 358,
1870 613, 174, 174, 175, 175, 381, 175, 175, 175, 175,
1871 175, 175, 175, 175, 175, 175, 175, 175, 1015, 175,
1872 175, 381, 384, 384, 1014, 175, 175, 175, 175, 394,
1873 394, 394, 394, 1012, 386, 386, 402, 402, 384, 384,
1874 384, 384, 175, 388, 388, 386, 1011, 386, 175, 384,
1876 386, 386, 386, 386, 395, 395, 395, 395, 932, 388,
1877 388, 388, 932, 403, 403, 384, 175, 175, 313, 313,
1878 313, 313, 403, 404, 404, 413, 413, 313, 313, 313,
1879 399, 399, 404, 1010, 399, 615, 400, 400, 408, 408,
1880 400, 313, 313, 313, 313, 313, 313, 315, 315, 1009,
1881 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
1882 315, 315, 1008, 315, 315, 405, 405, 399, 615, 315,
1883 315, 315, 315, 400, 411, 411, 412, 412, 434, 434,
1884 1007, 405, 405, 405, 405, 408, 315, 412, 1006, 412,
1885 411, 411, 412, 412, 412, 412, 416, 416, 477, 477,
1887 416, 420, 420, 420, 420, 416, 421, 421, 421, 421,
1888 315, 315, 316, 316, 1003, 316, 316, 316, 316, 316,
1889 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1890 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1891 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1892 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1893 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1894 316, 316, 316, 316, 316, 316, 316, 317, 317, 1002,
1895 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1896 317, 317, 927, 317, 317, 407, 407, 927, 486, 317,
1898 317, 317, 317, 409, 409, 928, 486, 414, 414, 486,
1899 928, 407, 407, 407, 407, 1001, 317, 428, 428, 428,
1900 428, 1000, 407, 414, 414, 414, 536, 536, 430, 430,
1901 430, 430, 437, 437, 437, 317, 518, 518, 407, 430,
1902 317, 317, 338, 338, 338, 338, 443, 998, 443, 443,
1903 409, 338, 338, 338, 435, 430, 435, 554, 554, 435,
1904 435, 435, 435, 608, 608, 338, 338, 338, 338, 338,
1905 338, 340, 340, 340, 340, 340, 340, 996, 340, 340,
1906 340, 340, 340, 340, 340, 340, 972, 340, 340, 410,
1907 410, 995, 518, 340, 340, 340, 340, 972, 429, 994,
1909 429, 429, 429, 429, 972, 410, 410, 410, 410, 993,
1910 340, 429, 480, 480, 480, 429, 410, 444, 992, 444,
1911 444, 445, 445, 445, 445, 683, 683, 429, 446, 446,
1912 446, 446, 410, 991, 340, 340, 341, 341, 341, 341,
1913 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1914 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1915 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1916 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1917 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1918 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1920 341, 342, 342, 342, 342, 342, 342, 990, 342, 342,
1921 342, 342, 342, 342, 342, 342, 989, 342, 342, 433,
1922 433, 433, 433, 342, 342, 342, 342, 539, 539, 539,
1923 433, 447, 447, 447, 447, 448, 448, 448, 448, 933,
1924 342, 934, 449, 933, 449, 934, 433, 449, 449, 449,
1925 449, 476, 476, 476, 476, 478, 478, 478, 478, 342,
1926 706, 706, 476, 988, 342, 342, 354, 354, 479, 479,
1927 479, 479, 509, 967, 510, 557, 557, 557, 476, 509,
1928 354, 510, 354, 354, 354, 354, 509, 511, 510, 512,
1929 667, 513, 514, 354, 511, 844, 512, 354, 513, 514,
1931 515, 511, 844, 512, 965, 513, 514, 515, 517, 354,
1932 363, 363, 559, 531, 515, 517, 559, 566, 566, 510,
1933 531, 559, 517, 667, 564, 564, 363, 363, 363, 363,
1934 844, 512, 516, 566, 566, 363, 363, 363, 515, 516,
1935 727, 727, 515, 672, 531, 517, 516, 975, 531, 363,
1936 363, 363, 363, 363, 363, 365, 365, 365, 365, 365,
1937 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
1938 964, 365, 365, 516, 564, 963, 672, 365, 365, 365,
1939 365, 524, 524, 524, 524, 524, 537, 537, 537, 537,
1940 532, 962, 532, 975, 365, 532, 532, 532, 532, 538,
1942 538, 538, 538, 550, 960, 550, 728, 728, 550, 550,
1943 550, 550, 555, 555, 555, 555, 733, 733, 365, 365,
1944 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1945 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1946 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1947 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1948 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1949 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
1950 366, 366, 366, 366, 366, 367, 367, 367, 367, 367,
1951 367, 367, 367, 367, 367, 367, 367, 367, 367, 367,
1953 695, 367, 367, 535, 535, 535, 535, 367, 367, 367,
1954 367, 563, 563, 959, 535, 553, 553, 553, 553, 556,
1955 556, 556, 556, 935, 367, 699, 553, 935, 562, 562,
1956 535, 572, 572, 695, 578, 578, 565, 565, 958, 562,
1957 572, 562, 553, 367, 562, 562, 562, 562, 367, 367,
1958 380, 380, 565, 565, 565, 565, 567, 567, 699, 563,
1959 611, 611, 611, 565, 380, 957, 380, 380, 380, 380,
1960 568, 568, 567, 567, 567, 567, 936, 380, 677, 565,
1961 936, 380, 569, 569, 578, 677, 568, 568, 568, 568,
1962 576, 576, 677, 380, 389, 389, 586, 586, 569, 569,
1964 569, 576, 1020, 576, 1020, 586, 576, 576, 576, 576,
1965 389, 389, 389, 389, 580, 580, 592, 592, 956, 389,
1966 389, 389, 571, 571, 577, 577, 571, 779, 573, 573,
1967 580, 580, 573, 389, 389, 389, 389, 389, 389, 391,
1968 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
1969 391, 391, 391, 391, 982, 391, 391, 579, 579, 571,
1970 779, 391, 391, 391, 391, 573, 592, 734, 734, 581,
1971 581, 955, 577, 579, 579, 579, 579, 954, 391, 582,
1972 582, 600, 600, 953, 579, 581, 581, 581, 581, 951,
1973 600, 609, 609, 609, 609, 582, 582, 582, 582, 982,
1975 579, 950, 391, 391, 392, 392, 392, 392, 392, 392,
1976 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1977 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1978 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1979 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1980 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
1981 392, 392, 392, 392, 392, 392, 392, 392, 392, 393,
1982 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
1983 393, 393, 393, 393, 949, 393, 393, 583, 583, 591,
1984 591, 393, 393, 393, 393, 983, 736, 736, 594, 594,
1986 736, 595, 595, 583, 583, 583, 585, 585, 393, 783,
1987 585, 948, 587, 587, 594, 594, 587, 595, 595, 595,
1988 595, 599, 599, 689, 678, 599, 947, 393, 590, 590,
1989 689, 678, 393, 393, 406, 406, 946, 591, 678, 590,
1990 983, 590, 783, 585, 590, 590, 590, 590, 406, 587,
1991 406, 406, 406, 406, 945, 593, 593, 689, 599, 944,
1992 715, 406, 601, 601, 715, 406, 601, 596, 596, 715,
1993 943, 593, 593, 593, 593, 597, 597, 406, 415, 415,
1994 745, 745, 593, 596, 596, 596, 596, 610, 610, 610,
1995 610, 597, 597, 597, 415, 415, 415, 415, 593, 601,
1997 746, 746, 682, 415, 415, 415, 604, 875, 604, 682,
1998 875, 604, 604, 604, 604, 978, 682, 415, 415, 415,
1999 415, 415, 415, 417, 417, 417, 417, 417, 417, 417,
2000 417, 417, 417, 417, 417, 417, 417, 417, 942, 417,
2001 417, 607, 607, 607, 607, 417, 417, 417, 417, 751,
2002 751, 682, 607, 618, 618, 618, 618, 619, 619, 619,
2003 619, 978, 417, 691, 691, 691, 691, 941, 607, 692,
2004 692, 692, 692, 711, 711, 711, 711, 712, 712, 712,
2005 712, 752, 752, 763, 763, 940, 417, 417, 418, 418,
2006 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2008 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2009 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2010 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2011 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2012 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
2013 418, 418, 418, 419, 419, 419, 419, 419, 419, 419,
2014 419, 419, 419, 419, 419, 419, 419, 419, 939, 419,
2015 419, 937, 679, 680, 915, 419, 419, 419, 419, 679,
2016 680, 681, 721, 721, 764, 764, 679, 680, 681, 690,
2017 722, 722, 419, 723, 723, 681, 690, 914, 721, 721,
2019 721, 721, 912, 729, 729, 911, 722, 722, 722, 722,
2020 909, 419, 729, 679, 680, 908, 419, 419, 438, 438,
2021 438, 438, 1022, 690, 1022, 681, 907, 438, 438, 438,
2022 724, 724, 904, 754, 754, 903, 723, 754, 902, 741,
2023 741, 438, 438, 438, 438, 438, 438, 440, 440, 901,
2024 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
2025 440, 440, 984, 440, 440, 730, 730, 769, 769, 440,
2026 440, 440, 440, 724, 730, 739, 739, 725, 725, 740,
2027 740, 725, 741, 770, 770, 900, 440, 757, 757, 839,
2028 839, 739, 739, 739, 739, 740, 740, 740, 740, 747,
2030 747, 860, 860, 757, 757, 757, 757, 984, 747, 898,
2031 440, 440, 441, 441, 725, 441, 441, 441, 441, 441,
2032 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2033 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2034 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2035 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2036 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2037 441, 441, 441, 441, 441, 441, 441, 442, 442, 897,
2038 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
2039 442, 442, 985, 442, 442, 742, 742, 748, 748, 442,
2041 442, 442, 442, 979, 759, 759, 748, 760, 760, 726,
2042 726, 731, 731, 726, 896, 731, 442, 732, 732, 743,
2043 743, 732, 895, 743, 744, 744, 749, 749, 744, 1030,
2044 749, 1030, 772, 772, 894, 442, 772, 985, 742, 893,
2045 442, 442, 540, 540, 540, 540, 726, 759, 731, 979,
2046 760, 540, 540, 540, 732, 845, 743, 775, 775, 775,
2047 775, 744, 845, 749, 891, 540, 540, 540, 540, 540,
2048 540, 544, 544, 890, 544, 544, 544, 544, 544, 544,
2049 544, 544, 544, 544, 544, 544, 889, 544, 544, 888,
2050 758, 758, 845, 544, 544, 544, 544, 776, 776, 776,
2052 776, 750, 750, 765, 765, 750, 758, 758, 758, 758,
2053 544, 886, 765, 766, 766, 861, 861, 862, 862, 864,
2054 864, 885, 766, 865, 865, 866, 866, 868, 868, 869,
2055 869, 870, 870, 884, 544, 544, 545, 545, 750, 545,
2056 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2057 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2058 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2059 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2060 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2061 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
2063 545, 558, 558, 558, 558, 874, 874, 883, 837, 882,
2064 558, 558, 558, 761, 761, 837, 881, 761, 880, 762,
2065 762, 879, 837, 762, 558, 558, 558, 558, 558, 558,
2066 560, 560, 560, 560, 560, 560, 877, 560, 560, 560,
2067 560, 560, 560, 560, 560, 986, 560, 560, 1059, 1059,
2068 761, 921, 560, 560, 560, 560, 762, 837, 921, 918,
2069 919, 973, 876, 938, 767, 767, 918, 919, 767, 560,
2070 1060, 1060, 973, 918, 919, 920, 938, 920, 920, 973,
2071 851, 921, 938, 971, 842, 971, 971, 1024, 1024, 1024,
2072 986, 1024, 833, 560, 560, 561, 561, 561, 561, 561,
2074 561, 767, 561, 561, 561, 561, 561, 561, 561, 561,
2075 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
2076 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
2077 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
2078 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
2079 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
2080 570, 570, 969, 922, 970, 832, 969, 831, 970, 830,
2081 922, 1061, 1061, 969, 829, 970, 570, 570, 570, 570,
2082 969, 828, 970, 916, 834, 570, 570, 570, 768, 768,
2083 916, 834, 768, 922, 987, 827, 826, 916, 834, 570,
2085 570, 570, 570, 570, 570, 574, 574, 574, 574, 574,
2086 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
2087 916, 574, 574, 825, 836, 768, 834, 574, 574, 574,
2088 574, 836, 1025, 1025, 1025, 1027, 1027, 1027, 836, 987,
2089 824, 1026, 1026, 1026, 574, 1026, 1028, 1028, 1028, 823,
2090 1028, 1029, 1029, 1029, 822, 819, 818, 816, 814, 812,
2091 811, 809, 808, 836, 807, 806, 805, 804, 574, 574,
2092 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2093 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2094 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2096 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2097 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2098 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
2099 575, 575, 575, 575, 575, 584, 584, 803, 802, 801,
2100 799, 798, 797, 796, 793, 791, 790, 789, 787, 782,
2101 778, 584, 584, 584, 584, 777, 835, 774, 917, 756,
2102 584, 584, 584, 835, 738, 917, 720, 718, 714, 713,
2103 835, 708, 917, 707, 584, 584, 584, 584, 584, 584,
2104 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
2105 588, 588, 588, 588, 588, 917, 588, 588, 705, 703,
2107 835, 698, 588, 588, 588, 588, 694, 693, 688, 687,
2108 686, 685, 676, 675, 670, 666, 665, 664, 663, 588,
2109 662, 661, 659, 658, 657, 656, 655, 654, 652, 651,
2110 650, 649, 648, 647, 646, 645, 644, 642, 641, 640,
2111 639, 638, 637, 588, 588, 589, 589, 589, 589, 589,
2112 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2113 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2114 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2115 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2116 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2118 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2119 598, 598, 636, 635, 634, 633, 632, 630, 629, 628,
2120 627, 626, 625, 624, 623, 622, 598, 598, 598, 598,
2121 621, 614, 606, 605, 552, 598, 598, 598, 551, 548,
2122 547, 546, 542, 534, 533, 530, 529, 528, 527, 598,
2123 598, 598, 598, 598, 598, 602, 602, 602, 602, 602,
2124 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
2125 522, 602, 602, 521, 520, 519, 508, 602, 602, 602,
2126 602, 505, 502, 500, 499, 498, 497, 496, 495, 494,
2127 493, 492, 491, 490, 602, 489, 488, 487, 485, 484,
2129 483, 482, 474, 473, 472, 471, 470, 469, 468, 467,
2130 466, 465, 464, 462, 461, 459, 458, 457, 602, 602,
2131 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2132 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2133 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2134 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2135 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2136 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
2137 603, 603, 603, 603, 603, 612, 612, 612, 612, 456,
2138 455, 454, 453, 452, 612, 612, 612, 451, 432, 431,
2140 427, 332, 331, 321, 320, 319, 307, 306, 612, 612,
2141 612, 612, 612, 612, 616, 616, 302, 616, 616, 616,
2142 616, 616, 616, 616, 616, 616, 616, 616, 616, 292,
2143 616, 616, 289, 288, 284, 278, 616, 616, 616, 616,
2144 277, 275, 274, 273, 271, 270, 248, 246, 245, 238,
2145 237, 235, 229, 616, 228, 227, 219, 218, 217, 215,
2146 210, 208, 207, 205, 204, 203, 193, 173, 168, 166,
2147 117, 107, 102, 97, 92, 90, 81, 616, 616, 617,
2148 617, 76, 617, 617, 617, 617, 617, 617, 617, 617,
2149 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2151 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2152 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2153 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2154 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2155 617, 617, 617, 617, 702, 702, 65, 702, 702, 702,
2156 702, 702, 702, 702, 702, 702, 702, 702, 702, 34,
2157 702, 702, 32, 28, 23, 0, 702, 702, 702, 702,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 702, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 0, 702, 702, 704,
2163 704, 0, 704, 704, 704, 704, 704, 704, 704, 704,
2164 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
2165 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
2166 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
2167 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
2168 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
2169 704, 704, 704, 704, 717, 717, 717, 717, 717, 717,
2170 0, 717, 717, 717, 717, 717, 717, 717, 717, 0,
2171 717, 717, 0, 0, 0, 0, 717, 717, 717, 717,
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2174 0, 0, 0, 717, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 717, 717, 719,
2177 719, 719, 719, 719, 719, 0, 719, 719, 719, 719,
2178 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2179 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2180 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2181 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2182 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2184 719, 719, 719, 719, 735, 735, 735, 735, 735, 735,
2185 735, 735, 735, 735, 735, 735, 735, 735, 735, 0,
2186 735, 735, 0, 0, 0, 0, 735, 735, 735, 735,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 735, 735, 737,
2191 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2192 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2193 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2195 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2196 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2197 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
2198 737, 737, 737, 737, 753, 753, 753, 753, 753, 753,
2199 753, 753, 753, 753, 753, 753, 753, 753, 753, 0,
2200 753, 753, 0, 0, 0, 0, 753, 753, 753, 753,
2201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 753, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 753, 753, 755,
2206 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2207 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2208 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2209 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2210 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2211 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
2212 755, 755, 755, 755, 771, 771, 771, 771, 771, 771,
2213 771, 771, 771, 771, 771, 771, 771, 771, 771, 0,
2214 771, 771, 0, 0, 0, 0, 771, 771, 771, 771,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 771, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 771, 771, 773,
2220 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2221 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2222 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2223 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2224 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2225 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
2226 773, 773, 773, 773, 786, 786, 0, 786, 786, 786,
2228 786, 786, 786, 786, 786, 786, 786, 786, 786, 0,
2229 786, 786, 0, 0, 0, 0, 786, 786, 786, 786,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 786, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 786, 786, 788,
2234 788, 0, 788, 788, 788, 788, 788, 788, 788, 788,
2235 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
2236 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
2237 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
2239 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
2240 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
2241 788, 788, 788, 788, 848, 848, 0, 848, 848, 848,
2242 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
2243 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
2244 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
2245 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
2246 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
2247 848, 848, 848, 848, 848, 848, 848, 848, 848, 858,
2248 858, 858, 858, 858, 858, 0, 858, 858, 858, 858,
2250 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
2251 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
2252 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
2253 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
2254 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
2255 858, 858, 858, 858, 1095, 0, 1095, 1095, 1095, 1095,
2256 1095, 1095, 1095, 1095, 1095, 1096, 0, 0, 1096, 1096,
2257 1097, 0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
2258 1097, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
2259 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
2261 1100, 1100, 1100, 1100, 1101, 0, 1101, 0, 1101, 1101,
2262 1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
2263 0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
2264 1104, 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
2265 1104, 1105, 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
2266 1105, 1105, 1106, 0, 1106, 1106, 1106, 1106, 1106, 1106,
2267 1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
2268 1108, 1108, 0, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2269 1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
2270 1109, 1109, 1110, 1110, 0, 1110, 1110, 1110, 1110, 1110,
2272 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
2273 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112,
2274 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113,
2275 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114,
2276 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
2277 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116,
2278 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117,
2279 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
2280 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
2281 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
2283 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
2284 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
2285 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122,
2286 1122, 1122, 1122, 1122, 1122, 1123, 0, 1123, 1123, 1123,
2287 1123, 1123, 1123, 1123, 1123, 1123, 1124, 0, 1124, 1124,
2288 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 0, 1125,
2289 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 0,
2290 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
2291 0, 0, 1127, 1127, 1128, 0, 1128, 1128, 1128, 1128,
2292 1128, 1128, 1128, 1128, 1128, 1129, 0, 0, 1129, 1129,
2294 1129, 1130, 0, 0, 1130, 1131, 1131, 1131, 1131, 1131,
2295 1131, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
2296 1133, 0, 0, 0, 0, 1133, 1133, 1133, 1133, 1134,
2297 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
2298 1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136,
2299 1137, 0, 1137, 1137, 1137, 1137, 1138, 1138, 1138, 1138,
2300 1138, 1138, 1138, 1139, 0, 1139, 1139, 1139, 1139, 1139,
2301 1139, 1139, 1139, 1139, 1140, 0, 1140, 1140, 1140, 1140,
2302 1140, 1140, 1140, 1140, 1140, 1141, 0, 1141, 1141, 1141,
2303 1141, 1141, 1141, 1141, 1141, 1141, 1142, 0, 1142, 1142,
2305 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143, 0,
2306 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144,
2307 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145,
2308 1145, 0, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
2309 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
2310 1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
2311 1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2312 1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2313 1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150,
2314 1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
2316 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
2317 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153,
2318 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,
2319 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
2320 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
2321 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
2322 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
2323 1157, 1157, 1158, 0, 1158, 1158, 1158, 1158, 1158, 1158,
2324 1158, 1158, 1158, 1159, 0, 1159, 1159, 1159, 1159, 1159,
2325 1159, 1159, 1159, 1159, 1160, 0, 1160, 1160, 1160, 1160,
2327 1160, 1160, 1160, 1160, 1160, 1161, 0, 1161, 1161, 1161,
2328 1161, 1161, 1161, 1161, 1161, 1161, 1162, 0, 0, 1162,
2329 1162, 1163, 0, 0, 1163, 1163, 1163, 1164, 0, 0,
2330 1164, 1165, 0, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
2331 1165, 1165, 1166, 0, 1166, 1166, 1166, 1166, 1166, 1166,
2332 1166, 1166, 1166, 1167, 0, 1167, 1167, 1167, 1167, 1167,
2333 1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
2334 1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
2335 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
2336 1171, 1171, 1171, 1171, 1171, 1171, 1172, 0, 1172, 1172,
2338 1172, 1172, 1173, 0, 1173, 1173, 1173, 1173, 1174, 1174,
2339 1174, 1174, 1174, 1174, 1174, 1175, 0, 1175, 1175, 1175,
2340 1175, 1175, 1175, 1175, 1175, 1175, 1176, 0, 1176, 1176,
2341 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0, 1177,
2342 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 0,
2343 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
2344 0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2345 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181, 0,
2346 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182,
2347 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183,
2349 1183, 0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
2350 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
2351 1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
2352 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
2353 1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
2354 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
2355 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189,
2356 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190,
2357 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191,
2358 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1192,
2360 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193,
2361 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
2362 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
2363 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
2364 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
2365 1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
2366 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198,
2367 1198, 1198, 1198, 1198, 1198, 1199, 0, 1199, 1199, 1199,
2368 1199, 1199, 1199, 1199, 1199, 1199, 1200, 0, 1200, 1200,
2369 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, 1201,
2371 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202, 0,
2372 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
2373 0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
2374 1204, 0, 0, 1204, 1204, 1204, 1205, 0, 1205, 1205,
2375 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 0, 1206,
2376 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 0,
2377 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
2378 1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
2379 1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
2380 1210, 1210, 1210, 1210, 1210, 1211, 0, 1211, 1211, 1211,
2382 1211, 1212, 0, 1212, 1212, 1212, 1212, 1213, 1213, 1213,
2383 1213, 1213, 1213, 1213, 1214, 0, 1214, 1214, 1214, 1214,
2384 1214, 1214, 1214, 1214, 1214, 1215, 0, 1215, 1215, 1215,
2385 1215, 1215, 1215, 1215, 1215, 1215, 1216, 0, 1216, 1216,
2386 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 0, 1217,
2387 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 0,
2388 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
2389 1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220, 0, 1220,
2390 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221,
2391 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222,
2393 0, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223,
2394 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
2395 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
2396 1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
2397 1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
2398 1226, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
2399 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228,
2400 1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229,
2401 1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
2402 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1231,
2404 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1232, 1232,
2405 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1233,
2406 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
2407 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
2408 1234, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
2409 1235, 1235, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2410 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
2411 1237, 1237, 1237, 1237, 1238, 0, 1238, 1238, 1238, 1238,
2412 1238, 1238, 1238, 1238, 1238, 1239, 0, 1239, 1239, 1239,
2413 1239, 1239, 1239, 1239, 1239, 1239, 1240, 0, 1240, 1240,
2415 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1241, 0, 1241,
2416 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242, 0,
2417 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243,
2418 0, 0, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244,
2419 1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
2420 1245, 1245, 1245, 1245, 1246, 0, 1246, 1246, 1246, 1246,
2421 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248, 0, 1248,
2422 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1249,
2423 1249, 1249, 1249, 1249, 1249, 1250, 1250, 0, 1250, 1250,
2424 1250, 1250, 1250, 1250, 1250, 1250, 1094, 1094, 1094, 1094,
2426 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2427 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2428 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2429 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2430 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2431 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
2435 /* Table of booleans, true if rule could match eol. */
2436 static yyconst flex_int32_t yy_rule_can_match_eol
[149] =
2438 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
2445 0, 0, 0, 0, 0, 0, 0, 0, 0, };
2447 /* The intent behind this definition is that it'll catch
2448 * any uses of REJECT which flex missed.
2450 #define REJECT reject_used_but_not_detected
2451 #define yymore() yymore_used_but_not_detected
2452 #define YY_MORE_ADJ 0
2453 #define YY_RESTORE_YY_MORE_OFFSET
2454 #line 1 "compilers/imcc/imcc.l"
2456 #line 23 "compilers/imcc/imcc.l"
2460 * Intermediate Code Compiler for Parrot
2462 * Copyright (C) 2002 Melvin Smith <melvin.smith@mindspring.com>
2463 * Copyright (C) 2002-2008, Parrot Foundation.
2478 typedef struct yyguts_t yyguts_t
;
2479 typedef struct parser_state_t parser_state_t
;
2481 /* parser state structure
2482 * the first few items are common to struct parser_state, but
2483 * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */
2484 typedef struct macro_frame_t
{
2485 struct parser_state_t s
;
2494 YY_BUFFER_STATE buffer
;
2497 /* static function declarations */
2498 static void pop_parser_state(PARROT_INTERP
, ARGMOD(void *yyscanner
));
2500 static struct macro_frame_t
*new_frame(PARROT_INTERP
);
2502 static void define_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGIN(const params_t
*params
),
2503 ARGIN(const char *expansion
), int start_line
);
2505 static macro_t
*find_macro(PARROT_INTERP
, ARGIN(const char *name
));
2507 static void scan_string(macro_frame_t
*frame
, ARGIN(const char *expansion
),
2508 ARGMOD(void *yyscanner
));
2510 static void scan_file(PARROT_INTERP
, ARGIN(struct macro_frame_t
*frame
), ARGMOD(FILE *file
),
2511 ARGMOD(void *yyscanner
));
2513 static int destroy_frame(macro_frame_t
*frame
, ARGMOD(void *yyscanner
));
2515 static int yylex_skip(YYSTYPE
*valp
, PARROT_INTERP
, ARGIN(const char *skip
),
2516 ARGMOD(void *yyscanner
));
2518 static int read_macro(YYSTYPE
*valp
, PARROT_INTERP
, ARGMOD(void *yyscanner
));
2520 static int expand_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGMOD(void *yyscanner
));
2522 static void include_file(PARROT_INTERP
, char *file_name
, ARGMOD(void *yyscanner
));
2524 static int handle_identifier(PARROT_INTERP
, YYSTYPE
*valp
, ARGIN(const char *id
));
2526 #define YY_DECL int yylex(YYSTYPE *valp,yyscan_t yyscanner,PARROT_INTERP)
2528 #define YYCHOP() (yytext[--yyleng] = '\0')
2530 #define SET_LINE_NUMBER (IMCC_INFO(interp)->line = yylineno)
2532 #define DUP_AND_RET(valp, token) \
2534 if (valp) (valp)->s = mem_sys_strdup(yytext); \
2538 #define DUP_AND_RET_FREE(valp, token) \
2541 mem_sys_free((valp)->s); \
2542 (valp)->s = mem_sys_strdup(yytext); \
2557 #line 2558 "compilers/imcc/imclexer.c"
2571 #ifndef YY_NO_UNISTD_H
2572 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2573 * down here because we want the user's section 1 to have been scanned first.
2574 * The user has a chance to override it with an option.
2579 #ifndef YY_EXTRA_TYPE
2580 #define YY_EXTRA_TYPE void *
2583 /* Holds the entire state of the reentrant scanner. */
2587 /* User-defined. Not touched by flex. */
2588 YY_EXTRA_TYPE yyextra_r
;
2590 /* The rest are the same as the globals declared in the non-reentrant scanner. */
2591 FILE *yyin_r
, *yyout_r
;
2592 size_t yy_buffer_stack_top
; /**< index of top of stack. */
2593 size_t yy_buffer_stack_max
; /**< capacity of stack. */
2594 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
2601 int yy_did_buffer_switch_on_eof
;
2602 int yy_start_stack_ptr
;
2603 int yy_start_stack_depth
;
2604 int *yy_start_stack
;
2605 yy_state_type yy_last_accepting_state
;
2606 char* yy_last_accepting_cpos
;
2609 int yy_flex_debug_r
;
2615 }; /* end struct yyguts_t */
2617 static int yy_init_globals (yyscan_t yyscanner
);
2619 int yylex_init (yyscan_t
* scanner
);
2621 int yylex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
2623 /* Accessor methods to globals.
2624 These are made visible to non-reentrant scanners for convenience. */
2626 int yylex_destroy (yyscan_t yyscanner
);
2628 int yyget_debug (yyscan_t yyscanner
);
2630 void yyset_debug (int debug_flag
,yyscan_t yyscanner
);
2632 YY_EXTRA_TYPE
yyget_extra (yyscan_t yyscanner
);
2634 void yyset_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
2636 FILE *yyget_in (yyscan_t yyscanner
);
2638 void yyset_in (FILE * in_str
,yyscan_t yyscanner
);
2640 FILE *yyget_out (yyscan_t yyscanner
);
2642 void yyset_out (FILE * out_str
,yyscan_t yyscanner
);
2644 int yyget_leng (yyscan_t yyscanner
);
2646 char *yyget_text (yyscan_t yyscanner
);
2648 int yyget_lineno (yyscan_t yyscanner
);
2650 void yyset_lineno (int line_number
,yyscan_t yyscanner
);
2652 /* Macros after this point can all be overridden by user definitions in
2656 #ifndef YY_SKIP_YYWRAP
2658 extern "C" int yywrap (yyscan_t yyscanner
);
2660 extern int yywrap (yyscan_t yyscanner
);
2664 static void yyunput (int c
,char *buf_ptr
,yyscan_t yyscanner
);
2667 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
2670 #ifdef YY_NEED_STRLEN
2671 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
2677 static int yyinput (yyscan_t yyscanner
);
2679 static int input (yyscan_t yyscanner
);
2684 static void yy_push_state (int new_state
,yyscan_t yyscanner
);
2686 static void yy_pop_state (yyscan_t yyscanner
);
2688 static int yy_top_state (yyscan_t yyscanner
);
2690 /* Amount of stuff to slurp up with each read. */
2691 #ifndef YY_READ_BUF_SIZE
2693 /* On IA-64, the buffer size is 16k, not 8k */
2694 #define YY_READ_BUF_SIZE 16384
2696 #define YY_READ_BUF_SIZE 8192
2697 #endif /* __ia64__ */
2700 /* Copy whatever the last rule matched to the standard output. */
2702 /* This used to be an fputs(), but since the string might contain NUL's,
2703 * we now use fwrite().
2705 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
2708 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2709 * is returned in "result".
2712 #define YY_INPUT(buf,result,max_size) \
2713 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2717 for ( n = 0; n < max_size && \
2718 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2719 buf[n] = (char) c; \
2721 buf[n++] = (char) c; \
2722 if ( c == EOF && ferror( yyin ) ) \
2723 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2729 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2731 if( errno != EINTR) \
2733 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2744 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2745 * we don't want an extra ';' after the "return" because that will cause
2746 * some compilers to complain about unreachable statements.
2749 #define yyterminate() return YY_NULL
2752 /* Number of entries by which start-condition stack grows. */
2753 #ifndef YY_START_STACK_INCR
2754 #define YY_START_STACK_INCR 25
2757 /* Report a fatal error. */
2758 #ifndef YY_FATAL_ERROR
2759 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
2762 /* end tables serialization structures and prototypes */
2764 /* Default declaration of generated scanner - a define so the user can
2765 * easily add parameters.
2768 #define YY_DECL_IS_OURS 1
2770 extern int yylex (yyscan_t yyscanner
);
2772 #define YY_DECL int yylex (yyscan_t yyscanner)
2773 #endif /* !YY_DECL */
2775 /* Code executed at the beginning of each rule, after yytext and yyleng
2778 #ifndef YY_USER_ACTION
2779 #define YY_USER_ACTION
2782 /* Code executed at the end of each rule. */
2784 #define YY_BREAK break;
2787 #define YY_RULE_SETUP \
2789 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2790 (yytext[yyleng - 1] == '\n'); \
2793 /** The main scanner function which does all the work.
2797 register yy_state_type yy_current_state
;
2798 register char *yy_cp
, *yy_bp
;
2799 register int yy_act
;
2800 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2802 #line 157 "compilers/imcc/imcc.l"
2805 if (IMCC_INFO(interp
)->expect_pasm
== 1 && !IMCC_INFO(interp
)->in_pod
) {
2806 IMCC_INFO(interp
)->expect_pasm
= 2;
2810 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
&& YYSTATE
== INITIAL
&&
2811 !IMCC_INFO(interp
)->in_pod
)
2813 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
== 1) {
2821 #line 2822 "compilers/imcc/imclexer.c"
2823 if ( !yyg
->yy_init
)
2831 if ( ! yyg
->yy_start
)
2832 yyg
->yy_start
= 1; /* first start state */
2840 if ( ! YY_CURRENT_BUFFER
) {
2841 yyensure_buffer_stack (yyscanner
);
2842 YY_CURRENT_BUFFER_LVALUE
=
2843 yy_create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2846 yy_load_buffer_state(yyscanner
);
2849 while ( 1 ) /* loops until end-of-file is reached */
2851 yy_cp
= yyg
->yy_c_buf_p
;
2853 /* Support of yytext. */
2854 *yy_cp
= yyg
->yy_hold_char
;
2856 /* yy_bp points to the position in yy_ch_buf of the start of
2861 yy_current_state
= yyg
->yy_start
;
2862 yy_current_state
+= YY_AT_BOL();
2866 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
2867 if ( yy_accept
[yy_current_state
] )
2869 yyg
->yy_last_accepting_state
= yy_current_state
;
2870 yyg
->yy_last_accepting_cpos
= yy_cp
;
2872 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2874 yy_current_state
= (int) yy_def
[yy_current_state
];
2875 if ( yy_current_state
>= 1095 )
2876 yy_c
= yy_meta
[(unsigned int) yy_c
];
2878 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2881 while ( yy_current_state
!= 1094 );
2882 yy_cp
= yyg
->yy_last_accepting_cpos
;
2883 yy_current_state
= yyg
->yy_last_accepting_state
;
2886 yy_act
= yy_accept
[yy_current_state
];
2888 YY_DO_BEFORE_ACTION
;
2890 if ( yy_act
!= YY_END_OF_BUFFER
&& yy_rule_can_match_eol
[yy_act
] )
2893 for ( yyl
= 0; yyl
< yyleng
; ++yyl
)
2894 if ( yytext
[yyl
] == '\n' )
2902 do_action
: /* This label is used only to access EOF actions. */
2905 { /* beginning of action switch */
2906 case 0: /* must back up */
2907 /* undo the effects of YY_DO_BEFORE_ACTION */
2908 *yy_cp
= yyg
->yy_hold_char
;
2909 yy_cp
= yyg
->yy_last_accepting_cpos
;
2910 yy_current_state
= yyg
->yy_last_accepting_state
;
2911 goto yy_find_action
;
2915 #line 175 "compilers/imcc/imcc.l"
2916 { SET_LINE_NUMBER
; }
2919 /* rule 2 can match eol */
2921 #line 177 "compilers/imcc/imcc.l"
2924 IMCC_INFO(interp
)->frames
->heredoc_rest
= mem_sys_strdup(yytext
);
2929 /* rule 3 can match eol */
2931 #line 183 "compilers/imcc/imcc.l"
2933 /* heredocs have highest priority
2934 * arrange them before all wildcard state matches */
2936 /* Newline in the heredoc. Realloc and cat on. */
2937 IMCC_INFO(interp
)->heredoc_content
=
2938 (char*)mem_sys_realloc(IMCC_INFO(interp
)->heredoc_content
,
2939 strlen(IMCC_INFO(interp
)->heredoc_content
) +
2940 strlen(yytext
) + 2);
2941 strcpy(IMCC_INFO(interp
)->heredoc_content
+
2942 strlen(IMCC_INFO(interp
)->heredoc_content
), yytext
);
2947 #line 196 "compilers/imcc/imcc.l"
2950 /* Are we at the end of the heredoc? */
2951 if (STREQ(IMCC_INFO(interp
)->heredoc_end
, yytext
)) {
2952 /* End of the heredoc. */
2953 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
2954 const int len
= strlen(IMCC_INFO(interp
)->heredoc_content
);
2957 IMCC_INFO(interp
)->heredoc_content
[len
] =
2958 IMCC_INFO(interp
)->heredoc_content
[0];
2960 IMCC_INFO(interp
)->heredoc_content
[len
+ 1] = 0;
2962 mem_sys_free(IMCC_INFO(interp
)->heredoc_end
);
2963 IMCC_INFO(interp
)->heredoc_end
= NULL
;
2965 IMCC_INFO(interp
)->frames
->buffer
= YY_CURRENT_BUFFER
;
2967 IMCC_INFO(interp
)->heredoc_content
;
2969 yy_pop_state(yyscanner
);
2970 yy_scan_string(IMCC_INFO(interp
)->frames
->heredoc_rest
,yyscanner
);
2972 /* not sure we need this decrement; more testing needed */
2973 IMCC_INFO(interp
)->line
--;
2977 /* Part of the heredoc. Realloc and cat the line on. */
2978 IMCC_INFO(interp
)->heredoc_content
=
2979 (char *)mem_sys_realloc(IMCC_INFO(interp
)->heredoc_content
,
2980 strlen(IMCC_INFO(interp
)->heredoc_content
) +
2981 strlen(yytext
) + 2);
2982 strcpy(IMCC_INFO(interp
)->heredoc_content
+
2983 strlen(IMCC_INFO(interp
)->heredoc_content
), yytext
);
2988 /* rule 5 can match eol */
2990 #line 235 "compilers/imcc/imcc.l"
2992 yy_pop_state(yyscanner
);
2993 yy_push_state(cmt3
, yyscanner
);
2995 IMCC_INFO(interp
)->frames
->s
.file
= mem_sys_strdup(yytext
);
2996 IMCC_INFO(interp
)->cur_unit
->file
= mem_sys_strdup(yytext
);
3003 #line 245 "compilers/imcc/imcc.l"
3005 yy_pop_state(yyscanner
);
3006 yy_push_state(cmt4
, yyscanner
);
3011 #line 250 "compilers/imcc/imcc.l"
3012 { yy_push_state(cmt2
, yyscanner
); }
3016 #line 252 "compilers/imcc/imcc.l"
3017 { yy_push_state(cmt1
, yyscanner
); }
3021 #line 254 "compilers/imcc/imcc.l"
3023 yylineno
= IMCC_INFO(interp
)->line
= atoi(yytext
);
3024 yy_pop_state(yyscanner
);
3025 yy_push_state(cmt4
, yyscanner
);
3030 /* rule 10 can match eol */
3032 #line 261 "compilers/imcc/imcc.l"
3034 yy_pop_state(yyscanner
);
3038 /* rule 11 can match eol */
3040 #line 265 "compilers/imcc/imcc.l"
3042 if (IMCC_INFO(interp
)->expect_pasm
== 2)
3045 IMCC_INFO(interp
)->expect_pasm
= 0;
3052 #line 274 "compilers/imcc/imcc.l"
3054 yy_push_state(cmt5
, yyscanner
);
3058 /* rule 13 can match eol */
3060 #line 278 "compilers/imcc/imcc.l"
3062 if (IMCC_INFO(interp
)->expect_pasm
== 2)
3065 yy_pop_state(yyscanner
);
3067 IMCC_INFO(interp
)->expect_pasm
= 0;
3073 /* rule 14 can match eol */
3075 #line 290 "compilers/imcc/imcc.l"
3077 /* this is a stand-alone =cut, but we're not in POD mode, so ignore. */
3082 /* rule 15 can match eol */
3084 #line 295 "compilers/imcc/imcc.l"
3087 IMCC_INFO(interp
)->in_pod
= 1;
3088 yy_push_state(pod
, yyscanner
);
3092 /* rule 16 can match eol */
3094 #line 301 "compilers/imcc/imcc.l"
3097 IMCC_INFO(interp
)->in_pod
= 0;
3098 yy_pop_state(yyscanner
);
3103 #line 307 "compilers/imcc/imcc.l"
3104 { SET_LINE_NUMBER
; }
3107 /* rule 18 can match eol */
3109 #line 309 "compilers/imcc/imcc.l"
3114 #line 311 "compilers/imcc/imcc.l"
3119 #line 312 "compilers/imcc/imcc.l"
3124 #line 313 "compilers/imcc/imcc.l"
3129 #line 314 "compilers/imcc/imcc.l"
3134 #line 315 "compilers/imcc/imcc.l"
3139 #line 316 "compilers/imcc/imcc.l"
3144 #line 317 "compilers/imcc/imcc.l"
3149 #line 318 "compilers/imcc/imcc.l"
3154 #line 319 "compilers/imcc/imcc.l"
3159 #line 320 "compilers/imcc/imcc.l"
3164 #line 321 "compilers/imcc/imcc.l"
3169 #line 322 "compilers/imcc/imcc.l"
3174 #line 323 "compilers/imcc/imcc.l"
3179 #line 324 "compilers/imcc/imcc.l"
3184 #line 325 "compilers/imcc/imcc.l"
3185 return PCC_BEGIN_RETURN
;
3189 #line 326 "compilers/imcc/imcc.l"
3190 return PCC_END_RETURN
;
3194 #line 327 "compilers/imcc/imcc.l"
3195 return PCC_BEGIN_YIELD
;
3199 #line 328 "compilers/imcc/imcc.l"
3200 return PCC_END_YIELD
;
3204 #line 330 "compilers/imcc/imcc.l"
3209 #line 331 "compilers/imcc/imcc.l"
3214 #line 332 "compilers/imcc/imcc.l"
3219 #line 333 "compilers/imcc/imcc.l"
3224 #line 334 "compilers/imcc/imcc.l"
3229 #line 335 "compilers/imcc/imcc.l"
3234 #line 336 "compilers/imcc/imcc.l"
3239 #line 337 "compilers/imcc/imcc.l"
3244 #line 338 "compilers/imcc/imcc.l"
3249 #line 339 "compilers/imcc/imcc.l"
3254 #line 340 "compilers/imcc/imcc.l"
3255 return VTABLE_METHOD
;
3259 #line 341 "compilers/imcc/imcc.l"
3264 #line 342 "compilers/imcc/imcc.l"
3269 #line 343 "compilers/imcc/imcc.l"
3270 return SUB_INSTANCE_OF
;
3274 #line 344 "compilers/imcc/imcc.l"
3279 #line 346 "compilers/imcc/imcc.l"
3284 #line 347 "compilers/imcc/imcc.l"
3289 #line 348 "compilers/imcc/imcc.l"
3294 #line 349 "compilers/imcc/imcc.l"
3299 #line 350 "compilers/imcc/imcc.l"
3304 #line 351 "compilers/imcc/imcc.l"
3309 #line 352 "compilers/imcc/imcc.l"
3314 #line 353 "compilers/imcc/imcc.l"
3319 #line 355 "compilers/imcc/imcc.l"
3324 #line 356 "compilers/imcc/imcc.l"
3329 #line 357 "compilers/imcc/imcc.l"
3330 return ADV_OPTIONAL
;
3334 #line 358 "compilers/imcc/imcc.l"
3335 return ADV_OPT_FLAG
;
3339 #line 359 "compilers/imcc/imcc.l"
3344 #line 360 "compilers/imcc/imcc.l"
3349 #line 361 "compilers/imcc/imcc.l"
3350 return ADV_INVOCANT
;
3354 #line 362 "compilers/imcc/imcc.l"
3355 return ADV_CALL_SIG
;
3359 #line 364 "compilers/imcc/imcc.l"
3364 #line 365 "compilers/imcc/imcc.l"
3369 #line 367 "compilers/imcc/imcc.l"
3374 #line 368 "compilers/imcc/imcc.l"
3379 #line 369 "compilers/imcc/imcc.l"
3380 return GLOBAL_CONST
;
3384 #line 370 "compilers/imcc/imcc.l"
3389 #line 371 "compilers/imcc/imcc.l"
3394 #line 372 "compilers/imcc/imcc.l"
3399 #line 373 "compilers/imcc/imcc.l"
3404 #line 374 "compilers/imcc/imcc.l"
3409 #line 375 "compilers/imcc/imcc.l"
3414 #line 376 "compilers/imcc/imcc.l"
3419 #line 378 "compilers/imcc/imcc.l"
3424 #line 379 "compilers/imcc/imcc.l"
3429 #line 380 "compilers/imcc/imcc.l"
3434 #line 381 "compilers/imcc/imcc.l"
3439 #line 382 "compilers/imcc/imcc.l"
3440 return SHIFT_RIGHT_U
;
3444 #line 383 "compilers/imcc/imcc.l"
3449 #line 384 "compilers/imcc/imcc.l"
3454 #line 385 "compilers/imcc/imcc.l"
3459 #line 386 "compilers/imcc/imcc.l"
3464 #line 387 "compilers/imcc/imcc.l"
3469 #line 388 "compilers/imcc/imcc.l"
3474 #line 389 "compilers/imcc/imcc.l"
3479 #line 390 "compilers/imcc/imcc.l"
3484 #line 391 "compilers/imcc/imcc.l"
3489 #line 392 "compilers/imcc/imcc.l"
3494 #line 394 "compilers/imcc/imcc.l"
3499 #line 395 "compilers/imcc/imcc.l"
3504 #line 397 "compilers/imcc/imcc.l"
3509 #line 398 "compilers/imcc/imcc.l"
3510 return MINUS_ASSIGN
;
3514 #line 399 "compilers/imcc/imcc.l"
3519 #line 400 "compilers/imcc/imcc.l"
3524 #line 401 "compilers/imcc/imcc.l"
3529 #line 402 "compilers/imcc/imcc.l"
3534 #line 403 "compilers/imcc/imcc.l"
3539 #line 404 "compilers/imcc/imcc.l"
3544 #line 405 "compilers/imcc/imcc.l"
3549 #line 406 "compilers/imcc/imcc.l"
3554 #line 407 "compilers/imcc/imcc.l"
3559 #line 408 "compilers/imcc/imcc.l"
3564 #line 409 "compilers/imcc/imcc.l"
3565 return SHR_U_ASSIGN
;
3569 #line 410 "compilers/imcc/imcc.l"
3570 return CONCAT_ASSIGN
;
3574 #line 412 "compilers/imcc/imcc.l"
3576 char *macro_name
= NULL
;
3577 int start_cond
= YY_START
;
3578 int macro_exists
= 0;
3583 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
3585 if (c
!= IDENTIFIER
)
3586 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3587 "Constant names must be identifiers");
3589 IMCC_INFO(interp
)->cur_macro_name
= macro_name
= valp
->s
;
3590 start_line
= IMCC_INFO(interp
)->line
;
3592 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
3594 if (c
!= INTC
&& c
!= FLOATC
&& c
!= STRINGC
&& c
!= REG
)
3595 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3596 "Constant '%s' value must be a number, "
3597 "stringliteral or register", macro_name
);
3599 /* macro_name becomes a hash key
3600 * the first one needs to remain; destroying the hash frees it
3601 * subsequent macro_names need destruction here to avoid leaks */
3602 if (find_macro(interp
, macro_name
))
3605 define_macro(interp
, macro_name
, NULL
, valp
->s
, start_line
);
3606 mem_sys_free(valp
->s
);
3608 /* don't leak these */
3610 mem_sys_free(macro_name
);
3612 IMCC_INFO(interp
)->cur_macro_name
= NULL
;
3620 #line 455 "compilers/imcc/imcc.l"
3622 /* the initial whitespace catcher misses this one */
3624 return read_macro(valp
, interp
, yyscanner
);
3629 #line 461 "compilers/imcc/imcc.l"
3631 const int c
= yylex(valp
,yyscanner
,interp
);
3636 /* STRINGCs have a mem_sys_strdup()ed valp->s */
3637 mem_sys_free(valp
->s
);
3639 include_file(interp
, yytext
+ 1, yyscanner
);
3644 #line 473 "compilers/imcc/imcc.l"
3653 if (!IMCC_INFO(interp
)->frames
|| !IMCC_INFO(interp
)->frames
->label
)
3654 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "missing space?");
3657 label
= (char *)mem_sys_allocate(len
);
3658 snprintf(label
, len
, "%s%d", yytext
, IMCC_INFO(interp
)->frames
->label
);
3660 /* XXX: free valp->s if it exists? */
3669 #line 495 "compilers/imcc/imcc.l"
3676 if (!IMCC_INFO(interp
)->frames
|| !IMCC_INFO(interp
)->frames
->label
)
3677 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "missing space?");
3680 label
= (char *)mem_sys_allocate(len
);
3681 snprintf(label
, len
, "%s%d", yytext
, IMCC_INFO(interp
)->frames
->label
);
3683 /* XXX: free valp->s if it exists? */
3692 #line 515 "compilers/imcc/imcc.l"
3697 #line 517 "compilers/imcc/imcc.l"
3703 valp
->s
= mem_sys_strdup(yytext
);
3710 #line 527 "compilers/imcc/imcc.l"
3712 char * const macro_name
= mem_sys_strdup(yytext
+ 1);
3713 int failed
= expand_macro(interp
, macro_name
, yyscanner
);
3714 mem_sys_free(macro_name
);
3723 #line 539 "compilers/imcc/imcc.l"
3724 DUP_AND_RET(valp
, FLOATC
);
3728 #line 540 "compilers/imcc/imcc.l"
3729 DUP_AND_RET(valp
, INTC
);
3733 #line 541 "compilers/imcc/imcc.l"
3734 DUP_AND_RET(valp
, INTC
);
3738 #line 542 "compilers/imcc/imcc.l"
3739 DUP_AND_RET(valp
, INTC
);
3743 #line 543 "compilers/imcc/imcc.l"
3744 DUP_AND_RET(valp
, INTC
);
3748 #line 545 "compilers/imcc/imcc.l"
3750 valp
->s
= mem_sys_strdup(yytext
);
3753 valp
->s
[strlen(valp
->s
) - 1] = '\0';
3755 /* no BIGINT native format yet */
3761 #line 555 "compilers/imcc/imcc.l"
3763 valp
->s
= mem_sys_strdup(yytext
);
3770 #line 561 "compilers/imcc/imcc.l"
3772 macro_frame_t
*frame
;
3774 /* Save the string we want to mark the end of the heredoc and snip
3775 off newline and quote. */
3776 if (IMCC_INFO(interp
)->frames
->heredoc_rest
)
3777 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "nested heredoc not supported");
3778 IMCC_INFO(interp
)->heredoc_end
= mem_sys_strdup(yytext
+ 3);
3779 IMCC_INFO(interp
)->heredoc_end
[strlen(IMCC_INFO(interp
)->heredoc_end
) - 1] = 0;
3781 if (!strlen(IMCC_INFO(interp
)->heredoc_end
))
3782 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "empty heredoc delimiter");
3784 frame
= new_frame(interp
);
3785 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
3786 IMCC_INFO(interp
)->frames
= frame
;
3788 /* Start slurping up the heredoc. */
3789 IMCC_INFO(interp
)->heredoc_content
= (char *)mem_sys_allocate(2);
3791 /* preserve delim */
3792 IMCC_INFO(interp
)->heredoc_content
[0] = yytext
[2];
3795 IMCC_INFO(interp
)->heredoc_content
[1] = 0;
3796 yy_push_state(heredoc1
, yyscanner
);
3801 #line 589 "compilers/imcc/imcc.l"
3804 valp
->s
= mem_sys_strdup(yytext
);
3806 /* this is actually not unicode but a string with a charset */
3812 #line 597 "compilers/imcc/imcc.l"
3814 if (valp
) (valp
)->s
= yytext
;
3815 if (IMCC_INFO(interp
)->state
->pasm_file
)
3816 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3817 "'%s' is not a valid register name in pasm mode", yytext
);
3823 #line 605 "compilers/imcc/imcc.l"
3825 if (valp
) (valp
)->s
= yytext
;
3826 if (IMCC_INFO(interp
)->state
->pasm_file
)
3827 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3828 "'%s' is not a valid register name in pasm mode", yytext
);
3834 #line 613 "compilers/imcc/imcc.l"
3836 if (valp
) (valp
)->s
= yytext
;
3837 if (IMCC_INFO(interp
)->state
->pasm_file
)
3838 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3839 "'%s' is not a valid register name in pasm mode", yytext
);
3845 #line 621 "compilers/imcc/imcc.l"
3847 if (valp
) (valp
)->s
= yytext
;
3848 if (IMCC_INFO(interp
)->state
->pasm_file
)
3849 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3850 "'%s' is not a valid register name in pasm mode", yytext
);
3856 #line 629 "compilers/imcc/imcc.l"
3858 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3859 "'%s' is not a valid register name", yytext
);
3864 #line 634 "compilers/imcc/imcc.l"
3866 if (IMCC_INFO(interp
)->state
->pasm_file
== 0)
3867 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3868 "'%s' is only a valid register name in PASM mode", yytext
);
3871 valp
->s
= mem_sys_strdup(yytext
);
3878 #line 646 "compilers/imcc/imcc.l"
3879 { return handle_identifier(interp
, valp
, yytext
); }
3883 #line 648 "compilers/imcc/imcc.l"
3888 #line 650 "compilers/imcc/imcc.l"
3890 /* catch all except for state macro */
3894 case YY_STATE_EOF(emit
):
3895 #line 655 "compilers/imcc/imcc.l"
3899 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
) {
3900 IMCC_INFO(interp
)->frames
->s
.pasm_file
= 2;
3907 case YY_STATE_EOF(INITIAL
):
3908 #line 666 "compilers/imcc/imcc.l"
3913 #line 668 "compilers/imcc/imcc.l"
3915 /* the initial whitespace catcher misses this one */
3917 DUP_AND_RET(valp
, ENDM
);
3921 /* rule 138 can match eol */
3923 #line 674 "compilers/imcc/imcc.l"
3925 DUP_AND_RET(valp
, '\n');
3930 #line 678 "compilers/imcc/imcc.l"
3935 #line 680 "compilers/imcc/imcc.l"
3938 if (yylex(valp
,yyscanner
,interp
) != LABEL
)
3939 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "LABEL expected");
3946 len
= strlen(IMCC_INFO(interp
)->cur_macro_name
) + yyleng
+ 15;
3947 label
= (char *)mem_sys_allocate(len
);
3949 snprintf(label
, len
, "local__%s__%s__$:",
3950 IMCC_INFO(interp
)->cur_macro_name
, yytext
+1);
3953 mem_sys_free(valp
->s
);
3962 #line 704 "compilers/imcc/imcc.l"
3965 if (!IMCC_INFO(interp
)->cur_macro_name
) {
3967 mem_sys_free(valp
->s
);
3968 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3969 "Invalid LABEL outside of macro");
3972 const char * const fmt
= "local__%s__%s__$";
3973 const size_t fmtlen
= strlen(fmt
) - (2 * strlen("%s"));
3974 const size_t len
= strlen(IMCC_INFO(interp
)->cur_macro_name
)
3976 char * const label
= (char *)mem_sys_allocate(len
);
3978 /* skip over ".$" prefix with the +2 */
3979 snprintf(label
, len
, fmt
,
3980 IMCC_INFO(interp
)->cur_macro_name
, yytext
+ 2);
3983 mem_sys_free(valp
->s
);
3993 #line 732 "compilers/imcc/imcc.l"
3994 DUP_AND_RET(valp
, ' ');
3998 #line 733 "compilers/imcc/imcc.l"
3999 DUP_AND_RET(valp
, REG
);
4003 #line 734 "compilers/imcc/imcc.l"
4004 DUP_AND_RET(valp
, REG
);
4008 #line 735 "compilers/imcc/imcc.l"
4009 DUP_AND_RET(valp
, IDENTIFIER
);
4013 #line 736 "compilers/imcc/imcc.l"
4014 DUP_AND_RET(valp
, MACRO
);
4018 #line 737 "compilers/imcc/imcc.l"
4019 DUP_AND_RET(valp
, yytext
[0]);
4021 case YY_STATE_EOF(macro
):
4022 #line 738 "compilers/imcc/imcc.l"
4027 #line 740 "compilers/imcc/imcc.l"
4030 #line 4031 "compilers/imcc/imclexer.c"
4031 case YY_STATE_EOF(pod
):
4032 case YY_STATE_EOF(cmt1
):
4033 case YY_STATE_EOF(cmt2
):
4034 case YY_STATE_EOF(cmt3
):
4035 case YY_STATE_EOF(cmt4
):
4036 case YY_STATE_EOF(cmt5
):
4037 case YY_STATE_EOF(heredoc1
):
4038 case YY_STATE_EOF(heredoc2
):
4041 case YY_END_OF_BUFFER
:
4043 /* Amount of text matched not including the EOB char. */
4044 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
4046 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4047 *yy_cp
= yyg
->yy_hold_char
;
4048 YY_RESTORE_YY_MORE_OFFSET
4050 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
4052 /* We're scanning a new file or input source. It's
4053 * possible that this happened because the user
4054 * just pointed yyin at a new source and called
4055 * yylex(). If so, then we have to assure
4056 * consistency between YY_CURRENT_BUFFER and our
4057 * globals. Here is the right place to do so, because
4058 * this is the first action (other than possibly a
4059 * back-up) that will match for the new input source.
4061 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
4062 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
4063 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
4066 /* Note that here we test for yy_c_buf_p "<=" to the position
4067 * of the first EOB in the buffer, since yy_c_buf_p will
4068 * already have been incremented past the NUL character
4069 * (since all states make transitions on EOB to the
4070 * end-of-buffer state). Contrast this with the test
4073 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
4074 { /* This was really a NUL. */
4075 yy_state_type yy_next_state
;
4077 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
4079 yy_current_state
= yy_get_previous_state( yyscanner
);
4081 /* Okay, we're now positioned to make the NUL
4082 * transition. We couldn't have
4083 * yy_get_previous_state() go ahead and do it
4084 * for us because it doesn't know how to deal
4085 * with the possibility of jamming (and we don't
4086 * want to build jamming into it because then it
4087 * will run more slowly).
4090 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
4092 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4094 if ( yy_next_state
)
4096 /* Consume the NUL. */
4097 yy_cp
= ++yyg
->yy_c_buf_p
;
4098 yy_current_state
= yy_next_state
;
4104 yy_cp
= yyg
->yy_last_accepting_cpos
;
4105 yy_current_state
= yyg
->yy_last_accepting_state
;
4106 goto yy_find_action
;
4110 else switch ( yy_get_next_buffer( yyscanner
) )
4112 case EOB_ACT_END_OF_FILE
:
4114 yyg
->yy_did_buffer_switch_on_eof
= 0;
4116 if ( yywrap(yyscanner
) )
4118 /* Note: because we've taken care in
4119 * yy_get_next_buffer() to have set up
4120 * yytext, we can now set up
4121 * yy_c_buf_p so that if some total
4122 * hoser (like flex itself) wants to
4123 * call the scanner after we return the
4124 * YY_NULL, it'll still work - another
4125 * YY_NULL will get returned.
4127 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4129 yy_act
= YY_STATE_EOF(YY_START
);
4135 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
4141 case EOB_ACT_CONTINUE_SCAN
:
4143 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
4145 yy_current_state
= yy_get_previous_state( yyscanner
);
4147 yy_cp
= yyg
->yy_c_buf_p
;
4148 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4151 case EOB_ACT_LAST_MATCH
:
4153 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
4155 yy_current_state
= yy_get_previous_state( yyscanner
);
4157 yy_cp
= yyg
->yy_c_buf_p
;
4158 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4159 goto yy_find_action
;
4166 "fatal flex scanner internal error--no action found" );
4167 } /* end of action switch */
4168 } /* end of scanning one token */
4169 } /* end of yylex */
4171 /* yy_get_next_buffer - try to read in a new buffer
4173 * Returns a code representing an action:
4174 * EOB_ACT_LAST_MATCH -
4175 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4176 * EOB_ACT_END_OF_FILE - end of file
4178 static int yy_get_next_buffer (yyscan_t yyscanner
)
4180 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4181 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
4182 register char *source
= yyg
->yytext_ptr
;
4183 register int number_to_move
, i
;
4186 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
4188 "fatal flex scanner internal error--end of buffer missed" );
4190 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
4191 { /* Don't try to fill the buffer, so this is an EOF. */
4192 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
4194 /* We matched a single character, the EOB, so
4195 * treat this as a final EOF.
4197 return EOB_ACT_END_OF_FILE
;
4202 /* We matched some text prior to the EOB, first
4205 return EOB_ACT_LAST_MATCH
;
4209 /* Try to read more data. */
4211 /* First move last chars to start of buffer. */
4212 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
4214 for ( i
= 0; i
< number_to_move
; ++i
)
4215 *(dest
++) = *(source
++);
4217 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
4218 /* don't do the read, it's not guaranteed to return an EOF,
4221 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
4226 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
4228 while ( num_to_read
<= 0 )
4229 { /* Not enough room in the buffer - grow it. */
4231 /* just a shorter name for the current buffer */
4232 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
4234 int yy_c_buf_p_offset
=
4235 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
4237 if ( b
->yy_is_our_buffer
)
4239 int new_size
= b
->yy_buf_size
* 2;
4241 if ( new_size
<= 0 )
4242 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
4244 b
->yy_buf_size
*= 2;
4246 b
->yy_ch_buf
= (char *)
4247 /* Include room in for 2 EOB chars. */
4248 yyrealloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
4251 /* Can't grow it, we don't own it. */
4254 if ( ! b
->yy_ch_buf
)
4256 "fatal error - scanner input buffer overflow" );
4258 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
4260 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
4265 if ( num_to_read
> YY_READ_BUF_SIZE
)
4266 num_to_read
= YY_READ_BUF_SIZE
;
4268 /* Read in more data. */
4269 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
4270 yyg
->yy_n_chars
, (size_t) num_to_read
);
4272 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4275 if ( yyg
->yy_n_chars
== 0 )
4277 if ( number_to_move
== YY_MORE_ADJ
)
4279 ret_val
= EOB_ACT_END_OF_FILE
;
4280 yyrestart(yyin
,yyscanner
);
4285 ret_val
= EOB_ACT_LAST_MATCH
;
4286 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
4287 YY_BUFFER_EOF_PENDING
;
4292 ret_val
= EOB_ACT_CONTINUE_SCAN
;
4294 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
4295 /* Extend the array by 50%, plus the number we really need. */
4296 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
4297 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
4298 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
4299 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4302 yyg
->yy_n_chars
+= number_to_move
;
4303 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
4304 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
4306 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
4311 /* yy_get_previous_state - get the state just before the EOB char was reached */
4313 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
4315 register yy_state_type yy_current_state
;
4316 register char *yy_cp
;
4317 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4319 yy_current_state
= yyg
->yy_start
;
4320 yy_current_state
+= YY_AT_BOL();
4322 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
4324 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
4325 if ( yy_accept
[yy_current_state
] )
4327 yyg
->yy_last_accepting_state
= yy_current_state
;
4328 yyg
->yy_last_accepting_cpos
= yy_cp
;
4330 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
4332 yy_current_state
= (int) yy_def
[yy_current_state
];
4333 if ( yy_current_state
>= 1095 )
4334 yy_c
= yy_meta
[(unsigned int) yy_c
];
4336 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
4339 return yy_current_state
;
4342 /* yy_try_NUL_trans - try to make a transition on the NUL character
4345 * next_state = yy_try_NUL_trans( current_state );
4347 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
4349 register int yy_is_jam
;
4350 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
4351 register char *yy_cp
= yyg
->yy_c_buf_p
;
4353 register YY_CHAR yy_c
= 1;
4354 if ( yy_accept
[yy_current_state
] )
4356 yyg
->yy_last_accepting_state
= yy_current_state
;
4357 yyg
->yy_last_accepting_cpos
= yy_cp
;
4359 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
4361 yy_current_state
= (int) yy_def
[yy_current_state
];
4362 if ( yy_current_state
>= 1095 )
4363 yy_c
= yy_meta
[(unsigned int) yy_c
];
4365 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
4366 yy_is_jam
= (yy_current_state
== 1094);
4368 return yy_is_jam
? 0 : yy_current_state
;
4371 static void yyunput (int c
, register char * yy_bp
, yyscan_t yyscanner
)
4373 register char *yy_cp
;
4374 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4376 yy_cp
= yyg
->yy_c_buf_p
;
4378 /* undo effects of setting up yytext */
4379 *yy_cp
= yyg
->yy_hold_char
;
4381 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
4382 { /* need to shift things up to make room */
4383 /* +2 for EOB chars. */
4384 register int number_to_move
= yyg
->yy_n_chars
+ 2;
4385 register char *dest
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[
4386 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
+ 2];
4387 register char *source
=
4388 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
];
4390 while ( source
> YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
4391 *--dest
= *--source
;
4393 yy_cp
+= (int) (dest
- source
);
4394 yy_bp
+= (int) (dest
- source
);
4395 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
=
4396 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
;
4398 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
4399 YY_FATAL_ERROR( "flex scanner push-back overflow" );
4402 *--yy_cp
= (char) c
;
4408 yyg
->yytext_ptr
= yy_bp
;
4409 yyg
->yy_hold_char
= *yy_cp
;
4410 yyg
->yy_c_buf_p
= yy_cp
;
4415 static int yyinput (yyscan_t yyscanner
)
4417 static int input (yyscan_t yyscanner
)
4422 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4424 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4426 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
4428 /* yy_c_buf_p now points to the character we want to return.
4429 * If this occurs *before* the EOB characters, then it's a
4430 * valid NUL; if not, then we've hit the end of the buffer.
4432 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
4433 /* This was really a NUL. */
4434 *yyg
->yy_c_buf_p
= '\0';
4437 { /* need more input */
4438 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
4441 switch ( yy_get_next_buffer( yyscanner
) )
4443 case EOB_ACT_LAST_MATCH
:
4444 /* This happens because yy_g_n_b()
4445 * sees that we've accumulated a
4446 * token and flags that we need to
4447 * try matching the token before
4448 * proceeding. But for input(),
4449 * there's no matching to consider.
4450 * So convert the EOB_ACT_LAST_MATCH
4451 * to EOB_ACT_END_OF_FILE.
4454 /* Reset buffer status. */
4455 yyrestart(yyin
,yyscanner
);
4459 case EOB_ACT_END_OF_FILE
:
4461 if ( yywrap(yyscanner
) )
4464 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
4467 return yyinput(yyscanner
);
4469 return input(yyscanner
);
4473 case EOB_ACT_CONTINUE_SCAN
:
4474 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
4480 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
4481 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
4482 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
4484 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
4485 if ( YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
)
4494 #endif /* ifndef YY_NO_INPUT */
4496 /** Immediately switch to a different input stream.
4497 * @param input_file A readable stream.
4498 * @param yyscanner The scanner object.
4499 * @note This function does not reset the start condition to @c INITIAL .
4501 void yyrestart (FILE * input_file
, yyscan_t yyscanner
)
4503 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4505 if ( ! YY_CURRENT_BUFFER
){
4506 yyensure_buffer_stack (yyscanner
);
4507 YY_CURRENT_BUFFER_LVALUE
=
4508 yy_create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
4511 yy_init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
4512 yy_load_buffer_state(yyscanner
);
4515 /** Switch to a different input buffer.
4516 * @param new_buffer The new input buffer.
4517 * @param yyscanner The scanner object.
4519 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
4521 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4523 /* TODO. We should be able to replace this entire function body
4525 * yypop_buffer_state();
4526 * yypush_buffer_state(new_buffer);
4528 yyensure_buffer_stack (yyscanner
);
4529 if ( YY_CURRENT_BUFFER
== new_buffer
)
4532 if ( YY_CURRENT_BUFFER
)
4534 /* Flush out information for old buffer. */
4535 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4536 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
4537 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4540 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
4541 yy_load_buffer_state(yyscanner
);
4543 /* We don't actually know whether we did this switch during
4544 * EOF (yywrap()) processing, but the only time this flag
4545 * is looked at is after yywrap() is called, so it's safe
4546 * to go ahead and always set it.
4548 yyg
->yy_did_buffer_switch_on_eof
= 1;
4551 static void yy_load_buffer_state (yyscan_t yyscanner
)
4553 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4554 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
4555 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
4556 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
4557 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
4560 /** Allocate and initialize an input buffer state.
4561 * @param file A readable stream.
4562 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4563 * @param yyscanner The scanner object.
4564 * @return the allocated buffer state.
4566 YY_BUFFER_STATE
yy_create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
4570 b
= (YY_BUFFER_STATE
) yyalloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
4572 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4574 b
->yy_buf_size
= size
;
4576 /* yy_ch_buf has to be 2 characters longer than the size given because
4577 * we need to put in 2 end-of-buffer characters.
4579 b
->yy_ch_buf
= (char *) yyalloc(b
->yy_buf_size
+ 2 ,yyscanner
);
4580 if ( ! b
->yy_ch_buf
)
4581 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4583 b
->yy_is_our_buffer
= 1;
4585 yy_init_buffer(b
,file
,yyscanner
);
4590 /** Destroy the buffer.
4591 * @param b a buffer created with yy_create_buffer()
4592 * @param yyscanner The scanner object.
4594 void yy_delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
4596 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4601 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
4602 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
4604 if ( b
->yy_is_our_buffer
)
4605 yyfree((void *) b
->yy_ch_buf
,yyscanner
);
4607 yyfree((void *) b
,yyscanner
);
4610 /* Initializes or reinitializes a buffer.
4611 * This function is sometimes called more than once on the same buffer,
4612 * such as during a yyrestart() or at EOF.
4614 static void yy_init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
4618 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4620 yy_flush_buffer(b
,yyscanner
);
4622 b
->yy_input_file
= file
;
4623 b
->yy_fill_buffer
= 1;
4625 /* If b is the current buffer, then yy_init_buffer was _probably_
4626 * called from yyrestart() or through yy_get_next_buffer.
4627 * In that case, we don't want to reset the lineno or column.
4629 if (b
!= YY_CURRENT_BUFFER
){
4630 b
->yy_bs_lineno
= 1;
4631 b
->yy_bs_column
= 0;
4634 b
->yy_is_interactive
= 0;
4639 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4640 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4641 * @param yyscanner The scanner object.
4643 void yy_flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
4645 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4651 /* We always need two end-of-buffer characters. The first causes
4652 * a transition to the end-of-buffer state. The second causes
4653 * a jam in that state.
4655 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
4656 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
4658 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
4661 b
->yy_buffer_status
= YY_BUFFER_NEW
;
4663 if ( b
== YY_CURRENT_BUFFER
)
4664 yy_load_buffer_state(yyscanner
);
4667 /** Pushes the new state onto the stack. The new state becomes
4668 * the current state. This function will allocate the stack
4670 * @param new_buffer The new state.
4671 * @param yyscanner The scanner object.
4673 void yypush_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
4675 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4676 if (new_buffer
== NULL
)
4679 yyensure_buffer_stack(yyscanner
);
4681 /* This block is copied from yy_switch_to_buffer. */
4682 if ( YY_CURRENT_BUFFER
)
4684 /* Flush out information for old buffer. */
4685 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4686 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
4687 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4690 /* Only push if top exists. Otherwise, replace top. */
4691 if (YY_CURRENT_BUFFER
)
4692 yyg
->yy_buffer_stack_top
++;
4693 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
4695 /* copied from yy_switch_to_buffer. */
4696 yy_load_buffer_state(yyscanner
);
4697 yyg
->yy_did_buffer_switch_on_eof
= 1;
4700 /** Removes and deletes the top of the stack, if present.
4701 * The next element becomes the new top.
4702 * @param yyscanner The scanner object.
4704 void yypop_buffer_state (yyscan_t yyscanner
)
4706 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4707 if (!YY_CURRENT_BUFFER
)
4710 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
4711 YY_CURRENT_BUFFER_LVALUE
= NULL
;
4712 if (yyg
->yy_buffer_stack_top
> 0)
4713 --yyg
->yy_buffer_stack_top
;
4715 if (YY_CURRENT_BUFFER
) {
4716 yy_load_buffer_state(yyscanner
);
4717 yyg
->yy_did_buffer_switch_on_eof
= 1;
4721 /* Allocates the stack if it does not exist.
4722 * Guarantees space for at least one push.
4724 static void yyensure_buffer_stack (yyscan_t yyscanner
)
4727 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4729 if (!yyg
->yy_buffer_stack
) {
4731 /* First allocation is just for 2 elements, since we don't know if this
4732 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4733 * immediate realloc on the next call.
4736 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)yyalloc
4737 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
4739 if ( ! yyg
->yy_buffer_stack
)
4740 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4742 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
4744 yyg
->yy_buffer_stack_max
= num_to_alloc
;
4745 yyg
->yy_buffer_stack_top
= 0;
4749 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
4751 /* Increase the buffer to prepare for a possible push. */
4752 int grow_size
= 8 /* arbitrary grow size */;
4754 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
4755 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)yyrealloc
4756 (yyg
->yy_buffer_stack
,
4757 num_to_alloc
* sizeof(struct yy_buffer_state
*)
4759 if ( ! yyg
->yy_buffer_stack
)
4760 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4762 /* zero only the new slots.*/
4763 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
4764 yyg
->yy_buffer_stack_max
= num_to_alloc
;
4768 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4769 * @param base the character buffer
4770 * @param size the size in bytes of the character buffer
4771 * @param yyscanner The scanner object.
4772 * @return the newly allocated buffer state object.
4774 YY_BUFFER_STATE
yy_scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
4779 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
4780 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
4781 /* They forgot to leave room for the EOB's. */
4784 b
= (YY_BUFFER_STATE
) yyalloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
4786 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4788 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
4789 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
4790 b
->yy_is_our_buffer
= 0;
4791 b
->yy_input_file
= 0;
4792 b
->yy_n_chars
= b
->yy_buf_size
;
4793 b
->yy_is_interactive
= 0;
4795 b
->yy_fill_buffer
= 0;
4796 b
->yy_buffer_status
= YY_BUFFER_NEW
;
4798 yy_switch_to_buffer(b
,yyscanner
);
4803 /** Setup the input buffer state to scan a string. The next call to yylex() will
4804 * scan from a @e copy of @a str.
4805 * @param yystr a NUL-terminated string to scan
4806 * @param yyscanner The scanner object.
4807 * @return the newly allocated buffer state object.
4808 * @note If you want to scan bytes that may contain NUL values, then use
4809 * yy_scan_bytes() instead.
4811 YY_BUFFER_STATE
yy_scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
4814 return yy_scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
4817 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4818 * scan from a @e copy of @a bytes.
4819 * @param yybytes the byte buffer to scan
4820 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4821 * @param yyscanner The scanner object.
4822 * @return the newly allocated buffer state object.
4824 YY_BUFFER_STATE
yy_scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
4831 /* Get memory for full buffer, including space for trailing EOB's. */
4832 n
= _yybytes_len
+ 2;
4833 buf
= (char *) yyalloc(n
,yyscanner
);
4835 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4837 for ( i
= 0; i
< _yybytes_len
; ++i
)
4838 buf
[i
] = yybytes
[i
];
4840 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
4842 b
= yy_scan_buffer(buf
,n
,yyscanner
);
4844 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4846 /* It's okay to grow etc. this buffer, and we should throw it
4847 * away when we're done.
4849 b
->yy_is_our_buffer
= 1;
4854 static void yy_push_state (int new_state
, yyscan_t yyscanner
)
4856 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4857 if ( yyg
->yy_start_stack_ptr
>= yyg
->yy_start_stack_depth
)
4861 yyg
->yy_start_stack_depth
+= YY_START_STACK_INCR
;
4862 new_size
= yyg
->yy_start_stack_depth
* sizeof( int );
4864 if ( ! yyg
->yy_start_stack
)
4865 yyg
->yy_start_stack
= (int *) yyalloc(new_size
,yyscanner
);
4868 yyg
->yy_start_stack
= (int *) yyrealloc((void *) yyg
->yy_start_stack
,new_size
,yyscanner
);
4870 if ( ! yyg
->yy_start_stack
)
4871 YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4874 yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
++] = YY_START
;
4879 static void yy_pop_state (yyscan_t yyscanner
)
4881 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4882 if ( --yyg
->yy_start_stack_ptr
< 0 )
4883 YY_FATAL_ERROR( "start-condition stack underflow" );
4885 BEGIN(yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
]);
4888 static int yy_top_state (yyscan_t yyscanner
)
4890 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4891 return yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
- 1];
4894 #ifndef YY_EXIT_FAILURE
4895 #define YY_EXIT_FAILURE 2
4898 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
4900 (void) fprintf( stderr
, "%s\n", msg
);
4901 exit( YY_EXIT_FAILURE
);
4904 /* Redefine yyless() so it works in section 3 code. */
4910 /* Undo effects of setting up yytext. */ \
4911 int yyless_macro_arg = (n); \
4912 YY_LESS_LINENO(yyless_macro_arg);\
4913 yytext[yyleng] = yyg->yy_hold_char; \
4914 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
4915 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
4916 *yyg->yy_c_buf_p = '\0'; \
4917 yyleng = yyless_macro_arg; \
4921 /* Accessor methods (get/set functions) to struct members. */
4923 /** Get the user-defined data for this scanner.
4924 * @param yyscanner The scanner object.
4926 YY_EXTRA_TYPE
yyget_extra (yyscan_t yyscanner
)
4928 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4932 /** Get the current line number.
4933 * @param yyscanner The scanner object.
4935 int yyget_lineno (yyscan_t yyscanner
)
4937 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4939 if (! YY_CURRENT_BUFFER
)
4945 /** Get the current column number.
4946 * @param yyscanner The scanner object.
4948 int yyget_column (yyscan_t yyscanner
)
4950 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4952 if (! YY_CURRENT_BUFFER
)
4958 /** Get the input stream.
4959 * @param yyscanner The scanner object.
4961 FILE *yyget_in (yyscan_t yyscanner
)
4963 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4967 /** Get the output stream.
4968 * @param yyscanner The scanner object.
4970 FILE *yyget_out (yyscan_t yyscanner
)
4972 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4976 /** Get the length of the current token.
4977 * @param yyscanner The scanner object.
4979 int yyget_leng (yyscan_t yyscanner
)
4981 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4985 /** Get the current token.
4986 * @param yyscanner The scanner object.
4989 char *yyget_text (yyscan_t yyscanner
)
4991 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4995 /** Set the user-defined data. This data is never touched by the scanner.
4996 * @param user_defined The data to be associated with this scanner.
4997 * @param yyscanner The scanner object.
4999 void yyset_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
5001 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5002 yyextra
= user_defined
;
5005 /** Set the current line number.
5006 * @param line_number
5007 * @param yyscanner The scanner object.
5009 void yyset_lineno (int line_number
, yyscan_t yyscanner
)
5011 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5013 /* lineno is only valid if an input buffer exists. */
5014 if (! YY_CURRENT_BUFFER
)
5015 yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner
);
5017 yylineno
= line_number
;
5020 /** Set the current column.
5021 * @param line_number
5022 * @param yyscanner The scanner object.
5024 void yyset_column (int column_no
, yyscan_t yyscanner
)
5026 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5028 /* column is only valid if an input buffer exists. */
5029 if (! YY_CURRENT_BUFFER
)
5030 yy_fatal_error( "yyset_column called with no buffer" , yyscanner
);
5032 yycolumn
= column_no
;
5035 /** Set the input stream. This does not discard the current
5037 * @param in_str A readable stream.
5038 * @param yyscanner The scanner object.
5039 * @see yy_switch_to_buffer
5041 void yyset_in (FILE * in_str
, yyscan_t yyscanner
)
5043 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5047 void yyset_out (FILE * out_str
, yyscan_t yyscanner
)
5049 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5053 int yyget_debug (yyscan_t yyscanner
)
5055 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5056 return yy_flex_debug
;
5059 void yyset_debug (int bdebug
, yyscan_t yyscanner
)
5061 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5062 yy_flex_debug
= bdebug
;
5065 /* Accessor methods for yylval and yylloc */
5067 /* User-visible API */
5069 /* yylex_init is special because it creates the scanner itself, so it is
5070 * the ONLY reentrant function that doesn't take the scanner as the last argument.
5071 * That's why we explicitly handle the declaration, instead of using our macros.
5074 int yylex_init(yyscan_t
* ptr_yy_globals
)
5077 if (ptr_yy_globals
== NULL
){
5082 *ptr_yy_globals
= (yyscan_t
) yyalloc ( sizeof( struct yyguts_t
), NULL
);
5084 if (*ptr_yy_globals
== NULL
){
5089 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5090 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
5092 return yy_init_globals ( *ptr_yy_globals
);
5095 /* yylex_init_extra has the same functionality as yylex_init, but follows the
5096 * convention of taking the scanner as the last argument. Note however, that
5097 * this is a *pointer* to a scanner, as it will be allocated by this call (and
5098 * is the reason, too, why this function also must handle its own declaration).
5099 * The user defined value in the first argument will be available to yyalloc in
5100 * the yyextra field.
5103 int yylex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
5106 struct yyguts_t dummy_yyguts
;
5108 yyset_extra (yy_user_defined
, &dummy_yyguts
);
5110 if (ptr_yy_globals
== NULL
){
5115 *ptr_yy_globals
= (yyscan_t
) yyalloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
5117 if (*ptr_yy_globals
== NULL
){
5122 /* By setting to 0xAA, we expose bugs in
5123 yy_init_globals. Leave at 0x00 for releases. */
5124 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
5126 yyset_extra (yy_user_defined
, *ptr_yy_globals
);
5128 return yy_init_globals ( *ptr_yy_globals
);
5131 static int yy_init_globals (yyscan_t yyscanner
)
5133 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5134 /* Initialization is the same as for the non-reentrant scanner.
5135 * This function is called from yylex_destroy(), so don't allocate here.
5138 yyg
->yy_buffer_stack
= 0;
5139 yyg
->yy_buffer_stack_top
= 0;
5140 yyg
->yy_buffer_stack_max
= 0;
5141 yyg
->yy_c_buf_p
= (char *) 0;
5145 yyg
->yy_start_stack_ptr
= 0;
5146 yyg
->yy_start_stack_depth
= 0;
5147 yyg
->yy_start_stack
= NULL
;
5149 /* Defined in main.c */
5158 /* For future reference: Set errno on error, since we are called by
5164 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5165 int yylex_destroy (yyscan_t yyscanner
)
5167 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5169 /* Pop the buffer stack, destroying each element. */
5170 while(YY_CURRENT_BUFFER
){
5171 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
5172 YY_CURRENT_BUFFER_LVALUE
= NULL
;
5173 yypop_buffer_state(yyscanner
);
5176 /* Destroy the stack itself. */
5177 yyfree(yyg
->yy_buffer_stack
,yyscanner
);
5178 yyg
->yy_buffer_stack
= NULL
;
5180 /* Destroy the start condition stack. */
5181 yyfree(yyg
->yy_start_stack
,yyscanner
);
5182 yyg
->yy_start_stack
= NULL
;
5184 /* Reset the globals. This is important in a non-reentrant scanner so the next time
5185 * yylex() is called, initialization will occur. */
5186 yy_init_globals( yyscanner
);
5188 /* Destroy the main struct (reentrant only). */
5189 yyfree ( yyscanner
, yyscanner
);
5195 * Internal utility routines.
5199 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
5202 for ( i
= 0; i
< n
; ++i
)
5207 #ifdef YY_NEED_STRLEN
5208 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
5211 for ( n
= 0; s
[n
]; ++n
)
5218 void *yyalloc (yy_size_t size
, yyscan_t yyscanner
)
5220 return (void *) malloc( size
);
5223 void *yyrealloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
5225 /* The cast to (char *) in the following accommodates both
5226 * implementations that use char* generic pointers, and those
5227 * that use void* generic pointers. It works with the latter
5228 * because both ANSI C and C++ allow castless assignment from
5229 * any pointer type to void*, and deal with argument conversions
5230 * as though doing an assignment.
5232 return (void *) realloc( (char *) ptr
, size
);
5235 void yyfree (void * ptr
, yyscan_t yyscanner
)
5237 free( (char *) ptr
); /* see yyrealloc() for (char *) cast */
5240 #define YYTABLES_NAME "yytables"
5242 #line 740 "compilers/imcc/imcc.l"
5250 int yywrap(void* yyscanner
) {
5251 /* Add code here to open next source file and start scanning
5252 * yywrap returns 0 if scanning is to continue */
5253 Interp
* const interp
= yyget_extra(yyscanner
);
5254 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5257 fprintf(stderr
, "Argh, interp not found\n");
5261 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
5264 if (IMCC_INFO(interp
)->frames
->s
.next
) {
5265 pop_parser_state(IMCC_INFO(interp
)->frames
->s
.interp
, yyscanner
);
5266 if (YYSTATE
== INITIAL
|| YYSTATE
== emit
)
5267 BEGIN(IMCC_INFO(interp
)->frames
->s
.pasm_file
? emit
: INITIAL
);
5274 static macro_frame_t
*
5275 new_frame(PARROT_INTERP
) {
5276 static int label
= 0;
5277 macro_frame_t
* const tmp
= mem_gc_allocate_zeroed_typed(interp
, macro_frame_t
);
5279 tmp
->label
= ++label
;
5280 tmp
->s
.line
= IMCC_INFO(interp
)->line
;
5281 tmp
->s
.handle
= NULL
;
5283 if (IMCC_INFO(interp
)->frames
) {
5284 tmp
->s
.pasm_file
= IMCC_INFO(interp
)->frames
->s
.pasm_file
;
5285 if (IMCC_INFO(interp
)->frames
->s
.file
)
5286 tmp
->s
.file
= mem_sys_strdup(IMCC_INFO(interp
)->frames
->s
.file
);
5289 tmp
->s
.interp
= interp
;
5295 scan_string(macro_frame_t
*frame
, ARGIN(const char *expansion
), void *yyscanner
)
5297 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5298 Interp
* const interp
= yyget_extra(yyscanner
);
5300 frame
->buffer
= YY_CURRENT_BUFFER
;
5301 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5302 IMCC_INFO(interp
)->frames
= frame
;
5304 /* start at the effective *starting line* of the macro */
5305 IMCC_INFO(interp
)->line
= frame
->s
.line
- 2;
5307 yy_scan_string(expansion
,yyscanner
);
5311 destroy_frame(struct macro_frame_t
*frame
, void *yyscanner
)
5313 YY_BUFFER_STATE buffer
= frame
->buffer
;
5317 for (i
= 0; i
< frame
->expansion
.num_param
; i
++) {
5318 mem_sys_free(frame
->expansion
.name
[i
]);
5319 frame
->expansion
.name
[i
] = NULL
;
5322 if (frame
->heredoc_rest
) {
5323 mem_sys_free(frame
->heredoc_rest
);
5324 frame
->heredoc_rest
= NULL
;
5326 ret
= frame
->s
.line
;
5328 mem_sys_free(frame
->s
.file
);
5329 mem_sys_free(frame
);
5332 yy_switch_to_buffer(buffer
,yyscanner
);
5338 yylex_skip(YYSTYPE
*valp
, PARROT_INTERP
, const char *skip
, void *yyscanner
)
5342 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5345 c
= yylex(valp
,yyscanner
,interp
);
5348 while (*p
&& c
!= *p
)
5351 /* leave loop early if it gets found */
5355 /* free any mem_sys_strdup()ed strings */
5357 mem_sys_free(valp
->s
);
5358 } while (*p
!= '\0');
5361 DUP_AND_RET_FREE(valp
, c
);
5367 read_braced(YYSTYPE
*valp
, PARROT_INTERP
, const char *macro_name
,
5368 char *current
, void *yyscanner
)
5371 size_t len
= strlen(current
);
5372 int c
= yylex(&val
,yyscanner
,interp
);
5375 while (c
!= '}' || count
> 0) {
5383 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5384 "End of file reached while reading arguments in '%s'",
5387 len
+= strlen(val
.s
);
5388 current
= (char *)mem_sys_realloc(current
, len
+ 1);
5389 strcat(current
,val
.s
);
5391 mem_sys_free(val
.s
);
5393 c
= yylex(&val
,yyscanner
,interp
);
5398 mem_sys_free(valp
->s
);
5402 mem_sys_free(val
.s
);
5408 read_params(YYSTYPE
*valp
, PARROT_INTERP
, params_t
*params
,
5409 ARGIN(const char *macro_name
), int need_id
, void *yyscanner
)
5413 char *current
= mem_sys_strdup("");
5414 yyguts_t
*yyg
= (yyguts_t
*)yyscanner
;
5415 int c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5417 params
->num_param
= 0;
5420 if (YYSTATE
== heredoc2
)
5421 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5422 "Heredoc in macro '%s' not allowed", macro_name
);
5425 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5426 "End of file reached while reading arguments in '%s'",
5428 else if (c
== ',') {
5429 if (params
->num_param
== MAX_PARAM
)
5430 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5431 "More than %d params in '%s'",
5432 MAX_PARAM
, macro_name
);
5434 params
->name
[params
->num_param
++] = current
;
5435 current
= mem_sys_strdup("");
5439 mem_sys_free(val
.s
);
5440 c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5442 else if (need_id
&& (*current
|| c
!= IDENTIFIER
) && c
!= ' ') {
5443 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5444 "Parameter definition in '%s' must be IDENTIFIER",
5447 else if (c
== '{') {
5448 current
= read_braced(&val
, interp
, macro_name
, current
, yyscanner
);
5449 mem_sys_free(val
.s
);
5450 c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5451 len
= strlen(current
);
5454 if (!need_id
|| c
!= ' ') {
5455 len
+= strlen(val
.s
);
5456 current
= (char *)mem_sys_realloc(current
, len
+ 1);
5457 strcat(current
, val
.s
);
5460 mem_sys_free(val
.s
);
5462 c
= yylex(&val
,yyscanner
,interp
);
5466 params
->name
[params
->num_param
++] = current
;
5471 mem_sys_free(val
.s
);
5477 read_macro(YYSTYPE
*valp
, PARROT_INTERP
, void *yyscanner
)
5481 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5482 int start_cond
= YY_START
;
5483 size_t buffer_size
= 0;
5484 size_t buffer_used
= 0;
5488 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
5490 if (c
!= IDENTIFIER
)
5491 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "Macro names must be identifiers");
5493 IMCC_INFO(interp
)->cur_macro_name
= valp
->s
;
5494 start_line
= IMCC_INFO(interp
)->line
;
5496 memset(¶ms
, 0, sizeof (params_t
));
5498 /* white space is allowed between macro and opening paren) */
5499 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
5502 mem_sys_free(valp
->s
);
5505 c
= read_params(NULL
, interp
, ¶ms
,
5506 IMCC_INFO(interp
)->cur_macro_name
, 1, yyscanner
);
5508 c
= yylex(valp
,yyscanner
,interp
);
5515 mem_sys_free(valp
->s
);
5516 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5517 "File ended before macro '%s' was complete",
5518 IMCC_INFO(interp
)->cur_macro_name
);
5522 elem_len
= strlen(valp
->s
);
5525 if (buffer_used
+ elem_len
> buffer_size
) {
5526 buffer_size
+= elem_len
;
5529 IMCC_INFO(interp
)->macro_buffer
=
5530 (char *)mem_sys_realloc(IMCC_INFO(interp
)->macro_buffer
,
5535 buffer_size
= (elem_len
<< 1) > 1024 ? elem_len
<< 1 : 1024;
5537 IMCC_INFO(interp
)->macro_buffer
=
5538 (char *)mem_sys_allocate_zeroed(buffer_size
);
5541 strcat(IMCC_INFO(interp
)->macro_buffer
, valp
->s
);
5542 buffer_used
+= elem_len
;
5544 mem_sys_free(valp
->s
);
5547 c
= yylex(valp
,yyscanner
,interp
);
5550 mem_sys_free(valp
->s
);
5555 define_macro(interp
, IMCC_INFO(interp
)->cur_macro_name
,
5556 ¶ms
, IMCC_INFO(interp
)->macro_buffer
, start_line
);
5558 mem_sys_free(IMCC_INFO(interp
)->macro_buffer
);
5559 IMCC_INFO(interp
)->macro_buffer
= NULL
;
5560 IMCC_INFO(interp
)->cur_macro_name
= NULL
;
5566 find_macro_param(PARROT_INTERP
, const char *name
)
5570 for (f
= IMCC_INFO(interp
)->frames
; f
; f
= (macro_frame_t
*)f
->s
.next
) {
5573 for (i
= 0; i
< f
->params
->num_param
; i
++) {
5574 if (STREQ(f
->params
->name
[i
], name
))
5575 return f
->expansion
.name
[i
];
5584 define_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGIN(const params_t
*params
),
5585 ARGIN(const char *expansion
), int start_line
)
5589 macro_t
*m
= find_macro(interp
, name
);
5592 mem_sys_free(m
->expansion
);
5593 m
->expansion
= NULL
;
5596 m
= mem_gc_allocate_zeroed_typed(interp
, macro_t
);
5598 if (!IMCC_INFO(interp
)->macros
)
5599 IMCC_INFO(interp
)->macros
= parrot_new_cstring_hash(interp
);
5600 parrot_hash_put(interp
, IMCC_INFO(interp
)->macros
,
5601 PARROT_const_cast(char *, name
), m
);
5605 m
->params
= *params
;
5607 memset(&m
->params
, 0, sizeof (params_t
));
5609 m
->expansion
= mem_sys_strdup(expansion
);
5610 m
->line
= start_line
;
5614 find_macro(PARROT_INTERP
, const char *name
)
5616 if (!IMCC_INFO(interp
)->macros
)
5619 return (macro_t
*)parrot_hash_get(interp
, IMCC_INFO(interp
)->macros
, name
);
5623 expand_macro(PARROT_INTERP
, ARGIN(const char *name
), void *yyscanner
)
5625 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5626 const char * const expansion
= find_macro_param(interp
, name
);
5630 macro_frame_t
* const frame
= new_frame(interp
);
5632 /* When an error occurs, then report it as being in a macro */
5633 frame
->is_macro
= 1;
5634 scan_string(frame
, expansion
, yyscanner
);
5638 m
= find_macro(interp
, name
);
5640 int i
, c
, start_cond
;
5642 macro_frame_t
* frame
= new_frame(interp
);
5643 frame
->params
= &m
->params
;
5645 /* When an error occurs, then report it as being in a macro */
5646 frame
->is_macro
= 1;
5648 /* remember macro name for error reporting
5649 * first free any filename allocated in new_frame() */
5651 mem_sys_free(frame
->s
.file
);
5653 frame
->s
.file
= mem_sys_strdup(name
);
5655 /* whitespace can be safely ignored */
5658 c
= yyinput(yyscanner
);
5660 c
= input(yyscanner
);
5662 } while (c
== ' ' || c
== '\t');
5665 if (m
->params
.num_param
!= 0)
5666 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5667 "Macro '%s' needs %d arguments",
5668 name
, m
->params
.num_param
);
5670 scan_string(frame
, m
->expansion
, yyscanner
);
5674 start_cond
= YY_START
;
5677 read_params(NULL
, interp
, &frame
->expansion
, name
, 0, yyscanner
);
5681 if (frame
->expansion
.num_param
== 0 && m
->params
.num_param
== 1) {
5682 frame
->expansion
.name
[0] = mem_sys_strdup("");
5683 frame
->expansion
.num_param
= 1;
5686 if (frame
->expansion
.num_param
!= m
->params
.num_param
) {
5687 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5688 "Macro '%s' requires %d arguments, but %d given",
5689 name
, m
->params
.num_param
, frame
->expansion
.num_param
);
5692 /* expand arguments */
5693 for (i
= 0; i
< frame
->expansion
.num_param
; i
++) {
5694 char * const current
= frame
->expansion
.name
[i
];
5696 /* parameter of outer macro */
5697 if (current
[0] == '.') {
5698 const char * const s
= find_macro_param(interp
, current
+ 1);
5701 frame
->expansion
.name
[i
] = mem_sys_strdup(s
);
5702 mem_sys_free(current
);
5707 const size_t len
= strlen(current
);
5708 if (len
&& (current
[len
- 1] == '$')) { /* local label */
5709 const size_t slen
= len
+ 10;
5710 char * const s
= (char *)mem_sys_allocate(slen
);
5712 current
[len
- 1] = '\0';
5714 snprintf(s
, slen
, "%s%d", current
, IMCC_INFO(interp
)->frames
->label
);
5716 frame
->expansion
.name
[i
] = s
;
5717 mem_sys_free(current
);
5722 scan_string(frame
, m
->expansion
, yyscanner
);
5731 include_file(PARROT_INTERP
, char *file_name
, void *yyscanner
)
5733 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5734 macro_frame_t
* const frame
= new_frame(interp
);
5735 char *s
= Parrot_locate_runtime_file(interp
, file_name
,
5736 PARROT_RUNTIME_FT_INCLUDE
);
5740 if (!s
|| !(file
= fopen(s
, "r"))) {
5742 mem_sys_free(frame
->s
.file
);
5743 IMCC_fataly(interp
, EXCEPTION_EXTERNAL_ERROR
, strerror(errno
));
5747 mem_sys_free(frame
->s
.file
);
5749 frame
->s
.file
= mem_sys_strdup(file_name
);
5750 frame
->s
.handle
= file
;
5751 ext
= strrchr(file_name
, '.');
5754 if (STREQ(ext
, ".pasm")) {
5755 frame
->s
.pasm_file
= 1;
5758 else if (STREQ(ext
, ".pir")) {
5759 frame
->s
.pasm_file
= 0;
5764 scan_file(interp
, frame
, file
, yyscanner
);
5768 scan_file(PARROT_INTERP
, macro_frame_t
*frame
, FILE *file
, void *yyscanner
)
5770 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5771 const int oldline
= IMCC_INFO(interp
)->line
;
5772 frame
->buffer
= YY_CURRENT_BUFFER
;
5773 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5774 IMCC_INFO(interp
)->frames
= frame
;
5775 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5777 /* let the start of line rule increment this to 1 */
5778 IMCC_INFO(interp
)->line
= 0;
5780 yy_switch_to_buffer(yy_create_buffer(file
,YY_BUF_SIZE
,yyscanner
),yyscanner
);
5782 IMCC_INFO(interp
)->line
= oldline
;
5786 IMCC_push_parser_state(PARROT_INTERP
)
5788 macro_frame_t
* const frame
= new_frame(interp
);
5789 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5790 IMCC_INFO(interp
)->frames
= frame
;
5791 frame
->s
.line
= IMCC_INFO(interp
)->line
5793 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5797 pop_parser_state(PARROT_INTERP
, void *yyscanner
)
5799 macro_frame_t
* const tmp
= IMCC_INFO(interp
)->frames
;
5803 fclose(tmp
->s
.handle
);
5805 IMCC_INFO(interp
)->frames
=
5806 (macro_frame_t
*)IMCC_INFO(interp
)->frames
->s
.next
;
5808 l
= destroy_frame(tmp
, yyscanner
);
5811 IMCC_INFO(interp
)->line
= l
;
5814 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5818 IMCC_pop_parser_state(PARROT_INTERP
, void *yyscanner
)
5820 pop_parser_state(interp
, yyscanner
);
5824 compile_file(PARROT_INTERP
, FILE *file
, void *yyscanner
)
5826 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5827 YY_BUFFER_STATE
volatile buffer
;
5829 IMCC_INFO(interp
)->frames
->s
.next
= NULL
;
5830 buffer
= YY_CURRENT_BUFFER
;
5832 yy_switch_to_buffer(yy_create_buffer(file
,YY_BUF_SIZE
,yyscanner
),yyscanner
);
5834 emit_open(interp
, 1, NULL
);
5836 IMCC_TRY(IMCC_INFO(interp
)->jump_buf
, IMCC_INFO(interp
)->error_code
) {
5837 yyparse(yyscanner
, interp
);
5838 imc_compile_all_units(interp
);
5841 IMCC_CATCH(IMCC_FATAL_EXCEPTION
) {
5842 IMCC_INFO(interp
)->error_code
= IMCC_FATAL_EXCEPTION
;
5845 IMCC_CATCH(IMCC_FATALY_EXCEPTION
) {
5846 IMCC_INFO(interp
)->error_code
= IMCC_FATALY_EXCEPTION
;
5852 yy_switch_to_buffer(buffer
,yyscanner
);
5856 compile_string(PARROT_INTERP
, const char *s
, void *yyscanner
)
5858 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5859 YY_BUFFER_STATE
volatile buffer
;
5861 IMCC_INFO(interp
)->frames
->s
.next
= NULL
;
5862 buffer
= YY_CURRENT_BUFFER
;
5864 yy_scan_string(s
,yyscanner
);
5865 emit_open(interp
, 1, NULL
);
5867 IMCC_TRY(IMCC_INFO(interp
)->jump_buf
, IMCC_INFO(interp
)->error_code
) {
5868 yyparse(yyscanner
, interp
);
5869 imc_compile_all_units(interp
);
5872 IMCC_CATCH(IMCC_FATAL_EXCEPTION
) {
5873 IMCC_INFO(interp
)->error_code
= IMCC_FATAL_EXCEPTION
;
5876 IMCC_CATCH(IMCC_FATALY_EXCEPTION
) {
5877 IMCC_INFO(interp
)->error_code
= IMCC_FATALY_EXCEPTION
;
5883 yy_switch_to_buffer(buffer
,yyscanner
);
5887 IMCC_print_inc(PARROT_INTERP
)
5890 const char *old
= IMCC_INFO(interp
)->frames
->s
.file
;
5892 if (IMCC_INFO(interp
)->frames
&& IMCC_INFO(interp
)->frames
->is_macro
)
5893 fprintf(stderr
, "\n\tin macro '.%s' line %d\n",
5894 IMCC_INFO(interp
)->frames
->s
.file
, IMCC_INFO(interp
)->line
);
5896 fprintf(stderr
, "\n\tin file '%s' line %d\n",
5897 IMCC_INFO(interp
)->frames
->s
.file
, IMCC_INFO(interp
)->line
);
5900 for (f
= IMCC_INFO(interp
)->frames
; f
; f
= (macro_frame_t
*)f
->s
.next
) {
5901 if (!STREQ(f
->s
.file
, old
)) {
5902 fprintf(stderr
, "\tincluded from '%s' line %d\n",
5903 f
->s
.file
, f
->s
.line
);
5913 set_filename(PARROT_INTERP, char * const filename)
5915 Function to set the C<filename> as specified using the C<.line> directive.
5916 The parser needs to call back into the lexer (this file), because the
5917 parser does not have access to the lexer's private bits.
5921 set_filename(PARROT_INTERP
, char * const filename
)
5923 IMCC_INFO(interp
)->frames
->s
.file
= filename
;
5925 /* in case .line is used outside a .sub, then this
5926 * can't be done; hence the check.
5927 * The mem_sys_strdup() is done, as the original #line implementation
5928 * duplicated the string twice as well; one for the
5929 * frames->s.file and one for cur_unit->file.
5930 * During the parse, the STRINGC is already mem_sys_strdup()ed once.
5932 if (IMCC_INFO(interp
)->cur_unit
)
5933 IMCC_INFO(interp
)->cur_unit
->file
= mem_sys_strdup(filename
);
5936 /* Functions to set and get yyin, as we can't decorate it for export
5937 (since it is defined in a file generated by yacc/bison). */
5938 FILE* imc_yyin_set(FILE* new_yyin
, void *yyscanner
)
5940 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5941 yyg
->yyin_r
= new_yyin
;
5946 FILE* imc_yyin_get(void *yyscanner
)
5948 const yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5952 /* return true if scanner is at EOF */
5953 int at_eof(yyscan_t yyscanner
)
5955 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5956 return yyg
->yy_hold_char
== '\0';
5960 handle_identifier(PARROT_INTERP
, YYSTYPE
*valp
, const char *text
)
5962 if (!IMCC_INFO(interp
)->is_def
) {
5963 SymReg
*r
= find_sym(interp
, text
);
5965 if (r
&& (r
->type
& (VTIDENTIFIER
|VT_CONSTP
))) {
5970 if (IMCC_INFO(interp
)->cur_unit
5971 && IMCC_INFO(interp
)->cur_unit
->instructions
5972 && (r
= IMCC_INFO(interp
)->cur_unit
->instructions
->symregs
[0])
5975 if (((r
->pcc_sub
->pragma
& P_METHOD
)
5976 || (IMCC_INFO(interp
)->cur_unit
->is_vtable_method
))
5977 && !strcmp(text
, "self")) {
5978 valp
->sr
= mk_ident(interp
, "self", 'P');
5979 IMCC_INFO(interp
)->cur_unit
->type
|= IMC_HAS_SELF
;
5985 valp
->s
= mem_sys_strdup(text
);
5986 return (!IMCC_INFO(interp
)->is_def
&& is_op(interp
, valp
->s
) ? PARROT_OP
: IDENTIFIER
);
5991 * c-file-style: "parrot"
5993 * vim: expandtab shiftwidth=4: