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 34
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
;
80 /* Limits of integral types. */
82 #define INT8_MIN (-128)
85 #define INT16_MIN (-32767-1)
88 #define INT32_MIN (-2147483647-1)
91 #define INT8_MAX (127)
94 #define INT16_MAX (32767)
97 #define INT32_MAX (2147483647)
100 #define UINT8_MAX (255U)
103 #define UINT16_MAX (65535U)
106 #define UINT32_MAX (4294967295U)
109 #endif /* ! FLEXINT_H */
113 /* The "const" storage-class-modifier is valid. */
116 #else /* ! __cplusplus */
118 /* C99 requires __STDC__ to be defined as 1. */
119 #if defined (__STDC__)
123 #endif /* defined (__STDC__) */
124 #endif /* ! __cplusplus */
127 #define yyconst const
132 /* Returned upon end-of-file. */
135 /* Promotes a possibly negative, possibly signed char to an unsigned
136 * integer for use as an array index. If the signed char is negative,
137 * we want to instead treat it as an 8-bit unsigned char, hence the
140 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
142 /* An opaque pointer. */
143 #ifndef YY_TYPEDEF_YY_SCANNER_T
144 #define YY_TYPEDEF_YY_SCANNER_T
145 typedef void* yyscan_t
;
148 /* For convenience, these vars (plus the bison vars far below)
149 are macros in the reentrant scanner. */
150 #define yyin yyg->yyin_r
151 #define yyout yyg->yyout_r
152 #define yyextra yyg->yyextra_r
153 #define yyleng yyg->yyleng_r
154 #define yytext yyg->yytext_r
155 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
156 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
157 #define yy_flex_debug yyg->yy_flex_debug_r
159 /* Enter a start condition. This macro really ought to take a parameter,
160 * but we do it the disgusting crufty way forced on us by the ()-less
161 * definition of BEGIN.
163 #define BEGIN yyg->yy_start = 1 + 2 *
165 /* Translate the current start state into a value that can be later handed
166 * to BEGIN to return to the state. The YYSTATE alias is for lex
169 #define YY_START ((yyg->yy_start - 1) / 2)
170 #define YYSTATE YY_START
172 /* Action number for EOF rule of a given start state. */
173 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
175 /* Special action meaning "start processing a new file". */
176 #define YY_NEW_FILE yyrestart(yyin ,yyscanner )
178 #define YY_END_OF_BUFFER_CHAR 0
180 /* Size of default input buffer. */
182 #define YY_BUF_SIZE 16384
185 /* The state buf must be large enough to hold one state per character in the main buffer.
187 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
189 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
190 #define YY_TYPEDEF_YY_BUFFER_STATE
191 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
194 #define EOB_ACT_CONTINUE_SCAN 0
195 #define EOB_ACT_END_OF_FILE 1
196 #define EOB_ACT_LAST_MATCH 2
198 #define YY_LESS_LINENO(n)
200 /* Return all but the first "n" matched characters back to the input stream. */
204 /* Undo effects of setting up yytext. */ \
205 int yyless_macro_arg = (n); \
206 YY_LESS_LINENO(yyless_macro_arg);\
207 *yy_cp = yyg->yy_hold_char; \
208 YY_RESTORE_YY_MORE_OFFSET \
209 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
210 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
214 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
216 /* The following is because we cannot portably get our hands on size_t
217 * (without autoconf's help, which isn't available because we want
218 * flex-generated scanners to compile on their own).
219 * Given that the standard has decreed that size_t exists since 1989,
220 * I guess we can afford to depend on it. Manoj.
223 #ifndef YY_TYPEDEF_YY_SIZE_T
224 #define YY_TYPEDEF_YY_SIZE_T
225 typedef size_t yy_size_t
;
228 #ifndef YY_STRUCT_YY_BUFFER_STATE
229 #define YY_STRUCT_YY_BUFFER_STATE
230 struct yy_buffer_state
234 char *yy_ch_buf
; /* input buffer */
235 char *yy_buf_pos
; /* current position in input buffer */
237 /* Size of input buffer in bytes, not including room for EOB
240 yy_size_t yy_buf_size
;
242 /* Number of characters read into yy_ch_buf, not including EOB
247 /* Whether we "own" the buffer - i.e., we know we created it,
248 * and can realloc() it to grow it, and should free() it to
251 int yy_is_our_buffer
;
253 /* Whether this is an "interactive" input source; if so, and
254 * if we're using stdio for input, then we want to use getc()
255 * instead of fread(), to make sure we stop fetching input after
258 int yy_is_interactive
;
260 /* Whether we're considered to be at the beginning of a line.
261 * If so, '^' rules will be active on the next match, otherwise
266 int yy_bs_lineno
; /**< The line count. */
267 int yy_bs_column
; /**< The column count. */
269 /* Whether to try to fill the input buffer when we reach the
274 int yy_buffer_status
;
276 #define YY_BUFFER_NEW 0
277 #define YY_BUFFER_NORMAL 1
278 /* When an EOF's been seen but there's still some text to process
279 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
280 * shouldn't try reading from the input source any more. We might
281 * still have a bunch of tokens to match, though, because of
282 * possible backing-up.
284 * When we actually see the EOF, we change the status to "new"
285 * (via yyrestart()), so that the user can continue scanning by
286 * just pointing yyin at a new input file.
288 #define YY_BUFFER_EOF_PENDING 2
291 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
293 /* We provide macros for accessing buffer states in case in the
294 * future we want to put the buffer states in a more general
297 * Returns the top of the stack, or NULL.
299 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
300 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
303 /* Same as previous macro, but useful when we know that the buffer stack is not
304 * NULL or when we need an lvalue. For internal use only.
306 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
308 void yyrestart (FILE *input_file
,yyscan_t yyscanner
);
309 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
310 YY_BUFFER_STATE
yy_create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
311 void yy_delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
312 void yy_flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
313 void yypush_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
314 void yypop_buffer_state (yyscan_t yyscanner
);
316 static void yyensure_buffer_stack (yyscan_t yyscanner
);
317 static void yy_load_buffer_state (yyscan_t yyscanner
);
318 static void yy_init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
320 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
322 YY_BUFFER_STATE
yy_scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
323 YY_BUFFER_STATE
yy_scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
324 YY_BUFFER_STATE
yy_scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
326 void *yyalloc (yy_size_t
,yyscan_t yyscanner
);
327 void *yyrealloc (void *,yy_size_t
,yyscan_t yyscanner
);
328 void yyfree (void * ,yyscan_t yyscanner
);
330 #define yy_new_buffer yy_create_buffer
332 #define yy_set_interactive(is_interactive) \
334 if ( ! YY_CURRENT_BUFFER ){ \
335 yyensure_buffer_stack (yyscanner); \
336 YY_CURRENT_BUFFER_LVALUE = \
337 yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
339 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
342 #define yy_set_bol(at_bol) \
344 if ( ! YY_CURRENT_BUFFER ){\
345 yyensure_buffer_stack (yyscanner); \
346 YY_CURRENT_BUFFER_LVALUE = \
347 yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
349 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
352 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
354 /* Begin user sect3 */
356 typedef unsigned char YY_CHAR
;
358 typedef int yy_state_type
;
360 #define yytext_ptr yytext_r
362 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
363 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
364 static int yy_get_next_buffer (yyscan_t yyscanner
);
365 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
367 /* Done after the current pattern has been matched and before the
368 * corresponding action - sets up yytext.
370 #define YY_DO_BEFORE_ACTION \
371 yyg->yytext_ptr = yy_bp; \
372 yyleng = (size_t) (yy_cp - yy_bp); \
373 yyg->yy_hold_char = *yy_cp; \
375 yyg->yy_c_buf_p = yy_cp;
377 #define YY_NUM_RULES 147
378 #define YY_END_OF_BUFFER 148
379 /* This struct is not used in this scanner,
380 but its presence is necessary. */
383 flex_int32_t yy_verify
;
386 static yyconst flex_int16_t yy_accept
[1215] =
388 0, 0, 0, 0, 0, 0, 17, 17, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 3, 3, 148, 136, 135, 11, 135, 136, 136, 12,
391 136, 136, 136, 136, 136, 136, 117, 136, 96, 136,
392 122, 122, 136, 88, 136, 90, 120, 120, 120, 120,
393 120, 120, 120, 120, 120, 136, 136, 12, 15, 135,
394 135, 136, 136, 136, 136, 120, 120, 15, 146, 143,
395 138, 143, 146, 146, 146, 146, 146, 122, 122, 146,
396 144, 144, 144, 144, 142, 142, 146, 15, 17, 18,
397 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
399 17, 17, 17, 17, 147, 136, 9, 9, 136, 136,
400 136, 136, 136, 5, 5, 5, 5, 5, 5, 5,
401 5, 5, 5, 5, 5, 5, 6, 136, 10, 136,
402 136, 136, 136, 136, 122, 122, 136, 136, 136, 136,
403 136, 136, 136, 13, 136, 136, 136, 136, 136, 122,
404 122, 136, 136, 136, 136, 136, 136, 147, 1, 147,
405 147, 147, 147, 147, 122, 122, 147, 147, 147, 147,
406 147, 147, 3, 2, 3, 3, 3, 3, 3, 3,
407 3, 3, 3, 3, 3, 3, 3, 135, 0, 11,
408 93, 0, 127, 0, 134, 134, 134, 134, 134, 102,
410 85, 105, 0, 94, 100, 0, 122, 98, 99, 97,
411 121, 111, 119, 119, 119, 119, 119, 119, 119, 119,
412 119, 119, 119, 119, 119, 119, 119, 103, 101, 121,
413 0, 0, 126, 0, 0, 0, 0, 0, 0, 0,
414 0, 0, 0, 0, 0, 0, 82, 89, 92, 58,
415 91, 83, 116, 0, 120, 118, 14, 120, 120, 120,
416 72, 120, 120, 120, 120, 120, 120, 120, 120, 106,
417 86, 107, 87, 0, 135, 119, 119, 119, 119, 119,
418 119, 0, 0, 0, 0, 143, 138, 143, 0, 0,
419 145, 145, 145, 145, 144, 0, 14, 144, 144, 142,
421 142, 17, 18, 17, 17, 17, 17, 17, 17, 17,
422 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
423 14, 17, 17, 17, 17, 0, 9, 0, 14, 0,
424 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
425 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
426 5, 0, 10, 0, 0, 0, 127, 0, 0, 0,
427 0, 122, 121, 0, 121, 0, 0, 126, 0, 0,
428 0, 0, 0, 14, 0, 0, 0, 0, 13, 0,
429 0, 0, 127, 0, 0, 0, 0, 122, 121, 0,
430 121, 0, 0, 126, 0, 0, 0, 0, 0, 14,
432 0, 0, 0, 0, 1, 0, 0, 0, 127, 0,
433 0, 0, 0, 122, 121, 0, 121, 0, 0, 126,
434 0, 0, 0, 0, 0, 14, 0, 0, 0, 3,
435 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
436 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
437 3, 3, 95, 130, 131, 133, 132, 0, 119, 119,
438 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
439 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
440 104, 121, 124, 0, 121, 125, 123, 0, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 109, 108, 84, 115, 0,
444 120, 0, 14, 120, 120, 120, 75, 120, 77, 120,
445 76, 80, 120, 120, 120, 0, 119, 119, 0, 0,
446 0, 139, 141, 145, 0, 145, 145, 145, 144, 14,
447 144, 144, 17, 17, 17, 17, 17, 17, 17, 17,
448 17, 17, 17, 17, 14, 17, 17, 17, 17, 0,
449 14, 0, 0, 5, 5, 5, 5, 5, 5, 5,
450 5, 5, 5, 5, 5, 5, 5, 0, 0, 121,
451 124, 0, 121, 125, 123, 0, 0, 0, 0, 14,
452 0, 0, 0, 0, 0, 121, 124, 0, 121, 125,
454 123, 0, 0, 0, 0, 14, 0, 0, 0, 0,
455 0, 121, 124, 0, 121, 125, 123, 0, 0, 0,
456 0, 14, 0, 0, 0, 3, 3, 3, 3, 3,
457 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
458 3, 0, 121, 61, 20, 119, 119, 119, 22, 119,
459 119, 119, 119, 19, 119, 119, 119, 119, 119, 119,
460 119, 119, 119, 119, 119, 21, 119, 0, 0, 0,
461 0, 0, 0, 43, 0, 0, 0, 0, 0, 0,
462 0, 0, 0, 0, 0, 0, 128, 0, 0, 110,
463 0, 129, 0, 118, 0, 0, 78, 120, 71, 120,
465 74, 120, 120, 120, 120, 0, 43, 141, 0, 145,
466 145, 145, 0, 144, 144, 144, 17, 17, 17, 17,
467 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
468 17, 17, 17, 0, 0, 0, 0, 5, 5, 5,
469 5, 5, 5, 5, 5, 5, 5, 5, 0, 121,
470 0, 0, 0, 128, 0, 0, 0, 0, 0, 129,
471 0, 0, 0, 0, 0, 0, 0, 0, 121, 0,
472 0, 0, 128, 0, 0, 0, 0, 0, 129, 0,
473 0, 0, 0, 0, 0, 0, 0, 121, 0, 0,
474 0, 128, 0, 0, 0, 0, 0, 129, 0, 0,
476 0, 0, 0, 0, 0, 3, 3, 3, 3, 3,
477 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
478 3, 119, 119, 25, 119, 119, 119, 119, 119, 119,
479 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
480 119, 119, 119, 41, 53, 0, 38, 0, 0, 0,
481 37, 36, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 120, 120, 120, 120, 120, 120, 0, 137,
483 145, 145, 144, 144, 144, 17, 17, 17, 17, 17,
484 16, 17, 0, 0, 0, 0, 5, 5, 5, 5,
485 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 3, 3, 3, 3,
488 3, 119, 119, 66, 119, 119, 119, 119, 119, 119,
489 119, 119, 119, 64, 113, 119, 119, 119, 68, 119,
490 119, 119, 119, 50, 0, 0, 0, 47, 0, 35,
491 57, 0, 0, 42, 0, 0, 0, 0, 79, 120,
492 120, 120, 81, 73, 0, 145, 145, 144, 144, 144,
493 17, 17, 17, 17, 17, 0, 0, 0, 0, 5,
494 5, 5, 5, 5, 0, 0, 0, 0, 0, 0,
495 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
496 3, 3, 3, 3, 119, 119, 119, 119, 119, 119,
498 119, 65, 119, 119, 119, 119, 119, 119, 119, 119,
499 69, 48, 51, 0, 0, 0, 34, 0, 0, 0,
500 54, 0, 44, 120, 120, 120, 0, 140, 69, 144,
501 144, 144, 17, 17, 17, 17, 17, 69, 0, 0,
502 0, 5, 5, 5, 5, 5, 69, 0, 0, 0,
503 0, 69, 0, 0, 0, 0, 69, 0, 0, 0,
504 0, 3, 3, 3, 3, 3, 62, 119, 119, 119,
505 119, 119, 119, 119, 119, 119, 114, 119, 52, 119,
506 119, 119, 119, 29, 0, 0, 0, 0, 0, 0,
507 0, 120, 0, 8, 0, 144, 17, 17, 8, 17,
509 0, 5, 5, 5, 5, 0, 0, 8, 0, 0,
510 0, 8, 0, 0, 0, 8, 0, 3, 3, 3,
511 3, 119, 119, 119, 24, 119, 119, 119, 119, 119,
512 28, 119, 119, 119, 26, 0, 0, 59, 56, 55,
513 40, 0, 120, 7, 4, 144, 17, 7, 4, 0,
514 5, 0, 7, 4, 0, 7, 4, 0, 7, 4,
515 3, 3, 3, 119, 119, 119, 119, 33, 119, 119,
516 119, 119, 27, 60, 39, 0, 0, 120, 144, 17,
517 0, 5, 0, 0, 0, 3, 23, 119, 119, 31,
518 119, 119, 119, 119, 46, 45, 70, 70, 17, 70,
520 5, 70, 70, 70, 3, 119, 32, 119, 49, 67,
524 static yyconst flex_int32_t yy_ec
[256] =
526 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
527 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
528 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
529 1, 5, 6, 7, 8, 9, 10, 11, 12, 1,
530 1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
531 21, 21, 21, 21, 21, 22, 22, 23, 1, 24,
532 25, 26, 1, 27, 28, 29, 28, 28, 30, 28,
533 31, 32, 33, 31, 31, 34, 31, 35, 36, 37,
534 31, 31, 38, 31, 31, 31, 31, 39, 31, 31,
535 1, 40, 1, 1, 41, 1, 42, 43, 44, 45,
537 46, 47, 48, 49, 50, 31, 31, 51, 52, 53,
538 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
539 64, 31, 1, 65, 1, 66, 1, 1, 1, 1,
540 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541 1, 1, 1, 1, 1, 1, 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,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 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,
556 static yyconst flex_int32_t yy_meta
[67] =
558 1, 1, 2, 1, 1, 1, 3, 1, 4, 1,
559 1, 1, 1, 1, 1, 5, 1, 1, 6, 6,
560 6, 6, 7, 1, 1, 1, 8, 9, 9, 9,
561 10, 10, 10, 10, 10, 10, 10, 10, 10, 1,
562 11, 9, 9, 9, 9, 9, 9, 10, 10, 10,
563 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
567 static yyconst flex_int16_t yy_base
[1380] =
569 0, 59, 83, 61, 149, 66, 215, 65, 281, 4888,
570 347, 4887, 91, 95, 413, 4886, 479, 4885, 545, 4884,
571 611, 4883, 4890, 7995, 75, 7995, 117, 4864, 65, 7995,
572 91, 4863, 70, 4875, 105, 661, 7995, 668, 677, 57,
573 725, 753, 758, 115, 119, 121, 734, 773, 740, 753,
574 744, 805, 806, 808, 811, 58, 692, 4835, 666, 776,
575 833, 822, 843, 798, 4861, 847, 846, 7995, 7995, 869,
576 7995, 873, 97, 0, 4872, 862, 890, 0, 896, 4858,
577 119, 912, 761, 874, 900, 919, 4830, 7995, 0, 7995,
578 4877, 758, 4867, 927, 918, 957, 921, 4854, 1020, 1086,
580 947, 934, 4826, 4832, 7995, 985, 993, 1031, 4852, 1035,
581 725, 780, 4823, 0, 0, 854, 1047, 1059, 1136, 956,
582 4849, 1199, 1265, 1096, 1100, 4821, 783, 697, 7995, 748,
583 958, 978, 1121, 1128, 1329, 1135, 948, 1392, 1458, 1140,
584 1108, 829, 955, 7995, 967, 1181, 1005, 1215, 1173, 1522,
585 1209, 1038, 1585, 1651, 1221, 1235, 998, 1067, 7995, 1069,
586 1289, 1071, 1291, 1297, 1715, 1299, 1223, 1778, 1844, 1302,
587 1335, 1164, 0, 7995, 4868, 976, 4858, 1357, 1114, 1894,
588 1383, 4841, 1957, 2023, 1367, 1408, 4813, 1365, 1256, 7995,
589 7995, 1156, 7995, 0, 0, 1414, 1419, 1423, 1428, 7995,
591 7995, 7995, 4851, 7995, 7995, 1466, 1472, 7995, 7995, 7995,
592 1489, 7995, 0, 4828, 4802, 4800, 1005, 4784, 81, 4783,
593 649, 883, 34, 803, 4789, 4774, 4783, 4807, 7995, 1508,
594 1125, 1550, 7995, 1210, 0, 4778, 4779, 1134, 860, 1260,
595 4787, 624, 4774, 4776, 4770, 4763, 1011, 7995, 7995, 7995,
596 7995, 1224, 4798, 4797, 1318, 920, 1558, 1491, 1357, 1481,
597 1537, 1608, 1624, 1539, 1597, 1598, 1620, 1623, 1672, 7995,
598 7995, 7995, 7995, 4769, 1335, 4758, 4758, 943, 4768, 4767,
599 1019, 1245, 1205, 4748, 794, 1529, 7995, 1680, 4784, 0,
600 4783, 1291, 1284, 1066, 1157, 1292, 1677, 1397, 1559, 1699,
602 1703, 0, 7995, 1213, 0, 0, 4793, 1690, 1709, 1778,
603 4747, 1790, 1284, 1743, 0, 1404, 2071, 818, 2118, 2184,
604 2250, 1751, 1755, 4752, 4741, 4743, 1855, 1302, 1806, 940,
605 1174, 0, 1509, 0, 1811, 1861, 1899, 4742, 1930, 1341,
606 1878, 0, 1607, 2298, 1378, 2345, 2411, 2477, 1819, 1883,
607 4748, 1449, 7995, 1452, 1981, 1986, 1492, 1546, 1710, 1721,
608 1983, 2541, 2048, 1580, 2052, 1803, 1992, 1601, 1935, 2585,
609 2050, 2632, 2698, 2764, 1996, 2086, 1717, 1612, 7995, 1619,
610 2057, 2072, 1631, 1641, 1738, 1744, 2134, 2828, 2275, 1683,
611 2279, 2083, 2143, 1686, 2147, 2872, 2166, 2919, 2985, 3051,
613 2310, 2265, 1884, 1749, 7995, 1812, 2299, 2369, 1831, 1922,
614 1932, 1988, 2362, 3115, 2501, 2077, 2505, 2157, 2374, 1928,
615 2383, 3159, 2168, 3206, 3272, 3338, 2492, 2315, 2016, 0,
616 7995, 1687, 0, 0, 4785, 2291, 2519, 2547, 4739, 2562,
617 1927, 2580, 0, 1958, 3386, 1508, 3433, 3499, 3565, 2597,
618 2601, 4745, 2005, 2378, 2386, 2535, 2590, 2645, 0, 4760,
619 4745, 4744, 4740, 4737, 4744, 4728, 4732, 1303, 4722, 1040,
620 4740, 4724, 4730, 4731, 4723, 4735, 4736, 1940, 4734, 4730,
621 7995, 2649, 2039, 2654, 2661, 2064, 0, 4721, 4728, 4717,
622 1580, 4705, 4725, 4714, 4687, 4694, 4692, 4684, 4683, 4683,
624 4680, 4689, 4696, 1853, 4725, 7995, 7995, 4711, 7995, 1872,
625 1490, 4712, 2563, 2782, 2783, 2784, 2668, 2785, 2669, 2786,
626 2787, 2802, 2804, 2819, 2837, 4681, 4689, 4690, 4681, 4667,
627 4706, 4705, 4704, 4703, 4702, 1514, 1348, 1480, 4701, 1398,
628 2536, 2820, 2865, 4681, 2919, 2076, 2667, 2795, 2090, 3613,
629 1901, 4709, 2141, 3660, 3726, 3792, 1766, 4667, 4660, 4676,
630 4694, 1867, 2230, 2889, 4674, 2931, 2120, 2802, 2844, 2272,
631 3840, 2503, 3887, 3953, 4019, 2482, 4662, 2952, 2319, 3075,
632 2853, 2959, 3079, 3083, 4083, 3085, 2650, 3103, 4130, 4196,
633 4262, 2523, 2285, 3108, 2621, 3136, 2893, 3148, 3171, 3222,
635 4326, 3143, 2886, 3193, 4373, 4439, 4505, 3189, 3111, 3231,
636 3081, 3363, 3235, 3245, 3367, 3371, 4569, 3373, 3173, 3414,
637 4616, 4682, 4748, 3318, 3169, 3380, 4672, 3441, 2288, 3237,
638 3241, 2927, 4796, 2142, 4701, 2557, 4843, 4909, 4975, 3372,
639 4659, 3445, 3455, 4670, 0, 4660, 4658, 4646, 1464, 4662,
640 4659, 4650, 4644, 0, 4635, 4637, 4621, 4628, 4630, 4634,
641 4632, 4632, 4624, 4611, 4610, 0, 4618, 4615, 4608, 4620,
642 4606, 4605, 4609, 4612, 4616, 4607, 4610, 4599, 4611, 1295,
643 4609, 4595, 4596, 4596, 4608, 2812, 7995, 0, 4638, 7995,
644 2837, 7995, 0, 4626, 4625, 4640, 2845, 3583, 2960, 3591,
646 3463, 3586, 3588, 3587, 3592, 4600, 7995, 4622, 4621, 1819,
647 1669, 1771, 4620, 2557, 3110, 3115, 3461, 3469, 4590, 3073,
648 0, 0, 4625, 3101, 0, 0, 5041, 4629, 5107, 5173,
649 4585, 4586, 2376, 4562, 2329, 1451, 2054, 3473, 3597, 4561,
650 2892, 0, 5239, 4601, 5305, 5371, 4557, 4560, 3625, 3676,
651 2830, 3684, 3702, 2388, 2515, 3408, 3466, 3707, 3713, 2690,
652 2903, 5437, 3191, 5503, 2482, 2484, 3224, 3742, 3751, 3449,
653 3771, 3773, 2954, 3150, 3609, 3678, 3779, 3781, 3265, 3394,
654 5569, 3619, 5635, 2602, 2914, 3422, 3819, 3823, 3645, 3826,
655 3868, 3481, 3590, 3700, 3753, 3874, 3929, 3648, 3650, 5701,
657 3715, 5767, 3098, 3322, 3821, 3815, 3829, 4557, 3102, 0,
658 0, 4592, 3415, 0, 0, 5833, 4596, 5899, 5965, 4552,
659 4555, 4548, 4543, 0, 4536, 3859, 4552, 4536, 4550, 4527,
660 4542, 4534, 4533, 4529, 4541, 4523, 4536, 4527, 4520, 4525,
661 4525, 4518, 4529, 7995, 7995, 4524, 7995, 4526, 4523, 4521,
662 7995, 7995, 4511, 4514, 4518, 4515, 4507, 4502, 4514, 4502,
663 4496, 4504, 3921, 3925, 3922, 3982, 3912, 3980, 4549, 4530,
664 1522, 2281, 3923, 3678, 3958, 4500, 6031, 6097, 1193, 4546,
665 7995, 4547, 4497, 2257, 1715, 1920, 4496, 6163, 6229, 2497,
666 4542, 3756, 6295, 1506, 3567, 3764, 3870, 862, 2128, 1566,
668 3849, 3947, 1056, 2539, 1948, 3860, 4494, 2925, 3657, 2545,
669 4539, 4501, 4501, 0, 4499, 4494, 4489, 4486, 4491, 4485,
670 4490, 4492, 4483, 0, 4491, 4483, 4471, 4483, 0, 4464,
671 4479, 4444, 4449, 0, 4451, 4447, 4457, 7995, 4453, 7995,
672 7995, 4446, 4443, 7995, 4441, 4430, 4447, 4446, 3974, 4030,
673 4031, 4032, 3978, 3979, 3898, 4047, 2912, 3984, 3969, 4034,
674 4449, 2442, 3744, 3878, 4041, 4448, 3679, 2836, 3044, 4447,
675 2465, 3896, 3958, 4045, 3852, 1149, 1860, 3774, 4072, 4065,
676 3834, 4442, 4441, 4078, 4115, 3964, 4440, 4439, 4146, 4442,
677 1718, 3962, 3967, 4095, 4428, 4044, 4431, 4422, 4434, 4432,
679 4419, 4432, 4429, 4421, 4430, 4428, 4429, 4428, 4418, 4425,
680 0, 0, 0, 4425, 4422, 4408, 7995, 4418, 4417, 4403,
681 7995, 4396, 7995, 4153, 4155, 4168, 4101, 4170, 4412, 4135,
682 4210, 4211, 0, 2829, 3576, 3874, 4218, 7995, 3640, 3823,
683 4066, 0, 3664, 3935, 4141, 4223, 3903, 3127, 4053, 4104,
684 4227, 4092, 3390, 1881, 3349, 4278, 4176, 3630, 3593, 3743,
685 4286, 0, 3925, 3374, 3708, 4236, 0, 4392, 4387, 4382,
686 4380, 4370, 4378, 4370, 4367, 4372, 0, 4366, 0, 4370,
687 4370, 4376, 4368, 0, 4358, 4366, 4348, 4341, 4306, 4297,
688 4282, 4287, 3774, 4329, 4314, 4136, 2916, 3807, 4299, 4288,
690 2098, 4131, 4009, 4279, 4246, 4129, 4247, 4184, 4308, 4171,
691 4315, 4289, 4328, 4255, 4333, 4320, 4346, 4029, 4309, 4230,
692 4217, 4142, 4122, 4117, 0, 4067, 4045, 4018, 4005, 3896,
693 0, 3890, 3858, 3741, 0, 3646, 3514, 7995, 7995, 7995,
694 7995, 3364, 4335, 7995, 7995, 4310, 2639, 0, 0, 2344,
695 3445, 3324, 4256, 4339, 3869, 4356, 4358, 4172, 4360, 4362,
696 4343, 0, 0, 3186, 3139, 3069, 2817, 0, 2799, 2753,
697 2739, 2722, 0, 0, 7995, 2579, 2528, 4400, 4378, 4344,
698 4255, 4352, 4347, 3035, 3113, 4356, 0, 2332, 2221, 0,
699 2143, 2007, 1980, 1894, 7995, 7995, 4399, 4395, 1845, 1814,
701 1695, 1490, 1385, 1338, 1089, 986, 0, 740, 0, 0,
702 0, 0, 0, 7995, 6361, 6367, 6377, 6385, 6389, 6397,
703 6404, 6415, 6426, 6437, 6448, 6455, 6466, 6477, 6488, 6499,
704 6510, 6521, 6532, 6543, 6554, 6565, 6576, 6587, 6598, 6609,
705 6620, 6631, 6642, 6653, 6664, 6670, 6680, 6686, 6692, 6697,
706 6705, 6714, 6720, 6724, 6730, 6737, 6748, 6759, 6770, 6781,
707 6792, 6803, 6814, 6825, 6836, 6847, 6858, 6869, 6880, 6891,
708 6902, 6913, 6924, 6935, 6946, 6957, 6968, 6979, 6990, 6996,
709 7001, 7007, 7016, 7027, 7038, 7046, 7053, 7061, 7067, 7073,
710 7079, 7085, 7092, 7103, 7114, 7125, 7136, 7147, 7158, 7165,
712 7176, 7187, 7198, 7209, 7220, 7231, 7242, 7253, 7264, 7275,
713 7286, 7297, 7308, 7319, 7330, 7341, 7352, 7363, 7374, 7385,
714 7396, 7407, 7418, 7429, 7440, 7451, 7462, 7473, 7479, 7490,
715 7501, 7512, 7519, 7527, 7533, 7539, 7546, 7557, 7568, 7579,
716 7590, 7601, 7612, 7619, 7630, 7641, 7652, 7663, 7674, 7685,
717 7696, 7707, 7718, 7729, 7740, 7751, 7762, 7773, 7784, 7795,
718 7806, 7817, 7828, 7839, 7850, 7861, 7872, 7883, 7894, 7900,
719 7908, 7914, 7921, 7932, 7943, 7950, 7961, 7972, 7983
722 static yyconst flex_int16_t yy_def
[1380] =
724 1214, 1, 1, 3, 1214, 5, 1214, 7, 1214, 9,
725 1214, 11, 9, 9, 1214, 15, 1214, 17, 1214, 19,
726 1214, 21, 1214, 1214, 1214, 1214, 1214, 1214, 1215, 1214,
727 1216, 1214, 1214, 1217, 1214, 1214, 1214, 1214, 1214, 1214,
728 1214, 1214, 1214, 1214, 1214, 1214, 1218, 1218, 1218, 1218,
729 1218, 1218, 1218, 1218, 1218, 1214, 1214, 1214, 1214, 1214,
730 1214, 1214, 39, 1214, 1214, 1218, 1218, 1214, 1214, 1214,
731 1214, 1214, 1215, 1219, 1217, 1214, 1220, 41, 1214, 1214,
732 1221, 1221, 1221, 1221, 1214, 1214, 1214, 1214, 1222, 1214,
733 1222, 1223, 1224, 1222, 1222, 1222, 96, 1222, 1225, 1225,
735 100, 100, 1222, 1222, 1214, 1214, 41, 1214, 1226, 1226,
736 1226, 1226, 1214, 1227, 1227, 1228, 1227, 1227, 1227, 119,
737 1227, 1229, 1229, 123, 123, 1227, 1215, 1230, 1214, 1230,
738 1231, 1232, 1230, 1230, 1230, 135, 1230, 1233, 1233, 139,
739 139, 1230, 1234, 1214, 1234, 1235, 1236, 1234, 1234, 1234,
740 150, 1234, 1237, 1237, 154, 154, 1234, 1238, 1214, 1238,
741 1239, 1240, 1238, 1238, 1238, 165, 1238, 1241, 1241, 169,
742 169, 1238, 1242, 1214, 1242, 1243, 1244, 1242, 1242, 1242,
743 180, 1242, 1245, 1245, 184, 184, 1242, 1214, 1214, 1214,
744 1214, 1215, 1214, 1215, 1246, 1246, 1246, 1246, 1246, 1214,
746 1214, 1214, 1247, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
747 1214, 1214, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
748 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1214, 1214, 1214,
749 1214, 1214, 1214, 1214, 1249, 1214, 1214, 1214, 1214, 1214,
750 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
751 1214, 1214, 1214, 1250, 1251, 1252, 1251, 1251, 1251, 1251,
752 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1214,
753 1214, 1214, 1214, 1214, 1214, 1248, 1248, 1248, 1248, 1248,
754 1248, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1253, 1254,
755 1255, 1255, 1255, 1255, 1256, 1252, 1256, 1256, 1256, 1214,
757 1214, 1257, 1214, 1258, 1257, 1258, 1259, 1257, 1257, 1257,
758 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1260, 1214,
759 1260, 321, 321, 1257, 1257, 1214, 1214, 1252, 1250, 1250,
760 1250, 1261, 1262, 1261, 1261, 1261, 1261, 1261, 1261, 1261,
761 1261, 1261, 1261, 1261, 1261, 1263, 1214, 1263, 348, 348,
762 1261, 1264, 1214, 1264, 1265, 1265, 1264, 1265, 1266, 1266,
763 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
764 1264, 1267, 1214, 1267, 374, 374, 1264, 1268, 1214, 1268,
765 1269, 1269, 1268, 1269, 1270, 1270, 1268, 1268, 1268, 1268,
766 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1271, 1214, 1271,
768 400, 400, 1268, 1272, 1214, 1272, 1273, 1273, 1272, 1273,
769 1274, 1274, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
770 1272, 1272, 1272, 1275, 1214, 1275, 426, 426, 1272, 1276,
771 1214, 1277, 1276, 1277, 1278, 1276, 1276, 1276, 1276, 1276,
772 1276, 1276, 1276, 1276, 1276, 1276, 1279, 1214, 1279, 449,
773 449, 1276, 1214, 1280, 1280, 1280, 1280, 1214, 1281, 1281,
774 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
775 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
776 1214, 1214, 1214, 1214, 1214, 1214, 1282, 1214, 1214, 1214,
777 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
779 1214, 1214, 1214, 1283, 1284, 1214, 1214, 1214, 1214, 1285,
780 1286, 1287, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
781 1288, 1288, 1288, 1288, 1288, 1214, 1281, 1281, 1214, 1214,
782 1289, 1214, 1290, 1291, 1214, 1291, 1291, 1291, 1292, 1293,
783 1293, 1293, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
784 1295, 1296, 1297, 1298, 1299, 1299, 556, 1294, 1294, 1214,
785 1300, 1300, 1300, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
786 1301, 1302, 1303, 1304, 1304, 575, 1301, 1305, 1305, 1305,
787 1305, 1305, 1305, 1305, 1305, 1306, 1307, 1308, 1309, 1310,
788 1310, 591, 1305, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
790 1311, 1312, 1313, 1314, 1315, 1316, 1316, 607, 1311, 1317,
791 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1318, 1319, 1320,
792 1321, 1322, 1322, 623, 1317, 1323, 1323, 1323, 1323, 1323,
793 1323, 1323, 1323, 1324, 1325, 1326, 1327, 1328, 1328, 639,
794 1323, 1214, 1214, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
795 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
796 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1214, 1214, 1214,
797 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
798 1214, 1214, 1214, 1214, 1214, 1330, 1214, 1330, 1331, 1214,
799 1332, 1214, 1332, 1214, 1333, 1214, 1334, 1334, 1334, 1334,
801 1334, 1334, 1334, 1334, 1334, 1214, 1214, 1335, 1214, 1336,
802 1336, 1336, 1214, 1337, 1337, 1337, 1338, 1338, 1338, 1339,
803 1338, 1339, 1340, 1341, 1338, 1341, 1342, 1338, 1343, 1343,
804 730, 1338, 1338, 1214, 1344, 1344, 1344, 1345, 1345, 1345,
805 1346, 1345, 1347, 1345, 1348, 1348, 746, 1345, 1349, 1349,
806 1349, 1350, 1350, 1349, 1350, 1351, 1351, 1352, 1352, 1349,
807 1352, 1353, 1349, 1214, 764, 764, 1349, 1354, 1354, 1354,
808 1355, 1355, 1354, 1355, 1356, 1356, 1357, 1357, 1354, 1357,
809 1358, 1354, 1214, 783, 783, 1354, 1359, 1359, 1359, 1360,
810 1360, 1359, 1360, 1361, 1361, 1362, 1362, 1359, 1362, 1363,
812 1359, 1214, 802, 802, 1359, 1364, 1364, 1364, 1365, 1364,
813 1365, 1366, 1367, 1364, 1367, 1368, 1364, 1369, 1369, 819,
814 1364, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
815 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
816 1370, 1370, 1370, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
817 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
818 1214, 1214, 1371, 1371, 1371, 1371, 1371, 1371, 1214, 1372,
819 1372, 1372, 1373, 1373, 1373, 1374, 1375, 1375, 878, 1374,
820 1214, 1374, 1214, 1376, 1376, 1376, 1377, 1378, 1378, 889,
821 1377, 1379, 1214, 893, 893, 1379, 1354, 783, 783, 783,
823 1354, 1359, 802, 802, 802, 1359, 1364, 819, 819, 819,
824 1364, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
825 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
826 1370, 1370, 1370, 1370, 1214, 1214, 1214, 1214, 1214, 1214,
827 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1371, 1371,
828 1371, 1371, 1371, 1371, 1214, 1372, 1372, 1373, 1373, 1373,
829 1374, 878, 878, 878, 1374, 1214, 1376, 1376, 1376, 1377,
830 889, 889, 889, 1377, 1379, 893, 893, 893, 1379, 1354,
831 783, 783, 783, 1354, 1359, 802, 802, 802, 1359, 1364,
832 819, 819, 819, 1364, 1370, 1370, 1370, 1370, 1370, 1370,
834 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
835 1370, 1370, 1370, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
836 1214, 1214, 1214, 1371, 1371, 1371, 1214, 1214, 1372, 1373,
837 1373, 1373, 1374, 878, 878, 878, 1374, 1214, 1376, 1376,
838 1376, 1377, 889, 889, 889, 1377, 1379, 893, 893, 893,
839 1379, 1354, 783, 783, 783, 1354, 1359, 802, 802, 802,
840 1359, 1364, 819, 819, 819, 1364, 1370, 1370, 1370, 1370,
841 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
842 1370, 1370, 1370, 1370, 1214, 1214, 1214, 1214, 1214, 1214,
843 1214, 1371, 1214, 1214, 1214, 1373, 878, 1374, 1374, 1374,
845 1376, 889, 1377, 1377, 1377, 893, 1379, 1379, 1379, 783,
846 1354, 1354, 1354, 802, 1359, 1359, 1359, 819, 1364, 1364,
847 1364, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
848 1370, 1370, 1370, 1370, 1370, 1214, 1214, 1214, 1214, 1214,
849 1214, 1214, 1371, 1214, 1214, 1373, 878, 1374, 1374, 1376,
850 889, 893, 1379, 1379, 783, 1354, 1354, 802, 1359, 1359,
851 819, 1364, 1364, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
852 1370, 1370, 1370, 1370, 1214, 1214, 1214, 1371, 1373, 878,
853 1376, 889, 893, 783, 802, 819, 1370, 1370, 1370, 1370,
854 1370, 1370, 1370, 1370, 1214, 1214, 1371, 1373, 878, 1376,
856 889, 893, 783, 802, 819, 1370, 1370, 1370, 1370, 1370,
857 1370, 1370, 1370, 0, 1214, 1214, 1214, 1214, 1214, 1214,
858 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
859 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
860 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
861 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
862 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
863 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
864 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
865 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
867 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
868 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
869 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
870 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
871 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
872 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
873 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
874 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214
877 static yyconst flex_int16_t yy_nxt
[8062] =
879 24, 25, 26, 27, 25, 28, 29, 30, 31, 32,
880 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
881 42, 42, 43, 44, 45, 46, 47, 47, 47, 47,
882 47, 47, 48, 47, 48, 47, 48, 48, 47, 24,
883 47, 49, 47, 47, 47, 47, 47, 50, 47, 51,
884 47, 47, 52, 47, 53, 47, 47, 54, 47, 55,
885 47, 47, 47, 47, 56, 57, 58, 85, 58, 86,
886 85, 193, 103, 87, 228, 473, 188, 474, 188, 188,
887 201, 229, 270, 59, 60, 68, 61, 60, 24, 104,
888 88, 189, 24, 24, 202, 24, 62, 127, 62, 63,
890 24, 127, 113, 193, 194, 64, 65, 24, 24, 41,
891 42, 42, 42, 41, 42, 42, 42, 204, 188, 190,
892 188, 188, 271, 196, 47, 197, 466, 198, 199, 205,
893 47, 467, 47, 189, 254, 66, 194, 47, 247, 248,
894 67, 296, 47, 249, 250, 251, 252, 24, 24, 69,
895 70, 71, 72, 70, 69, 73, 69, 74, 69, 69,
896 75, 69, 76, 69, 76, 77, 69, 78, 79, 79,
897 79, 69, 80, 69, 69, 81, 81, 81, 81, 81,
898 81, 82, 81, 82, 81, 82, 82, 81, 69, 81,
899 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
901 81, 83, 81, 81, 81, 81, 84, 81, 81, 81,
902 81, 81, 81, 69, 69, 89, 89, 90, 91, 89,
903 89, 92, 89, 89, 89, 89, 93, 89, 94, 89,
904 94, 95, 89, 96, 97, 97, 97, 89, 98, 89,
905 89, 99, 99, 99, 99, 99, 99, 100, 99, 100,
906 99, 100, 100, 99, 89, 99, 99, 99, 99, 99,
907 99, 99, 99, 99, 99, 99, 99, 101, 99, 99,
908 99, 99, 102, 99, 99, 99, 99, 99, 99, 89,
909 89, 24, 24, 105, 24, 24, 24, 29, 24, 24,
910 24, 24, 34, 24, 62, 24, 62, 106, 24, 107,
912 108, 108, 108, 24, 65, 24, 24, 109, 109, 109,
913 109, 109, 109, 110, 109, 110, 109, 110, 110, 109,
914 24, 109, 109, 109, 109, 109, 109, 109, 109, 109,
915 109, 109, 109, 111, 109, 109, 109, 109, 112, 109,
916 109, 109, 109, 109, 109, 24, 24, 114, 114, 115,
917 114, 114, 114, 29, 114, 114, 114, 114, 116, 114,
918 117, 114, 117, 118, 114, 119, 120, 120, 120, 114,
919 121, 114, 114, 122, 122, 122, 122, 122, 122, 123,
920 122, 123, 122, 123, 123, 122, 114, 122, 122, 122,
921 122, 122, 122, 122, 122, 122, 122, 122, 122, 124,
923 122, 122, 122, 122, 125, 122, 122, 122, 122, 122,
924 122, 114, 114, 128, 128, 129, 130, 128, 128, 131,
925 128, 128, 128, 128, 132, 128, 133, 128, 133, 134,
926 128, 135, 136, 136, 136, 128, 137, 128, 128, 138,
927 138, 138, 138, 138, 138, 139, 138, 139, 138, 139,
928 139, 138, 128, 138, 138, 138, 138, 138, 138, 138,
929 138, 138, 138, 138, 138, 140, 138, 138, 138, 138,
930 141, 138, 138, 138, 138, 138, 138, 128, 128, 143,
931 143, 144, 145, 143, 143, 146, 143, 143, 143, 143,
932 147, 143, 148, 143, 148, 149, 143, 150, 151, 151,
934 151, 143, 152, 143, 143, 153, 153, 153, 153, 153,
935 153, 154, 153, 154, 153, 154, 154, 153, 143, 153,
936 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
937 153, 155, 153, 153, 153, 153, 156, 153, 153, 153,
938 153, 153, 153, 143, 143, 158, 158, 159, 160, 158,
939 158, 161, 158, 158, 158, 158, 162, 158, 163, 158,
940 163, 164, 158, 165, 166, 166, 166, 158, 167, 158,
941 158, 168, 168, 168, 168, 168, 168, 169, 168, 169,
942 168, 169, 169, 168, 158, 168, 168, 168, 168, 168,
943 168, 168, 168, 168, 168, 168, 168, 170, 168, 168,
945 168, 168, 171, 168, 168, 168, 168, 168, 168, 158,
946 158, 173, 173, 174, 175, 173, 173, 176, 173, 173,
947 173, 173, 177, 173, 178, 173, 178, 179, 173, 180,
948 181, 181, 181, 173, 182, 173, 173, 183, 183, 183,
949 183, 183, 183, 184, 183, 184, 183, 184, 184, 183,
950 173, 183, 183, 183, 183, 183, 183, 183, 183, 183,
951 183, 183, 183, 185, 183, 183, 183, 183, 186, 183,
952 183, 183, 183, 183, 183, 173, 173, 206, 498, 207,
953 207, 207, 207, 499, 206, 208, 207, 207, 207, 207,
954 249, 250, 209, 210, 469, 211, 211, 211, 211, 353,
956 354, 212, 470, 213, 213, 213, 213, 213, 214, 213,
957 213, 213, 213, 213, 213, 213, 272, 213, 215, 216,
958 217, 213, 218, 213, 219, 213, 220, 221, 222, 223,
959 213, 224, 213, 225, 226, 213, 213, 213, 213, 213,
960 227, 230, 253, 207, 207, 207, 207, 328, 253, 254,
961 353, 354, 253, 231, 232, 254, 256, 273, 233, 254,
962 234, 253, 256, 235, 305, 330, 256, 231, 254, 230,
963 232, 207, 207, 207, 207, 256, 254, 275, 234, 275,
964 275, 253, 232, 296, 258, 1213, 233, 235, 254, 193,
965 261, 257, 257, 257, 257, 256, 262, 306, 232, 236,
967 504, 298, 328, 259, 237, 505, 260, 238, 239, 240,
968 241, 242, 243, 253, 253, 244, 253, 245, 246, 253,
969 254, 254, 194, 254, 551, 331, 254, 256, 256, 552,
970 256, 353, 354, 256, 275, 190, 275, 275, 206, 236,
971 207, 207, 207, 207, 475, 263, 476, 282, 283, 240,
972 264, 284, 243, 267, 253, 253, 332, 266, 246, 477,
973 203, 254, 254, 269, 265, 334, 268, 1214, 256, 256,
974 286, 287, 288, 286, 286, 287, 288, 286, 206, 377,
975 207, 207, 207, 207, 213, 213, 276, 263, 213, 254,
976 213, 267, 277, 278, 279, 280, 296, 281, 290, 213,
978 213, 300, 287, 301, 300, 492, 213, 398, 211, 211,
979 211, 211, 230, 493, 207, 207, 207, 207, 981, 299,
980 300, 287, 301, 300, 471, 232, 510, 254, 472, 233,
981 297, 297, 297, 297, 296, 292, 310, 310, 310, 310,
982 293, 232, 511, 308, 294, 309, 309, 309, 309, 302,
983 353, 354, 319, 319, 319, 319, 302, 379, 380, 302,
984 353, 356, 328, 302, 357, 319, 319, 319, 319, 379,
985 380, 371, 311, 312, 302, 309, 309, 309, 309, 323,
986 353, 360, 433, 302, 332, 313, 314, 322, 469, 357,
987 315, 332, 316, 562, 332, 317, 528, 358, 332, 313,
989 379, 380, 314, 211, 211, 211, 211, 379, 386, 332,
990 316, 327, 327, 327, 327, 434, 383, 504, 332, 317,
991 302, 302, 505, 302, 302, 302, 302, 302, 302, 302,
992 302, 302, 302, 302, 302, 506, 302, 302, 1212, 326,
993 379, 380, 320, 302, 302, 302, 463, 230, 403, 327,
994 327, 327, 327, 329, 329, 329, 329, 328, 464, 302,
995 232, 397, 476, 335, 233, 336, 336, 336, 336, 405,
996 406, 405, 406, 405, 412, 477, 232, 337, 337, 337,
997 337, 655, 409, 656, 302, 302, 302, 302, 535, 302,
998 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1000 302, 424, 302, 302, 321, 321, 321, 321, 320, 302,
1001 302, 302, 986, 338, 346, 346, 346, 346, 346, 346,
1002 346, 346, 538, 353, 354, 302, 372, 372, 372, 372,
1003 353, 354, 438, 438, 438, 438, 349, 361, 447, 362,
1004 362, 362, 362, 483, 483, 350, 363, 363, 363, 363,
1005 302, 302, 339, 376, 336, 336, 336, 336, 372, 372,
1006 372, 372, 193, 352, 340, 341, 405, 406, 439, 342,
1007 352, 343, 254, 352, 344, 379, 380, 352, 340, 296,
1008 375, 341, 364, 379, 382, 490, 491, 383, 352, 343,
1009 1048, 389, 389, 389, 389, 194, 328, 352, 344, 332,
1011 332, 332, 332, 332, 332, 372, 332, 332, 332, 332,
1012 332, 332, 332, 332, 429, 332, 332, 379, 380, 305,
1013 384, 347, 332, 332, 332, 405, 406, 390, 486, 486,
1014 486, 387, 563, 388, 388, 388, 388, 378, 332, 398,
1015 398, 398, 398, 319, 378, 964, 423, 378, 507, 508,
1016 530, 378, 306, 398, 398, 398, 398, 453, 493, 453,
1017 453, 401, 378, 332, 332, 332, 332, 332, 332, 332,
1018 332, 378, 332, 332, 332, 332, 332, 332, 332, 332,
1019 402, 332, 332, 348, 348, 348, 348, 347, 332, 332,
1020 332, 405, 408, 405, 406, 409, 490, 529, 510, 405,
1022 406, 494, 546, 546, 332, 495, 535, 413, 510, 414,
1023 414, 414, 414, 535, 539, 415, 415, 415, 415, 496,
1024 424, 424, 424, 424, 1214, 537, 253, 404, 410, 332,
1025 332, 353, 354, 254, 404, 856, 275, 404, 275, 275,
1026 256, 404, 427, 536, 857, 365, 652, 362, 362, 362,
1027 362, 416, 404, 424, 424, 424, 424, 366, 367, 567,
1028 567, 404, 368, 653, 369, 253, 188, 370, 188, 188,
1029 535, 366, 254, 436, 367, 437, 437, 437, 437, 256,
1030 428, 189, 369, 424, 504, 447, 447, 447, 447, 572,
1031 711, 370, 352, 352, 353, 354, 352, 352, 352, 352,
1033 352, 352, 352, 352, 352, 352, 352, 450, 352, 352,
1034 515, 430, 254, 254, 373, 352, 352, 352, 430, 296,
1035 296, 430, 549, 549, 549, 430, 447, 447, 447, 447,
1036 398, 352, 454, 454, 454, 454, 430, 455, 455, 455,
1037 455, 456, 456, 456, 456, 430, 457, 457, 457, 457,
1038 541, 353, 354, 451, 353, 354, 352, 352, 352, 352,
1039 353, 354, 352, 352, 352, 352, 352, 352, 352, 352,
1040 352, 352, 352, 328, 352, 352, 374, 374, 374, 374,
1041 373, 352, 352, 352, 211, 211, 211, 211, 230, 253,
1042 207, 207, 207, 207, 353, 354, 254, 352, 253, 253,
1044 885, 232, 535, 256, 826, 233, 254, 211, 211, 211,
1045 211, 332, 694, 256, 634, 203, 827, 232, 458, 635,
1046 334, 712, 352, 352, 379, 380, 482, 482, 482, 482,
1047 286, 287, 288, 286, 458, 514, 535, 458, 391, 516,
1048 388, 388, 388, 388, 535, 253, 372, 253, 353, 356,
1049 392, 393, 254, 458, 254, 394, 977, 395, 710, 256,
1050 396, 256, 372, 484, 392, 484, 253, 393, 485, 485,
1051 485, 485, 956, 254, 254, 395, 513, 513, 513, 513,
1052 256, 296, 353, 354, 396, 378, 378, 379, 380, 378,
1053 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1055 519, 378, 378, 353, 354, 253, 253, 399, 378, 378,
1056 378, 398, 254, 254, 379, 380, 253, 542, 983, 256,
1057 256, 379, 380, 254, 378, 570, 570, 570, 253, 671,
1058 256, 253, 253, 379, 380, 254, 579, 672, 254, 254,
1059 673, 522, 256, 379, 382, 256, 256, 520, 521, 378,
1060 378, 378, 378, 379, 380, 378, 378, 378, 378, 378,
1061 378, 378, 378, 378, 378, 378, 517, 378, 378, 400,
1062 400, 400, 400, 399, 378, 378, 378, 518, 523, 524,
1063 253, 286, 287, 288, 286, 379, 380, 254, 379, 380,
1064 378, 535, 254, 433, 256, 540, 540, 540, 540, 296,
1066 300, 287, 301, 300, 300, 287, 301, 300, 310, 310,
1067 310, 310, 353, 360, 871, 378, 378, 405, 406, 353,
1068 354, 357, 525, 353, 360, 312, 434, 309, 309, 309,
1069 309, 417, 357, 414, 414, 414, 414, 328, 314, 595,
1070 379, 386, 315, 418, 419, 346, 379, 386, 420, 383,
1071 421, 405, 406, 422, 314, 383, 547, 418, 547, 1063,
1072 419, 548, 548, 548, 548, 968, 593, 447, 421, 319,
1073 319, 319, 319, 319, 319, 319, 319, 422, 404, 404,
1074 405, 406, 404, 404, 404, 404, 404, 404, 404, 404,
1075 404, 404, 404, 535, 404, 404, 310, 310, 310, 310,
1077 425, 404, 404, 404, 556, 353, 354, 543, 545, 545,
1078 545, 545, 730, 557, 405, 406, 731, 404, 872, 543,
1079 319, 581, 581, 543, 561, 561, 561, 561, 328, 337,
1080 337, 337, 337, 405, 406, 543, 328, 346, 346, 346,
1081 346, 535, 404, 404, 404, 404, 405, 406, 404, 404,
1082 404, 404, 404, 404, 404, 404, 404, 404, 404, 687,
1083 404, 404, 426, 426, 426, 426, 425, 404, 404, 404,
1084 870, 230, 575, 327, 327, 327, 327, 339, 692, 336,
1085 336, 336, 336, 404, 232, 1111, 379, 380, 233, 328,
1086 341, 568, 688, 568, 342, 319, 569, 569, 569, 569,
1088 232, 346, 346, 346, 346, 1049, 341, 721, 404, 404,
1089 440, 693, 437, 437, 437, 437, 372, 337, 337, 337,
1090 337, 735, 441, 442, 405, 408, 398, 443, 564, 444,
1091 405, 406, 445, 609, 405, 412, 441, 353, 354, 442,
1092 722, 576, 328, 409, 564, 629, 629, 444, 566, 566,
1093 566, 566, 1211, 584, 584, 584, 445, 430, 430, 564,
1094 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1095 430, 430, 969, 430, 430, 564, 632, 632, 632, 448,
1096 430, 430, 430, 353, 356, 353, 354, 357, 353, 356,
1097 405, 412, 357, 424, 353, 354, 430, 664, 665, 409,
1099 988, 363, 363, 363, 363, 582, 453, 582, 453, 453,
1100 583, 583, 583, 583, 372, 372, 372, 372, 405, 406,
1101 358, 430, 430, 430, 430, 358, 430, 430, 430, 430,
1102 430, 430, 430, 430, 430, 430, 430, 430, 1210, 430,
1103 430, 449, 449, 449, 449, 448, 430, 430, 430, 591,
1104 353, 354, 353, 354, 353, 354, 586, 483, 483, 379,
1105 382, 587, 430, 383, 1209, 625, 363, 363, 363, 363,
1106 580, 580, 580, 580, 379, 382, 328, 578, 383, 405,
1107 406, 578, 486, 486, 486, 379, 380, 430, 430, 550,
1108 550, 550, 550, 578, 546, 546, 384, 578, 550, 550,
1110 550, 597, 597, 886, 372, 372, 372, 372, 549, 549,
1111 549, 384, 550, 550, 550, 550, 550, 550, 302, 302,
1112 328, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1113 302, 302, 302, 611, 302, 302, 379, 380, 567, 567,
1114 320, 302, 302, 302, 592, 379, 380, 725, 810, 379,
1115 380, 1150, 389, 389, 389, 389, 598, 302, 598, 405,
1116 406, 599, 599, 599, 599, 600, 600, 600, 379, 380,
1117 405, 406, 602, 398, 618, 613, 613, 603, 982, 619,
1118 726, 811, 302, 302, 302, 302, 1208, 302, 302, 302,
1119 553, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1121 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1122 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
1123 554, 554, 554, 302, 554, 554, 554, 554, 554, 554,
1124 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
1125 554, 554, 554, 554, 554, 554, 554, 554, 302, 302,
1126 302, 302, 328, 302, 302, 302, 302, 302, 302, 302,
1127 302, 302, 302, 302, 302, 1207, 302, 302, 555, 555,
1128 555, 555, 320, 302, 302, 302, 736, 379, 380, 328,
1129 737, 379, 380, 398, 398, 398, 398, 353, 354, 302,
1130 570, 570, 570, 389, 389, 389, 389, 596, 596, 596,
1132 596, 405, 408, 535, 594, 409, 629, 629, 594, 438,
1133 438, 438, 438, 967, 302, 302, 571, 571, 571, 571,
1134 594, 353, 354, 608, 594, 571, 571, 571, 398, 398,
1135 398, 398, 957, 424, 424, 424, 424, 767, 410, 571,
1136 571, 571, 571, 571, 571, 332, 332, 332, 332, 332,
1137 332, 328, 332, 332, 332, 332, 332, 332, 332, 332,
1138 751, 332, 332, 607, 405, 406, 328, 347, 332, 332,
1139 332, 405, 408, 624, 884, 409, 405, 406, 881, 882,
1140 415, 415, 415, 415, 332, 405, 406, 614, 1206, 614,
1141 353, 354, 615, 615, 615, 615, 454, 454, 454, 454,
1143 1181, 616, 616, 616, 455, 455, 455, 455, 410, 332,
1144 332, 332, 332, 332, 332, 332, 332, 510, 332, 332,
1145 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
1146 332, 332, 332, 332, 332, 332, 332, 573, 573, 573,
1147 573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
1148 332, 573, 573, 573, 573, 573, 573, 573, 573, 573,
1149 573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
1150 573, 573, 573, 573, 573, 332, 332, 332, 332, 332,
1151 332, 332, 332, 1034, 332, 332, 332, 332, 332, 332,
1152 332, 332, 319, 332, 332, 574, 574, 574, 574, 347,
1154 332, 332, 332, 405, 406, 332, 1043, 405, 406, 689,
1155 424, 424, 424, 424, 742, 346, 332, 353, 753, 415,
1156 415, 415, 415, 612, 612, 612, 612, 372, 746, 372,
1157 610, 894, 747, 895, 610, 440, 346, 437, 437, 437,
1158 437, 332, 332, 353, 354, 623, 610, 346, 442, 973,
1159 610, 254, 443, 456, 456, 456, 456, 365, 296, 362,
1160 362, 362, 362, 814, 442, 438, 438, 438, 438, 765,
1161 367, 253, 254, 766, 368, 1196, 626, 372, 254, 296,
1162 628, 628, 628, 628, 424, 256, 367, 353, 354, 987,
1163 714, 626, 626, 630, 447, 630, 815, 993, 631, 631,
1165 631, 631, 873, 585, 585, 585, 585, 626, 457, 457,
1166 457, 457, 585, 585, 585, 447, 447, 447, 447, 447,
1167 447, 447, 447, 379, 380, 1195, 585, 585, 585, 585,
1168 585, 585, 352, 352, 353, 354, 352, 352, 352, 352,
1169 352, 352, 352, 352, 352, 352, 352, 398, 352, 352,
1170 639, 899, 353, 757, 373, 352, 352, 352, 642, 640,
1171 642, 754, 770, 643, 643, 643, 643, 482, 482, 482,
1172 482, 352, 485, 485, 485, 485, 253, 253, 458, 485,
1173 485, 485, 485, 254, 254, 548, 548, 548, 548, 319,
1174 256, 256, 353, 354, 458, 1180, 352, 352, 352, 352,
1176 353, 354, 352, 352, 588, 352, 352, 352, 352, 352,
1177 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1178 352, 352, 352, 352, 589, 589, 589, 589, 589, 589,
1179 589, 589, 589, 589, 589, 589, 589, 352, 589, 589,
1180 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
1181 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
1182 589, 589, 352, 352, 352, 352, 353, 354, 352, 352,
1183 352, 352, 352, 352, 352, 352, 352, 352, 352, 1194,
1184 352, 352, 590, 590, 590, 590, 373, 352, 352, 352,
1185 253, 253, 253, 253, 253, 253, 1193, 254, 254, 254,
1187 254, 254, 254, 352, 256, 256, 256, 256, 256, 256,
1188 253, 1192, 253, 548, 548, 548, 548, 254, 687, 254,
1189 569, 569, 569, 569, 256, 698, 256, 253, 352, 352,
1190 379, 380, 353, 354, 254, 254, 701, 699, 697, 700,
1191 1191, 256, 296, 692, 391, 253, 388, 388, 388, 388,
1192 702, 688, 254, 253, 703, 353, 354, 393, 328, 256,
1193 254, 394, 569, 569, 569, 569, 715, 256, 704, 1190,
1194 716, 581, 581, 393, 379, 380, 693, 892, 717, 319,
1195 717, 1040, 705, 718, 718, 718, 718, 1097, 379, 776,
1196 601, 601, 601, 601, 332, 379, 380, 773, 689, 601,
1198 601, 601, 738, 742, 738, 353, 759, 739, 739, 739,
1199 739, 597, 597, 601, 601, 601, 601, 601, 601, 378,
1200 378, 379, 380, 378, 378, 378, 378, 378, 378, 378,
1201 378, 378, 378, 378, 535, 378, 378, 545, 545, 545,
1202 545, 399, 378, 378, 378, 632, 632, 632, 543, 566,
1203 566, 566, 566, 1029, 353, 354, 379, 380, 378, 398,
1204 564, 353, 354, 900, 543, 749, 319, 749, 253, 1147,
1205 750, 750, 750, 750, 447, 254, 564, 583, 583, 583,
1206 583, 991, 256, 378, 378, 378, 378, 379, 380, 378,
1207 378, 604, 378, 378, 378, 378, 378, 378, 378, 378,
1209 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1210 378, 605, 605, 605, 605, 605, 605, 605, 605, 605,
1211 605, 605, 605, 605, 378, 605, 605, 605, 605, 605,
1212 605, 605, 605, 605, 605, 605, 605, 605, 605, 605,
1213 605, 605, 605, 605, 605, 605, 605, 605, 605, 378,
1214 378, 378, 378, 379, 380, 378, 378, 378, 378, 378,
1215 378, 378, 378, 378, 378, 378, 328, 378, 378, 606,
1216 606, 606, 606, 399, 378, 378, 378, 353, 354, 721,
1217 398, 353, 354, 405, 406, 353, 354, 353, 753, 1041,
1218 378, 754, 1203, 580, 580, 580, 580, 583, 583, 583,
1220 583, 584, 584, 584, 578, 353, 759, 725, 810, 760,
1221 379, 380, 722, 379, 380, 378, 378, 405, 406, 1189,
1222 578, 768, 789, 768, 755, 254, 769, 769, 769, 769,
1223 254, 417, 296, 414, 414, 414, 414, 296, 379, 380,
1224 726, 811, 761, 424, 419, 379, 772, 904, 420, 773,
1225 379, 380, 379, 772, 596, 596, 596, 596, 424, 874,
1226 419, 405, 406, 786, 875, 594, 599, 599, 599, 599,
1227 1204, 405, 406, 379, 380, 405, 795, 617, 617, 617,
1228 617, 594, 774, 372, 792, 1106, 617, 617, 617, 599,
1229 599, 599, 599, 353, 354, 379, 778, 588, 1188, 779,
1231 617, 617, 617, 617, 617, 617, 404, 404, 405, 406,
1232 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
1233 404, 805, 404, 404, 379, 380, 353, 354, 425, 404,
1234 404, 404, 780, 405, 406, 784, 1187, 405, 406, 785,
1235 600, 600, 600, 398, 787, 404, 787, 405, 406, 788,
1236 788, 788, 788, 613, 613, 631, 631, 631, 631, 631,
1237 631, 631, 631, 615, 615, 615, 615, 379, 380, 896,
1238 404, 404, 404, 404, 405, 406, 404, 404, 620, 404,
1239 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
1240 404, 404, 404, 404, 404, 404, 404, 404, 621, 621,
1242 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1243 621, 404, 621, 621, 621, 621, 621, 621, 621, 621,
1244 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1245 621, 621, 621, 621, 621, 621, 404, 404, 404, 404,
1246 405, 406, 404, 404, 404, 404, 404, 404, 404, 404,
1247 404, 404, 404, 1112, 404, 404, 622, 622, 622, 622,
1248 425, 404, 404, 404, 803, 405, 406, 424, 804, 405,
1249 406, 905, 424, 405, 406, 405, 791, 404, 1119, 792,
1250 1183, 612, 612, 612, 612, 615, 615, 615, 615, 616,
1251 616, 616, 610, 806, 398, 806, 379, 778, 807, 807,
1253 807, 807, 404, 404, 633, 633, 633, 633, 610, 1177,
1254 353, 757, 793, 633, 633, 633, 405, 797, 819, 754,
1255 798, 814, 820, 447, 379, 380, 447, 633, 633, 633,
1256 633, 633, 633, 430, 430, 398, 430, 430, 430, 430,
1257 430, 430, 430, 430, 430, 430, 430, 430, 1110, 430,
1258 430, 379, 380, 799, 815, 448, 430, 430, 430, 628,
1259 628, 628, 628, 643, 643, 643, 643, 901, 353, 757,
1260 626, 253, 430, 643, 643, 643, 643, 754, 254, 718,
1261 718, 718, 718, 405, 406, 256, 626, 718, 718, 718,
1262 718, 739, 739, 739, 739, 346, 897, 430, 430, 430,
1264 430, 1182, 430, 430, 430, 636, 430, 430, 430, 430,
1265 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1266 430, 430, 430, 430, 430, 637, 637, 637, 637, 637,
1267 637, 637, 637, 637, 637, 637, 637, 637, 430, 637,
1268 637, 637, 637, 637, 637, 637, 637, 637, 637, 637,
1269 637, 637, 637, 637, 637, 637, 637, 637, 637, 637,
1270 637, 637, 637, 430, 430, 430, 430, 1176, 430, 430,
1271 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1272 1098, 430, 430, 638, 638, 638, 638, 448, 430, 430,
1273 430, 253, 405, 791, 253, 253, 253, 1115, 254, 253,
1275 253, 254, 254, 254, 430, 256, 254, 254, 256, 256,
1276 256, 379, 776, 256, 256, 739, 739, 739, 739, 978,
1277 773, 379, 380, 372, 863, 604, 319, 353, 354, 430,
1278 430, 550, 550, 550, 550, 865, 864, 866, 424, 867,
1279 550, 550, 550, 750, 750, 750, 750, 405, 406, 868,
1280 405, 406, 405, 797, 550, 550, 550, 550, 550, 550,
1281 302, 302, 328, 302, 302, 302, 302, 302, 302, 302,
1282 302, 302, 302, 302, 302, 424, 302, 302, 353, 354,
1283 379, 776, 728, 302, 302, 302, 353, 753, 1114, 773,
1284 754, 1175, 902, 254, 750, 750, 750, 750, 1101, 302,
1286 296, 328, 405, 795, 353, 753, 447, 992, 754, 353,
1287 759, 792, 1120, 760, 346, 353, 759, 405, 406, 760,
1288 1039, 620, 1102, 755, 302, 302, 302, 302, 959, 302,
1289 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1290 302, 755, 302, 302, 379, 380, 761, 1116, 320, 302,
1291 302, 302, 761, 379, 380, 405, 795, 447, 353, 354,
1292 769, 769, 769, 769, 792, 302, 353, 354, 979, 769,
1293 769, 769, 769, 379, 772, 379, 772, 773, 1093, 773,
1294 1144, 379, 778, 379, 778, 779, 1174, 779, 424, 1035,
1295 302, 302, 302, 302, 319, 302, 302, 302, 302, 302,
1297 302, 302, 302, 302, 302, 302, 302, 975, 302, 302,
1298 774, 1098, 774, 1148, 320, 302, 302, 302, 780, 1050,
1299 780, 405, 406, 405, 406, 405, 406, 1093, 405, 791,
1300 372, 302, 792, 807, 807, 807, 807, 788, 788, 788,
1301 788, 788, 788, 788, 788, 328, 729, 807, 807, 807,
1302 807, 379, 380, 984, 353, 354, 302, 302, 571, 571,
1303 571, 571, 405, 406, 989, 793, 906, 571, 571, 571,
1304 405, 791, 379, 380, 792, 1053, 405, 797, 1099, 398,
1305 798, 571, 571, 571, 571, 571, 571, 332, 332, 332,
1306 332, 332, 332, 1047, 332, 332, 332, 332, 332, 332,
1308 332, 332, 915, 332, 332, 353, 354, 793, 1173, 744,
1309 332, 332, 332, 799, 398, 916, 1027, 1027, 1027, 1027,
1310 253, 980, 917, 1036, 319, 1184, 332, 254, 319, 253,
1311 253, 405, 797, 253, 256, 798, 254, 254, 254, 1103,
1312 254, 1044, 1172, 256, 256, 296, 346, 256, 1171, 405,
1313 406, 332, 332, 332, 332, 332, 332, 332, 332, 953,
1314 332, 332, 332, 332, 332, 332, 332, 332, 799, 332,
1315 332, 949, 951, 254, 447, 347, 332, 332, 332, 958,
1316 296, 950, 253, 1118, 254, 346, 253, 253, 253, 254,
1317 253, 296, 332, 254, 254, 254, 256, 254, 985, 254,
1319 256, 256, 256, 1045, 256, 1058, 296, 1064, 346, 424,
1320 960, 447, 1065, 1103, 1031, 1144, 447, 332, 332, 332,
1321 332, 332, 332, 332, 332, 1030, 332, 332, 332, 332,
1322 332, 332, 332, 332, 952, 332, 332, 954, 253, 253,
1323 253, 347, 332, 332, 332, 254, 254, 254, 1028, 254,
1324 1028, 1028, 256, 256, 256, 1170, 296, 1107, 332, 1037,
1325 1037, 1037, 1037, 1046, 1046, 1046, 1046, 379, 380, 535,
1326 1094, 1024, 1169, 745, 353, 354, 1025, 1026, 447, 1032,
1327 379, 380, 1161, 332, 332, 353, 354, 1068, 328, 1168,
1328 1051, 1051, 1051, 1051, 379, 380, 1056, 1056, 1056, 1056,
1330 1069, 585, 585, 585, 585, 1095, 1052, 1070, 1108, 372,
1331 585, 585, 585, 1066, 1066, 1066, 1066, 405, 406, 1027,
1332 1027, 1027, 1027, 1167, 585, 585, 585, 585, 585, 585,
1333 352, 352, 353, 354, 352, 352, 352, 352, 352, 352,
1334 352, 352, 352, 352, 352, 1104, 352, 352, 405, 406,
1335 254, 254, 763, 352, 352, 352, 1057, 296, 296, 1093,
1336 372, 253, 1166, 253, 1061, 1061, 1061, 1061, 254, 352,
1337 254, 1028, 1094, 1028, 1028, 256, 253, 256, 405, 406,
1338 1165, 346, 1152, 254, 1151, 372, 353, 354, 1108, 1146,
1339 256, 346, 1164, 1096, 352, 352, 352, 352, 353, 354,
1341 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1342 352, 1092, 352, 352, 1093, 1094, 398, 424, 373, 352,
1343 352, 352, 1100, 1163, 1155, 254, 254, 1105, 1185, 353,
1344 354, 1109, 296, 296, 1120, 352, 1037, 1037, 1037, 1037,
1345 1121, 1046, 1046, 1046, 1046, 1051, 1051, 1051, 1051, 353,
1346 354, 1107, 1145, 1153, 1066, 1066, 1066, 1066, 353, 354,
1347 352, 352, 352, 352, 353, 354, 352, 352, 352, 352,
1348 352, 352, 352, 352, 352, 352, 352, 328, 352, 352,
1349 379, 380, 1113, 1104, 373, 352, 352, 352, 405, 406,
1350 1117, 379, 380, 1112, 1149, 253, 1056, 1056, 1056, 1056,
1352 424, 352, 254, 1099, 1061, 1061, 1061, 1061, 1158, 256,
1353 353, 354, 1200, 1119, 1154, 1162, 764, 379, 380, 1111,
1354 1145, 1156, 405, 406, 1116, 254, 352, 352, 379, 380,
1355 379, 380, 296, 1094, 1157, 405, 406, 1115, 1142, 1159,
1356 1143, 353, 354, 253, 601, 601, 601, 601, 405, 406,
1357 254, 1141, 1160, 601, 601, 601, 1140, 256, 379, 380,
1358 379, 380, 405, 406, 405, 406, 1179, 601, 601, 601,
1359 601, 601, 601, 378, 378, 379, 380, 378, 378, 378,
1360 378, 378, 378, 378, 378, 378, 378, 378, 1139, 378,
1361 378, 1178, 447, 254, 319, 782, 378, 378, 378, 1186,
1363 296, 1199, 346, 372, 1202, 447, 1138, 253, 253, 1201,
1364 254, 1137, 378, 1205, 254, 254, 1136, 296, 1135, 1134,
1365 1133, 256, 256, 1132, 1131, 1130, 1129, 1128, 1127, 1126,
1366 1125, 1124, 1123, 1122, 535, 1198, 1091, 378, 378, 378,
1367 378, 379, 380, 378, 378, 378, 378, 378, 378, 378,
1368 378, 378, 378, 378, 1090, 378, 378, 1197, 1089, 1088,
1369 1087, 399, 378, 378, 378, 1086, 1085, 1084, 1083, 1082,
1370 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 378, 1073,
1371 1072, 1071, 1067, 1062, 1060, 1059, 1055, 1054, 1042, 1038,
1372 1033, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015,
1374 1014, 1013, 1012, 378, 378, 378, 378, 379, 380, 378,
1375 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1376 1011, 378, 378, 1010, 1009, 1008, 1007, 399, 378, 378,
1377 378, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998,
1378 997, 996, 995, 994, 378, 990, 974, 970, 966, 881,
1379 965, 961, 535, 955, 948, 947, 946, 945, 944, 783,
1380 943, 942, 941, 940, 939, 938, 937, 936, 935, 378,
1381 378, 405, 406, 934, 933, 932, 931, 930, 929, 928,
1382 927, 926, 925, 924, 923, 922, 921, 617, 617, 617,
1383 617, 920, 919, 918, 914, 913, 617, 617, 617, 912,
1385 911, 910, 636, 810, 907, 891, 890, 510, 887, 883,
1386 617, 617, 617, 617, 617, 617, 404, 404, 405, 406,
1387 404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
1388 404, 880, 404, 404, 879, 553, 721, 876, 801, 404,
1389 404, 404, 539, 708, 709, 869, 510, 696, 511, 687,
1390 862, 861, 860, 859, 858, 404, 855, 854, 853, 852,
1391 851, 850, 849, 848, 847, 846, 845, 844, 843, 842,
1392 841, 840, 839, 838, 837, 836, 835, 834, 833, 832,
1393 404, 404, 404, 404, 405, 406, 404, 404, 404, 404,
1394 404, 404, 404, 404, 404, 404, 404, 831, 404, 404,
1396 830, 829, 828, 825, 425, 404, 404, 404, 824, 823,
1397 822, 821, 810, 808, 748, 740, 328, 734, 733, 732,
1398 721, 404, 719, 713, 534, 535, 709, 531, 532, 707,
1399 671, 655, 652, 706, 696, 690, 687, 685, 684, 683,
1400 682, 681, 680, 679, 678, 677, 404, 404, 404, 404,
1401 405, 406, 404, 404, 404, 404, 404, 404, 404, 404,
1402 404, 404, 404, 676, 404, 404, 675, 674, 670, 669,
1403 425, 404, 404, 404, 668, 667, 666, 663, 662, 661,
1404 660, 659, 658, 657, 654, 651, 650, 404, 649, 648,
1405 647, 646, 645, 644, 641, 627, 433, 577, 565, 560,
1407 559, 558, 802, 544, 305, 535, 532, 499, 473, 471,
1408 527, 464, 404, 404, 633, 633, 633, 633, 526, 328,
1409 509, 503, 502, 633, 633, 633, 501, 500, 497, 489,
1410 488, 481, 480, 479, 478, 468, 465, 633, 633, 633,
1411 633, 633, 633, 430, 430, 462, 430, 430, 430, 430,
1412 430, 430, 430, 430, 430, 430, 430, 430, 461, 430,
1413 430, 460, 193, 452, 446, 817, 430, 430, 430, 433,
1414 431, 351, 345, 274, 328, 325, 324, 318, 305, 303,
1415 274, 285, 430, 193, 285, 274, 193, 200, 191, 1214,
1416 187, 172, 157, 142, 126, 113, 1214, 1214, 1214, 1214,
1418 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430, 430, 430,
1419 430, 1214, 430, 430, 430, 430, 430, 430, 430, 430,
1420 430, 430, 430, 430, 1214, 430, 430, 1214, 1214, 1214,
1421 1214, 448, 430, 430, 430, 1214, 1214, 1214, 1214, 1214,
1422 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430, 1214,
1423 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1424 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1425 1214, 1214, 1214, 430, 430, 430, 430, 1214, 430, 430,
1426 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1427 1214, 430, 430, 1214, 1214, 1214, 1214, 448, 430, 430,
1429 430, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1430 1214, 1214, 1214, 1214, 430, 1214, 1214, 1214, 1214, 1214,
1431 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 818,
1432 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430,
1433 430, 302, 302, 1214, 302, 302, 302, 302, 302, 302,
1434 302, 302, 302, 302, 302, 302, 1214, 302, 302, 1214,
1435 1214, 1214, 1214, 728, 302, 302, 302, 1214, 1214, 1214,
1436 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1437 302, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1438 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1440 1214, 1214, 1214, 1214, 1214, 302, 302, 302, 302, 1214,
1441 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1442 302, 302, 1214, 302, 302, 1214, 1214, 1214, 1214, 320,
1443 302, 302, 302, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1444 1214, 1214, 1214, 1214, 1214, 1214, 302, 1214, 1214, 1214,
1445 1214, 1214, 877, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1446 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1447 1214, 302, 302, 302, 302, 1214, 302, 302, 302, 302,
1448 302, 302, 302, 302, 302, 302, 302, 302, 1214, 302,
1449 302, 1214, 1214, 1214, 1214, 320, 302, 302, 302, 1214,
1451 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1452 1214, 1214, 302, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1453 1214, 1214, 878, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1454 1214, 1214, 1214, 1214, 1214, 1214, 1214, 302, 302, 332,
1455 332, 332, 332, 332, 332, 1214, 332, 332, 332, 332,
1456 332, 332, 332, 332, 1214, 332, 332, 1214, 1214, 1214,
1457 1214, 744, 332, 332, 332, 1214, 1214, 1214, 1214, 1214,
1458 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 332, 1214,
1459 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1460 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1462 1214, 1214, 1214, 332, 332, 332, 332, 332, 332, 332,
1463 332, 1214, 332, 332, 332, 332, 332, 332, 332, 332,
1464 1214, 332, 332, 1214, 1214, 1214, 1214, 347, 332, 332,
1465 332, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1466 1214, 1214, 1214, 1214, 332, 1214, 1214, 1214, 1214, 1214,
1467 888, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1468 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 332,
1469 332, 332, 332, 332, 332, 332, 332, 1214, 332, 332,
1470 332, 332, 332, 332, 332, 332, 1214, 332, 332, 1214,
1471 1214, 1214, 1214, 347, 332, 332, 332, 1214, 1214, 1214,
1473 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1474 332, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1475 889, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1476 1214, 1214, 1214, 1214, 1214, 332, 332, 352, 352, 353,
1477 354, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1478 352, 352, 1214, 352, 352, 1214, 1214, 1214, 1214, 763,
1479 352, 352, 352, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1480 1214, 1214, 1214, 1214, 1214, 1214, 352, 1214, 1214, 1214,
1481 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1482 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1484 1214, 352, 352, 352, 352, 353, 354, 352, 352, 352,
1485 352, 352, 352, 352, 352, 352, 352, 352, 372, 352,
1486 352, 372, 372, 372, 372, 373, 352, 352, 352, 372,
1487 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
1488 372, 372, 352, 372, 372, 372, 372, 372, 893, 372,
1489 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
1490 372, 372, 372, 372, 372, 372, 372, 352, 352, 378,
1491 378, 379, 380, 378, 378, 378, 378, 378, 378, 378,
1492 378, 378, 378, 378, 1214, 378, 378, 1214, 1214, 1214,
1493 1214, 782, 378, 378, 378, 1214, 1214, 1214, 1214, 1214,
1495 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 378, 1214,
1496 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1497 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1498 1214, 1214, 1214, 378, 378, 378, 378, 379, 380, 378,
1499 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1500 398, 378, 378, 398, 398, 398, 398, 399, 378, 378,
1501 378, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1502 398, 398, 398, 398, 378, 398, 398, 398, 398, 398,
1503 898, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1504 398, 398, 398, 398, 398, 398, 398, 398, 398, 378,
1506 378, 404, 404, 405, 406, 404, 404, 404, 404, 404,
1507 404, 404, 404, 404, 404, 404, 1214, 404, 404, 1214,
1508 1214, 1214, 1214, 801, 404, 404, 404, 1214, 1214, 1214,
1509 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1510 404, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1511 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1512 1214, 1214, 1214, 1214, 1214, 404, 404, 404, 404, 405,
1513 406, 404, 404, 404, 404, 404, 404, 404, 404, 404,
1514 404, 404, 424, 404, 404, 424, 424, 424, 424, 425,
1515 404, 404, 404, 424, 424, 424, 424, 424, 424, 424,
1517 424, 424, 424, 424, 424, 424, 404, 424, 424, 424,
1518 424, 424, 903, 424, 424, 424, 424, 424, 424, 424,
1519 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
1520 424, 404, 404, 430, 430, 1214, 430, 430, 430, 430,
1521 430, 430, 430, 430, 430, 430, 430, 430, 1214, 430,
1522 430, 1214, 1214, 1214, 1214, 817, 430, 430, 430, 1214,
1523 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1524 1214, 1214, 430, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1525 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1526 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430, 430, 430,
1528 430, 1214, 430, 430, 430, 430, 430, 430, 430, 430,
1529 430, 430, 430, 430, 1214, 430, 430, 1214, 1214, 1214,
1530 1214, 448, 430, 430, 430, 1214, 1214, 1214, 1214, 1214,
1531 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430, 1214,
1532 1214, 1214, 1214, 1214, 908, 1214, 1214, 1214, 1214, 1214,
1533 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1534 1214, 1214, 1214, 430, 430, 430, 430, 1214, 430, 430,
1535 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1536 1214, 430, 430, 1214, 1214, 1214, 1214, 448, 430, 430,
1537 430, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1539 1214, 1214, 1214, 1214, 430, 1214, 1214, 1214, 1214, 1214,
1540 1214, 1214, 1214, 1214, 909, 1214, 1214, 1214, 1214, 1214,
1541 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 430,
1542 430, 302, 302, 1214, 302, 302, 302, 302, 302, 302,
1543 302, 302, 302, 302, 302, 302, 1214, 302, 302, 1214,
1544 1214, 1214, 1214, 320, 302, 302, 302, 1214, 1214, 1214,
1545 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1546 302, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1547 1214, 1214, 1214, 1214, 1214, 1214, 1214, 962, 1214, 1214,
1548 1214, 1214, 1214, 1214, 1214, 302, 302, 302, 302, 1214,
1550 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1551 302, 302, 1214, 302, 302, 1214, 1214, 1214, 1214, 320,
1552 302, 302, 302, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1553 1214, 1214, 1214, 1214, 1214, 1214, 302, 1214, 1214, 1214,
1554 1214, 1214, 1214, 1214, 1214, 1214, 1214, 963, 1214, 1214,
1555 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1556 1214, 302, 302, 332, 332, 332, 332, 332, 332, 1214,
1557 332, 332, 332, 332, 332, 332, 332, 332, 1214, 332,
1558 332, 1214, 1214, 1214, 1214, 347, 332, 332, 332, 1214,
1559 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1561 1214, 1214, 332, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1562 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 971,
1563 1214, 1214, 1214, 1214, 1214, 1214, 1214, 332, 332, 332,
1564 332, 332, 332, 332, 332, 1214, 332, 332, 332, 332,
1565 332, 332, 332, 332, 1214, 332, 332, 1214, 1214, 1214,
1566 1214, 347, 332, 332, 332, 1214, 1214, 1214, 1214, 1214,
1567 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 332, 1214,
1568 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 972,
1569 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1570 1214, 1214, 1214, 332, 332, 352, 352, 353, 354, 352,
1572 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1573 372, 352, 352, 372, 372, 372, 372, 373, 352, 352,
1574 352, 372, 372, 372, 372, 372, 372, 372, 372, 372,
1575 372, 372, 372, 372, 352, 372, 372, 372, 372, 372,
1576 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
1577 372, 976, 372, 372, 372, 372, 372, 372, 372, 352,
1578 352, 192, 1214, 192, 192, 192, 192, 192, 192, 192,
1579 192, 192, 195, 1214, 1214, 195, 195, 203, 1214, 203,
1580 203, 203, 203, 203, 203, 203, 203, 203, 255, 255,
1581 255, 255, 255, 255, 255, 255, 289, 289, 289, 289,
1583 291, 1214, 291, 1214, 291, 291, 291, 291, 295, 295,
1584 295, 295, 295, 295, 295, 302, 1214, 302, 302, 302,
1585 302, 302, 302, 302, 302, 302, 304, 1214, 304, 304,
1586 304, 304, 304, 304, 304, 304, 304, 307, 1214, 307,
1587 307, 307, 307, 307, 307, 307, 307, 307, 319, 1214,
1588 319, 319, 319, 319, 319, 319, 319, 319, 319, 254,
1589 254, 254, 254, 254, 254, 254, 332, 332, 1214, 332,
1590 332, 332, 332, 332, 332, 332, 332, 333, 333, 333,
1591 333, 333, 333, 333, 333, 333, 333, 333, 346, 346,
1592 1214, 346, 346, 346, 346, 346, 346, 346, 346, 352,
1594 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1595 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
1596 355, 359, 359, 359, 359, 359, 359, 359, 359, 359,
1597 359, 359, 372, 372, 372, 372, 372, 372, 372, 372,
1598 372, 372, 372, 378, 378, 378, 378, 378, 378, 378,
1599 378, 378, 378, 378, 381, 381, 381, 381, 381, 381,
1600 381, 381, 381, 381, 381, 385, 385, 385, 385, 385,
1601 385, 385, 385, 385, 385, 385, 398, 398, 398, 398,
1602 398, 398, 398, 398, 398, 398, 398, 404, 404, 404,
1603 404, 404, 404, 404, 404, 404, 404, 404, 407, 407,
1605 407, 407, 407, 407, 407, 407, 407, 407, 407, 411,
1606 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
1607 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
1608 424, 430, 1214, 430, 430, 430, 430, 430, 430, 430,
1609 430, 430, 432, 1214, 432, 432, 432, 432, 432, 432,
1610 432, 432, 432, 435, 1214, 435, 435, 435, 435, 435,
1611 435, 435, 435, 435, 447, 1214, 447, 447, 447, 447,
1612 447, 447, 447, 447, 447, 195, 1214, 1214, 195, 195,
1613 203, 1214, 203, 203, 203, 203, 203, 203, 203, 203,
1614 203, 459, 1214, 1214, 459, 459, 459, 487, 1214, 1214,
1616 487, 254, 254, 254, 254, 254, 254, 254, 255, 255,
1617 255, 255, 255, 255, 255, 255, 512, 1214, 1214, 1214,
1618 512, 512, 512, 512, 512, 531, 531, 531, 531, 531,
1619 531, 533, 533, 533, 533, 534, 534, 534, 534, 534,
1620 534, 295, 295, 295, 295, 295, 295, 295, 302, 1214,
1621 302, 302, 302, 302, 302, 302, 302, 302, 302, 304,
1622 1214, 304, 304, 304, 304, 304, 304, 304, 304, 304,
1623 307, 1214, 307, 307, 307, 307, 307, 307, 307, 307,
1624 307, 319, 1214, 319, 319, 319, 319, 319, 319, 319,
1625 319, 319, 332, 332, 1214, 332, 332, 332, 332, 332,
1627 332, 332, 332, 333, 333, 333, 333, 333, 333, 333,
1628 333, 333, 333, 333, 346, 346, 1214, 346, 346, 346,
1629 346, 346, 346, 346, 346, 352, 352, 352, 352, 352,
1630 352, 352, 352, 352, 352, 352, 355, 355, 355, 355,
1631 355, 355, 355, 355, 355, 355, 355, 359, 359, 359,
1632 359, 359, 359, 359, 359, 359, 359, 359, 372, 372,
1633 372, 372, 372, 372, 372, 372, 372, 372, 372, 378,
1634 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1635 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
1636 381, 385, 385, 385, 385, 385, 385, 385, 385, 385,
1638 385, 385, 398, 398, 398, 398, 398, 398, 398, 398,
1639 398, 398, 398, 404, 404, 404, 404, 404, 404, 404,
1640 404, 404, 404, 404, 407, 407, 407, 407, 407, 407,
1641 407, 407, 407, 407, 407, 411, 411, 411, 411, 411,
1642 411, 411, 411, 411, 411, 411, 424, 424, 424, 424,
1643 424, 424, 424, 424, 424, 424, 424, 430, 1214, 430,
1644 430, 430, 430, 430, 430, 430, 430, 430, 432, 1214,
1645 432, 432, 432, 432, 432, 432, 432, 432, 432, 435,
1646 1214, 435, 435, 435, 435, 435, 435, 435, 435, 435,
1647 447, 1214, 447, 447, 447, 447, 447, 447, 447, 447,
1649 447, 195, 1214, 1214, 195, 195, 459, 1214, 1214, 459,
1650 459, 459, 487, 1214, 1214, 487, 686, 1214, 686, 686,
1651 686, 686, 686, 686, 686, 686, 686, 689, 1214, 689,
1652 689, 689, 689, 689, 689, 689, 689, 689, 691, 1214,
1653 691, 691, 691, 691, 691, 691, 691, 691, 691, 511,
1654 1214, 511, 511, 511, 511, 511, 511, 695, 695, 695,
1655 695, 695, 695, 695, 255, 255, 255, 255, 255, 255,
1656 255, 255, 531, 531, 531, 531, 531, 531, 708, 708,
1657 708, 708, 708, 708, 534, 534, 534, 534, 534, 534,
1658 539, 539, 539, 539, 539, 539, 295, 295, 295, 295,
1660 295, 295, 295, 302, 1214, 302, 302, 302, 302, 302,
1661 302, 302, 302, 302, 720, 1214, 720, 720, 720, 720,
1662 720, 720, 720, 720, 720, 723, 1214, 723, 723, 723,
1663 723, 723, 723, 723, 723, 723, 724, 1214, 724, 724,
1664 724, 724, 724, 724, 724, 724, 724, 727, 1214, 727,
1665 727, 727, 727, 727, 727, 727, 727, 727, 319, 1214,
1666 319, 319, 319, 319, 319, 319, 319, 319, 319, 254,
1667 254, 254, 254, 254, 254, 254, 332, 332, 1214, 332,
1668 332, 332, 332, 332, 332, 332, 332, 741, 741, 741,
1669 741, 741, 741, 741, 741, 741, 741, 741, 743, 743,
1671 1214, 743, 743, 743, 743, 743, 743, 743, 743, 346,
1672 346, 1214, 346, 346, 346, 346, 346, 346, 346, 346,
1673 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1674 352, 752, 752, 752, 752, 752, 752, 752, 752, 752,
1675 752, 752, 756, 756, 756, 756, 756, 756, 756, 756,
1676 756, 756, 756, 758, 758, 758, 758, 758, 758, 758,
1677 758, 758, 758, 758, 762, 762, 762, 762, 762, 762,
1678 762, 762, 762, 762, 762, 372, 372, 372, 372, 372,
1679 372, 372, 372, 372, 372, 372, 378, 378, 378, 378,
1680 378, 378, 378, 378, 378, 378, 378, 771, 771, 771,
1682 771, 771, 771, 771, 771, 771, 771, 771, 775, 775,
1683 775, 775, 775, 775, 775, 775, 775, 775, 775, 777,
1684 777, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1685 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1686 781, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1687 398, 398, 404, 404, 404, 404, 404, 404, 404, 404,
1688 404, 404, 404, 790, 790, 790, 790, 790, 790, 790,
1689 790, 790, 790, 790, 794, 794, 794, 794, 794, 794,
1690 794, 794, 794, 794, 794, 796, 796, 796, 796, 796,
1691 796, 796, 796, 796, 796, 796, 800, 800, 800, 800,
1693 800, 800, 800, 800, 800, 800, 800, 424, 424, 424,
1694 424, 424, 424, 424, 424, 424, 424, 424, 430, 1214,
1695 430, 430, 430, 430, 430, 430, 430, 430, 430, 809,
1696 1214, 809, 809, 809, 809, 809, 809, 809, 809, 809,
1697 812, 1214, 812, 812, 812, 812, 812, 812, 812, 812,
1698 812, 813, 1214, 813, 813, 813, 813, 813, 813, 813,
1699 813, 813, 816, 1214, 816, 816, 816, 816, 816, 816,
1700 816, 816, 816, 447, 1214, 447, 447, 447, 447, 447,
1701 447, 447, 447, 447, 459, 1214, 1214, 459, 459, 459,
1702 686, 1214, 686, 686, 686, 686, 686, 686, 686, 686,
1704 686, 689, 1214, 689, 689, 689, 689, 689, 689, 689,
1705 689, 689, 691, 1214, 691, 691, 691, 691, 691, 691,
1706 691, 691, 691, 695, 695, 695, 695, 695, 695, 695,
1707 255, 255, 255, 255, 255, 255, 255, 255, 708, 708,
1708 708, 708, 708, 708, 534, 534, 534, 534, 534, 534,
1709 295, 295, 295, 295, 295, 295, 295, 302, 1214, 302,
1710 302, 302, 302, 302, 302, 302, 302, 302, 720, 1214,
1711 720, 720, 720, 720, 720, 720, 720, 720, 720, 723,
1712 1214, 723, 723, 723, 723, 723, 723, 723, 723, 723,
1713 724, 1214, 724, 724, 724, 724, 724, 724, 724, 724,
1715 724, 727, 1214, 727, 727, 727, 727, 727, 727, 727,
1716 727, 727, 319, 1214, 319, 319, 319, 319, 319, 319,
1717 319, 319, 319, 254, 254, 254, 254, 254, 254, 254,
1718 332, 332, 1214, 332, 332, 332, 332, 332, 332, 332,
1719 332, 741, 741, 741, 741, 741, 741, 741, 741, 741,
1720 741, 741, 743, 743, 1214, 743, 743, 743, 743, 743,
1721 743, 743, 743, 346, 346, 1214, 346, 346, 346, 346,
1722 346, 346, 346, 346, 352, 352, 352, 352, 352, 352,
1723 352, 352, 352, 352, 352, 752, 752, 752, 752, 752,
1724 752, 752, 752, 752, 752, 752, 756, 756, 756, 756,
1726 756, 756, 756, 756, 756, 756, 756, 758, 758, 758,
1727 758, 758, 758, 758, 758, 758, 758, 758, 762, 762,
1728 762, 762, 762, 762, 762, 762, 762, 762, 762, 378,
1729 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
1730 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1731 771, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1732 775, 775, 777, 777, 777, 777, 777, 777, 777, 777,
1733 777, 777, 777, 781, 781, 781, 781, 781, 781, 781,
1734 781, 781, 781, 781, 404, 404, 404, 404, 404, 404,
1735 404, 404, 404, 404, 404, 790, 790, 790, 790, 790,
1737 790, 790, 790, 790, 790, 790, 794, 794, 794, 794,
1738 794, 794, 794, 794, 794, 794, 794, 796, 796, 796,
1739 796, 796, 796, 796, 796, 796, 796, 796, 800, 800,
1740 800, 800, 800, 800, 800, 800, 800, 800, 800, 430,
1741 1214, 430, 430, 430, 430, 430, 430, 430, 430, 430,
1742 809, 1214, 809, 809, 809, 809, 809, 809, 809, 809,
1743 809, 812, 1214, 812, 812, 812, 812, 812, 812, 812,
1744 812, 812, 813, 1214, 813, 813, 813, 813, 813, 813,
1745 813, 813, 813, 816, 1214, 816, 816, 816, 816, 816,
1746 816, 816, 816, 816, 447, 1214, 447, 447, 447, 447,
1748 447, 447, 447, 447, 447, 459, 1214, 1214, 459, 459,
1749 459, 255, 255, 255, 255, 255, 255, 255, 255, 534,
1750 534, 534, 534, 534, 534, 295, 295, 295, 295, 295,
1751 295, 295, 302, 1214, 302, 302, 302, 302, 302, 302,
1752 302, 302, 302, 319, 1214, 319, 319, 319, 319, 319,
1753 319, 319, 319, 319, 254, 254, 254, 254, 254, 254,
1754 254, 332, 332, 1214, 332, 332, 332, 332, 332, 332,
1755 332, 332, 346, 346, 1214, 346, 346, 346, 346, 346,
1756 346, 346, 346, 352, 352, 352, 352, 352, 352, 352,
1757 352, 352, 352, 352, 23, 1214, 1214, 1214, 1214, 1214,
1759 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1760 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1761 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1762 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1763 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1764 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
1768 static yyconst flex_int16_t yy_chk
[8062] =
1770 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1771 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1772 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1773 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1774 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1776 1, 1, 1, 1, 1, 1, 2, 6, 4, 6,
1777 6, 29, 8, 6, 40, 223, 25, 223, 25, 25,
1778 33, 40, 56, 2, 3, 4, 3, 3, 3, 8,
1779 6, 25, 3, 3, 33, 3, 3, 13, 3, 3,
1781 3, 14, 14, 73, 29, 3, 3, 3, 3, 13,
1782 13, 13, 13, 14, 14, 14, 14, 35, 27, 27,
1783 27, 27, 56, 31, 3, 31, 219, 31, 31, 35,
1784 3, 219, 3, 27, 81, 3, 73, 3, 44, 44,
1785 3, 81, 3, 45, 45, 46, 46, 3, 3, 5,
1786 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1787 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1788 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1789 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1790 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1792 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1793 5, 5, 5, 5, 5, 7, 7, 7, 7, 7,
1794 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1795 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1796 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1797 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1798 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1799 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1800 7, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1801 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1803 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1804 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1805 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1806 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1807 9, 9, 9, 9, 9, 9, 9, 11, 11, 11,
1808 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1809 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1810 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1811 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1812 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1814 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1815 11, 11, 11, 15, 15, 15, 15, 15, 15, 15,
1816 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1817 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1818 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1819 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1820 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1821 15, 15, 15, 15, 15, 15, 15, 15, 15, 17,
1822 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1823 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1825 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1826 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1827 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1828 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1829 17, 17, 17, 17, 17, 19, 19, 19, 19, 19,
1830 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1831 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1832 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1833 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1834 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1836 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1837 19, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1838 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1839 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1840 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1841 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1842 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1843 21, 21, 21, 21, 21, 21, 21, 36, 242, 36,
1844 36, 36, 36, 242, 38, 36, 38, 38, 38, 38,
1845 59, 59, 38, 39, 221, 39, 39, 39, 39, 128,
1847 128, 39, 221, 39, 39, 39, 39, 39, 39, 39,
1848 39, 39, 39, 39, 39, 39, 57, 39, 39, 39,
1849 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1850 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1851 39, 41, 47, 41, 41, 41, 41, 111, 49, 47,
1852 130, 130, 51, 41, 41, 49, 47, 57, 41, 51,
1853 41, 50, 49, 41, 92, 111, 51, 41, 50, 42,
1854 41, 42, 42, 42, 42, 50, 83, 60, 41, 60,
1855 60, 48, 42, 83, 49, 1208, 42, 41, 48, 127,
1856 51, 48, 48, 48, 48, 48, 51, 92, 42, 43,
1858 285, 83, 112, 50, 43, 285, 50, 43, 43, 43,
1859 43, 43, 43, 52, 53, 43, 54, 43, 43, 55,
1860 52, 53, 127, 54, 318, 112, 55, 52, 53, 318,
1861 54, 142, 142, 55, 61, 61, 61, 61, 62, 64,
1862 62, 62, 62, 62, 224, 52, 224, 64, 64, 64,
1863 52, 64, 64, 54, 67, 66, 116, 53, 64, 224,
1864 116, 67, 66, 55, 52, 116, 54, 63, 67, 66,
1865 70, 70, 70, 70, 72, 72, 72, 72, 76, 142,
1866 76, 76, 76, 76, 63, 63, 63, 66, 63, 84,
1867 63, 67, 63, 63, 63, 63, 84, 63, 77, 63,
1869 63, 85, 85, 85, 85, 239, 63, 898, 77, 77,
1870 77, 77, 79, 239, 79, 79, 79, 79, 898, 84,
1871 86, 86, 86, 86, 222, 79, 256, 82, 222, 79,
1872 82, 82, 82, 82, 82, 77, 95, 95, 95, 95,
1873 77, 79, 256, 94, 77, 94, 94, 94, 94, 97,
1874 137, 137, 102, 102, 102, 102, 97, 143, 143, 97,
1875 131, 131, 330, 97, 131, 101, 101, 101, 101, 145,
1876 145, 137, 95, 96, 97, 96, 96, 96, 96, 102,
1877 132, 132, 176, 97, 120, 96, 96, 101, 278, 132,
1878 96, 120, 96, 330, 120, 96, 278, 131, 120, 96,
1880 157, 157, 96, 106, 106, 106, 106, 147, 147, 120,
1881 96, 107, 107, 107, 107, 176, 147, 247, 120, 96,
1882 99, 99, 247, 99, 99, 99, 99, 99, 99, 99,
1883 99, 99, 99, 99, 99, 247, 99, 99, 1206, 106,
1884 152, 152, 99, 99, 99, 99, 217, 108, 157, 108,
1885 108, 108, 108, 110, 110, 110, 110, 110, 217, 99,
1886 108, 152, 281, 117, 108, 117, 117, 117, 117, 158,
1887 158, 160, 160, 162, 162, 281, 108, 118, 118, 118,
1888 118, 470, 162, 470, 99, 99, 100, 100, 294, 100,
1889 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1891 100, 903, 100, 100, 100, 100, 100, 100, 100, 100,
1892 100, 100, 903, 118, 124, 124, 124, 124, 125, 125,
1893 125, 125, 294, 133, 133, 100, 141, 141, 141, 141,
1894 134, 134, 179, 179, 179, 179, 124, 133, 1205, 133,
1895 133, 133, 133, 231, 231, 125, 134, 134, 134, 134,
1896 100, 100, 119, 141, 119, 119, 119, 119, 140, 140,
1897 140, 140, 192, 136, 119, 119, 172, 172, 179, 119,
1898 136, 119, 295, 136, 119, 149, 149, 136, 119, 295,
1899 140, 119, 134, 146, 146, 238, 238, 146, 136, 119,
1900 976, 149, 149, 149, 149, 192, 331, 136, 119, 122,
1902 122, 122, 122, 122, 122, 976, 122, 122, 122, 122,
1903 122, 122, 122, 122, 172, 122, 122, 148, 148, 304,
1904 146, 122, 122, 122, 122, 167, 167, 149, 234, 234,
1905 234, 148, 331, 148, 148, 148, 148, 151, 122, 155,
1906 155, 155, 155, 879, 151, 879, 167, 151, 252, 252,
1907 283, 151, 304, 156, 156, 156, 156, 189, 283, 189,
1908 189, 155, 151, 122, 122, 123, 123, 123, 123, 123,
1909 123, 151, 123, 123, 123, 123, 123, 123, 123, 123,
1910 156, 123, 123, 123, 123, 123, 123, 123, 123, 123,
1911 123, 161, 161, 163, 163, 161, 282, 282, 296, 164,
1913 164, 240, 313, 313, 123, 240, 293, 163, 328, 163,
1914 163, 163, 163, 292, 296, 164, 164, 164, 164, 240,
1915 170, 170, 170, 170, 328, 293, 255, 166, 161, 123,
1916 123, 135, 135, 255, 166, 680, 275, 166, 275, 275,
1917 255, 166, 170, 292, 680, 135, 468, 135, 135, 135,
1918 135, 164, 166, 171, 171, 171, 171, 135, 135, 340,
1919 340, 166, 135, 468, 135, 259, 188, 135, 188, 188,
1920 537, 135, 259, 178, 135, 178, 178, 178, 178, 259,
1921 171, 188, 135, 1204, 345, 185, 185, 185, 185, 345,
1922 537, 135, 138, 138, 138, 138, 138, 138, 138, 138,
1924 138, 138, 138, 138, 138, 138, 138, 185, 138, 138,
1925 259, 181, 298, 540, 138, 138, 138, 138, 181, 298,
1926 540, 181, 316, 316, 316, 181, 186, 186, 186, 186,
1927 1203, 138, 196, 196, 196, 196, 181, 197, 197, 197,
1928 197, 198, 198, 198, 198, 181, 199, 199, 199, 199,
1929 298, 352, 352, 186, 354, 354, 138, 138, 139, 139,
1930 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1931 139, 139, 139, 736, 139, 139, 139, 139, 139, 139,
1932 139, 139, 139, 139, 206, 206, 206, 206, 207, 260,
1933 207, 207, 207, 207, 357, 357, 260, 139, 511, 258,
1935 736, 207, 538, 260, 649, 207, 258, 211, 211, 211,
1936 211, 333, 511, 258, 446, 333, 649, 207, 211, 446,
1937 333, 538, 139, 139, 150, 150, 230, 230, 230, 230,
1938 286, 286, 286, 286, 211, 258, 536, 230, 150, 260,
1939 150, 150, 150, 150, 871, 261, 1202, 264, 358, 358,
1940 150, 150, 261, 230, 264, 150, 894, 150, 536, 261,
1941 150, 264, 894, 232, 150, 232, 257, 150, 232, 232,
1942 232, 232, 871, 257, 299, 150, 257, 257, 257, 257,
1943 257, 299, 364, 364, 150, 153, 153, 153, 153, 153,
1944 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1946 264, 153, 153, 368, 368, 265, 266, 153, 153, 153,
1947 153, 900, 265, 266, 378, 378, 262, 299, 900, 265,
1948 266, 380, 380, 262, 153, 343, 343, 343, 267, 491,
1949 262, 268, 263, 383, 383, 267, 364, 491, 268, 263,
1950 491, 266, 267, 384, 384, 268, 263, 265, 265, 153,
1951 153, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1952 154, 154, 154, 154, 154, 154, 262, 154, 154, 154,
1953 154, 154, 154, 154, 154, 154, 154, 263, 267, 268,
1954 269, 288, 288, 288, 288, 390, 390, 269, 394, 394,
1955 154, 711, 297, 432, 269, 297, 297, 297, 297, 297,
1957 300, 300, 300, 300, 301, 301, 301, 301, 308, 308,
1958 308, 308, 359, 359, 711, 154, 154, 165, 165, 377,
1959 377, 359, 269, 360, 360, 309, 432, 309, 309, 309,
1960 309, 165, 360, 165, 165, 165, 165, 885, 309, 390,
1961 385, 385, 309, 165, 165, 1201, 386, 386, 165, 385,
1962 165, 404, 404, 165, 309, 386, 314, 165, 314, 991,
1963 165, 314, 314, 314, 314, 885, 377, 991, 165, 322,
1964 322, 322, 322, 323, 323, 323, 323, 165, 168, 168,
1965 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
1966 168, 168, 168, 712, 168, 168, 310, 310, 310, 310,
1968 168, 168, 168, 168, 322, 366, 366, 310, 312, 312,
1969 312, 312, 557, 323, 406, 406, 557, 168, 712, 312,
1970 557, 366, 366, 310, 329, 329, 329, 329, 329, 335,
1971 335, 335, 335, 409, 409, 312, 1200, 349, 349, 349,
1972 349, 710, 168, 168, 169, 169, 169, 169, 169, 169,
1973 169, 169, 169, 169, 169, 169, 169, 169, 169, 504,
1974 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
1975 710, 327, 349, 327, 327, 327, 327, 336, 510, 336,
1976 336, 336, 336, 169, 327, 1054, 403, 403, 327, 562,
1977 336, 341, 504, 341, 336, 1199, 341, 341, 341, 341,
1979 327, 350, 350, 350, 350, 977, 336, 551, 169, 169,
1980 180, 510, 180, 180, 180, 180, 977, 337, 337, 337,
1981 337, 562, 180, 180, 410, 410, 1054, 180, 337, 180,
1982 420, 420, 180, 403, 411, 411, 180, 369, 369, 180,
1983 551, 350, 886, 411, 337, 441, 441, 180, 339, 339,
1984 339, 339, 1194, 369, 369, 369, 180, 183, 183, 339,
1985 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1986 183, 183, 886, 183, 183, 339, 444, 444, 444, 183,
1987 183, 183, 183, 355, 355, 361, 361, 355, 356, 356,
1988 412, 412, 356, 905, 367, 367, 183, 478, 478, 412,
1990 905, 361, 361, 361, 361, 367, 453, 367, 453, 453,
1991 367, 367, 367, 367, 375, 375, 375, 375, 429, 429,
1992 355, 183, 183, 184, 184, 356, 184, 184, 184, 184,
1993 184, 184, 184, 184, 184, 184, 184, 184, 1193, 184,
1994 184, 184, 184, 184, 184, 184, 184, 184, 184, 375,
1995 363, 363, 371, 371, 365, 365, 371, 483, 483, 381,
1996 381, 371, 184, 381, 1192, 429, 363, 363, 363, 363,
1997 365, 365, 365, 365, 382, 382, 737, 363, 382, 416,
1998 416, 365, 486, 486, 486, 392, 392, 184, 184, 317,
1999 317, 317, 317, 363, 546, 546, 381, 365, 317, 317,
2001 317, 392, 392, 737, 376, 376, 376, 376, 549, 549,
2002 549, 382, 317, 317, 317, 317, 317, 317, 319, 319,
2003 1101, 319, 319, 319, 319, 319, 319, 319, 319, 319,
2004 319, 319, 319, 416, 319, 319, 387, 387, 567, 567,
2005 319, 319, 319, 319, 376, 393, 393, 553, 634, 395,
2006 395, 1101, 387, 387, 387, 387, 393, 319, 393, 418,
2007 418, 393, 393, 393, 393, 395, 395, 395, 397, 397,
2008 423, 423, 397, 899, 423, 418, 418, 397, 899, 423,
2009 553, 634, 319, 319, 320, 320, 1191, 320, 320, 320,
2010 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2012 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2013 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2014 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2015 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2016 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2017 321, 321, 563, 321, 321, 321, 321, 321, 321, 321,
2018 321, 321, 321, 321, 321, 1189, 321, 321, 321, 321,
2019 321, 321, 321, 321, 321, 321, 563, 389, 389, 884,
2020 563, 391, 391, 402, 402, 402, 402, 593, 593, 321,
2021 570, 570, 570, 389, 389, 389, 389, 391, 391, 391,
2023 391, 407, 407, 872, 389, 407, 629, 629, 391, 436,
2024 436, 436, 436, 884, 321, 321, 344, 344, 344, 344,
2025 389, 579, 579, 402, 391, 344, 344, 344, 401, 401,
2026 401, 401, 872, 428, 428, 428, 428, 593, 407, 344,
2027 344, 344, 344, 344, 344, 346, 346, 346, 346, 346,
2028 346, 735, 346, 346, 346, 346, 346, 346, 346, 346,
2029 579, 346, 346, 401, 413, 413, 1150, 346, 346, 346,
2030 346, 408, 408, 428, 735, 408, 419, 419, 733, 733,
2031 413, 413, 413, 413, 346, 421, 421, 419, 1188, 419,
2032 754, 754, 419, 419, 419, 419, 454, 454, 454, 454,
2034 1150, 421, 421, 421, 455, 455, 455, 455, 408, 346,
2035 346, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2036 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2037 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2038 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2039 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2040 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
2041 347, 347, 347, 347, 347, 347, 347, 348, 348, 348,
2042 348, 348, 348, 962, 348, 348, 348, 348, 348, 348,
2043 348, 348, 962, 348, 348, 348, 348, 348, 348, 348,
2045 348, 348, 348, 415, 415, 572, 971, 417, 417, 572,
2046 427, 427, 427, 427, 572, 971, 348, 755, 755, 415,
2047 415, 415, 415, 417, 417, 417, 417, 765, 576, 766,
2048 415, 765, 576, 766, 417, 437, 576, 437, 437, 437,
2049 437, 348, 348, 362, 362, 427, 415, 890, 437, 890,
2050 417, 541, 437, 456, 456, 456, 456, 362, 541, 362,
2051 362, 362, 362, 636, 437, 438, 438, 438, 438, 592,
2052 362, 513, 714, 592, 362, 1177, 438, 592, 513, 714,
2053 440, 440, 440, 440, 904, 513, 362, 370, 370, 904,
2054 541, 440, 438, 442, 910, 442, 636, 910, 442, 442,
2056 442, 442, 714, 370, 370, 370, 370, 440, 457, 457,
2057 457, 457, 370, 370, 370, 450, 450, 450, 450, 451,
2058 451, 451, 451, 595, 595, 1176, 370, 370, 370, 370,
2059 370, 370, 372, 372, 372, 372, 372, 372, 372, 372,
2060 372, 372, 372, 372, 372, 372, 372, 784, 372, 372,
2061 450, 784, 587, 587, 372, 372, 372, 372, 458, 451,
2062 458, 587, 595, 458, 458, 458, 458, 482, 482, 482,
2063 482, 372, 484, 484, 484, 484, 517, 519, 482, 485,
2064 485, 485, 485, 517, 519, 547, 547, 547, 547, 1147,
2065 517, 519, 760, 760, 482, 1147, 372, 372, 373, 373,
2067 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2068 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2069 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2070 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2071 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2072 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
2073 373, 373, 373, 373, 374, 374, 374, 374, 374, 374,
2074 374, 374, 374, 374, 374, 374, 374, 374, 374, 1172,
2075 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
2076 514, 515, 516, 518, 520, 521, 1171, 514, 515, 516,
2078 518, 520, 521, 374, 514, 515, 516, 518, 520, 521,
2079 522, 1170, 523, 548, 548, 548, 548, 522, 686, 523,
2080 568, 568, 568, 568, 522, 515, 523, 524, 374, 374,
2081 388, 388, 751, 751, 524, 542, 520, 516, 514, 518,
2082 1169, 524, 542, 691, 388, 525, 388, 388, 388, 388,
2083 523, 686, 525, 697, 523, 581, 581, 388, 968, 525,
2084 697, 388, 569, 569, 569, 569, 542, 697, 524, 1167,
2085 542, 581, 581, 388, 396, 396, 691, 751, 543, 1034,
2086 543, 968, 525, 543, 543, 543, 543, 1034, 603, 603,
2087 396, 396, 396, 396, 741, 597, 597, 603, 741, 396,
2089 396, 396, 564, 741, 564, 761, 761, 564, 564, 564,
2090 564, 597, 597, 396, 396, 396, 396, 396, 396, 398,
2091 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
2092 398, 398, 398, 398, 957, 398, 398, 545, 545, 545,
2093 545, 398, 398, 398, 398, 632, 632, 632, 545, 566,
2094 566, 566, 566, 957, 578, 578, 773, 773, 398, 785,
2095 566, 582, 582, 785, 545, 578, 1097, 578, 699, 1097,
2096 578, 578, 578, 578, 908, 699, 566, 582, 582, 582,
2097 582, 908, 699, 398, 398, 399, 399, 399, 399, 399,
2098 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2100 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2101 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2102 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2103 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2104 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
2105 399, 400, 400, 400, 400, 400, 400, 400, 400, 400,
2106 400, 400, 400, 400, 400, 400, 969, 400, 400, 400,
2107 400, 400, 400, 400, 400, 400, 400, 580, 580, 720,
2108 1184, 583, 583, 611, 611, 584, 584, 586, 586, 969,
2109 400, 586, 1184, 580, 580, 580, 580, 583, 583, 583,
2111 583, 584, 584, 584, 580, 588, 588, 724, 809, 588,
2112 594, 594, 720, 609, 609, 400, 400, 414, 414, 1166,
2113 580, 594, 611, 594, 586, 715, 594, 594, 594, 594,
2114 716, 414, 715, 414, 414, 414, 414, 716, 596, 596,
2115 724, 809, 588, 803, 414, 602, 602, 803, 414, 602,
2116 598, 598, 774, 774, 596, 596, 596, 596, 1185, 715,
2117 414, 422, 422, 609, 716, 596, 598, 598, 598, 598,
2118 1185, 625, 625, 599, 599, 619, 619, 422, 422, 422,
2119 422, 596, 602, 1048, 619, 1048, 422, 422, 422, 599,
2120 599, 599, 599, 763, 763, 604, 604, 763, 1165, 604,
2122 422, 422, 422, 422, 422, 422, 424, 424, 424, 424,
2123 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
2124 424, 625, 424, 424, 600, 600, 767, 767, 424, 424,
2125 424, 424, 604, 610, 610, 608, 1164, 613, 613, 608,
2126 600, 600, 600, 608, 610, 424, 610, 614, 614, 610,
2127 610, 610, 610, 613, 613, 630, 630, 630, 630, 631,
2128 631, 631, 631, 614, 614, 614, 614, 779, 779, 767,
2129 424, 424, 425, 425, 425, 425, 425, 425, 425, 425,
2130 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
2131 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
2133 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
2134 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
2135 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
2136 425, 425, 425, 425, 425, 425, 425, 425, 426, 426,
2137 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
2138 426, 426, 426, 1055, 426, 426, 426, 426, 426, 426,
2139 426, 426, 426, 426, 624, 612, 612, 804, 624, 615,
2140 615, 804, 624, 616, 616, 618, 618, 426, 1064, 618,
2141 1152, 612, 612, 612, 612, 615, 615, 615, 615, 616,
2142 616, 616, 612, 626, 1055, 626, 780, 780, 626, 626,
2144 626, 626, 426, 426, 445, 445, 445, 445, 612, 1142,
2145 756, 756, 618, 445, 445, 445, 620, 620, 640, 756,
2146 620, 813, 640, 1064, 786, 786, 640, 445, 445, 445,
2147 445, 445, 445, 447, 447, 1053, 447, 447, 447, 447,
2148 447, 447, 447, 447, 447, 447, 447, 447, 1053, 447,
2149 447, 770, 770, 620, 813, 447, 447, 447, 447, 628,
2150 628, 628, 628, 642, 642, 642, 642, 786, 757, 757,
2151 628, 701, 447, 643, 643, 643, 643, 757, 701, 717,
2152 717, 717, 717, 792, 792, 701, 628, 718, 718, 718,
2153 718, 738, 738, 738, 738, 1151, 770, 447, 447, 448,
2155 448, 1151, 448, 448, 448, 448, 448, 448, 448, 448,
2156 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
2157 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
2158 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
2159 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
2160 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
2161 448, 448, 448, 448, 448, 449, 449, 1137, 449, 449,
2162 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
2163 1035, 449, 449, 449, 449, 449, 449, 449, 449, 449,
2164 449, 698, 793, 793, 702, 704, 703, 1059, 698, 700,
2166 705, 702, 704, 703, 449, 698, 700, 705, 702, 704,
2167 703, 775, 775, 700, 705, 739, 739, 739, 739, 895,
2168 775, 782, 782, 895, 698, 782, 1035, 749, 749, 449,
2169 449, 550, 550, 550, 550, 702, 700, 703, 1059, 704,
2170 550, 550, 550, 749, 749, 749, 749, 789, 789, 705,
2171 798, 798, 799, 799, 550, 550, 550, 550, 550, 550,
2172 554, 554, 1039, 554, 554, 554, 554, 554, 554, 554,
2173 554, 554, 554, 554, 554, 1058, 554, 554, 750, 750,
2174 776, 776, 554, 554, 554, 554, 752, 752, 1058, 776,
2175 752, 1136, 789, 874, 750, 750, 750, 750, 1039, 554,
2177 874, 967, 794, 794, 753, 753, 909, 909, 753, 758,
2178 758, 794, 1065, 758, 1043, 759, 759, 801, 801, 759,
2179 967, 801, 1043, 752, 554, 554, 555, 555, 874, 555,
2180 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
2181 555, 753, 555, 555, 768, 768, 758, 1060, 555, 555,
2182 555, 555, 759, 769, 769, 795, 795, 1065, 892, 892,
2183 768, 768, 768, 768, 795, 555, 896, 896, 896, 769,
2184 769, 769, 769, 771, 771, 772, 772, 771, 1093, 772,
2185 1093, 777, 777, 778, 778, 777, 1134, 778, 1060, 963,
2186 555, 555, 556, 556, 963, 556, 556, 556, 556, 556,
2188 556, 556, 556, 556, 556, 556, 556, 892, 556, 556,
2189 771, 1098, 772, 1098, 556, 556, 556, 556, 777, 978,
2190 778, 787, 787, 805, 805, 788, 788, 1040, 790, 790,
2191 978, 556, 790, 806, 806, 806, 806, 787, 787, 787,
2192 787, 788, 788, 788, 788, 1040, 556, 807, 807, 807,
2193 807, 901, 901, 901, 975, 975, 556, 556, 571, 571,
2194 571, 571, 906, 906, 906, 790, 805, 571, 571, 571,
2195 791, 791, 897, 897, 791, 981, 796, 796, 1036, 981,
2196 796, 571, 571, 571, 571, 571, 571, 573, 573, 573,
2197 573, 573, 573, 975, 573, 573, 573, 573, 573, 573,
2199 573, 573, 826, 573, 573, 1047, 1047, 791, 1133, 573,
2200 573, 573, 573, 796, 1155, 826, 955, 955, 955, 955,
2201 867, 897, 826, 964, 1036, 1155, 573, 867, 964, 863,
2202 865, 797, 797, 864, 867, 797, 863, 865, 873, 1044,
2203 864, 972, 1132, 863, 865, 873, 972, 864, 1130, 902,
2204 902, 573, 573, 574, 574, 574, 574, 574, 574, 867,
2205 574, 574, 574, 574, 574, 574, 574, 574, 797, 574,
2206 574, 863, 865, 875, 1063, 574, 574, 574, 574, 873,
2207 875, 864, 949, 1063, 959, 1044, 953, 954, 868, 949,
2208 866, 959, 574, 953, 954, 868, 949, 866, 902, 958,
2210 953, 954, 868, 973, 866, 986, 958, 992, 973, 986,
2211 875, 992, 993, 1103, 959, 1103, 993, 574, 574, 575,
2212 575, 575, 575, 575, 575, 958, 575, 575, 575, 575,
2213 575, 575, 575, 575, 866, 575, 575, 868, 950, 951,
2214 952, 575, 575, 575, 575, 950, 951, 952, 956, 960,
2215 956, 956, 950, 951, 952, 1129, 960, 1049, 575, 965,
2216 965, 965, 965, 974, 974, 974, 974, 980, 980, 956,
2217 1041, 950, 1128, 575, 979, 979, 951, 952, 1118, 960,
2218 984, 984, 1118, 575, 575, 585, 585, 996, 1041, 1127,
2219 979, 979, 979, 979, 1052, 1052, 984, 984, 984, 984,
2221 996, 585, 585, 585, 585, 1027, 980, 996, 1050, 1049,
2222 585, 585, 585, 994, 994, 994, 994, 985, 985, 1027,
2223 1027, 1027, 1027, 1126, 585, 585, 585, 585, 585, 585,
2224 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
2225 589, 589, 589, 589, 589, 1045, 589, 589, 989, 989,
2226 1030, 1096, 589, 589, 589, 589, 985, 1030, 1096, 1025,
2227 1050, 1024, 1124, 1025, 989, 989, 989, 989, 1024, 589,
2228 1025, 1028, 1026, 1028, 1028, 1024, 1026, 1025, 1057, 1057,
2229 1123, 1102, 1106, 1026, 1102, 1106, 1108, 1108, 1108, 1096,
2230 1026, 1045, 1122, 1030, 589, 589, 590, 590, 590, 590,
2232 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
2233 590, 1024, 590, 590, 1031, 1032, 1110, 1158, 590, 590,
2234 590, 590, 1037, 1121, 1110, 1031, 1032, 1046, 1158, 1051,
2235 1051, 1051, 1031, 1032, 1120, 590, 1037, 1037, 1037, 1037,
2236 1066, 1046, 1046, 1046, 1046, 1051, 1051, 1051, 1051, 1107,
2237 1107, 1107, 1105, 1107, 1066, 1066, 1066, 1066, 1153, 1153,
2238 590, 590, 591, 591, 591, 591, 591, 591, 591, 591,
2239 591, 591, 591, 591, 591, 591, 591, 1181, 591, 591,
2240 1056, 1056, 1056, 1104, 591, 591, 591, 591, 1061, 1061,
2241 1061, 1112, 1112, 1112, 1100, 1092, 1056, 1056, 1056, 1056,
2243 1114, 591, 1092, 1099, 1061, 1061, 1061, 1061, 1114, 1092,
2244 1109, 1109, 1181, 1119, 1109, 1119, 591, 1111, 1111, 1111,
2245 1095, 1111, 1116, 1116, 1116, 1146, 591, 591, 601, 601,
2246 1113, 1113, 1146, 1094, 1113, 1115, 1115, 1115, 1091, 1115,
2247 1092, 1154, 1154, 1143, 601, 601, 601, 601, 1117, 1117,
2248 1143, 1090, 1117, 601, 601, 601, 1089, 1143, 1156, 1156,
2249 1157, 1157, 1159, 1159, 1160, 1160, 1146, 601, 601, 601,
2250 601, 601, 601, 605, 605, 605, 605, 605, 605, 605,
2251 605, 605, 605, 605, 605, 605, 605, 605, 1088, 605,
2252 605, 1143, 1161, 1179, 1180, 605, 605, 605, 605, 1161,
2254 1179, 1180, 1182, 1183, 1183, 1186, 1087, 1197, 1178, 1182,
2255 1198, 1086, 605, 1186, 1197, 1178, 1085, 1198, 1083, 1082,
2256 1081, 1197, 1178, 1080, 1078, 1076, 1075, 1074, 1073, 1072,
2257 1071, 1070, 1069, 1068, 1029, 1179, 1022, 605, 605, 606,
2258 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
2259 606, 606, 606, 606, 1020, 606, 606, 1178, 1019, 1018,
2260 1016, 606, 606, 606, 606, 1015, 1014, 1010, 1009, 1008,
2261 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 606, 999,
2262 998, 997, 995, 990, 988, 987, 983, 982, 970, 966,
2263 961, 948, 947, 946, 945, 943, 942, 939, 937, 936,
2265 935, 933, 932, 606, 606, 607, 607, 607, 607, 607,
2266 607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
2267 931, 607, 607, 930, 928, 927, 926, 607, 607, 607,
2268 607, 925, 923, 922, 921, 920, 919, 918, 917, 916,
2269 915, 913, 912, 911, 607, 907, 891, 887, 883, 882,
2270 880, 876, 870, 869, 862, 861, 860, 859, 858, 607,
2271 857, 856, 855, 854, 853, 850, 849, 848, 846, 607,
2272 607, 617, 617, 843, 842, 841, 840, 839, 838, 837,
2273 836, 835, 834, 833, 832, 831, 830, 617, 617, 617,
2274 617, 829, 828, 827, 825, 823, 617, 617, 617, 822,
2276 821, 820, 817, 812, 808, 748, 747, 744, 740, 734,
2277 617, 617, 617, 617, 617, 617, 621, 621, 621, 621,
2278 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
2279 621, 732, 621, 621, 731, 728, 723, 719, 621, 621,
2280 621, 621, 713, 709, 708, 706, 696, 695, 694, 689,
2281 685, 684, 683, 682, 681, 621, 679, 678, 677, 676,
2282 675, 674, 673, 672, 671, 670, 669, 668, 667, 665,
2283 664, 663, 662, 661, 660, 659, 658, 657, 656, 655,
2284 621, 621, 622, 622, 622, 622, 622, 622, 622, 622,
2285 622, 622, 622, 622, 622, 622, 622, 653, 622, 622,
2287 652, 651, 650, 648, 622, 622, 622, 622, 647, 646,
2288 644, 641, 635, 627, 577, 565, 561, 560, 559, 558,
2289 552, 622, 544, 539, 535, 534, 533, 532, 531, 530,
2290 529, 528, 527, 526, 512, 508, 505, 503, 502, 501,
2291 500, 499, 498, 497, 496, 495, 622, 622, 623, 623,
2292 623, 623, 623, 623, 623, 623, 623, 623, 623, 623,
2293 623, 623, 623, 494, 623, 623, 493, 492, 490, 489,
2294 623, 623, 623, 623, 488, 480, 479, 477, 476, 475,
2295 474, 473, 472, 471, 469, 467, 466, 623, 465, 464,
2296 463, 462, 461, 460, 452, 439, 435, 351, 338, 326,
2298 325, 324, 623, 311, 307, 291, 289, 284, 280, 279,
2299 277, 276, 623, 623, 633, 633, 633, 633, 274, 254,
2300 253, 246, 245, 633, 633, 633, 244, 243, 241, 237,
2301 236, 228, 227, 226, 225, 220, 218, 633, 633, 633,
2302 633, 633, 633, 637, 637, 216, 637, 637, 637, 637,
2303 637, 637, 637, 637, 637, 637, 637, 637, 215, 637,
2304 637, 214, 203, 187, 182, 637, 637, 637, 637, 177,
2305 175, 126, 121, 113, 109, 104, 103, 98, 93, 91,
2306 87, 80, 637, 75, 65, 58, 34, 32, 28, 23,
2307 22, 20, 18, 16, 12, 10, 0, 0, 0, 0,
2309 0, 0, 0, 0, 0, 0, 0, 637, 637, 638,
2310 638, 0, 638, 638, 638, 638, 638, 638, 638, 638,
2311 638, 638, 638, 638, 0, 638, 638, 0, 0, 0,
2312 0, 638, 638, 638, 638, 0, 0, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 638, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2316 0, 0, 0, 638, 638, 639, 639, 0, 639, 639,
2317 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
2318 0, 639, 639, 0, 0, 0, 0, 639, 639, 639,
2320 639, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 0, 0, 0, 639, 0, 0, 0, 0, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 639,
2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 639,
2324 639, 727, 727, 0, 727, 727, 727, 727, 727, 727,
2325 727, 727, 727, 727, 727, 727, 0, 727, 727, 0,
2326 0, 0, 0, 727, 727, 727, 727, 0, 0, 0,
2327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2328 727, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 727, 727, 729, 729, 0,
2332 729, 729, 729, 729, 729, 729, 729, 729, 729, 729,
2333 729, 729, 0, 729, 729, 0, 0, 0, 0, 729,
2334 729, 729, 729, 0, 0, 0, 0, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 729, 0, 0, 0,
2336 0, 0, 729, 0, 0, 0, 0, 0, 0, 0,
2337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2338 0, 729, 729, 730, 730, 0, 730, 730, 730, 730,
2339 730, 730, 730, 730, 730, 730, 730, 730, 0, 730,
2340 730, 0, 0, 0, 0, 730, 730, 730, 730, 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2343 0, 0, 730, 0, 0, 0, 0, 0, 0, 0,
2344 0, 0, 730, 0, 0, 0, 0, 0, 0, 0,
2345 0, 0, 0, 0, 0, 0, 0, 730, 730, 743,
2346 743, 743, 743, 743, 743, 0, 743, 743, 743, 743,
2347 743, 743, 743, 743, 0, 743, 743, 0, 0, 0,
2348 0, 743, 743, 743, 743, 0, 0, 0, 0, 0,
2349 0, 0, 0, 0, 0, 0, 0, 0, 743, 0,
2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2353 0, 0, 0, 743, 743, 745, 745, 745, 745, 745,
2354 745, 0, 745, 745, 745, 745, 745, 745, 745, 745,
2355 0, 745, 745, 0, 0, 0, 0, 745, 745, 745,
2356 745, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2357 0, 0, 0, 0, 745, 0, 0, 0, 0, 0,
2358 745, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 0, 0, 0, 0, 0, 0, 0, 0, 745,
2360 745, 746, 746, 746, 746, 746, 746, 0, 746, 746,
2361 746, 746, 746, 746, 746, 746, 0, 746, 746, 0,
2362 0, 0, 0, 746, 746, 746, 746, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365 746, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 746, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 746, 746, 762, 762, 762,
2368 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
2369 762, 762, 0, 762, 762, 0, 0, 0, 0, 762,
2370 762, 762, 762, 0, 0, 0, 0, 0, 0, 0,
2371 0, 0, 0, 0, 0, 0, 762, 0, 0, 0,
2372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2375 0, 762, 762, 764, 764, 764, 764, 764, 764, 764,
2376 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
2377 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
2378 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
2379 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
2380 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
2381 764, 764, 764, 764, 764, 764, 764, 764, 764, 781,
2382 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
2383 781, 781, 781, 781, 0, 781, 781, 0, 0, 0,
2384 0, 781, 781, 781, 781, 0, 0, 0, 0, 0,
2386 0, 0, 0, 0, 0, 0, 0, 0, 781, 0,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2389 0, 0, 0, 781, 781, 783, 783, 783, 783, 783,
2390 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2391 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2392 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2393 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2394 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2395 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
2397 783, 800, 800, 800, 800, 800, 800, 800, 800, 800,
2398 800, 800, 800, 800, 800, 800, 0, 800, 800, 0,
2399 0, 0, 0, 800, 800, 800, 800, 0, 0, 0,
2400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2401 800, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 0, 0, 0, 0, 0, 800, 800, 802, 802, 802,
2404 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2405 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2406 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2408 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2409 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2410 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
2411 802, 802, 802, 816, 816, 0, 816, 816, 816, 816,
2412 816, 816, 816, 816, 816, 816, 816, 816, 0, 816,
2413 816, 0, 0, 0, 0, 816, 816, 816, 816, 0,
2414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2415 0, 0, 816, 0, 0, 0, 0, 0, 0, 0,
2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2417 0, 0, 0, 0, 0, 0, 0, 816, 816, 818,
2419 818, 0, 818, 818, 818, 818, 818, 818, 818, 818,
2420 818, 818, 818, 818, 0, 818, 818, 0, 0, 0,
2421 0, 818, 818, 818, 818, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 818, 0,
2423 0, 0, 0, 0, 818, 0, 0, 0, 0, 0,
2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2425 0, 0, 0, 818, 818, 819, 819, 0, 819, 819,
2426 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
2427 0, 819, 819, 0, 0, 0, 0, 819, 819, 819,
2428 819, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2430 0, 0, 0, 0, 819, 0, 0, 0, 0, 0,
2431 0, 0, 0, 0, 819, 0, 0, 0, 0, 0,
2432 0, 0, 0, 0, 0, 0, 0, 0, 0, 819,
2433 819, 877, 877, 0, 877, 877, 877, 877, 877, 877,
2434 877, 877, 877, 877, 877, 877, 0, 877, 877, 0,
2435 0, 0, 0, 877, 877, 877, 877, 0, 0, 0,
2436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2437 877, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2438 0, 0, 0, 0, 0, 0, 0, 877, 0, 0,
2439 0, 0, 0, 0, 0, 877, 877, 878, 878, 0,
2441 878, 878, 878, 878, 878, 878, 878, 878, 878, 878,
2442 878, 878, 0, 878, 878, 0, 0, 0, 0, 878,
2443 878, 878, 878, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 878, 0, 0, 0,
2445 0, 0, 0, 0, 0, 0, 0, 878, 0, 0,
2446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2447 0, 878, 878, 888, 888, 888, 888, 888, 888, 0,
2448 888, 888, 888, 888, 888, 888, 888, 888, 0, 888,
2449 888, 0, 0, 0, 0, 888, 888, 888, 888, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2452 0, 0, 888, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 888,
2454 0, 0, 0, 0, 0, 0, 0, 888, 888, 889,
2455 889, 889, 889, 889, 889, 0, 889, 889, 889, 889,
2456 889, 889, 889, 889, 0, 889, 889, 0, 0, 0,
2457 0, 889, 889, 889, 889, 0, 0, 0, 0, 0,
2458 0, 0, 0, 0, 0, 0, 0, 0, 889, 0,
2459 0, 0, 0, 0, 0, 0, 0, 0, 0, 889,
2460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2461 0, 0, 0, 889, 889, 893, 893, 893, 893, 893,
2463 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2464 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2465 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2466 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2467 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2468 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
2469 893, 1215, 0, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
2470 1215, 1215, 1216, 0, 0, 1216, 1216, 1217, 0, 1217,
2471 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218,
2472 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219, 1219, 1219,
2474 1220, 0, 1220, 0, 1220, 1220, 1220, 1220, 1221, 1221,
2475 1221, 1221, 1221, 1221, 1221, 1222, 0, 1222, 1222, 1222,
2476 1222, 1222, 1222, 1222, 1222, 1222, 1223, 0, 1223, 1223,
2477 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, 0, 1224,
2478 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 0,
2479 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226,
2480 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 0, 1227,
2481 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1228,
2482 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1229, 1229,
2483 0, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1230,
2485 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
2486 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
2487 1231, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
2488 1232, 1232, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
2489 1233, 1233, 1233, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
2490 1234, 1234, 1234, 1234, 1235, 1235, 1235, 1235, 1235, 1235,
2491 1235, 1235, 1235, 1235, 1235, 1236, 1236, 1236, 1236, 1236,
2492 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237,
2493 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1238, 1238, 1238,
2494 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1239, 1239,
2496 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240,
2497 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
2498 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
2499 1241, 1242, 0, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
2500 1242, 1242, 1243, 0, 1243, 1243, 1243, 1243, 1243, 1243,
2501 1243, 1243, 1243, 1244, 0, 1244, 1244, 1244, 1244, 1244,
2502 1244, 1244, 1244, 1244, 1245, 0, 1245, 1245, 1245, 1245,
2503 1245, 1245, 1245, 1245, 1245, 1246, 0, 0, 1246, 1246,
2504 1247, 0, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247,
2505 1247, 1248, 0, 0, 1248, 1248, 1248, 1249, 0, 0,
2507 1249, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1251, 1251,
2508 1251, 1251, 1251, 1251, 1251, 1251, 1252, 0, 0, 0,
2509 1252, 1252, 1252, 1252, 1252, 1253, 1253, 1253, 1253, 1253,
2510 1253, 1254, 1254, 1254, 1254, 1255, 1255, 1255, 1255, 1255,
2511 1255, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1257, 0,
2512 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1258,
2513 0, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
2514 1259, 0, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
2515 1259, 1260, 0, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
2516 1260, 1260, 1261, 1261, 0, 1261, 1261, 1261, 1261, 1261,
2518 1261, 1261, 1261, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
2519 1262, 1262, 1262, 1262, 1263, 1263, 0, 1263, 1263, 1263,
2520 1263, 1263, 1263, 1263, 1263, 1264, 1264, 1264, 1264, 1264,
2521 1264, 1264, 1264, 1264, 1264, 1264, 1265, 1265, 1265, 1265,
2522 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1266, 1266, 1266,
2523 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267,
2524 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1268,
2525 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
2526 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
2527 1269, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
2529 1270, 1270, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
2530 1271, 1271, 1271, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
2531 1272, 1272, 1272, 1272, 1273, 1273, 1273, 1273, 1273, 1273,
2532 1273, 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274, 1274,
2533 1274, 1274, 1274, 1274, 1274, 1274, 1275, 1275, 1275, 1275,
2534 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1276, 0, 1276,
2535 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1277, 0,
2536 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1278,
2537 0, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
2538 1279, 0, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
2540 1279, 1280, 0, 0, 1280, 1280, 1281, 0, 0, 1281,
2541 1281, 1281, 1282, 0, 0, 1282, 1283, 0, 1283, 1283,
2542 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1284, 0, 1284,
2543 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1285, 0,
2544 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1286,
2545 0, 1286, 1286, 1286, 1286, 1286, 1286, 1287, 1287, 1287,
2546 1287, 1287, 1287, 1287, 1288, 1288, 1288, 1288, 1288, 1288,
2547 1288, 1288, 1289, 1289, 1289, 1289, 1289, 1289, 1290, 1290,
2548 1290, 1290, 1290, 1290, 1291, 1291, 1291, 1291, 1291, 1291,
2549 1292, 1292, 1292, 1292, 1292, 1292, 1293, 1293, 1293, 1293,
2551 1293, 1293, 1293, 1294, 0, 1294, 1294, 1294, 1294, 1294,
2552 1294, 1294, 1294, 1294, 1295, 0, 1295, 1295, 1295, 1295,
2553 1295, 1295, 1295, 1295, 1295, 1296, 0, 1296, 1296, 1296,
2554 1296, 1296, 1296, 1296, 1296, 1296, 1297, 0, 1297, 1297,
2555 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1298, 0, 1298,
2556 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299, 0,
2557 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1300,
2558 1300, 1300, 1300, 1300, 1300, 1300, 1301, 1301, 0, 1301,
2559 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1302, 1302, 1302,
2560 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1303, 1303,
2562 0, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1304,
2563 1304, 0, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
2564 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305,
2565 1305, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
2566 1306, 1306, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
2567 1307, 1307, 1307, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
2568 1308, 1308, 1308, 1308, 1309, 1309, 1309, 1309, 1309, 1309,
2569 1309, 1309, 1309, 1309, 1309, 1310, 1310, 1310, 1310, 1310,
2570 1310, 1310, 1310, 1310, 1310, 1310, 1311, 1311, 1311, 1311,
2571 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1312, 1312, 1312,
2573 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1313, 1313,
2574 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1314,
2575 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314,
2576 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
2577 1315, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316,
2578 1316, 1316, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317,
2579 1317, 1317, 1317, 1318, 1318, 1318, 1318, 1318, 1318, 1318,
2580 1318, 1318, 1318, 1318, 1319, 1319, 1319, 1319, 1319, 1319,
2581 1319, 1319, 1319, 1319, 1319, 1320, 1320, 1320, 1320, 1320,
2582 1320, 1320, 1320, 1320, 1320, 1320, 1321, 1321, 1321, 1321,
2584 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1322, 1322, 1322,
2585 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1323, 0,
2586 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1324,
2587 0, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324,
2588 1325, 0, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
2589 1325, 1326, 0, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
2590 1326, 1326, 1327, 0, 1327, 1327, 1327, 1327, 1327, 1327,
2591 1327, 1327, 1327, 1328, 0, 1328, 1328, 1328, 1328, 1328,
2592 1328, 1328, 1328, 1328, 1329, 0, 0, 1329, 1329, 1329,
2593 1330, 0, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
2595 1330, 1331, 0, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
2596 1331, 1331, 1332, 0, 1332, 1332, 1332, 1332, 1332, 1332,
2597 1332, 1332, 1332, 1333, 1333, 1333, 1333, 1333, 1333, 1333,
2598 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1335, 1335,
2599 1335, 1335, 1335, 1335, 1336, 1336, 1336, 1336, 1336, 1336,
2600 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1338, 0, 1338,
2601 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1339, 0,
2602 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1340,
2603 0, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340,
2604 1341, 0, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341,
2606 1341, 1342, 0, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
2607 1342, 1342, 1343, 0, 1343, 1343, 1343, 1343, 1343, 1343,
2608 1343, 1343, 1343, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
2609 1345, 1345, 0, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
2610 1345, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
2611 1346, 1346, 1347, 1347, 0, 1347, 1347, 1347, 1347, 1347,
2612 1347, 1347, 1347, 1348, 1348, 0, 1348, 1348, 1348, 1348,
2613 1348, 1348, 1348, 1348, 1349, 1349, 1349, 1349, 1349, 1349,
2614 1349, 1349, 1349, 1349, 1349, 1350, 1350, 1350, 1350, 1350,
2615 1350, 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351,
2617 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1352, 1352, 1352,
2618 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353, 1353,
2619 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1354,
2620 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
2621 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
2622 1355, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356,
2623 1356, 1356, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
2624 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
2625 1358, 1358, 1358, 1358, 1359, 1359, 1359, 1359, 1359, 1359,
2626 1359, 1359, 1359, 1359, 1359, 1360, 1360, 1360, 1360, 1360,
2628 1360, 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361,
2629 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1362, 1362, 1362,
2630 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363, 1363,
2631 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1364,
2632 0, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
2633 1365, 0, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
2634 1365, 1366, 0, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
2635 1366, 1366, 1367, 0, 1367, 1367, 1367, 1367, 1367, 1367,
2636 1367, 1367, 1367, 1368, 0, 1368, 1368, 1368, 1368, 1368,
2637 1368, 1368, 1368, 1368, 1369, 0, 1369, 1369, 1369, 1369,
2639 1369, 1369, 1369, 1369, 1369, 1370, 0, 0, 1370, 1370,
2640 1370, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1372,
2641 1372, 1372, 1372, 1372, 1372, 1373, 1373, 1373, 1373, 1373,
2642 1373, 1373, 1374, 0, 1374, 1374, 1374, 1374, 1374, 1374,
2643 1374, 1374, 1374, 1375, 0, 1375, 1375, 1375, 1375, 1375,
2644 1375, 1375, 1375, 1375, 1376, 1376, 1376, 1376, 1376, 1376,
2645 1376, 1377, 1377, 0, 1377, 1377, 1377, 1377, 1377, 1377,
2646 1377, 1377, 1378, 1378, 0, 1378, 1378, 1378, 1378, 1378,
2647 1378, 1378, 1378, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
2648 1379, 1379, 1379, 1379, 1214, 1214, 1214, 1214, 1214, 1214,
2650 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2651 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2652 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2653 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2654 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2655 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214,
2659 /* The intent behind this definition is that it'll catch
2660 * any uses of REJECT which flex missed.
2662 #define REJECT reject_used_but_not_detected
2663 #define yymore() yymore_used_but_not_detected
2664 #define YY_MORE_ADJ 0
2665 #define YY_RESTORE_YY_MORE_OFFSET
2666 #line 1 "compilers/imcc/imcc.l"
2668 #line 23 "compilers/imcc/imcc.l"
2672 * Intermediate Code Compiler for Parrot
2674 * Copyright (C) 2002 Melvin Smith <melvin.smith@mindspring.com>
2675 * Copyright (C) 2002-2008, The Perl Foundation.
2690 #define MAX_PARAM 16
2692 typedef struct yyguts_t yyguts_t
;
2693 typedef struct parser_state_t parser_state_t
;
2695 typedef struct params_t
{
2696 char *name
[MAX_PARAM
];
2700 typedef struct macro_t
{
2706 /* parser state structure
2707 * the first few items are common to struct parser_state, but
2708 * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE
2710 typedef struct macro_frame_t
{
2711 struct parser_state_t s
;
2720 YY_BUFFER_STATE buffer
;
2723 /* static function declarations */
2724 static void pop_parser_state(PARROT_INTERP
, ARGMOD(void *yyscanner
));
2726 static struct macro_frame_t
*new_frame(PARROT_INTERP
);
2728 static void define_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGIN(const params_t
*params
),
2729 ARGIN(const char *expansion
), int start_line
);
2731 static macro_t
*find_macro(PARROT_INTERP
, ARGIN(const char *name
));
2733 static void scan_string(macro_frame_t
*frame
, ARGIN(const char *expansion
),
2734 ARGMOD(void *yyscanner
));
2736 static void scan_file(PARROT_INTERP
, ARGIN(struct macro_frame_t
*frame
), ARGMOD(FILE *file
),
2737 ARGMOD(void *yyscanner
));
2739 static int destroy_frame(macro_frame_t
*frame
, ARGMOD(void *yyscanner
));
2741 static int yylex_skip(YYSTYPE
*valp
, PARROT_INTERP
, ARGIN(const char *skip
),
2742 ARGMOD(void *yyscanner
));
2744 static int read_macro(YYSTYPE
*valp
, PARROT_INTERP
, ARGMOD(void *yyscanner
));
2746 static int expand_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGMOD(void *yyscanner
));
2748 static void include_file(PARROT_INTERP
, char *file_name
, ARGMOD(void *yyscanner
));
2750 #define YY_DECL int yylex(YYSTYPE *valp,yyscan_t yyscanner,PARROT_INTERP)
2752 #define YYCHOP() (yytext[--yyleng] = '\0')
2754 #define DUP_AND_RET(valp, token) \
2756 if (valp) (valp)->s = str_dup(yytext); \
2760 #define DUP_AND_RET_FREE(valp, token) \
2763 mem_sys_free((valp)->s); \
2764 (valp)->s = str_dup(yytext); \
2779 #line 2780 "compilers/imcc/imclexer.c"
2793 #ifndef YY_NO_UNISTD_H
2794 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2795 * down here because we want the user's section 1 to have been scanned first.
2796 * The user has a chance to override it with an option.
2801 #ifndef YY_EXTRA_TYPE
2802 #define YY_EXTRA_TYPE void *
2805 /* Holds the entire state of the reentrant scanner. */
2809 /* User-defined. Not touched by flex. */
2810 YY_EXTRA_TYPE yyextra_r
;
2812 /* The rest are the same as the globals declared in the non-reentrant scanner. */
2813 FILE *yyin_r
, *yyout_r
;
2814 size_t yy_buffer_stack_top
; /**< index of top of stack. */
2815 size_t yy_buffer_stack_max
; /**< capacity of stack. */
2816 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
2823 int yy_did_buffer_switch_on_eof
;
2824 int yy_start_stack_ptr
;
2825 int yy_start_stack_depth
;
2826 int *yy_start_stack
;
2827 yy_state_type yy_last_accepting_state
;
2828 char* yy_last_accepting_cpos
;
2831 int yy_flex_debug_r
;
2837 }; /* end struct yyguts_t */
2839 static int yy_init_globals (yyscan_t yyscanner
);
2841 int yylex_init (yyscan_t
* scanner
);
2843 int yylex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
2845 /* Accessor methods to globals.
2846 These are made visible to non-reentrant scanners for convenience. */
2848 int yylex_destroy (yyscan_t yyscanner
);
2850 int yyget_debug (yyscan_t yyscanner
);
2852 void yyset_debug (int debug_flag
,yyscan_t yyscanner
);
2854 YY_EXTRA_TYPE
yyget_extra (yyscan_t yyscanner
);
2856 void yyset_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
2858 FILE *yyget_in (yyscan_t yyscanner
);
2860 void yyset_in (FILE * in_str
,yyscan_t yyscanner
);
2862 FILE *yyget_out (yyscan_t yyscanner
);
2864 void yyset_out (FILE * out_str
,yyscan_t yyscanner
);
2866 int yyget_leng (yyscan_t yyscanner
);
2868 char *yyget_text (yyscan_t yyscanner
);
2870 int yyget_lineno (yyscan_t yyscanner
);
2872 void yyset_lineno (int line_number
,yyscan_t yyscanner
);
2874 /* Macros after this point can all be overridden by user definitions in
2878 #ifndef YY_SKIP_YYWRAP
2880 extern "C" int yywrap (yyscan_t yyscanner
);
2882 extern int yywrap (yyscan_t yyscanner
);
2886 static void yyunput (int c
,char *buf_ptr
,yyscan_t yyscanner
);
2889 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
2892 #ifdef YY_NEED_STRLEN
2893 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
2899 static int yyinput (yyscan_t yyscanner
);
2901 static int input (yyscan_t yyscanner
);
2906 static void yy_push_state (int new_state
,yyscan_t yyscanner
);
2908 static void yy_pop_state (yyscan_t yyscanner
);
2910 static int yy_top_state (yyscan_t yyscanner
);
2912 /* Amount of stuff to slurp up with each read. */
2913 #ifndef YY_READ_BUF_SIZE
2914 #define YY_READ_BUF_SIZE 8192
2917 /* Copy whatever the last rule matched to the standard output. */
2919 /* This used to be an fputs(), but since the string might contain NUL's,
2920 * we now use fwrite().
2922 #define ECHO fwrite( yytext, yyleng, 1, yyout )
2925 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2926 * is returned in "result".
2929 #define YY_INPUT(buf,result,max_size) \
2930 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2934 for ( n = 0; n < max_size && \
2935 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2936 buf[n] = (char) c; \
2938 buf[n++] = (char) c; \
2939 if ( c == EOF && ferror( yyin ) ) \
2940 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2946 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2948 if( errno != EINTR) \
2950 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2961 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2962 * we don't want an extra ';' after the "return" because that will cause
2963 * some compilers to complain about unreachable statements.
2966 #define yyterminate() return YY_NULL
2969 /* Number of entries by which start-condition stack grows. */
2970 #ifndef YY_START_STACK_INCR
2971 #define YY_START_STACK_INCR 25
2974 /* Report a fatal error. */
2975 #ifndef YY_FATAL_ERROR
2976 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
2979 /* end tables serialization structures and prototypes */
2981 /* Default declaration of generated scanner - a define so the user can
2982 * easily add parameters.
2985 #define YY_DECL_IS_OURS 1
2987 extern int yylex (yyscan_t yyscanner
);
2989 #define YY_DECL int yylex (yyscan_t yyscanner)
2990 #endif /* !YY_DECL */
2992 /* Code executed at the beginning of each rule, after yytext and yyleng
2995 #ifndef YY_USER_ACTION
2996 #define YY_USER_ACTION
2999 /* Code executed at the end of each rule. */
3001 #define YY_BREAK break;
3004 #define YY_RULE_SETUP \
3006 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
3007 (yytext[yyleng - 1] == '\n'); \
3010 /** The main scanner function which does all the work.
3014 register yy_state_type yy_current_state
;
3015 register char *yy_cp
, *yy_bp
;
3016 register int yy_act
;
3017 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3019 #line 166 "compilers/imcc/imcc.l"
3022 if (IMCC_INFO(interp
)->expect_pasm
== 1 && !IMCC_INFO(interp
)->in_pod
) {
3023 IMCC_INFO(interp
)->expect_pasm
= 2;
3027 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
&& YYSTATE
== INITIAL
&&
3028 !IMCC_INFO(interp
)->in_pod
)
3030 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
== 1) {
3038 #line 3039 "compilers/imcc/imclexer.c"
3040 if ( !yyg
->yy_init
)
3048 if ( ! yyg
->yy_start
)
3049 yyg
->yy_start
= 1; /* first start state */
3057 if ( ! YY_CURRENT_BUFFER
) {
3058 yyensure_buffer_stack (yyscanner
);
3059 YY_CURRENT_BUFFER_LVALUE
=
3060 yy_create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
3063 yy_load_buffer_state(yyscanner
);
3066 while ( 1 ) /* loops until end-of-file is reached */
3068 yy_cp
= yyg
->yy_c_buf_p
;
3070 /* Support of yytext. */
3071 *yy_cp
= yyg
->yy_hold_char
;
3073 /* yy_bp points to the position in yy_ch_buf of the start of
3078 yy_current_state
= yyg
->yy_start
;
3079 yy_current_state
+= YY_AT_BOL();
3083 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
3084 if ( yy_accept
[yy_current_state
] )
3086 yyg
->yy_last_accepting_state
= yy_current_state
;
3087 yyg
->yy_last_accepting_cpos
= yy_cp
;
3089 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
3091 yy_current_state
= (int) yy_def
[yy_current_state
];
3092 if ( yy_current_state
>= 1215 )
3093 yy_c
= yy_meta
[(unsigned int) yy_c
];
3095 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
3098 while ( yy_current_state
!= 1214 );
3099 yy_cp
= yyg
->yy_last_accepting_cpos
;
3100 yy_current_state
= yyg
->yy_last_accepting_state
;
3103 yy_act
= yy_accept
[yy_current_state
];
3105 YY_DO_BEFORE_ACTION
;
3107 do_action
: /* This label is used only to access EOF actions. */
3110 { /* beginning of action switch */
3111 case 0: /* must back up */
3112 /* undo the effects of YY_DO_BEFORE_ACTION */
3113 *yy_cp
= yyg
->yy_hold_char
;
3114 yy_cp
= yyg
->yy_last_accepting_cpos
;
3115 yy_current_state
= yyg
->yy_last_accepting_state
;
3116 goto yy_find_action
;
3119 /* rule 1 can match eol */
3121 #line 184 "compilers/imcc/imcc.l"
3123 IMCC_INFO(interp
)->frames
->heredoc_rest
= str_dup(yytext
);
3128 /* rule 2 can match eol */
3130 #line 189 "compilers/imcc/imcc.l"
3132 /* heredocs have highest priority
3133 * arrange them befor all wildcard state matches
3136 /* Newline in the heredoc. Realloc and cat on. */
3137 IMCC_INFO(interp
)->line
++;
3138 IMCC_INFO(interp
)->heredoc_content
=
3139 (char*)mem_sys_realloc(IMCC_INFO(interp
)->heredoc_content
,
3140 strlen(IMCC_INFO(interp
)->heredoc_content
) +
3141 strlen(yytext
) + 2);
3142 strcpy(IMCC_INFO(interp
)->heredoc_content
+
3143 strlen(IMCC_INFO(interp
)->heredoc_content
), yytext
);
3148 #line 204 "compilers/imcc/imcc.l"
3150 /* Are we at the end of the heredoc? */
3151 if (STREQ(IMCC_INFO(interp
)->heredoc_end
, yytext
)) {
3152 /* End of the heredoc. */
3153 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
3154 const int len
= strlen(IMCC_INFO(interp
)->heredoc_content
);
3157 IMCC_INFO(interp
)->heredoc_content
[len
] =
3158 IMCC_INFO(interp
)->heredoc_content
[0];
3160 IMCC_INFO(interp
)->heredoc_content
[len
+ 1] = 0;
3162 mem_sys_free(IMCC_INFO(interp
)->heredoc_end
);
3163 IMCC_INFO(interp
)->heredoc_end
= NULL
;
3165 IMCC_INFO(interp
)->frames
->buffer
= YY_CURRENT_BUFFER
;
3167 IMCC_INFO(interp
)->heredoc_content
;
3169 yy_pop_state(yyscanner
);
3170 yy_scan_string(IMCC_INFO(interp
)->frames
->heredoc_rest
,yyscanner
);
3172 /* RT #42382 delete quotes, -> emit, pbc */
3176 /* Part of the heredoc. Realloc and cat the line on. */
3177 IMCC_INFO(interp
)->heredoc_content
=
3178 (char *)mem_sys_realloc(IMCC_INFO(interp
)->heredoc_content
,
3179 strlen(IMCC_INFO(interp
)->heredoc_content
) +
3180 strlen(yytext
) + 2);
3181 strcpy(IMCC_INFO(interp
)->heredoc_content
+
3182 strlen(IMCC_INFO(interp
)->heredoc_content
), yytext
);
3188 #line 242 "compilers/imcc/imcc.l"
3190 yy_push_state(cmt2
, yyscanner
);
3191 IMCC_INFO(interp
)->line
= atoi(yytext
+6);
3196 /* rule 5 can match eol */
3198 #line 248 "compilers/imcc/imcc.l"
3200 yy_pop_state(yyscanner
);
3201 yy_push_state(cmt3
, yyscanner
);
3203 IMCC_INFO(interp
)->frames
->s
.file
= str_dup(yytext
);
3204 IMCC_INFO(interp
)->cur_unit
->file
= str_dup(yytext
);
3211 #line 258 "compilers/imcc/imcc.l"
3213 yy_pop_state(yyscanner
);
3214 yy_push_state(cmt4
, yyscanner
);
3219 #line 263 "compilers/imcc/imcc.l"
3220 { yy_push_state(cmt2
, yyscanner
); }
3224 #line 265 "compilers/imcc/imcc.l"
3225 { yy_push_state(cmt1
, yyscanner
); }
3229 #line 267 "compilers/imcc/imcc.l"
3231 IMCC_INFO(interp
)->line
= atoi(yytext
);
3232 yy_pop_state(yyscanner
);
3233 yy_push_state(cmt4
, yyscanner
);
3238 /* rule 10 can match eol */
3240 #line 274 "compilers/imcc/imcc.l"
3242 yy_pop_state(yyscanner
);
3243 IMCC_INFO(interp
)->line
++;
3247 /* rule 11 can match eol */
3249 #line 279 "compilers/imcc/imcc.l"
3251 if (IMCC_INFO(interp
)->expect_pasm
== 2)
3254 IMCC_INFO(interp
)->expect_pasm
= 0;
3255 IMCC_INFO(interp
)->line
++;
3262 #line 289 "compilers/imcc/imcc.l"
3264 yy_push_state(cmt5
, yyscanner
);
3268 /* rule 13 can match eol */
3270 #line 293 "compilers/imcc/imcc.l"
3272 if (IMCC_INFO(interp
)->expect_pasm
== 2)
3275 yy_pop_state(yyscanner
);
3277 IMCC_INFO(interp
)->expect_pasm
= 0;
3278 IMCC_INFO(interp
)->line
++;
3285 #line 306 "compilers/imcc/imcc.l"
3287 valp
->s
= str_dup(yytext
);
3293 #line 311 "compilers/imcc/imcc.l"
3295 IMCC_INFO(interp
)->in_pod
= 1;
3296 yy_push_state(pod
, yyscanner
);
3300 /* rule 16 can match eol */
3302 #line 316 "compilers/imcc/imcc.l"
3304 IMCC_INFO(interp
)->in_pod
= 0;
3305 yy_pop_state(yyscanner
);
3306 IMCC_INFO(interp
)->line
++;
3311 #line 322 "compilers/imcc/imcc.l"
3315 /* rule 18 can match eol */
3317 #line 324 "compilers/imcc/imcc.l"
3318 { IMCC_INFO(interp
)->line
++; }
3322 #line 326 "compilers/imcc/imcc.l"
3327 #line 327 "compilers/imcc/imcc.l"
3332 #line 328 "compilers/imcc/imcc.l"
3337 #line 329 "compilers/imcc/imcc.l"
3342 #line 330 "compilers/imcc/imcc.l"
3347 #line 331 "compilers/imcc/imcc.l"
3352 #line 332 "compilers/imcc/imcc.l"
3357 #line 333 "compilers/imcc/imcc.l"
3362 #line 334 "compilers/imcc/imcc.l"
3367 #line 335 "compilers/imcc/imcc.l"
3372 #line 336 "compilers/imcc/imcc.l"
3377 #line 337 "compilers/imcc/imcc.l"
3378 return PCC_BEGIN_RETURN
;
3382 #line 338 "compilers/imcc/imcc.l"
3383 return PCC_END_RETURN
;
3387 #line 339 "compilers/imcc/imcc.l"
3388 return PCC_BEGIN_YIELD
;
3392 #line 340 "compilers/imcc/imcc.l"
3393 return PCC_END_YIELD
;
3397 #line 342 "compilers/imcc/imcc.l"
3402 #line 343 "compilers/imcc/imcc.l"
3407 #line 344 "compilers/imcc/imcc.l"
3412 #line 345 "compilers/imcc/imcc.l"
3417 #line 346 "compilers/imcc/imcc.l"
3422 #line 347 "compilers/imcc/imcc.l"
3427 #line 348 "compilers/imcc/imcc.l"
3432 #line 349 "compilers/imcc/imcc.l"
3437 #line 350 "compilers/imcc/imcc.l"
3442 #line 351 "compilers/imcc/imcc.l"
3447 #line 352 "compilers/imcc/imcc.l"
3448 return VTABLE_METHOD
;
3452 #line 353 "compilers/imcc/imcc.l"
3457 #line 354 "compilers/imcc/imcc.l"
3458 return SUB_INSTANCE_OF
;
3462 #line 355 "compilers/imcc/imcc.l"
3467 #line 357 "compilers/imcc/imcc.l"
3472 #line 358 "compilers/imcc/imcc.l"
3477 #line 359 "compilers/imcc/imcc.l"
3482 #line 360 "compilers/imcc/imcc.l"
3487 #line 361 "compilers/imcc/imcc.l"
3492 #line 363 "compilers/imcc/imcc.l"
3497 #line 364 "compilers/imcc/imcc.l"
3502 #line 365 "compilers/imcc/imcc.l"
3503 return ADV_OPTIONAL
;
3507 #line 366 "compilers/imcc/imcc.l"
3508 return ADV_OPT_FLAG
;
3512 #line 367 "compilers/imcc/imcc.l"
3517 #line 368 "compilers/imcc/imcc.l"
3522 #line 369 "compilers/imcc/imcc.l"
3523 return ADV_INVOCANT
;
3527 #line 371 "compilers/imcc/imcc.l"
3532 #line 372 "compilers/imcc/imcc.l"
3537 #line 373 "compilers/imcc/imcc.l"
3542 #line 374 "compilers/imcc/imcc.l"
3543 return ENDNAMESPACE
;
3547 #line 375 "compilers/imcc/imcc.l"
3552 #line 376 "compilers/imcc/imcc.l"
3557 #line 377 "compilers/imcc/imcc.l"
3562 #line 378 "compilers/imcc/imcc.l"
3563 return GLOBAL_CONST
;
3567 #line 379 "compilers/imcc/imcc.l"
3572 #line 380 "compilers/imcc/imcc.l"
3577 #line 381 "compilers/imcc/imcc.l"
3582 #line 382 "compilers/imcc/imcc.l"
3587 #line 383 "compilers/imcc/imcc.l"
3592 #line 384 "compilers/imcc/imcc.l"
3597 #line 385 "compilers/imcc/imcc.l"
3602 #line 386 "compilers/imcc/imcc.l"
3607 #line 387 "compilers/imcc/imcc.l"
3612 #line 388 "compilers/imcc/imcc.l"
3617 #line 389 "compilers/imcc/imcc.l"
3622 #line 390 "compilers/imcc/imcc.l"
3627 #line 391 "compilers/imcc/imcc.l"
3632 #line 392 "compilers/imcc/imcc.l"
3637 #line 393 "compilers/imcc/imcc.l"
3642 #line 394 "compilers/imcc/imcc.l"
3647 #line 395 "compilers/imcc/imcc.l"
3648 return SHIFT_RIGHT_U
;
3652 #line 396 "compilers/imcc/imcc.l"
3657 #line 397 "compilers/imcc/imcc.l"
3662 #line 398 "compilers/imcc/imcc.l"
3667 #line 399 "compilers/imcc/imcc.l"
3672 #line 400 "compilers/imcc/imcc.l"
3677 #line 401 "compilers/imcc/imcc.l"
3682 #line 402 "compilers/imcc/imcc.l"
3687 #line 403 "compilers/imcc/imcc.l"
3692 #line 404 "compilers/imcc/imcc.l"
3697 #line 405 "compilers/imcc/imcc.l"
3702 #line 407 "compilers/imcc/imcc.l"
3707 #line 408 "compilers/imcc/imcc.l"
3712 #line 409 "compilers/imcc/imcc.l"
3717 #line 410 "compilers/imcc/imcc.l"
3722 #line 411 "compilers/imcc/imcc.l"
3723 return MINUS_ASSIGN
;
3727 #line 412 "compilers/imcc/imcc.l"
3732 #line 413 "compilers/imcc/imcc.l"
3737 #line 414 "compilers/imcc/imcc.l"
3742 #line 415 "compilers/imcc/imcc.l"
3747 #line 416 "compilers/imcc/imcc.l"
3752 #line 417 "compilers/imcc/imcc.l"
3757 #line 418 "compilers/imcc/imcc.l"
3762 #line 419 "compilers/imcc/imcc.l"
3767 #line 420 "compilers/imcc/imcc.l"
3772 #line 421 "compilers/imcc/imcc.l"
3777 #line 422 "compilers/imcc/imcc.l"
3778 return SHR_U_ASSIGN
;
3782 #line 423 "compilers/imcc/imcc.l"
3783 return CONCAT_ASSIGN
;
3787 #line 425 "compilers/imcc/imcc.l"
3791 int start_cond
= YY_START
;
3794 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
3796 if (c
!= IDENTIFIER
)
3797 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3798 "Constant names must be identifiers");
3800 IMCC_INFO(interp
)->cur_macro_name
= valp
->s
;
3801 start_line
= IMCC_INFO(interp
)->line
;
3803 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
3805 if (c
!= INTC
&& c
!= FLOATC
&& c
!= STRINGC
&& c
!= REG
)
3806 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
3807 "Constant '%s' value must be a number, "
3808 "stringliteral or register", IMCC_INFO(interp
)->cur_macro_name
);
3810 define_macro(interp
, IMCC_INFO(interp
)->cur_macro_name
, NULL
, valp
->s
, start_line
);
3812 IMCC_INFO(interp
)->cur_macro_name
= NULL
;
3820 #line 455 "compilers/imcc/imcc.l"
3822 return read_macro(valp
, interp
, yyscanner
);
3827 #line 459 "compilers/imcc/imcc.l"
3829 const int c
= yylex(valp
,yyscanner
,interp
);
3834 include_file(interp
, yytext
+ 1, yyscanner
);
3839 #line 468 "compilers/imcc/imcc.l"
3848 if (!IMCC_INFO(interp
)->frames
|| !IMCC_INFO(interp
)->frames
->label
)
3849 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "missing space?");
3852 label
= (char *)mem_sys_allocate(len
);
3853 snprintf(label
, len
, "%s%d", yytext
, IMCC_INFO(interp
)->frames
->label
);
3855 /* XXX: free valp->s if it exists? */
3864 #line 490 "compilers/imcc/imcc.l"
3872 /* RT #32421 if$I0 is parsed as if$ I0 */
3873 if (!IMCC_INFO(interp
)->frames
|| !IMCC_INFO(interp
)->frames
->label
)
3874 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "missing space?");
3877 label
= (char *)mem_sys_allocate(len
);
3878 snprintf(label
, len
, "%s%d", yytext
, IMCC_INFO(interp
)->frames
->label
);
3880 /* XXX: free valp->s if it exists? */
3889 #line 512 "compilers/imcc/imcc.l"
3894 #line 514 "compilers/imcc/imcc.l"
3907 #line 524 "compilers/imcc/imcc.l"
3909 char * const macro_name
= yytext
+ 1;
3910 STRING
* name_string
= string_from_cstring(interp
, macro_name
, 0);
3911 const int type
= pmc_type(interp
, name_string
);
3914 const size_t len
= 16;
3915 char * const buf
= (char *)mem_sys_allocate(len
);
3916 snprintf(buf
, len
, "%d", type
);
3918 /* XXX: free valp->s if already used? Sounds like a good idea, */
3919 /* but big segfaults if you do. */
3924 if (!expand_macro(interp
, macro_name
, yyscanner
)) {
3932 #line 546 "compilers/imcc/imcc.l"
3935 SymReg
*r
= find_sym(interp
, yytext
);
3937 if (r
&& (r
->type
& (VTIDENTIFIER
|VT_CONSTP
))) {
3942 if (IMCC_INFO(interp
)->cur_unit
3943 && IMCC_INFO(interp
)->cur_unit
->instructions
3944 && (r
= IMCC_INFO(interp
)->cur_unit
->instructions
->symregs
[0])
3947 if (((r
->pcc_sub
->pragma
& P_METHOD
)
3948 || (IMCC_INFO(interp
)->cur_unit
->is_vtable_method
))
3949 && !strcmp(yytext
, "self")) {
3950 valp
->sr
= mk_ident(interp
, "self", 'P');
3951 IMCC_INFO(interp
)->cur_unit
->type
|= IMC_HAS_SELF
;
3957 valp
->s
= str_dup(yytext
);
3958 return (!is_def
&& is_op(interp
, valp
->s
) ? PARROT_OP
: IDENTIFIER
);
3963 #line 574 "compilers/imcc/imcc.l"
3964 DUP_AND_RET(valp
, FLOATC
);
3968 #line 575 "compilers/imcc/imcc.l"
3969 DUP_AND_RET(valp
, INTC
);
3973 #line 576 "compilers/imcc/imcc.l"
3974 DUP_AND_RET(valp
, INTC
);
3978 #line 577 "compilers/imcc/imcc.l"
3979 DUP_AND_RET(valp
, INTC
);
3983 #line 578 "compilers/imcc/imcc.l"
3984 DUP_AND_RET(valp
, INTC
);
3988 #line 580 "compilers/imcc/imcc.l"
3990 valp
->s
= str_dup(yytext
);
3993 valp
->s
[strlen(valp
->s
) - 1] = '\0';
3995 /* no BIGINT native format yet */
4001 #line 590 "compilers/imcc/imcc.l"
4003 valp
->s
= str_dup(yytext
);
4005 /* RT #42382 delete quotes, -> emit, pbc */
4011 #line 597 "compilers/imcc/imcc.l"
4013 macro_frame_t
*frame
;
4015 /* Save the string we want to mark the end of the heredoc and snip
4016 off newline and quote. */
4017 if (IMCC_INFO(interp
)->frames
->heredoc_rest
)
4018 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4019 "nested heredoc not supported");
4020 IMCC_INFO(interp
)->heredoc_end
= str_dup(yytext
+ 3);
4021 IMCC_INFO(interp
)->heredoc_end
[strlen(IMCC_INFO(interp
)->heredoc_end
) - 1] = 0;
4023 if (!strlen(IMCC_INFO(interp
)->heredoc_end
))
4024 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "empty heredoc delimiter");
4026 frame
= new_frame(interp
);
4027 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
4028 IMCC_INFO(interp
)->frames
= frame
;
4030 /* Start slurping up the heredoc. */
4031 IMCC_INFO(interp
)->heredoc_content
= (char *)mem_sys_allocate(2);
4033 /* preserve delim */
4034 IMCC_INFO(interp
)->heredoc_content
[0] = yytext
[2];
4037 IMCC_INFO(interp
)->heredoc_content
[1] = 0;
4038 yy_push_state(heredoc1
, yyscanner
);
4043 #line 626 "compilers/imcc/imcc.l"
4046 valp
->s
= str_dup(yytext
);
4048 /* this is actually not unicode but a string with a charset */
4054 #line 634 "compilers/imcc/imcc.l"
4056 if (valp
) (valp
)->s
= yytext
;
4057 if (IMCC_INFO(interp
)->state
->pasm_file
)
4058 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4059 "'%s' is not a valid register name in pasm mode", yytext
);
4065 #line 642 "compilers/imcc/imcc.l"
4067 if (valp
) (valp
)->s
= yytext
;
4068 if (IMCC_INFO(interp
)->state
->pasm_file
)
4069 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4070 "'%s' is not a valid register name in pasm mode", yytext
);
4076 #line 650 "compilers/imcc/imcc.l"
4078 if (valp
) (valp
)->s
= yytext
;
4079 if (IMCC_INFO(interp
)->state
->pasm_file
)
4080 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4081 "'%s' is not a valid register name in pasm mode", yytext
);
4087 #line 658 "compilers/imcc/imcc.l"
4089 if (valp
) (valp
)->s
= yytext
;
4090 if (IMCC_INFO(interp
)->state
->pasm_file
)
4091 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4092 "'%s' is not a valid register name in pasm mode", yytext
);
4098 #line 666 "compilers/imcc/imcc.l"
4100 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
4101 "'%s' is not a valid register name", yytext
);
4106 #line 672 "compilers/imcc/imcc.l"
4111 #line 674 "compilers/imcc/imcc.l"
4113 /* catch all except for state macro */
4117 case YY_STATE_EOF(emit
):
4118 #line 679 "compilers/imcc/imcc.l"
4122 if (IMCC_INFO(interp
)->frames
->s
.pasm_file
) {
4123 IMCC_INFO(interp
)->frames
->s
.pasm_file
= 2;
4130 case YY_STATE_EOF(INITIAL
):
4131 #line 690 "compilers/imcc/imcc.l"
4136 #line 692 "compilers/imcc/imcc.l"
4137 DUP_AND_RET(valp
, ENDM
);
4140 /* rule 138 can match eol */
4142 #line 694 "compilers/imcc/imcc.l"
4144 IMCC_INFO(interp
)->line
++;
4145 DUP_AND_RET(valp
, '\n');
4150 #line 699 "compilers/imcc/imcc.l"
4155 #line 701 "compilers/imcc/imcc.l"
4158 if (yylex(valp
,yyscanner
,interp
) != LABEL
)
4159 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "LABEL expected");
4166 len
= strlen(IMCC_INFO(interp
)->cur_macro_name
) + yyleng
+ 15;
4167 label
= (char *)mem_sys_allocate(len
);
4169 snprintf(label
, len
, "local__%s__%s__$:",
4170 IMCC_INFO(interp
)->cur_macro_name
, yytext
+1);
4172 /* XXX: free valp->s if it exists? */
4181 #line 724 "compilers/imcc/imcc.l"
4184 const size_t len
= strlen(IMCC_INFO(interp
)->cur_macro_name
) + yyleng
+ 12;
4185 char * const label
= (char *)mem_sys_allocate(len
);
4187 snprintf(label
, len
, "local__%s__%s__$",
4188 IMCC_INFO(interp
)->cur_macro_name
, yytext
+2);
4198 #line 738 "compilers/imcc/imcc.l"
4199 /* skip leading ws */;
4203 #line 739 "compilers/imcc/imcc.l"
4204 DUP_AND_RET(valp
, ' ');
4208 #line 740 "compilers/imcc/imcc.l"
4209 DUP_AND_RET(valp
, IDENTIFIER
);
4213 #line 741 "compilers/imcc/imcc.l"
4214 DUP_AND_RET(valp
, MACRO
);
4218 #line 742 "compilers/imcc/imcc.l"
4219 DUP_AND_RET(valp
, yytext
[0]);
4221 case YY_STATE_EOF(macro
):
4222 #line 743 "compilers/imcc/imcc.l"
4227 #line 745 "compilers/imcc/imcc.l"
4230 #line 4231 "compilers/imcc/imclexer.c"
4231 case YY_STATE_EOF(pod
):
4232 case YY_STATE_EOF(cmt1
):
4233 case YY_STATE_EOF(cmt2
):
4234 case YY_STATE_EOF(cmt3
):
4235 case YY_STATE_EOF(cmt4
):
4236 case YY_STATE_EOF(cmt5
):
4237 case YY_STATE_EOF(heredoc1
):
4238 case YY_STATE_EOF(heredoc2
):
4241 case YY_END_OF_BUFFER
:
4243 /* Amount of text matched not including the EOB char. */
4244 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
4246 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4247 *yy_cp
= yyg
->yy_hold_char
;
4248 YY_RESTORE_YY_MORE_OFFSET
4250 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
4252 /* We're scanning a new file or input source. It's
4253 * possible that this happened because the user
4254 * just pointed yyin at a new source and called
4255 * yylex(). If so, then we have to assure
4256 * consistency between YY_CURRENT_BUFFER and our
4257 * globals. Here is the right place to do so, because
4258 * this is the first action (other than possibly a
4259 * back-up) that will match for the new input source.
4261 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
4262 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
4263 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
4266 /* Note that here we test for yy_c_buf_p "<=" to the position
4267 * of the first EOB in the buffer, since yy_c_buf_p will
4268 * already have been incremented past the NUL character
4269 * (since all states make transitions on EOB to the
4270 * end-of-buffer state). Contrast this with the test
4273 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
4274 { /* This was really a NUL. */
4275 yy_state_type yy_next_state
;
4277 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
4279 yy_current_state
= yy_get_previous_state( yyscanner
);
4281 /* Okay, we're now positioned to make the NUL
4282 * transition. We couldn't have
4283 * yy_get_previous_state() go ahead and do it
4284 * for us because it doesn't know how to deal
4285 * with the possibility of jamming (and we don't
4286 * want to build jamming into it because then it
4287 * will run more slowly).
4290 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
4292 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4294 if ( yy_next_state
)
4296 /* Consume the NUL. */
4297 yy_cp
= ++yyg
->yy_c_buf_p
;
4298 yy_current_state
= yy_next_state
;
4304 yy_cp
= yyg
->yy_last_accepting_cpos
;
4305 yy_current_state
= yyg
->yy_last_accepting_state
;
4306 goto yy_find_action
;
4310 else switch ( yy_get_next_buffer( yyscanner
) )
4312 case EOB_ACT_END_OF_FILE
:
4314 yyg
->yy_did_buffer_switch_on_eof
= 0;
4316 if ( yywrap(yyscanner
) )
4318 /* Note: because we've taken care in
4319 * yy_get_next_buffer() to have set up
4320 * yytext, we can now set up
4321 * yy_c_buf_p so that if some total
4322 * hoser (like flex itself) wants to
4323 * call the scanner after we return the
4324 * YY_NULL, it'll still work - another
4325 * YY_NULL will get returned.
4327 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4329 yy_act
= YY_STATE_EOF(YY_START
);
4335 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
4341 case EOB_ACT_CONTINUE_SCAN
:
4343 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
4345 yy_current_state
= yy_get_previous_state( yyscanner
);
4347 yy_cp
= yyg
->yy_c_buf_p
;
4348 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4351 case EOB_ACT_LAST_MATCH
:
4353 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
4355 yy_current_state
= yy_get_previous_state( yyscanner
);
4357 yy_cp
= yyg
->yy_c_buf_p
;
4358 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
4359 goto yy_find_action
;
4366 "fatal flex scanner internal error--no action found" );
4367 } /* end of action switch */
4368 } /* end of scanning one token */
4369 } /* end of yylex */
4371 /* yy_get_next_buffer - try to read in a new buffer
4373 * Returns a code representing an action:
4374 * EOB_ACT_LAST_MATCH -
4375 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4376 * EOB_ACT_END_OF_FILE - end of file
4378 static int yy_get_next_buffer (yyscan_t yyscanner
)
4380 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4381 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
4382 register char *source
= yyg
->yytext_ptr
;
4383 register int number_to_move
, i
;
4386 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
4388 "fatal flex scanner internal error--end of buffer missed" );
4390 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
4391 { /* Don't try to fill the buffer, so this is an EOF. */
4392 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
4394 /* We matched a single character, the EOB, so
4395 * treat this as a final EOF.
4397 return EOB_ACT_END_OF_FILE
;
4402 /* We matched some text prior to the EOB, first
4405 return EOB_ACT_LAST_MATCH
;
4409 /* Try to read more data. */
4411 /* First move last chars to start of buffer. */
4412 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
4414 for ( i
= 0; i
< number_to_move
; ++i
)
4415 *(dest
++) = *(source
++);
4417 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
4418 /* don't do the read, it's not guaranteed to return an EOF,
4421 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
4426 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
4428 while ( num_to_read
<= 0 )
4429 { /* Not enough room in the buffer - grow it. */
4431 /* just a shorter name for the current buffer */
4432 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
4434 int yy_c_buf_p_offset
=
4435 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
4437 if ( b
->yy_is_our_buffer
)
4439 int new_size
= b
->yy_buf_size
* 2;
4441 if ( new_size
<= 0 )
4442 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
4444 b
->yy_buf_size
*= 2;
4446 b
->yy_ch_buf
= (char *)
4447 /* Include room in for 2 EOB chars. */
4448 yyrealloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
4451 /* Can't grow it, we don't own it. */
4454 if ( ! b
->yy_ch_buf
)
4456 "fatal error - scanner input buffer overflow" );
4458 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
4460 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
4465 if ( num_to_read
> YY_READ_BUF_SIZE
)
4466 num_to_read
= YY_READ_BUF_SIZE
;
4468 /* Read in more data. */
4469 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
4470 yyg
->yy_n_chars
, (size_t) num_to_read
);
4472 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4475 if ( yyg
->yy_n_chars
== 0 )
4477 if ( number_to_move
== YY_MORE_ADJ
)
4479 ret_val
= EOB_ACT_END_OF_FILE
;
4480 yyrestart(yyin
,yyscanner
);
4485 ret_val
= EOB_ACT_LAST_MATCH
;
4486 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
4487 YY_BUFFER_EOF_PENDING
;
4492 ret_val
= EOB_ACT_CONTINUE_SCAN
;
4494 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
4495 /* Extend the array by 50%, plus the number we really need. */
4496 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
4497 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
4498 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
4499 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4502 yyg
->yy_n_chars
+= number_to_move
;
4503 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
4504 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
4506 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
4511 /* yy_get_previous_state - get the state just before the EOB char was reached */
4513 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
4515 register yy_state_type yy_current_state
;
4516 register char *yy_cp
;
4517 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4519 yy_current_state
= yyg
->yy_start
;
4520 yy_current_state
+= YY_AT_BOL();
4522 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
4524 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
4525 if ( yy_accept
[yy_current_state
] )
4527 yyg
->yy_last_accepting_state
= yy_current_state
;
4528 yyg
->yy_last_accepting_cpos
= yy_cp
;
4530 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
4532 yy_current_state
= (int) yy_def
[yy_current_state
];
4533 if ( yy_current_state
>= 1215 )
4534 yy_c
= yy_meta
[(unsigned int) yy_c
];
4536 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
4539 return yy_current_state
;
4542 /* yy_try_NUL_trans - try to make a transition on the NUL character
4545 * next_state = yy_try_NUL_trans( current_state );
4547 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
4549 register int yy_is_jam
;
4550 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
4551 register char *yy_cp
= yyg
->yy_c_buf_p
;
4553 register YY_CHAR yy_c
= 1;
4554 if ( yy_accept
[yy_current_state
] )
4556 yyg
->yy_last_accepting_state
= yy_current_state
;
4557 yyg
->yy_last_accepting_cpos
= yy_cp
;
4559 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
4561 yy_current_state
= (int) yy_def
[yy_current_state
];
4562 if ( yy_current_state
>= 1215 )
4563 yy_c
= yy_meta
[(unsigned int) yy_c
];
4565 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
4566 yy_is_jam
= (yy_current_state
== 1214);
4568 return yy_is_jam
? 0 : yy_current_state
;
4571 static void yyunput (int c
, register char * yy_bp
, yyscan_t yyscanner
)
4573 register char *yy_cp
;
4574 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4576 yy_cp
= yyg
->yy_c_buf_p
;
4578 /* undo effects of setting up yytext */
4579 *yy_cp
= yyg
->yy_hold_char
;
4581 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
4582 { /* need to shift things up to make room */
4583 /* +2 for EOB chars. */
4584 register int number_to_move
= yyg
->yy_n_chars
+ 2;
4585 register char *dest
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[
4586 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
+ 2];
4587 register char *source
=
4588 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
];
4590 while ( source
> YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
4591 *--dest
= *--source
;
4593 yy_cp
+= (int) (dest
- source
);
4594 yy_bp
+= (int) (dest
- source
);
4595 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
=
4596 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
;
4598 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
4599 YY_FATAL_ERROR( "flex scanner push-back overflow" );
4602 *--yy_cp
= (char) c
;
4604 yyg
->yytext_ptr
= yy_bp
;
4605 yyg
->yy_hold_char
= *yy_cp
;
4606 yyg
->yy_c_buf_p
= yy_cp
;
4611 static int yyinput (yyscan_t yyscanner
)
4613 static int input (yyscan_t yyscanner
)
4618 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4620 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4622 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
4624 /* yy_c_buf_p now points to the character we want to return.
4625 * If this occurs *before* the EOB characters, then it's a
4626 * valid NUL; if not, then we've hit the end of the buffer.
4628 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
4629 /* This was really a NUL. */
4630 *yyg
->yy_c_buf_p
= '\0';
4633 { /* need more input */
4634 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
4637 switch ( yy_get_next_buffer( yyscanner
) )
4639 case EOB_ACT_LAST_MATCH
:
4640 /* This happens because yy_g_n_b()
4641 * sees that we've accumulated a
4642 * token and flags that we need to
4643 * try matching the token before
4644 * proceeding. But for input(),
4645 * there's no matching to consider.
4646 * So convert the EOB_ACT_LAST_MATCH
4647 * to EOB_ACT_END_OF_FILE.
4650 /* Reset buffer status. */
4651 yyrestart(yyin
,yyscanner
);
4655 case EOB_ACT_END_OF_FILE
:
4657 if ( yywrap(yyscanner
) )
4660 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
4663 return yyinput(yyscanner
);
4665 return input(yyscanner
);
4669 case EOB_ACT_CONTINUE_SCAN
:
4670 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
4676 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
4677 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
4678 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
4680 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
4684 #endif /* ifndef YY_NO_INPUT */
4686 /** Immediately switch to a different input stream.
4687 * @param input_file A readable stream.
4688 * @param yyscanner The scanner object.
4689 * @note This function does not reset the start condition to @c INITIAL .
4691 void yyrestart (FILE * input_file
, yyscan_t yyscanner
)
4693 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4695 if ( ! YY_CURRENT_BUFFER
){
4696 yyensure_buffer_stack (yyscanner
);
4697 YY_CURRENT_BUFFER_LVALUE
=
4698 yy_create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
4701 yy_init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
4702 yy_load_buffer_state(yyscanner
);
4705 /** Switch to a different input buffer.
4706 * @param new_buffer The new input buffer.
4707 * @param yyscanner The scanner object.
4709 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
4711 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4713 /* TODO. We should be able to replace this entire function body
4715 * yypop_buffer_state();
4716 * yypush_buffer_state(new_buffer);
4718 yyensure_buffer_stack (yyscanner
);
4719 if ( YY_CURRENT_BUFFER
== new_buffer
)
4722 if ( YY_CURRENT_BUFFER
)
4724 /* Flush out information for old buffer. */
4725 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4726 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
4727 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4730 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
4731 yy_load_buffer_state(yyscanner
);
4733 /* We don't actually know whether we did this switch during
4734 * EOF (yywrap()) processing, but the only time this flag
4735 * is looked at is after yywrap() is called, so it's safe
4736 * to go ahead and always set it.
4738 yyg
->yy_did_buffer_switch_on_eof
= 1;
4741 static void yy_load_buffer_state (yyscan_t yyscanner
)
4743 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4744 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
4745 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
4746 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
4747 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
4750 /** Allocate and initialize an input buffer state.
4751 * @param file A readable stream.
4752 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4753 * @param yyscanner The scanner object.
4754 * @return the allocated buffer state.
4756 YY_BUFFER_STATE
yy_create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
4760 b
= (YY_BUFFER_STATE
) yyalloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
4762 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4764 b
->yy_buf_size
= size
;
4766 /* yy_ch_buf has to be 2 characters longer than the size given because
4767 * we need to put in 2 end-of-buffer characters.
4769 b
->yy_ch_buf
= (char *) yyalloc(b
->yy_buf_size
+ 2 ,yyscanner
);
4770 if ( ! b
->yy_ch_buf
)
4771 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4773 b
->yy_is_our_buffer
= 1;
4775 yy_init_buffer(b
,file
,yyscanner
);
4780 /** Destroy the buffer.
4781 * @param b a buffer created with yy_create_buffer()
4782 * @param yyscanner The scanner object.
4784 void yy_delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
4786 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4791 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
4792 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
4794 if ( b
->yy_is_our_buffer
)
4795 yyfree((void *) b
->yy_ch_buf
,yyscanner
);
4797 yyfree((void *) b
,yyscanner
);
4800 /* Initializes or reinitializes a buffer.
4801 * This function is sometimes called more than once on the same buffer,
4802 * such as during a yyrestart() or at EOF.
4804 static void yy_init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
4808 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4810 yy_flush_buffer(b
,yyscanner
);
4812 b
->yy_input_file
= file
;
4813 b
->yy_fill_buffer
= 1;
4815 /* If b is the current buffer, then yy_init_buffer was _probably_
4816 * called from yyrestart() or through yy_get_next_buffer.
4817 * In that case, we don't want to reset the lineno or column.
4819 if (b
!= YY_CURRENT_BUFFER
){
4820 b
->yy_bs_lineno
= 1;
4821 b
->yy_bs_column
= 0;
4824 b
->yy_is_interactive
= 0;
4829 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4830 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4831 * @param yyscanner The scanner object.
4833 void yy_flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
4835 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4841 /* We always need two end-of-buffer characters. The first causes
4842 * a transition to the end-of-buffer state. The second causes
4843 * a jam in that state.
4845 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
4846 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
4848 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
4851 b
->yy_buffer_status
= YY_BUFFER_NEW
;
4853 if ( b
== YY_CURRENT_BUFFER
)
4854 yy_load_buffer_state(yyscanner
);
4857 /** Pushes the new state onto the stack. The new state becomes
4858 * the current state. This function will allocate the stack
4860 * @param new_buffer The new state.
4861 * @param yyscanner The scanner object.
4863 void yypush_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
4865 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4866 if (new_buffer
== NULL
)
4869 yyensure_buffer_stack(yyscanner
);
4871 /* This block is copied from yy_switch_to_buffer. */
4872 if ( YY_CURRENT_BUFFER
)
4874 /* Flush out information for old buffer. */
4875 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
4876 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
4877 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
4880 /* Only push if top exists. Otherwise, replace top. */
4881 if (YY_CURRENT_BUFFER
)
4882 yyg
->yy_buffer_stack_top
++;
4883 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
4885 /* copied from yy_switch_to_buffer. */
4886 yy_load_buffer_state(yyscanner
);
4887 yyg
->yy_did_buffer_switch_on_eof
= 1;
4890 /** Removes and deletes the top of the stack, if present.
4891 * The next element becomes the new top.
4892 * @param yyscanner The scanner object.
4894 void yypop_buffer_state (yyscan_t yyscanner
)
4896 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4897 if (!YY_CURRENT_BUFFER
)
4900 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
4901 YY_CURRENT_BUFFER_LVALUE
= NULL
;
4902 if (yyg
->yy_buffer_stack_top
> 0)
4903 --yyg
->yy_buffer_stack_top
;
4905 if (YY_CURRENT_BUFFER
) {
4906 yy_load_buffer_state(yyscanner
);
4907 yyg
->yy_did_buffer_switch_on_eof
= 1;
4911 /* Allocates the stack if it does not exist.
4912 * Guarantees space for at least one push.
4914 static void yyensure_buffer_stack (yyscan_t yyscanner
)
4917 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
4919 if (!yyg
->yy_buffer_stack
) {
4921 /* First allocation is just for 2 elements, since we don't know if this
4922 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4923 * immediate realloc on the next call.
4926 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)yyalloc
4927 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
4929 if ( ! yyg
->yy_buffer_stack
)
4930 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4932 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
4934 yyg
->yy_buffer_stack_max
= num_to_alloc
;
4935 yyg
->yy_buffer_stack_top
= 0;
4939 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
4941 /* Increase the buffer to prepare for a possible push. */
4942 int grow_size
= 8 /* arbitrary grow size */;
4944 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
4945 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)yyrealloc
4946 (yyg
->yy_buffer_stack
,
4947 num_to_alloc
* sizeof(struct yy_buffer_state
*)
4949 if ( ! yyg
->yy_buffer_stack
)
4950 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4952 /* zero only the new slots.*/
4953 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
4954 yyg
->yy_buffer_stack_max
= num_to_alloc
;
4958 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4959 * @param base the character buffer
4960 * @param size the size in bytes of the character buffer
4961 * @param yyscanner The scanner object.
4962 * @return the newly allocated buffer state object.
4964 YY_BUFFER_STATE
yy_scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
4969 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
4970 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
4971 /* They forgot to leave room for the EOB's. */
4974 b
= (YY_BUFFER_STATE
) yyalloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
4976 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4978 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
4979 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
4980 b
->yy_is_our_buffer
= 0;
4981 b
->yy_input_file
= 0;
4982 b
->yy_n_chars
= b
->yy_buf_size
;
4983 b
->yy_is_interactive
= 0;
4985 b
->yy_fill_buffer
= 0;
4986 b
->yy_buffer_status
= YY_BUFFER_NEW
;
4988 yy_switch_to_buffer(b
,yyscanner
);
4993 /** Setup the input buffer state to scan a string. The next call to yylex() will
4994 * scan from a @e copy of @a str.
4995 * @param yystr a NUL-terminated string to scan
4996 * @param yyscanner The scanner object.
4997 * @return the newly allocated buffer state object.
4998 * @note If you want to scan bytes that may contain NUL values, then use
4999 * yy_scan_bytes() instead.
5001 YY_BUFFER_STATE
yy_scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
5004 return yy_scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
5007 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5008 * scan from a @e copy of @a bytes.
5009 * @param bytes the byte buffer to scan
5010 * @param len the number of bytes in the buffer pointed to by @a bytes.
5011 * @param yyscanner The scanner object.
5012 * @return the newly allocated buffer state object.
5014 YY_BUFFER_STATE
yy_scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
5021 /* Get memory for full buffer, including space for trailing EOB's. */
5022 n
= _yybytes_len
+ 2;
5023 buf
= (char *) yyalloc(n
,yyscanner
);
5025 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5027 for ( i
= 0; i
< _yybytes_len
; ++i
)
5028 buf
[i
] = yybytes
[i
];
5030 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
5032 b
= yy_scan_buffer(buf
,n
,yyscanner
);
5034 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5036 /* It's okay to grow etc. this buffer, and we should throw it
5037 * away when we're done.
5039 b
->yy_is_our_buffer
= 1;
5044 static void yy_push_state (int new_state
, yyscan_t yyscanner
)
5046 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5047 if ( yyg
->yy_start_stack_ptr
>= yyg
->yy_start_stack_depth
)
5051 yyg
->yy_start_stack_depth
+= YY_START_STACK_INCR
;
5052 new_size
= yyg
->yy_start_stack_depth
* sizeof( int );
5054 if ( ! yyg
->yy_start_stack
)
5055 yyg
->yy_start_stack
= (int *) yyalloc(new_size
,yyscanner
);
5058 yyg
->yy_start_stack
= (int *) yyrealloc((void *) yyg
->yy_start_stack
,new_size
,yyscanner
);
5060 if ( ! yyg
->yy_start_stack
)
5061 YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
5064 yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
++] = YY_START
;
5069 static void yy_pop_state (yyscan_t yyscanner
)
5071 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5072 if ( --yyg
->yy_start_stack_ptr
< 0 )
5073 YY_FATAL_ERROR( "start-condition stack underflow" );
5075 BEGIN(yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
]);
5078 static int yy_top_state (yyscan_t yyscanner
)
5080 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5081 return yyg
->yy_start_stack
[yyg
->yy_start_stack_ptr
- 1];
5084 #ifndef YY_EXIT_FAILURE
5085 #define YY_EXIT_FAILURE 2
5088 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
5090 (void) fprintf( stderr
, "%s\n", msg
);
5091 exit( YY_EXIT_FAILURE
);
5094 /* Redefine yyless() so it works in section 3 code. */
5100 /* Undo effects of setting up yytext. */ \
5101 int yyless_macro_arg = (n); \
5102 YY_LESS_LINENO(yyless_macro_arg);\
5103 yytext[yyleng] = yyg->yy_hold_char; \
5104 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5105 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5106 *yyg->yy_c_buf_p = '\0'; \
5107 yyleng = yyless_macro_arg; \
5111 /* Accessor methods (get/set functions) to struct members. */
5113 /** Get the user-defined data for this scanner.
5114 * @param yyscanner The scanner object.
5116 YY_EXTRA_TYPE
yyget_extra (yyscan_t yyscanner
)
5118 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5122 /** Get the current line number.
5123 * @param yyscanner The scanner object.
5125 int yyget_lineno (yyscan_t yyscanner
)
5127 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5129 if (! YY_CURRENT_BUFFER
)
5135 /** Get the current column number.
5136 * @param yyscanner The scanner object.
5138 int yyget_column (yyscan_t yyscanner
)
5140 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5142 if (! YY_CURRENT_BUFFER
)
5148 /** Get the input stream.
5149 * @param yyscanner The scanner object.
5151 FILE *yyget_in (yyscan_t yyscanner
)
5153 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5157 /** Get the output stream.
5158 * @param yyscanner The scanner object.
5160 FILE *yyget_out (yyscan_t yyscanner
)
5162 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5166 /** Get the length of the current token.
5167 * @param yyscanner The scanner object.
5169 int yyget_leng (yyscan_t yyscanner
)
5171 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5175 /** Get the current token.
5176 * @param yyscanner The scanner object.
5179 char *yyget_text (yyscan_t yyscanner
)
5181 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5185 /** Set the user-defined data. This data is never touched by the scanner.
5186 * @param user_defined The data to be associated with this scanner.
5187 * @param yyscanner The scanner object.
5189 void yyset_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
5191 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5192 yyextra
= user_defined
;
5195 /** Set the current line number.
5196 * @param line_number
5197 * @param yyscanner The scanner object.
5199 void yyset_lineno (int line_number
, yyscan_t yyscanner
)
5201 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5203 /* lineno is only valid if an input buffer exists. */
5204 if (! YY_CURRENT_BUFFER
)
5205 yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner
);
5207 yylineno
= line_number
;
5210 /** Set the current column.
5211 * @param line_number
5212 * @param yyscanner The scanner object.
5214 void yyset_column (int column_no
, yyscan_t yyscanner
)
5216 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5218 /* column is only valid if an input buffer exists. */
5219 if (! YY_CURRENT_BUFFER
)
5220 yy_fatal_error( "yyset_column called with no buffer" , yyscanner
);
5222 yycolumn
= column_no
;
5225 /** Set the input stream. This does not discard the current
5227 * @param in_str A readable stream.
5228 * @param yyscanner The scanner object.
5229 * @see yy_switch_to_buffer
5231 void yyset_in (FILE * in_str
, yyscan_t yyscanner
)
5233 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5237 void yyset_out (FILE * out_str
, yyscan_t yyscanner
)
5239 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5243 int yyget_debug (yyscan_t yyscanner
)
5245 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5246 return yy_flex_debug
;
5249 void yyset_debug (int bdebug
, yyscan_t yyscanner
)
5251 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5252 yy_flex_debug
= bdebug
;
5255 /* Accessor methods for yylval and yylloc */
5257 /* User-visible API */
5259 /* yylex_init is special because it creates the scanner itself, so it is
5260 * the ONLY reentrant function that doesn't take the scanner as the last argument.
5261 * That's why we explicitly handle the declaration, instead of using our macros.
5264 int yylex_init(yyscan_t
* ptr_yy_globals
)
5267 if (ptr_yy_globals
== NULL
){
5272 *ptr_yy_globals
= (yyscan_t
) yyalloc ( sizeof( struct yyguts_t
), NULL
);
5274 if (*ptr_yy_globals
== NULL
){
5279 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5280 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
5282 return yy_init_globals ( *ptr_yy_globals
);
5285 /* yylex_init_extra has the same functionality as yylex_init, but follows the
5286 * convention of taking the scanner as the last argument. Note however, that
5287 * this is a *pointer* to a scanner, as it will be allocated by this call (and
5288 * is the reason, too, why this function also must handle its own declaration).
5289 * The user defined value in the first argument will be available to yyalloc in
5290 * the yyextra field.
5293 int yylex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
5296 struct yyguts_t dummy_yyguts
;
5298 yyset_extra (yy_user_defined
, &dummy_yyguts
);
5300 if (ptr_yy_globals
== NULL
){
5305 *ptr_yy_globals
= (yyscan_t
) yyalloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
5307 if (*ptr_yy_globals
== NULL
){
5312 /* By setting to 0xAA, we expose bugs in
5313 yy_init_globals. Leave at 0x00 for releases. */
5314 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
5316 yyset_extra (yy_user_defined
, *ptr_yy_globals
);
5318 return yy_init_globals ( *ptr_yy_globals
);
5321 static int yy_init_globals (yyscan_t yyscanner
)
5323 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5324 /* Initialization is the same as for the non-reentrant scanner.
5325 * This function is called from yylex_destroy(), so don't allocate here.
5328 yyg
->yy_buffer_stack
= 0;
5329 yyg
->yy_buffer_stack_top
= 0;
5330 yyg
->yy_buffer_stack_max
= 0;
5331 yyg
->yy_c_buf_p
= (char *) 0;
5335 yyg
->yy_start_stack_ptr
= 0;
5336 yyg
->yy_start_stack_depth
= 0;
5337 yyg
->yy_start_stack
= NULL
;
5339 /* Defined in main.c */
5348 /* For future reference: Set errno on error, since we are called by
5354 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5355 int yylex_destroy (yyscan_t yyscanner
)
5357 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
5359 /* Pop the buffer stack, destroying each element. */
5360 while(YY_CURRENT_BUFFER
){
5361 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
5362 YY_CURRENT_BUFFER_LVALUE
= NULL
;
5363 yypop_buffer_state(yyscanner
);
5366 /* Destroy the stack itself. */
5367 yyfree(yyg
->yy_buffer_stack
,yyscanner
);
5368 yyg
->yy_buffer_stack
= NULL
;
5370 /* Destroy the start condition stack. */
5371 yyfree(yyg
->yy_start_stack
,yyscanner
);
5372 yyg
->yy_start_stack
= NULL
;
5374 /* Reset the globals. This is important in a non-reentrant scanner so the next time
5375 * yylex() is called, initialization will occur. */
5376 yy_init_globals( yyscanner
);
5378 /* Destroy the main struct (reentrant only). */
5379 yyfree ( yyscanner
, yyscanner
);
5385 * Internal utility routines.
5389 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
5392 for ( i
= 0; i
< n
; ++i
)
5397 #ifdef YY_NEED_STRLEN
5398 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
5401 for ( n
= 0; s
[n
]; ++n
)
5408 void *yyalloc (yy_size_t size
, yyscan_t yyscanner
)
5410 return (void *) malloc( size
);
5413 void *yyrealloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
5415 /* The cast to (char *) in the following accommodates both
5416 * implementations that use char* generic pointers, and those
5417 * that use void* generic pointers. It works with the latter
5418 * because both ANSI C and C++ allow castless assignment from
5419 * any pointer type to void*, and deal with argument conversions
5420 * as though doing an assignment.
5422 return (void *) realloc( (char *) ptr
, size
);
5425 void yyfree (void * ptr
, yyscan_t yyscanner
)
5427 free( (char *) ptr
); /* see yyrealloc() for (char *) cast */
5430 #define YYTABLES_NAME "yytables"
5432 #line 745 "compilers/imcc/imcc.l"
5440 int yywrap(void* yyscanner
) {
5441 /* Add code here to open next source file and start scanning
5442 * yywrap returns 0 if scanning is to continue */
5443 Interp
* const interp
= yyget_extra(yyscanner
);
5444 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5447 fprintf(stderr
, "Argh, interp not found\n");
5451 yy_delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
5454 if (IMCC_INFO(interp
)->frames
->s
.next
) {
5455 pop_parser_state(IMCC_INFO(interp
)->frames
->s
.interp
, yyscanner
);
5456 if (YYSTATE
== INITIAL
|| YYSTATE
== emit
)
5457 BEGIN(IMCC_INFO(interp
)->frames
->s
.pasm_file
? emit
: INITIAL
);
5464 static macro_frame_t
*
5465 new_frame(PARROT_INTERP
) {
5466 static int label
= 0;
5467 macro_frame_t
* const tmp
= mem_allocate_zeroed_typed(macro_frame_t
);
5469 tmp
->label
= ++label
;
5470 tmp
->s
.line
= IMCC_INFO(interp
)->line
;
5471 tmp
->s
.handle
= NULL
;
5473 if (IMCC_INFO(interp
)->frames
) {
5474 tmp
->s
.pasm_file
= IMCC_INFO(interp
)->frames
->s
.pasm_file
;
5475 tmp
->s
.file
= IMCC_INFO(interp
)->frames
->s
.file
;
5476 tmp
->s
.pragmas
= IMCC_INFO(interp
)->frames
->s
.pragmas
;
5479 tmp
->s
.interp
= interp
;
5485 scan_string(macro_frame_t
*frame
, ARGIN(const char *expansion
), void *yyscanner
)
5487 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5488 Interp
* const interp
= yyget_extra(yyscanner
);
5490 frame
->buffer
= YY_CURRENT_BUFFER
;
5491 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5492 IMCC_INFO(interp
)->frames
= frame
;
5494 yy_scan_string(expansion
,yyscanner
);
5498 destroy_frame(struct macro_frame_t
*frame
, void *yyscanner
)
5500 YY_BUFFER_STATE buffer
= frame
->buffer
;
5505 for (i
= 0; i
< frame
->expansion
.num_param
; i
++) {
5506 mem_sys_free(frame
->expansion
.name
[i
]);
5507 frame
->expansion
.name
[i
] = NULL
;
5510 if (frame
->heredoc_rest
) {
5511 mem_sys_free(frame
->heredoc_rest
);
5512 frame
->heredoc_rest
= NULL
;
5514 ret
= frame
->s
.line
;
5516 /* RT #42383 if frame->s.file was allocated free it */
5517 mem_sys_free(frame
);
5520 yy_switch_to_buffer(buffer
,yyscanner
);
5526 yylex_skip(YYSTYPE
*valp
, PARROT_INTERP
, const char *skip
, void *yyscanner
)
5530 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5533 c
= yylex(valp
,yyscanner
,interp
);
5536 while (*p
&& c
!= *p
)
5539 } while (*p
!= '\0');
5542 DUP_AND_RET_FREE(valp
, c
);
5548 read_braced(YYSTYPE
*valp
, PARROT_INTERP
, const char *macro_name
,
5549 char *current
, void *yyscanner
)
5552 size_t len
= strlen(current
);
5553 int c
= yylex(&val
,yyscanner
,interp
);
5556 while (c
!= '}' || count
> 0) {
5564 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5565 "End of file reached while reading arguments in '%s'",
5568 len
+= strlen(val
.s
);
5569 current
= (char *)realloc(current
, len
+ 1);
5570 strcat(current
,val
.s
);
5572 mem_sys_free(val
.s
);
5574 c
= yylex(&val
,yyscanner
,interp
);
5580 mem_sys_free(val
.s
);
5586 read_params(YYSTYPE
*valp
, PARROT_INTERP
, params_t
*params
,
5587 ARGIN(const char *macro_name
), int need_id
, void *yyscanner
)
5591 char *current
= str_dup("");
5592 yyguts_t
*yyg
= (yyguts_t
*)yyscanner
;
5593 int c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5595 params
->num_param
= 0;
5597 /* See http://rt.perl.org/rt3/Ticket/Display.html?id=50920 for the saga of this bug. */
5598 /* For some reason, we have to use a dupe of the macro name to pass in to */
5599 /* read_params, or we get a segfault. XXX Make it stop. */
5600 macro_name
= str_dup(macro_name
);
5603 if (YYSTATE
== heredoc2
)
5604 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5605 "Heredoc in macro '%s' not allowed", macro_name
);
5608 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5609 "End of file reached while reading arguments in '%s'",
5611 else if (c
== ',') {
5612 if (params
->num_param
== MAX_PARAM
)
5613 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5614 "More then %d params in '%s'",
5615 MAX_PARAM
, macro_name
);
5617 params
->name
[params
->num_param
++] = current
;
5618 current
= str_dup("");
5621 c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5623 else if (need_id
&& (*current
|| c
!= IDENTIFIER
) && c
!= ' ') {
5624 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5625 "Parameter definition in '%s' must be IDENTIFIER",
5628 else if (c
== '{') {
5629 current
= read_braced(&val
, interp
, macro_name
, current
, yyscanner
);
5630 c
= yylex_skip(&val
, interp
, " \n", yyscanner
);
5631 len
= strlen(current
);
5634 if (!need_id
|| c
!= ' ') {
5635 len
+= strlen(val
.s
);
5636 current
= (char *)realloc(current
, len
+ 1);
5637 strcat(current
, val
.s
);
5640 mem_sys_free(val
.s
);
5642 c
= yylex(&val
,yyscanner
,interp
);
5646 params
->name
[params
->num_param
++] = current
;
5651 mem_sys_free(val
.s
);
5657 read_macro(YYSTYPE
*valp
, PARROT_INTERP
, void *yyscanner
)
5661 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5662 int start_cond
= YY_START
;
5663 int buffer_size
= 0;
5664 int buffer_used
= 0;
5668 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
5670 if (c
!= IDENTIFIER
)
5671 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
, "Macro names must be identifiers");
5673 IMCC_INFO(interp
)->cur_macro_name
= valp
->s
;
5674 start_line
= IMCC_INFO(interp
)->line
++;
5676 memset(¶ms
, 0, sizeof (params_t
));
5678 /* white space is allowed between macro and opening paren) */
5679 c
= yylex_skip(valp
, interp
, " ", yyscanner
);
5682 mem_sys_free(valp
->s
);
5685 c
= read_params(NULL
, interp
, ¶ms
,
5686 IMCC_INFO(interp
)->cur_macro_name
, 1, yyscanner
);
5688 c
= yylex(valp
,yyscanner
,interp
);
5695 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5696 "File ended before macro '%s' was complete",
5697 IMCC_INFO(interp
)->cur_macro_name
);
5699 PARROT_ASSERT(valp
->s
);
5700 elem_len
= strlen(valp
->s
);
5703 if (buffer_used
+ elem_len
> buffer_size
) {
5704 buffer_size
+= elem_len
;
5707 IMCC_INFO(interp
)->macro_buffer
=
5708 (char *)mem_sys_realloc(IMCC_INFO(interp
)->macro_buffer
,
5713 buffer_size
= (elem_len
<< 1) > 1024 ? elem_len
<< 1 : 1024;
5715 IMCC_INFO(interp
)->macro_buffer
=
5716 (char *)mem_sys_allocate_zeroed(buffer_size
);
5718 strcat(IMCC_INFO(interp
)->macro_buffer
, valp
->s
);
5719 buffer_used
+= elem_len
;
5720 mem_sys_free(valp
->s
);
5723 c
= yylex(valp
,yyscanner
,interp
);
5726 mem_sys_free(valp
->s
);
5731 define_macro(interp
, IMCC_INFO(interp
)->cur_macro_name
,
5732 ¶ms
, IMCC_INFO(interp
)->macro_buffer
, start_line
);
5734 mem_sys_free(IMCC_INFO(interp
)->macro_buffer
);
5735 IMCC_INFO(interp
)->macro_buffer
= NULL
;
5736 IMCC_INFO(interp
)->cur_macro_name
= NULL
;
5742 find_macro_param(PARROT_INTERP
, const char *name
)
5746 for (f
= IMCC_INFO(interp
)->frames
; f
; f
= (macro_frame_t
*)f
->s
.next
) {
5749 for (i
= 0; i
< f
->params
->num_param
; i
++) {
5750 if (STREQ(f
->params
->name
[i
], name
))
5751 return f
->expansion
.name
[i
];
5760 define_macro(PARROT_INTERP
, ARGIN(const char *name
), ARGIN(const params_t
*params
),
5761 ARGIN(const char *expansion
), int start_line
)
5763 macro_t
*m
= find_macro(interp
, name
);
5766 mem_sys_free(m
->expansion
);
5767 m
->expansion
= NULL
;
5770 m
= mem_allocate_zeroed_typed(macro_t
);
5772 if (!IMCC_INFO(interp
)->macros
)
5773 parrot_new_cstring_hash(interp
, &IMCC_INFO(interp
)->macros
);
5774 parrot_hash_put(interp
, IMCC_INFO(interp
)->macros
, str_dup(name
), m
);
5778 m
->params
= *params
;
5780 memset(&m
->params
, 0, sizeof (params_t
));
5782 m
->expansion
= str_dup(expansion
);
5783 m
->line
= start_line
;
5787 find_macro(PARROT_INTERP
, const char *name
)
5789 if (!IMCC_INFO(interp
)->macros
)
5792 return (macro_t
*)parrot_hash_get(interp
, IMCC_INFO(interp
)->macros
, name
);
5796 expand_macro(PARROT_INTERP
, ARGIN(const char *name
), void *yyscanner
)
5798 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5799 const char * const expansion
= find_macro_param(interp
, name
);
5803 macro_frame_t
* const frame
= new_frame(interp
);
5805 /* When an error occurs, then report it as being in a macro */
5806 frame
->is_macro
= 1;
5807 scan_string(frame
, expansion
, yyscanner
);
5811 m
= find_macro(interp
, name
);
5815 macro_frame_t
* const frame
= new_frame(interp
);
5816 frame
->params
= &m
->params
;
5818 /* When an error occurs, then report it as being in a macro */
5819 frame
->is_macro
= 1;
5821 /* remember macro name for error reporting
5822 RT #42384 check that all the .file text is malloced / freed */
5823 frame
->s
.file
= str_dup(name
);
5825 /* whitespace can be safely ignored */
5828 c
= yyinput(yyscanner
);
5830 c
= input(yyscanner
);
5832 } while (c
== ' ' || c
== '\t');
5835 if (m
->params
.num_param
!= 0)
5836 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5837 "Macro '%s' needs %d arguments",
5838 name
, m
->params
.num_param
);
5840 scan_string(frame
, m
->expansion
, yyscanner
);
5844 start_cond
= YY_START
;
5847 read_params(NULL
, interp
, &frame
->expansion
, name
, 0, yyscanner
);
5851 if (frame
->expansion
.num_param
== 0 && m
->params
.num_param
== 1) {
5852 frame
->expansion
.name
[0] = str_dup("");
5853 frame
->expansion
.num_param
= 1;
5856 if (frame
->expansion
.num_param
!= m
->params
.num_param
) {
5857 IMCC_fataly(interp
, EXCEPTION_SYNTAX_ERROR
,
5858 "Macro '%s' requires %d arguments, but %d given",
5859 name
, m
->params
.num_param
, frame
->expansion
.num_param
);
5862 /* expand arguments */
5863 for (i
= 0; i
< frame
->expansion
.num_param
; i
++) {
5864 char * const current
= frame
->expansion
.name
[i
];
5866 /* parameter of outer macro */
5867 if (current
[0] == '.') {
5868 const char * const s
= find_macro_param(interp
, current
+ 1);
5871 frame
->expansion
.name
[i
] = str_dup(s
);
5872 mem_sys_free(current
);
5877 const size_t len
= strlen(current
);
5878 if (len
&& (current
[len
- 1] == '$')) { /* local label */
5879 const size_t slen
= len
+ 10;
5880 char * const s
= (char *)mem_sys_allocate(slen
);
5882 current
[len
- 1] = '\0';
5884 snprintf(s
, slen
, "%s%d", current
, IMCC_INFO(interp
)->frames
->label
);
5886 frame
->expansion
.name
[i
] = s
;
5887 mem_sys_free(current
);
5892 IMCC_INFO(interp
)->line
= m
->line
;
5893 scan_string(frame
, m
->expansion
, yyscanner
);
5901 include_file(PARROT_INTERP
, char *file_name
, void *yyscanner
)
5903 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5904 macro_frame_t
* const frame
= new_frame(interp
);
5905 char *s
= Parrot_locate_runtime_file(interp
, file_name
,
5906 PARROT_RUNTIME_FT_INCLUDE
);
5910 if (!s
|| !(file
= fopen(s
, "r")))
5911 IMCC_fataly(interp
, EXCEPTION_PIO_ERROR
, strerror(errno
));
5914 frame
->s
.file
= file_name
;
5915 frame
->s
.handle
= file
;
5916 ext
= strrchr(file_name
, '.');
5919 if (STREQ(ext
, ".pasm")) {
5920 frame
->s
.pasm_file
= 1;
5923 else if (STREQ(ext
, ".pir")) {
5924 frame
->s
.pasm_file
= 0;
5929 scan_file(interp
, frame
, file
, yyscanner
);
5933 scan_file(PARROT_INTERP
, macro_frame_t
*frame
, FILE *file
, void *yyscanner
)
5935 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5936 frame
->buffer
= YY_CURRENT_BUFFER
;
5937 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5938 IMCC_INFO(interp
)->frames
= frame
;
5939 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5941 IMCC_INFO(interp
)->line
= 1;
5943 yy_switch_to_buffer(yy_create_buffer(file
,YY_BUF_SIZE
,yyscanner
),yyscanner
);
5947 IMCC_push_parser_state(PARROT_INTERP
)
5949 macro_frame_t
* const frame
= new_frame(interp
);
5950 frame
->s
.next
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5951 IMCC_INFO(interp
)->frames
= frame
;
5952 frame
->s
.line
= IMCC_INFO(interp
)->line
5954 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5958 pop_parser_state(PARROT_INTERP
, void *yyscanner
)
5960 macro_frame_t
* const tmp
= IMCC_INFO(interp
)->frames
;
5964 fclose(tmp
->s
.handle
);
5966 IMCC_INFO(interp
)->frames
=
5967 (macro_frame_t
*)IMCC_INFO(interp
)->frames
->s
.next
;
5969 l
= destroy_frame(tmp
, yyscanner
);
5972 IMCC_INFO(interp
)->line
= l
;
5975 IMCC_INFO(interp
)->state
= (parser_state_t
*)IMCC_INFO(interp
)->frames
;
5979 IMCC_pop_parser_state(PARROT_INTERP
, void *yyscanner
)
5981 pop_parser_state(interp
, yyscanner
);
5985 compile_file(PARROT_INTERP
, FILE *file
, void *yyscanner
)
5987 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
5988 YY_BUFFER_STATE buffer
;
5990 IMCC_INFO(interp
)->frames
->s
.next
= NULL
;
5991 buffer
= YY_CURRENT_BUFFER
;
5993 yy_switch_to_buffer(yy_create_buffer(file
,YY_BUF_SIZE
,yyscanner
),yyscanner
);
5995 emit_open(interp
, 1, NULL
);
5997 IMCC_TRY(IMCC_INFO(interp
)->jump_buf
, IMCC_INFO(interp
)->error_code
) {
5998 yyparse(yyscanner
, interp
);
5999 imc_compile_all_units(interp
);
6002 IMCC_CATCH(IMCC_FATAL_EXCEPTION
) {
6003 IMCC_INFO(interp
)->error_code
= IMCC_FATAL_EXCEPTION
;
6006 IMCC_CATCH(IMCC_FATALY_EXCEPTION
) {
6007 IMCC_INFO(interp
)->error_code
= IMCC_FATALY_EXCEPTION
;
6013 yy_switch_to_buffer(buffer
,yyscanner
);
6017 compile_string(PARROT_INTERP
, const char *s
, void *yyscanner
)
6019 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
6020 YY_BUFFER_STATE buffer
;
6022 IMCC_INFO(interp
)->frames
->s
.next
= NULL
;
6023 buffer
= YY_CURRENT_BUFFER
;
6025 yy_scan_string(s
,yyscanner
);
6026 emit_open(interp
, 1, NULL
);
6028 IMCC_TRY(IMCC_INFO(interp
)->jump_buf
, IMCC_INFO(interp
)->error_code
) {
6029 yyparse(yyscanner
, interp
);
6030 imc_compile_all_units(interp
);
6033 IMCC_CATCH(IMCC_FATAL_EXCEPTION
) {
6034 IMCC_INFO(interp
)->error_code
= IMCC_FATAL_EXCEPTION
;
6037 IMCC_CATCH(IMCC_FATALY_EXCEPTION
) {
6038 IMCC_INFO(interp
)->error_code
= IMCC_FATALY_EXCEPTION
;
6044 yy_switch_to_buffer(buffer
,yyscanner
);
6048 IMCC_print_inc(PARROT_INTERP
)
6051 const char *old
= IMCC_INFO(interp
)->frames
->s
.file
;
6053 if (IMCC_INFO(interp
)->frames
&& IMCC_INFO(interp
)->frames
->is_macro
)
6054 fprintf(stderr
, "\n\tin macro '.%s' line %d\n",
6055 IMCC_INFO(interp
)->frames
->s
.file
, IMCC_INFO(interp
)->line
);
6057 fprintf(stderr
, "\n\tin file '%s' line %d\n",
6058 IMCC_INFO(interp
)->frames
->s
.file
, IMCC_INFO(interp
)->line
);
6061 for (f
= IMCC_INFO(interp
)->frames
; f
; f
= (macro_frame_t
*)f
->s
.next
) {
6062 if (!STREQ(f
->s
.file
, old
)) {
6063 fprintf(stderr
, "\tincluded from '%s' line %d\n",
6064 f
->s
.file
, f
->s
.line
);
6071 /* Functions to set and get yyin, as we can't decorate it for export
6072 (since it is defined in a file generated by yacc/bison). */
6073 FILE* imc_yyin_set(FILE* new_yyin
, void *yyscanner
)
6075 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
6076 yyg
->yyin_r
= new_yyin
;
6081 FILE* imc_yyin_get(void *yyscanner
)
6083 const yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
6087 /* return true if scanner is at EOF */
6088 int at_eof(yyscan_t yyscanner
)
6090 yyguts_t
* const yyg
= (yyguts_t
*)yyscanner
;
6091 return yyg
->yy_hold_char
== '\0';
6096 * c-file-style: "parrot"
6098 * vim: expandtab shiftwidth=4: