2 /* A lexical scanner generated by flex */
4 /* Scanner skeleton version:
5 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
16 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
29 /* Use prototypes in function declarations. */
32 /* The "const" storage-class-modifier is valid. */
35 #else /* ! __cplusplus */
43 #endif /* ! __cplusplus */
62 #define YY_PROTO(proto) proto
64 #define YY_PROTO(proto) ()
67 /* Returned upon end-of-file. */
70 /* Promotes a possibly negative, possibly signed char to an unsigned
71 * integer for use as an array index. If the signed char is negative,
72 * we want to instead treat it as an 8-bit unsigned char, hence the
75 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
77 /* Enter a start condition. This macro really ought to take a parameter,
78 * but we do it the disgusting crufty way forced on us by the ()-less
79 * definition of BEGIN.
81 #define BEGIN yy_start = 1 + 2 *
83 /* Translate the current start state into a value that can be later handed
84 * to BEGIN to return to the state. The YYSTATE alias is for lex
87 #define YY_START ((yy_start - 1) / 2)
88 #define YYSTATE YY_START
90 /* Action number for EOF rule of a given start state. */
91 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
93 /* Special action meaning "start processing a new file". */
94 #define YY_NEW_FILE yyrestart( yyin )
96 #define YY_END_OF_BUFFER_CHAR 0
98 /* Size of default input buffer. */
99 #define YY_BUF_SIZE 16384
101 typedef struct yy_buffer_state *YY_BUFFER_STATE;
104 extern FILE *yyin, *yyout;
106 #define EOB_ACT_CONTINUE_SCAN 0
107 #define EOB_ACT_END_OF_FILE 1
108 #define EOB_ACT_LAST_MATCH 2
110 /* The funky do-while in the following #define is used to turn the definition
111 * int a single C statement (which needs a semi-colon terminator). This
112 * avoids problems with code like:
114 * if ( condition_holds )
117 * do_something_else();
119 * Prior to using the do-while the compiler would get upset at the
120 * "else" because it interpreted the "if" statement as being all
121 * done when it reached the ';' after the yyless() call.
124 /* Return all but the first 'n' matched characters back to the input stream. */
129 /* Undo effects of setting up yytext. */ \
130 *yy_cp = yy_hold_char; \
131 YY_RESTORE_YY_MORE_OFFSET \
132 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
133 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
137 #define unput(c) yyunput( c, yytext_ptr )
139 /* The following is because we cannot portably get our hands on size_t
140 * (without autoconf's help, which isn't available because we want
141 * flex-generated scanners to compile on their own).
143 typedef unsigned int yy_size_t;
146 struct yy_buffer_state
150 char *yy_ch_buf; /* input buffer */
151 char *yy_buf_pos; /* current position in input buffer */
153 /* Size of input buffer in bytes, not including room for EOB
156 yy_size_t yy_buf_size;
158 /* Number of characters read into yy_ch_buf, not including EOB
163 /* Whether we "own" the buffer - i.e., we know we created it,
164 * and can realloc() it to grow it, and should free() it to
167 int yy_is_our_buffer;
169 /* Whether this is an "interactive" input source; if so, and
170 * if we're using stdio for input, then we want to use getc()
171 * instead of fread(), to make sure we stop fetching input after
174 int yy_is_interactive;
176 /* Whether we're considered to be at the beginning of a line.
177 * If so, '^' rules will be active on the next match, otherwise
182 /* Whether to try to fill the input buffer when we reach the
187 int yy_buffer_status;
188 #define YY_BUFFER_NEW 0
189 #define YY_BUFFER_NORMAL 1
190 /* When an EOF's been seen but there's still some text to process
191 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
192 * shouldn't try reading from the input source any more. We might
193 * still have a bunch of tokens to match, though, because of
194 * possible backing-up.
196 * When we actually see the EOF, we change the status to "new"
197 * (via yyrestart()), so that the user can continue scanning by
198 * just pointing yyin at a new input file.
200 #define YY_BUFFER_EOF_PENDING 2
203 static YY_BUFFER_STATE yy_current_buffer = 0;
205 /* We provide macros for accessing buffer states in case in the
206 * future we want to put the buffer states in a more general
209 #define YY_CURRENT_BUFFER yy_current_buffer
212 /* yy_hold_char holds the character lost when yytext is formed. */
213 static char yy_hold_char;
215 static int yy_n_chars; /* number of characters read into yy_ch_buf */
220 /* Points to current character in buffer. */
221 static char *yy_c_buf_p = (char *) 0;
222 static int yy_init = 1; /* whether we need to initialize */
223 static int yy_start = 0; /* start state number */
225 /* Flag which is used to allow yywrap()'s to do buffer switches
226 * instead of setting up a fresh yyin. A bit of a hack ...
228 static int yy_did_buffer_switch_on_eof;
230 void yyrestart YY_PROTO(( FILE *input_file ));
232 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
233 void yy_load_buffer_state YY_PROTO(( void ));
234 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
235 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
236 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
237 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
238 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
240 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
241 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
242 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
244 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
245 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
246 static void yy_flex_free YY_PROTO(( void * ));
248 #define yy_new_buffer yy_create_buffer
250 #define yy_set_interactive(is_interactive) \
252 if ( ! yy_current_buffer ) \
253 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
254 yy_current_buffer->yy_is_interactive = is_interactive; \
257 #define yy_set_bol(at_bol) \
259 if ( ! yy_current_buffer ) \
260 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
261 yy_current_buffer->yy_at_bol = at_bol; \
264 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
266 typedef unsigned char YY_CHAR;
267 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
268 typedef int yy_state_type;
270 #define yytext_ptr yytext
272 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
273 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
274 static int yy_get_next_buffer YY_PROTO(( void ));
275 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
277 /* Done after the current pattern has been matched and before the
278 * corresponding action - sets up yytext.
280 #define YY_DO_BEFORE_ACTION \
281 yytext_ptr = yy_bp; \
282 yyleng = (int) (yy_cp - yy_bp); \
283 yy_hold_char = *yy_cp; \
287 #define YY_NUM_RULES 165
288 #define YY_END_OF_BUFFER 166
289 static yyconst short int yy_accept[769] =
291 0, 0, 0, 0, 87, 87, 163, 163, 0, 0,
292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 0, 0, 0, 0, 0, 0, 166, 164,
295 7, 18, 164, 16, 1, 17, 164, 164, 164, 164,
296 15, 108, 100, 101, 108, 93, 108, 107, 108, 108,
297 108, 107, 99, 89, 108, 108, 91, 92, 87, 88,
298 87, 86, 85, 86, 86, 163, 163, 28, 29, 28,
299 28, 28, 28, 28, 28, 31, 30, 32, 31, 113,
300 109, 110, 112, 114, 141, 142, 141, 139, 138, 140,
302 115, 117, 115, 116, 115, 120, 120, 120, 120, 122,
303 124, 122, 122, 122, 122, 123, 151, 155, 151, 154,
304 156, 156, 152, 152, 152, 149, 150, 164, 82, 164,
305 21, 22, 21, 20, 157, 159, 157, 160, 161, 147,
306 147, 148, 147, 147, 147, 147, 147, 147, 147, 81,
307 34, 33, 81, 81, 81, 81, 35, 81, 81, 81,
308 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
309 81, 81, 81, 81, 81, 81, 26, 23, 26, 24,
310 7, 18, 0, 16, 1, 17, 0, 0, 0, 14,
311 8, 0, 0, 0, 0, 4, 5, 0, 2, 15,
313 100, 101, 0, 0, 0, 95, 0, 0, 105, 105,
314 0, 162, 162, 162, 94, 0, 99, 89, 0, 0,
315 0, 91, 92, 104, 90, 0, 87, 88, 86, 85,
316 85, 83, 84, 163, 163, 28, 29, 28, 28, 28,
317 28, 31, 30, 32, 111, 112, 142, 138, 117, 0,
318 118, 119, 124, 121, 151, 155, 0, 153, 0, 144,
319 152, 152, 152, 0, 82, 0, 21, 22, 21, 19,
320 157, 159, 158, 147, 147, 147, 148, 143, 147, 147,
321 147, 34, 33, 0, 80, 0, 0, 81, 81, 81,
322 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
324 81, 81, 81, 36, 81, 81, 81, 81, 81, 81,
325 81, 81, 81, 81, 0, 25, 24, 0, 14, 8,
326 0, 12, 0, 0, 0, 0, 0, 4, 5, 0,
327 6, 0, 96, 0, 97, 0, 0, 105, 105, 0,
328 105, 105, 105, 162, 162, 0, 106, 90, 98, 0,
329 104, 0, 83, 84, 28, 28, 28, 27, 28, 0,
330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
331 0, 152, 152, 143, 143, 147, 147, 0, 0, 81,
332 81, 81, 81, 81, 44, 81, 81, 81, 49, 81,
333 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
335 81, 81, 81, 81, 81, 81, 81, 81, 0, 81,
336 81, 81, 81, 0, 0, 0, 12, 0, 0, 0,
337 0, 0, 0, 4, 5, 0, 105, 105, 105, 105,
338 105, 105, 162, 0, 0, 28, 28, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
340 152, 152, 147, 147, 37, 38, 81, 81, 81, 81,
341 81, 81, 81, 81, 50, 51, 81, 81, 81, 55,
342 81, 81, 81, 81, 81, 81, 60, 81, 81, 81,
343 81, 81, 81, 67, 0, 0, 0, 81, 81, 81,
344 81, 0, 13, 0, 0, 0, 0, 0, 0, 105,
346 105, 105, 105, 105, 105, 0, 0, 28, 28, 137,
347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
348 0, 0, 152, 152, 147, 147, 39, 81, 41, 81,
349 43, 81, 81, 81, 47, 81, 52, 81, 81, 81,
350 81, 81, 81, 81, 81, 81, 62, 81, 81, 65,
351 81, 0, 0, 0, 0, 81, 81, 81, 81, 3,
352 0, 0, 0, 0, 105, 105, 105, 0, 0, 28,
353 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 145, 146, 145, 146, 81, 42, 81,
355 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
357 81, 78, 61, 81, 64, 81, 0, 0, 0, 0,
358 81, 81, 69, 70, 0, 10, 0, 11, 0, 103,
359 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 81, 81, 81, 45, 81, 48,
361 81, 81, 81, 81, 77, 81, 59, 63, 66, 0,
362 0, 0, 0, 79, 81, 0, 102, 0, 0, 0,
363 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
364 81, 81, 46, 81, 81, 56, 81, 81, 0, 0,
365 0, 0, 68, 0, 9, 0, 125, 126, 127, 128,
366 129, 130, 131, 132, 133, 134, 135, 0, 81, 81,
368 81, 81, 81, 81, 81, 0, 0, 0, 0, 0,
369 136, 81, 81, 81, 81, 54, 81, 81, 0, 0,
370 0, 0, 0, 0, 81, 81, 81, 53, 81, 58,
371 0, 0, 0, 0, 0, 0, 81, 81, 81, 81,
372 72, 0, 0, 0, 0, 73, 81, 81, 81, 81,
373 71, 0, 75, 0, 81, 81, 81, 74, 76, 81,
374 81, 81, 81, 81, 81, 57, 40, 0
377 static yyconst int yy_ec[256] =
379 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
380 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
382 1, 2, 1, 5, 6, 7, 8, 1, 9, 10,
383 10, 11, 12, 13, 14, 10, 15, 16, 16, 16,
384 16, 16, 16, 16, 17, 18, 19, 20, 1, 21,
385 22, 23, 10, 1, 31, 32, 33, 34, 35, 36,
386 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
387 47, 48, 49, 50, 51, 52, 53, 54, 55, 47,
388 26, 27, 28, 29, 30, 1, 31, 32, 33, 34,
390 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
391 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
392 55, 47, 56, 57, 58, 1, 1, 1, 1, 1,
393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
409 static yyconst int yy_meta[59] =
411 1, 1, 2, 1, 3, 1, 1, 1, 4, 1,
412 5, 6, 1, 7, 4, 8, 8, 8, 8, 1,
413 1, 1, 1, 9, 10, 1, 11, 12, 1, 13,
414 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
415 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
416 15, 15, 15, 15, 15, 4, 1, 16
419 static yyconst short int yy_base[858] =
421 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705,
422 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191,
423 178, 188, 344, 347, 375, 0, 125, 131, 147, 216,
424 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716,
425 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696,
426 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126,
427 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716,
428 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695,
429 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716,
430 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716,
432 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716,
433 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716,
434 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356,
435 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0,
436 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716,
437 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579,
438 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587,
439 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612,
440 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0,
441 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0,
443 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657,
444 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592,
445 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0,
446 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598,
447 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773,
448 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716,
449 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716,
450 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596,
451 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582,
452 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584,
454 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125,
455 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0,
456 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723,
457 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876,
458 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570,
459 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009,
460 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013,
461 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557,
462 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536,
463 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532,
465 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526,
466 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914,
467 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539,
468 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058,
469 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081,
470 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495,
471 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0,
472 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487,
473 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475,
474 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496,
476 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716,
477 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085,
478 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460,
479 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414,
480 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0,
481 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297,
482 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0,
483 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207,
484 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221,
485 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149,
487 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137,
488 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716,
489 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098,
490 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0,
491 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938,
492 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881,
493 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784,
494 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744,
495 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716,
496 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720,
498 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671,
499 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608,
500 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0,
501 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228,
502 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948,
503 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689,
504 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279,
505 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439,
506 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576,
507 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718,
509 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236,
510 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977,
511 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123,
512 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255,
513 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388,
514 2404, 2420, 2429, 2437, 2453, 2469, 2485
517 static yyconst short int yy_def[858] =
519 768, 768, 769, 769, 770, 771, 772, 772, 768, 9,
520 773, 773, 768, 13, 774, 774, 775, 775, 776, 776,
521 777, 777, 778, 778, 768, 25, 779, 779, 780, 780,
522 781, 781, 768, 33, 768, 35, 782, 782, 768, 768,
523 768, 768, 768, 783, 768, 768, 768, 768, 784, 768,
524 785, 768, 768, 768, 768, 768, 768, 768, 768, 786,
525 787, 788, 768, 768, 768, 768, 768, 768, 789, 768,
526 789, 790, 791, 790, 790, 792, 768, 793, 768, 793,
527 768, 794, 794, 794, 793, 795, 768, 768, 795, 768,
528 768, 768, 796, 768, 768, 768, 768, 768, 768, 768,
530 768, 768, 768, 768, 787, 768, 768, 787, 797, 768,
531 768, 768, 798, 768, 787, 768, 799, 768, 799, 768,
532 800, 768, 801, 801, 801, 768, 768, 802, 768, 802,
533 803, 768, 803, 768, 804, 768, 804, 768, 805, 806,
534 806, 768, 806, 806, 768, 806, 807, 807, 807, 768,
535 768, 768, 768, 808, 768, 768, 768, 809, 809, 809,
536 809, 809, 809, 809, 809, 809, 809, 810, 809, 809,
537 809, 809, 809, 809, 809, 809, 768, 768, 811, 768,
538 768, 768, 768, 783, 768, 768, 768, 768, 768, 812,
539 813, 768, 768, 768, 768, 814, 815, 816, 768, 785,
541 768, 768, 768, 768, 817, 768, 768, 768, 818, 818,
542 819, 768, 768, 820, 768, 821, 768, 768, 768, 768,
543 768, 768, 768, 822, 768, 768, 823, 768, 824, 825,
544 825, 826, 827, 828, 768, 829, 768, 830, 830, 830,
545 768, 831, 768, 768, 768, 832, 768, 768, 768, 833,
546 768, 768, 768, 768, 834, 768, 835, 768, 835, 768,
547 836, 836, 836, 837, 768, 837, 838, 768, 838, 768,
548 839, 768, 768, 840, 840, 840, 768, 768, 841, 841,
549 841, 768, 768, 842, 768, 768, 768, 843, 843, 843,
550 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
552 843, 843, 843, 768, 843, 843, 843, 843, 843, 843,
553 843, 843, 843, 843, 844, 768, 768, 768, 845, 846,
554 847, 768, 768, 768, 768, 768, 768, 848, 849, 850,
555 768, 850, 768, 851, 768, 851, 768, 852, 852, 852,
556 768, 852, 852, 768, 853, 854, 768, 768, 768, 768,
557 855, 768, 826, 827, 830, 830, 241, 768, 241, 241,
558 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
559 833, 836, 836, 278, 278, 841, 841, 768, 768, 843,
560 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
561 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
563 843, 843, 843, 843, 843, 843, 843, 843, 768, 843,
564 843, 843, 843, 768, 847, 847, 768, 847, 847, 768,
565 768, 768, 768, 848, 849, 768, 341, 852, 343, 341,
566 852, 343, 768, 768, 768, 830, 830, 360, 768, 833,
567 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
568 836, 836, 841, 841, 768, 768, 843, 843, 843, 843,
569 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
570 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
571 843, 843, 843, 843, 768, 768, 768, 843, 843, 843,
572 843, 768, 768, 847, 847, 768, 768, 768, 768, 427,
574 852, 343, 852, 852, 852, 768, 768, 830, 830, 768,
575 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
576 833, 833, 836, 836, 841, 841, 843, 843, 843, 843,
577 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
578 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
579 843, 768, 768, 768, 768, 843, 843, 843, 843, 768,
580 856, 768, 768, 768, 852, 852, 852, 768, 768, 830,
581 830, 833, 833, 833, 833, 833, 833, 833, 833, 833,
582 833, 833, 833, 836, 836, 841, 841, 843, 843, 843,
583 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
585 843, 843, 843, 843, 843, 843, 768, 768, 768, 768,
586 843, 843, 843, 843, 856, 768, 856, 768, 768, 768,
587 768, 768, 833, 833, 833, 833, 833, 833, 833, 833,
588 833, 833, 833, 833, 843, 843, 843, 843, 843, 843,
589 843, 843, 843, 843, 843, 843, 843, 843, 843, 768,
590 768, 768, 768, 843, 843, 857, 768, 768, 768, 768,
591 768, 768, 768, 768, 768, 768, 768, 768, 833, 843,
592 843, 843, 843, 843, 843, 843, 843, 843, 768, 768,
593 768, 768, 843, 857, 768, 857, 768, 768, 768, 768,
594 768, 768, 768, 768, 768, 768, 768, 768, 843, 843,
596 843, 843, 843, 843, 843, 768, 768, 768, 768, 768,
597 768, 843, 843, 843, 843, 843, 843, 843, 768, 768,
598 768, 768, 768, 768, 843, 843, 843, 843, 843, 843,
599 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
600 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
601 768, 768, 768, 768, 843, 843, 843, 768, 768, 843,
602 843, 843, 843, 843, 843, 843, 843, 0, 768, 768,
603 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
604 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
605 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
607 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
608 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
609 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
610 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
611 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
612 768, 768, 768, 768, 768, 768, 768
615 static yyconst short int yy_nxt[2775] =
617 40, 41, 42, 43, 40, 40, 40, 40, 40, 40,
618 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
619 40, 40, 40, 44, 44, 40, 40, 40, 40, 44,
620 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
621 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
622 44, 44, 44, 44, 44, 40, 40, 40, 40, 45,
623 46, 47, 40, 48, 40, 49, 40, 40, 40, 40,
624 40, 40, 50, 40, 40, 40, 40, 40, 40, 40,
625 40, 51, 51, 40, 40, 40, 40, 51, 51, 51,
626 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
628 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
629 51, 51, 51, 40, 40, 40, 53, 54, 55, 56,
630 767, 57, 70, 71, 58, 58, 58, 129, 130, 58,
631 73, 70, 74, 129, 130, 59, 75, 87, 88, 89,
632 60, 61, 87, 88, 89, 188, 96, 97, 224, 132,
633 133, 210, 211, 96, 97, 404, 98, 134, 405, 99,
634 99, 99, 99, 98, 213, 213, 99, 99, 99, 99,
635 62, 58, 58, 63, 64, 65, 56, 252, 57, 66,
636 40, 58, 58, 58, 439, 189, 58, 102, 103, 104,
637 40, 252, 67, 102, 103, 104, 225, 60, 61, 275,
639 68, 100, 214, 107, 108, 276, 109, 178, 100, 179,
640 232, 105, 233, 107, 108, 572, 109, 105, 132, 133,
641 180, 180, 180, 180, 265, 266, 134, 62, 58, 58,
642 78, 78, 79, 80, 78, 78, 78, 78, 78, 78,
643 81, 78, 78, 78, 78, 78, 78, 78, 78, 78,
644 78, 78, 78, 82, 82, 78, 78, 78, 78, 82,
645 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
646 82, 82, 82, 82, 82, 82, 82, 83, 82, 82,
647 82, 82, 82, 82, 84, 78, 78, 78, 90, 90,
648 40, 90, 90, 90, 90, 90, 90, 90, 91, 90,
650 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
651 92, 93, 93, 90, 90, 90, 90, 93, 93, 93,
652 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
653 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
654 93, 93, 93, 90, 90, 90, 111, 112, 296, 111,
655 112, 178, 766, 179, 181, 182, 183, 113, 265, 266,
656 113, 185, 186, 187, 180, 180, 180, 180, 297, 114,
657 115, 116, 114, 115, 116, 117, 117, 118, 119, 120,
658 117, 117, 117, 121, 117, 117, 117, 117, 117, 122,
659 117, 117, 117, 117, 117, 117, 117, 117, 123, 123,
661 117, 117, 117, 117, 123, 123, 123, 123, 123, 123,
662 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
663 123, 123, 124, 123, 123, 123, 123, 123, 123, 125,
664 126, 117, 127, 136, 137, 138, 136, 137, 138, 206,
665 206, 207, 215, 215, 215, 215, 248, 248, 248, 248,
666 268, 269, 268, 269, 300, 331, 332, 139, 301, 765,
667 139, 140, 141, 142, 143, 140, 140, 140, 144, 140,
668 140, 145, 140, 140, 140, 146, 140, 140, 140, 140,
669 140, 140, 140, 140, 147, 147, 140, 140, 140, 140,
670 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
672 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
673 147, 147, 147, 147, 147, 149, 140, 140, 140, 150,
674 151, 152, 153, 154, 150, 150, 150, 150, 150, 150,
675 150, 150, 150, 150, 150, 155, 156, 150, 150, 150,
676 157, 150, 150, 150, 150, 150, 150, 150, 150, 158,
677 159, 160, 161, 162, 163, 164, 164, 165, 164, 164,
678 166, 167, 168, 169, 170, 164, 171, 172, 164, 173,
679 174, 175, 164, 176, 150, 150, 150, 191, 201, 202,
680 203, 258, 213, 213, 204, 289, 213, 213, 213, 213,
681 292, 290, 217, 218, 219, 383, 303, 275, 220, 259,
683 192, 188, 193, 276, 193, 221, 304, 335, 336, 293,
684 193, 222, 384, 193, 194, 195, 480, 193, 196, 223,
685 214, 306, 481, 197, 214, 198, 214, 317, 317, 317,
686 317, 307, 764, 205, 308, 181, 182, 183, 185, 186,
687 187, 189, 321, 322, 323, 339, 340, 205, 321, 322,
688 323, 387, 321, 322, 323, 388, 324, 324, 324, 324,
689 342, 342, 324, 324, 324, 324, 324, 324, 324, 324,
690 321, 322, 323, 201, 202, 203, 341, 344, 344, 204,
691 380, 258, 339, 340, 324, 324, 324, 324, 325, 217,
692 218, 219, 265, 266, 381, 220, 326, 439, 343, 259,
694 265, 266, 221, 248, 248, 248, 248, 673, 222, 268,
695 269, 268, 269, 327, 392, 402, 223, 409, 393, 440,
696 410, 416, 417, 418, 403, 331, 332, 763, 205, 411,
697 412, 317, 317, 317, 317, 419, 419, 419, 419, 721,
698 413, 331, 332, 722, 205, 357, 357, 358, 359, 357,
699 357, 357, 357, 357, 357, 360, 357, 357, 357, 357,
700 357, 357, 357, 357, 357, 357, 357, 357, 360, 360,
701 357, 357, 357, 357, 360, 360, 360, 360, 360, 360,
702 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
703 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
705 357, 357, 357, 362, 363, 364, 365, 335, 336, 366,
706 335, 336, 339, 340, 367, 212, 212, 762, 368, 493,
707 494, 369, 761, 370, 417, 494, 371, 374, 374, 760,
708 374, 374, 374, 374, 374, 374, 374, 375, 374, 374,
709 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
710 375, 375, 374, 374, 374, 374, 375, 375, 375, 375,
711 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
712 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
713 375, 375, 374, 374, 374, 420, 322, 323, 427, 439,
714 439, 428, 428, 439, 339, 340, 431, 431, 439, 324,
716 324, 324, 324, 338, 439, 485, 339, 340, 486, 487,
717 439, 441, 443, 439, 442, 420, 322, 323, 450, 552,
718 759, 513, 493, 494, 516, 553, 444, 339, 340, 429,
719 338, 338, 439, 338, 338, 338, 338, 338, 338, 338,
720 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
721 338, 338, 338, 430, 430, 339, 340, 445, 338, 338,
722 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
723 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
724 430, 430, 430, 430, 430, 338, 338, 338, 432, 432,
725 432, 432, 758, 439, 339, 340, 432, 757, 339, 340,
727 495, 417, 418, 432, 432, 432, 432, 432, 432, 360,
728 360, 439, 438, 360, 360, 360, 360, 360, 360, 448,
729 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
730 360, 360, 439, 439, 360, 360, 360, 360, 439, 446,
731 501, 501, 447, 504, 504, 416, 417, 418, 616, 617,
732 339, 340, 638, 339, 340, 515, 439, 439, 449, 419,
733 419, 419, 419, 514, 360, 360, 360, 375, 375, 580,
734 375, 375, 375, 375, 375, 375, 375, 439, 375, 375,
735 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
736 517, 439, 375, 375, 375, 375, 495, 417, 418, 439,
738 439, 511, 439, 512, 439, 439, 339, 340, 209, 439,
739 419, 419, 419, 419, 439, 519, 520, 581, 518, 522,
740 566, 566, 375, 375, 375, 500, 500, 573, 521, 578,
741 339, 340, 500, 500, 500, 500, 500, 500, 500, 500,
742 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
743 500, 500, 500, 500, 500, 500, 500, 502, 502, 502,
744 502, 532, 439, 439, 439, 502, 439, 339, 340, 439,
745 339, 340, 502, 502, 502, 502, 502, 502, 505, 505,
746 505, 505, 439, 533, 582, 576, 505, 574, 579, 534,
747 575, 439, 439, 505, 505, 505, 505, 505, 505, 567,
749 567, 567, 567, 590, 339, 340, 338, 567, 577, 583,
750 439, 439, 625, 591, 567, 567, 567, 567, 567, 567,
751 439, 439, 624, 439, 439, 439, 439, 439, 439, 439,
752 616, 617, 439, 623, 616, 617, 685, 686, 685, 686,
753 756, 628, 626, 632, 708, 755, 634, 685, 686, 302,
754 302, 627, 629, 754, 753, 630, 631, 633, 752, 751,
755 750, 709, 669, 52, 52, 52, 52, 52, 52, 52,
756 52, 52, 52, 52, 52, 52, 52, 52, 52, 69,
757 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
758 69, 69, 69, 69, 69, 72, 72, 72, 72, 72,
760 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
761 72, 76, 76, 76, 76, 76, 76, 76, 76, 76,
762 76, 76, 76, 76, 76, 76, 76, 86, 86, 86,
763 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
764 86, 86, 86, 40, 40, 40, 40, 40, 40, 40,
765 40, 40, 40, 40, 40, 40, 40, 40, 40, 95,
766 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
767 95, 95, 95, 95, 95, 101, 101, 101, 101, 101,
768 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
769 101, 106, 106, 106, 106, 106, 106, 106, 106, 106,
771 106, 106, 106, 106, 106, 106, 106, 110, 110, 110,
772 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
773 110, 110, 110, 128, 128, 128, 128, 128, 128, 128,
774 128, 128, 128, 128, 128, 128, 128, 128, 128, 131,
775 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
776 131, 131, 131, 131, 131, 135, 135, 135, 135, 135,
777 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
778 135, 177, 177, 177, 177, 177, 177, 177, 177, 177,
779 177, 177, 177, 177, 177, 177, 177, 184, 184, 184,
780 184, 749, 748, 184, 184, 184, 190, 190, 190, 190,
782 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
783 190, 200, 200, 200, 200, 747, 746, 200, 200, 200,
784 209, 745, 209, 209, 209, 209, 209, 209, 209, 209,
785 209, 209, 209, 209, 209, 209, 212, 744, 212, 212,
786 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
787 212, 212, 216, 216, 216, 743, 742, 216, 216, 216,
788 227, 741, 227, 227, 227, 227, 227, 227, 227, 227,
789 227, 227, 227, 227, 227, 227, 229, 740, 229, 229,
790 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
791 229, 229, 230, 739, 230, 230, 230, 230, 230, 230,
793 230, 230, 230, 230, 230, 230, 230, 230, 234, 234,
794 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
795 234, 234, 234, 234, 236, 738, 236, 236, 737, 236,
796 236, 236, 736, 735, 236, 236, 734, 733, 732, 236,
797 238, 238, 238, 238, 731, 730, 238, 238, 238, 242,
798 729, 242, 242, 242, 242, 242, 242, 242, 242, 242,
799 242, 242, 242, 242, 242, 246, 246, 246, 246, 728,
800 727, 246, 246, 246, 251, 726, 251, 251, 251, 251,
801 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
802 254, 725, 254, 254, 254, 254, 254, 254, 254, 254,
804 254, 724, 254, 254, 254, 254, 255, 723, 720, 719,
805 255, 255, 255, 255, 718, 717, 255, 255, 257, 716,
806 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
807 257, 257, 257, 257, 261, 261, 261, 261, 715, 714,
808 261, 261, 261, 264, 264, 264, 264, 264, 264, 264,
809 264, 264, 264, 264, 264, 264, 264, 264, 264, 267,
810 267, 267, 267, 713, 267, 267, 267, 267, 267, 267,
811 267, 267, 267, 267, 267, 271, 712, 711, 271, 271,
812 271, 271, 271, 271, 271, 710, 271, 271, 271, 271,
813 271, 273, 707, 273, 273, 273, 273, 273, 273, 273,
815 273, 273, 273, 273, 273, 273, 273, 274, 706, 274,
816 274, 705, 274, 274, 274, 704, 703, 274, 274, 702,
817 701, 700, 274, 279, 279, 279, 279, 699, 698, 279,
818 279, 279, 284, 697, 284, 284, 284, 284, 284, 284,
819 284, 284, 284, 284, 284, 284, 284, 284, 288, 288,
820 696, 288, 288, 695, 694, 693, 288, 288, 315, 692,
821 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
822 315, 315, 315, 315, 319, 691, 319, 319, 319, 319,
823 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
824 320, 690, 320, 320, 320, 320, 320, 320, 320, 320,
826 320, 320, 320, 320, 320, 320, 328, 328, 689, 688,
827 328, 328, 328, 329, 329, 687, 683, 329, 329, 329,
828 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
829 330, 330, 330, 330, 330, 330, 334, 334, 334, 334,
830 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
831 334, 334, 338, 682, 338, 338, 338, 338, 338, 338,
832 338, 338, 338, 681, 338, 338, 338, 338, 209, 680,
833 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
834 209, 209, 209, 209, 345, 345, 679, 678, 677, 676,
835 345, 346, 346, 346, 346, 675, 674, 346, 346, 346,
837 346, 351, 673, 351, 351, 351, 351, 351, 351, 351,
838 351, 351, 351, 351, 351, 351, 351, 227, 672, 227,
839 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
840 227, 227, 227, 229, 671, 229, 229, 229, 229, 229,
841 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
842 670, 230, 230, 230, 230, 230, 230, 230, 230, 230,
843 230, 230, 230, 230, 230, 353, 668, 353, 353, 353,
844 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
845 353, 354, 667, 354, 354, 354, 354, 354, 354, 354,
846 354, 354, 354, 354, 354, 354, 354, 234, 234, 234,
848 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
849 234, 234, 234, 236, 666, 236, 236, 665, 236, 236,
850 236, 664, 663, 236, 236, 662, 661, 660, 236, 238,
851 238, 238, 238, 659, 658, 238, 238, 238, 242, 657,
852 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
853 242, 242, 242, 242, 246, 246, 246, 246, 656, 655,
854 246, 246, 246, 361, 361, 654, 653, 652, 361, 361,
855 255, 651, 650, 649, 255, 255, 255, 255, 648, 647,
856 255, 255, 257, 646, 257, 257, 257, 257, 257, 257,
857 257, 257, 257, 257, 257, 257, 257, 257, 261, 261,
859 261, 261, 645, 644, 261, 261, 261, 264, 264, 264,
860 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
861 264, 264, 264, 267, 267, 267, 267, 643, 267, 267,
862 267, 267, 267, 267, 267, 267, 267, 267, 267, 271,
863 642, 641, 271, 271, 271, 271, 271, 271, 271, 640,
864 271, 271, 271, 271, 271, 274, 639, 274, 274, 638,
865 274, 274, 274, 637, 636, 274, 274, 635, 622, 621,
866 274, 279, 279, 279, 279, 620, 619, 279, 279, 279,
867 284, 618, 284, 284, 284, 284, 284, 284, 284, 284,
868 284, 284, 284, 284, 284, 284, 288, 288, 560, 288,
870 288, 614, 613, 612, 288, 288, 315, 611, 315, 315,
871 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
872 315, 315, 319, 610, 319, 319, 319, 319, 319, 319,
873 319, 319, 319, 319, 319, 319, 319, 319, 320, 609,
874 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
875 320, 320, 320, 320, 415, 415, 415, 415, 415, 415,
876 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
877 424, 424, 424, 424, 608, 607, 424, 424, 424, 425,
878 425, 425, 425, 606, 605, 425, 425, 425, 330, 330,
879 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
881 330, 330, 330, 330, 334, 334, 334, 334, 334, 334,
882 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
883 338, 604, 338, 338, 338, 338, 338, 338, 338, 338,
884 338, 603, 338, 338, 338, 338, 433, 433, 602, 601,
885 600, 599, 433, 346, 346, 346, 346, 598, 597, 346,
886 346, 346, 346, 351, 596, 351, 351, 351, 351, 351,
887 351, 351, 351, 351, 351, 351, 351, 351, 351, 615,
888 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
889 615, 615, 615, 615, 615, 684, 684, 684, 684, 684,
890 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
892 684, 595, 594, 593, 592, 589, 588, 587, 586, 585,
893 584, 571, 570, 569, 568, 565, 564, 563, 562, 561,
894 560, 559, 558, 557, 556, 555, 554, 551, 550, 549,
895 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
896 538, 537, 536, 535, 531, 530, 529, 528, 527, 526,
897 525, 524, 523, 510, 509, 508, 507, 506, 503, 499,
898 498, 497, 496, 492, 491, 490, 489, 488, 484, 483,
899 482, 479, 478, 477, 476, 475, 474, 473, 472, 471,
900 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
901 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
903 439, 437, 436, 435, 434, 347, 426, 423, 422, 421,
904 322, 414, 316, 408, 407, 406, 401, 400, 399, 398,
905 397, 396, 395, 394, 391, 390, 389, 386, 385, 382,
906 379, 378, 285, 282, 377, 376, 278, 373, 372, 243,
907 356, 355, 235, 231, 352, 350, 349, 348, 218, 347,
908 337, 206, 333, 202, 318, 186, 182, 316, 314, 313,
909 312, 311, 310, 309, 305, 299, 298, 295, 294, 291,
910 287, 286, 285, 283, 282, 281, 280, 260, 278, 277,
911 272, 270, 263, 262, 260, 256, 250, 253, 250, 249,
912 247, 245, 244, 243, 241, 240, 239, 237, 235, 228,
914 231, 228, 226, 218, 208, 202, 199, 186, 182, 768,
915 94, 94, 85, 77, 77, 39, 768, 768, 768, 768,
916 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
917 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
918 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
919 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
920 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
924 static yyconst short int yy_chk[2775] =
926 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
927 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
928 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
929 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
930 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
931 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
932 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
933 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
935 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
938 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
939 765, 3, 5, 5, 3, 3, 3, 27, 27, 3,
940 6, 6, 6, 28, 28, 3, 6, 11, 11, 11,
941 3, 3, 12, 12, 12, 48, 17, 17, 66, 29,
942 29, 60, 60, 18, 18, 310, 17, 29, 310, 17,
943 17, 17, 17, 18, 61, 61, 18, 18, 18, 18,
944 3, 3, 3, 4, 4, 4, 4, 109, 4, 4,
945 21, 4, 4, 4, 511, 48, 4, 19, 19, 19,
946 22, 109, 4, 20, 20, 20, 66, 4, 4, 141,
948 4, 17, 61, 21, 21, 141, 21, 37, 18, 37,
949 75, 19, 75, 22, 22, 511, 22, 20, 30, 30,
950 37, 37, 37, 37, 128, 128, 30, 4, 4, 4,
951 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
952 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
953 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
954 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
955 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
956 9, 9, 9, 9, 9, 9, 9, 9, 13, 13,
957 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
959 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
960 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
961 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
962 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
963 13, 13, 13, 13, 13, 13, 23, 23, 163, 24,
964 24, 38, 764, 38, 41, 41, 41, 23, 130, 130,
965 24, 45, 45, 45, 38, 38, 38, 38, 163, 23,
966 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
967 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
968 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
970 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
971 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
972 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
973 25, 25, 25, 31, 31, 31, 32, 32, 32, 57,
974 57, 57, 62, 62, 62, 62, 99, 99, 99, 99,
975 131, 131, 133, 133, 167, 198, 198, 31, 167, 763,
976 32, 33, 33, 33, 33, 33, 33, 33, 33, 33,
977 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
978 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
979 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
981 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
982 33, 33, 33, 33, 33, 33, 33, 33, 33, 35,
983 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
984 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
985 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
986 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
987 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
988 35, 35, 35, 35, 35, 35, 35, 49, 53, 53,
989 53, 121, 105, 105, 53, 158, 108, 108, 115, 115,
990 160, 158, 63, 63, 63, 291, 168, 275, 63, 121,
992 49, 188, 49, 275, 49, 63, 168, 205, 205, 160,
993 49, 63, 291, 49, 49, 49, 405, 49, 49, 63,
994 105, 170, 405, 49, 108, 49, 115, 180, 180, 180,
995 180, 170, 762, 53, 170, 181, 181, 181, 185, 185,
996 185, 188, 192, 192, 192, 209, 209, 63, 193, 193,
997 193, 294, 194, 194, 194, 294, 192, 192, 192, 192,
998 211, 211, 193, 193, 193, 193, 194, 194, 194, 194,
999 195, 195, 195, 201, 201, 201, 210, 213, 213, 201,
1000 289, 257, 210, 210, 195, 195, 195, 195, 192, 217,
1001 217, 217, 264, 264, 289, 217, 194, 362, 211, 257,
1003 266, 266, 217, 248, 248, 248, 248, 761, 217, 267,
1004 267, 269, 269, 195, 298, 309, 217, 314, 298, 362,
1005 314, 321, 321, 321, 309, 330, 330, 760, 201, 314,
1006 314, 317, 317, 317, 317, 321, 321, 321, 321, 708,
1007 314, 332, 332, 708, 217, 241, 241, 241, 241, 241,
1008 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1009 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1010 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1011 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1012 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1014 241, 241, 241, 250, 250, 250, 250, 334, 334, 250,
1015 336, 336, 338, 338, 250, 344, 344, 757, 250, 415,
1016 415, 250, 756, 250, 418, 418, 250, 278, 278, 755,
1017 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1018 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1019 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1020 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1021 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1022 278, 278, 278, 278, 278, 324, 324, 324, 339, 363,
1023 364, 340, 340, 365, 339, 339, 342, 342, 366, 324,
1025 324, 324, 324, 340, 371, 409, 342, 342, 409, 409,
1026 441, 363, 365, 444, 364, 420, 420, 420, 371, 485,
1027 754, 441, 494, 494, 444, 485, 366, 504, 504, 340,
1028 341, 341, 367, 341, 341, 341, 341, 341, 341, 341,
1029 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1030 341, 341, 341, 341, 341, 341, 341, 367, 341, 341,
1031 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1032 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1033 341, 341, 341, 341, 341, 341, 341, 341, 343, 343,
1034 343, 343, 752, 369, 505, 505, 343, 750, 343, 343,
1036 495, 495, 495, 343, 343, 343, 343, 343, 343, 360,
1037 360, 368, 360, 360, 360, 360, 360, 360, 360, 369,
1038 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
1039 360, 360, 370, 442, 360, 360, 360, 360, 443, 368,
1040 428, 428, 368, 431, 431, 416, 416, 416, 561, 561,
1041 428, 428, 749, 431, 431, 443, 519, 445, 370, 416,
1042 416, 416, 416, 442, 360, 360, 360, 375, 375, 519,
1043 375, 375, 375, 375, 375, 375, 375, 440, 375, 375,
1044 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
1045 445, 447, 375, 375, 375, 375, 419, 419, 419, 446,
1047 450, 440, 449, 440, 520, 448, 503, 503, 503, 512,
1048 419, 419, 419, 419, 517, 447, 448, 520, 446, 450,
1049 501, 501, 375, 375, 375, 427, 427, 512, 449, 517,
1050 501, 501, 427, 427, 427, 427, 427, 427, 427, 427,
1051 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1052 427, 427, 427, 427, 427, 427, 427, 429, 429, 429,
1053 429, 462, 514, 513, 518, 429, 515, 566, 566, 521,
1054 567, 567, 429, 429, 429, 429, 429, 429, 432, 432,
1055 432, 432, 516, 462, 521, 515, 432, 513, 518, 462,
1056 514, 574, 522, 432, 432, 432, 432, 432, 432, 502,
1058 502, 502, 502, 532, 565, 565, 565, 502, 516, 522,
1059 572, 573, 574, 532, 502, 502, 502, 502, 502, 502,
1060 575, 576, 573, 577, 578, 579, 580, 583, 581, 582,
1061 615, 615, 634, 572, 617, 617, 656, 656, 684, 684,
1062 748, 577, 575, 581, 681, 747, 583, 686, 686, 810,
1063 810, 576, 578, 745, 744, 579, 580, 582, 743, 742,
1064 740, 681, 634, 769, 769, 769, 769, 769, 769, 769,
1065 769, 769, 769, 769, 769, 769, 769, 769, 769, 770,
1066 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
1067 770, 770, 770, 770, 770, 771, 771, 771, 771, 771,
1069 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1070 771, 772, 772, 772, 772, 772, 772, 772, 772, 772,
1071 772, 772, 772, 772, 772, 772, 772, 773, 773, 773,
1072 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
1073 773, 773, 773, 774, 774, 774, 774, 774, 774, 774,
1074 774, 774, 774, 774, 774, 774, 774, 774, 774, 775,
1075 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1076 775, 775, 775, 775, 775, 776, 776, 776, 776, 776,
1077 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
1078 776, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1080 777, 777, 777, 777, 777, 777, 777, 778, 778, 778,
1081 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
1082 778, 778, 778, 779, 779, 779, 779, 779, 779, 779,
1083 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
1084 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
1085 780, 780, 780, 780, 780, 781, 781, 781, 781, 781,
1086 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1087 781, 782, 782, 782, 782, 782, 782, 782, 782, 782,
1088 782, 782, 782, 782, 782, 782, 782, 783, 783, 783,
1089 783, 739, 738, 783, 783, 783, 784, 784, 784, 784,
1091 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
1092 784, 785, 785, 785, 785, 737, 736, 785, 785, 785,
1093 786, 735, 786, 786, 786, 786, 786, 786, 786, 786,
1094 786, 786, 786, 786, 786, 786, 787, 734, 787, 787,
1095 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
1096 787, 787, 788, 788, 788, 733, 732, 788, 788, 788,
1097 789, 731, 789, 789, 789, 789, 789, 789, 789, 789,
1098 789, 789, 789, 789, 789, 789, 790, 729, 790, 790,
1099 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1100 790, 790, 791, 727, 791, 791, 791, 791, 791, 791,
1102 791, 791, 791, 791, 791, 791, 791, 791, 792, 792,
1103 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1104 792, 792, 792, 792, 793, 726, 793, 793, 725, 793,
1105 793, 793, 724, 723, 793, 793, 722, 721, 720, 793,
1106 794, 794, 794, 794, 719, 718, 794, 794, 794, 795,
1107 717, 795, 795, 795, 795, 795, 795, 795, 795, 795,
1108 795, 795, 795, 795, 795, 796, 796, 796, 796, 715,
1109 714, 796, 796, 796, 797, 713, 797, 797, 797, 797,
1110 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
1111 798, 712, 798, 798, 798, 798, 798, 798, 798, 798,
1113 798, 710, 798, 798, 798, 798, 799, 709, 707, 706,
1114 799, 799, 799, 799, 705, 704, 799, 799, 800, 703,
1115 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
1116 800, 800, 800, 800, 801, 801, 801, 801, 702, 701,
1117 801, 801, 801, 802, 802, 802, 802, 802, 802, 802,
1118 802, 802, 802, 802, 802, 802, 802, 802, 802, 803,
1119 803, 803, 803, 700, 803, 803, 803, 803, 803, 803,
1120 803, 803, 803, 803, 803, 804, 699, 698, 804, 804,
1121 804, 804, 804, 804, 804, 682, 804, 804, 804, 804,
1122 804, 805, 680, 805, 805, 805, 805, 805, 805, 805,
1124 805, 805, 805, 805, 805, 805, 805, 806, 679, 806,
1125 806, 678, 806, 806, 806, 677, 675, 806, 806, 674,
1126 672, 671, 806, 807, 807, 807, 807, 670, 669, 807,
1127 807, 807, 808, 668, 808, 808, 808, 808, 808, 808,
1128 808, 808, 808, 808, 808, 808, 808, 808, 809, 809,
1129 667, 809, 809, 666, 665, 664, 809, 809, 811, 663,
1130 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
1131 811, 811, 811, 811, 812, 662, 812, 812, 812, 812,
1132 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
1133 813, 661, 813, 813, 813, 813, 813, 813, 813, 813,
1135 813, 813, 813, 813, 813, 813, 814, 814, 660, 659,
1136 814, 814, 814, 815, 815, 658, 655, 815, 815, 815,
1137 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
1138 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
1139 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
1140 817, 817, 818, 653, 818, 818, 818, 818, 818, 818,
1141 818, 818, 818, 652, 818, 818, 818, 818, 819, 651,
1142 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
1143 819, 819, 819, 819, 820, 820, 650, 646, 644, 643,
1144 820, 821, 821, 821, 821, 642, 641, 821, 821, 821,
1146 821, 822, 639, 822, 822, 822, 822, 822, 822, 822,
1147 822, 822, 822, 822, 822, 822, 822, 823, 637, 823,
1148 823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
1149 823, 823, 823, 824, 636, 824, 824, 824, 824, 824,
1150 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
1151 635, 825, 825, 825, 825, 825, 825, 825, 825, 825,
1152 825, 825, 825, 825, 825, 826, 633, 826, 826, 826,
1153 826, 826, 826, 826, 826, 826, 826, 826, 826, 826,
1154 826, 827, 632, 827, 827, 827, 827, 827, 827, 827,
1155 827, 827, 827, 827, 827, 827, 827, 828, 828, 828,
1157 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
1158 828, 828, 828, 829, 631, 829, 829, 630, 829, 829,
1159 829, 629, 628, 829, 829, 627, 626, 625, 829, 830,
1160 830, 830, 830, 624, 623, 830, 830, 830, 831, 621,
1161 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
1162 831, 831, 831, 831, 832, 832, 832, 832, 619, 612,
1163 832, 832, 832, 833, 833, 611, 610, 609, 833, 833,
1164 834, 608, 607, 606, 834, 834, 834, 834, 604, 601,
1165 834, 834, 835, 600, 835, 835, 835, 835, 835, 835,
1166 835, 835, 835, 835, 835, 835, 835, 835, 836, 836,
1168 836, 836, 599, 598, 836, 836, 836, 837, 837, 837,
1169 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
1170 837, 837, 837, 838, 838, 838, 838, 597, 838, 838,
1171 838, 838, 838, 838, 838, 838, 838, 838, 838, 839,
1172 596, 595, 839, 839, 839, 839, 839, 839, 839, 594,
1173 839, 839, 839, 839, 839, 840, 593, 840, 840, 592,
1174 840, 840, 840, 591, 590, 840, 840, 588, 569, 568,
1175 840, 841, 841, 841, 841, 564, 563, 841, 841, 841,
1176 842, 562, 842, 842, 842, 842, 842, 842, 842, 842,
1177 842, 842, 842, 842, 842, 842, 843, 843, 560, 843,
1179 843, 559, 558, 557, 843, 843, 844, 556, 844, 844,
1180 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
1181 844, 844, 845, 555, 845, 845, 845, 845, 845, 845,
1182 845, 845, 845, 845, 845, 845, 845, 845, 846, 554,
1183 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1184 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
1185 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
1186 848, 848, 848, 848, 553, 552, 848, 848, 848, 849,
1187 849, 849, 849, 551, 549, 849, 849, 849, 850, 850,
1188 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
1190 850, 850, 850, 850, 851, 851, 851, 851, 851, 851,
1191 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
1192 852, 548, 852, 852, 852, 852, 852, 852, 852, 852,
1193 852, 546, 852, 852, 852, 852, 853, 853, 545, 544,
1194 543, 542, 853, 854, 854, 854, 854, 541, 540, 854,
1195 854, 854, 854, 855, 539, 855, 855, 855, 855, 855,
1196 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
1197 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
1198 856, 856, 856, 856, 856, 857, 857, 857, 857, 857,
1199 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
1201 857, 538, 536, 534, 533, 530, 528, 526, 525, 524,
1202 523, 509, 508, 507, 506, 500, 499, 498, 497, 496,
1203 492, 491, 490, 489, 488, 487, 486, 483, 482, 481,
1204 480, 479, 478, 476, 475, 474, 473, 472, 471, 469,
1205 468, 467, 464, 463, 461, 460, 459, 458, 457, 454,
1206 453, 452, 451, 439, 437, 436, 435, 434, 430, 426,
1207 423, 422, 421, 414, 413, 412, 411, 410, 408, 407,
1208 406, 404, 403, 402, 401, 400, 399, 398, 397, 396,
1209 395, 394, 393, 392, 391, 390, 388, 387, 386, 384,
1210 383, 382, 381, 380, 379, 378, 377, 376, 373, 372,
1212 361, 356, 355, 352, 350, 346, 337, 327, 326, 325,
1213 323, 318, 315, 313, 312, 311, 308, 307, 306, 305,
1214 303, 301, 300, 299, 297, 296, 295, 293, 292, 290,
1215 287, 286, 284, 282, 281, 280, 276, 263, 262, 243,
1216 240, 239, 234, 231, 226, 222, 221, 220, 219, 216,
1217 208, 207, 204, 203, 189, 187, 183, 179, 176, 175,
1218 174, 173, 172, 171, 169, 166, 165, 162, 161, 159,
1219 156, 155, 154, 153, 151, 149, 148, 146, 144, 143,
1220 137, 134, 125, 124, 122, 119, 114, 112, 107, 103,
1221 97, 92, 89, 87, 85, 84, 83, 80, 76, 74,
1223 73, 71, 67, 65, 59, 55, 50, 47, 43, 39,
1224 16, 15, 10, 8, 7, 768, 768, 768, 768, 768,
1225 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1226 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1227 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1228 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1229 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1233 static yy_state_type yy_last_accepting_state;
1234 static char *yy_last_accepting_cpos;
1236 /* The intent behind this definition is that it'll catch
1237 * any uses of REJECT which flex missed.
1239 #define REJECT reject_used_but_not_detected
1240 #define yymore() yymore_used_but_not_detected
1241 #define YY_MORE_ADJ 0
1242 #define YY_RESTORE_YY_MORE_OFFSET
1246 /* scan.l - scanner for flex input */
1249 * Copyright (c) 1990 The Regents of the University of California.
1250 * All rights reserved.
1252 * This code is derived from software contributed to Berkeley by
1255 * The United States Government has rights in this work pursuant
1256 * to contract no. DE-AC03-76SF00098 between the United States
1257 * Department of Energy and the University of California.
1259 * Redistribution and use in source and binary forms are permitted provided
1260 * that: (1) source distributions retain this entire copyright notice and
1261 * comment, and (2) distributions including binaries display the following
1262 * acknowledgement: ``This product includes software developed by the
1263 * University of California, Berkeley and its contributors'' in the
1264 * documentation or other materials provided with the distribution and in
1265 * all advertising materials mentioning features or use of this software.
1266 * Neither the name of the University nor the names of its contributors may
1267 * be used to endorse or promote products derived from this software without
1268 * specific prior written permission.
1269 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1270 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1271 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1276 #include "flexdef.h"
1279 #define ACTION_ECHO add_action( yytext )
1280 #define ACTION_IFDEF(def, should_define) \
1282 if ( should_define ) \
1283 action_define( def, 1 ); \
1286 #define MARK_END_OF_PROLOG mark_prolog();
1291 #define RETURNCHAR \
1292 yylval = (unsigned char) yytext[0]; \
1295 #define RETURNNAME \
1296 strcpy( nmstr, yytext ); \
1299 #define PUT_BACK_STRING(str, start) \
1300 for ( i = strlen( str ) - 1; i >= start; --i ) \
1303 #define CHECK_REJECT(str) \
1304 if ( all_upper( str ) ) \
1307 #define CHECK_YYMORE(str) \
1308 if ( all_lower( str ) ) \
1310 #define YY_STACK_USED 1
1311 #define YY_NO_TOP_STATE 1
1313 #define SECT2PROLOG 2
1318 #define CARETISBOL 7
1327 #define ACTION_STRING 15
1328 #define PERCENT_BRACE_ACTION 16
1335 /* Macros after this point can all be overridden by user definitions in
1339 #ifndef YY_SKIP_YYWRAP
1341 extern "C" int yywrap YY_PROTO(( void ));
1343 extern int yywrap YY_PROTO(( void ));
1348 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1352 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1355 #ifdef YY_NEED_STRLEN
1356 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1361 static int yyinput YY_PROTO(( void ));
1363 static int input YY_PROTO(( void ));
1368 static int yy_start_stack_ptr = 0;
1369 static int yy_start_stack_depth = 0;
1370 static int *yy_start_stack = 0;
1371 #ifndef YY_NO_PUSH_STATE
1372 static void yy_push_state YY_PROTO(( int new_state ));
1374 #ifndef YY_NO_POP_STATE
1375 static void yy_pop_state YY_PROTO(( void ));
1377 #ifndef YY_NO_TOP_STATE
1378 static int yy_top_state YY_PROTO(( void ));
1382 #define YY_NO_PUSH_STATE 1
1383 #define YY_NO_POP_STATE 1
1384 #define YY_NO_TOP_STATE 1
1387 #ifdef YY_MALLOC_DECL
1395 /* Just try to get by without declaring the routines. This will fail
1396 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1397 * or sizeof(void*) != sizeof(int).
1402 /* Amount of stuff to slurp up with each read. */
1403 #ifndef YY_READ_BUF_SIZE
1404 #define YY_READ_BUF_SIZE 8192
1407 /* Copy whatever the last rule matched to the standard output. */
1410 /* This used to be an fputs(), but since the string might contain NUL's,
1411 * we now use fwrite().
1413 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1416 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1417 * is returned in "result".
1420 #define YY_INPUT(buf,result,max_size) \
1421 if ( yy_current_buffer->yy_is_interactive ) \
1424 for ( n = 0; n < max_size && \
1425 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1426 buf[n] = (char) c; \
1428 buf[n++] = (char) c; \
1429 if ( c == EOF && ferror( yyin ) ) \
1430 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1433 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1434 && ferror( yyin ) ) \
1435 YY_FATAL_ERROR( "input in flex scanner failed" );
1438 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1439 * we don't want an extra ';' after the "return" because that will cause
1440 * some compilers to complain about unreachable statements.
1443 #define yyterminate() return YY_NULL
1446 /* Number of entries by which start-condition stack grows. */
1447 #ifndef YY_START_STACK_INCR
1448 #define YY_START_STACK_INCR 25
1451 /* Report a fatal error. */
1452 #ifndef YY_FATAL_ERROR
1453 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1456 /* Default declaration of generated scanner - a define so the user can
1457 * easily add parameters.
1460 #define YY_DECL int yylex YY_PROTO(( void ))
1463 /* Code executed at the beginning of each rule, after yytext and yyleng
1466 #ifndef YY_USER_ACTION
1467 #define YY_USER_ACTION
1470 /* Code executed at the end of each rule. */
1472 #define YY_BREAK break;
1475 #define YY_RULE_SETUP \
1477 yy_current_buffer->yy_at_bol = \
1478 (yytext[yyleng - 1] == '\n'); \
1483 register yy_state_type yy_current_state;
1484 register char *yy_cp, *yy_bp;
1485 register int yy_act;
1489 static int bracelevel, didadef, indented_code;
1490 static int doing_rule_action = false;
1491 static int option_sense;
1493 int doing_codeblock = false;
1495 Char nmdef[MAXLINE], myesc();
1509 yy_start = 1; /* first start state */
1517 if ( ! yy_current_buffer )
1519 yy_create_buffer( yyin, YY_BUF_SIZE );
1521 yy_load_buffer_state();
1524 while ( 1 ) /* loops until end-of-file is reached */
1528 /* Support of yytext. */
1529 *yy_cp = yy_hold_char;
1531 /* yy_bp points to the position in yy_ch_buf of the start of
1536 yy_current_state = yy_start;
1537 yy_current_state += YY_AT_BOL();
1541 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1542 if ( yy_accept[yy_current_state] )
1544 yy_last_accepting_state = yy_current_state;
1545 yy_last_accepting_cpos = yy_cp;
1547 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1549 yy_current_state = (int) yy_def[yy_current_state];
1550 if ( yy_current_state >= 769 )
1551 yy_c = yy_meta[(unsigned int) yy_c];
1553 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1556 while ( yy_base[yy_current_state] != 2716 );
1559 yy_act = yy_accept[yy_current_state];
1561 { /* have to back up */
1562 yy_cp = yy_last_accepting_cpos;
1563 yy_current_state = yy_last_accepting_state;
1564 yy_act = yy_accept[yy_current_state];
1567 YY_DO_BEFORE_ACTION;
1570 do_action: /* This label is used only to access EOF actions. */
1574 { /* beginning of action switch */
1575 case 0: /* must back up */
1576 /* undo the effects of YY_DO_BEFORE_ACTION */
1577 *yy_cp = yy_hold_char;
1578 yy_cp = yy_last_accepting_cpos;
1579 yy_current_state = yy_last_accepting_state;
1580 goto yy_find_action;
1586 indented_code = true; BEGIN(CODEBLOCK);
1591 ACTION_ECHO; yy_push_state( COMMENT );
1596 yy_push_state( LINEDIR );
1613 line_directive_out( (FILE *) 0, 1 );
1614 indented_code = false;
1630 line_directive_out( (FILE *) 0, 1 );
1638 yytext_is_array = false; ++linenum;
1643 yytext_is_array = true; ++linenum;
1648 BEGIN(OPTION); return OPTION_OP;
1653 ++linenum; /* ignore */
1658 ++linenum; /* ignore */
1663 synerr( _( "unrecognized '%' directive" ) );
1669 strcpy( nmstr, yytext );
1682 ++linenum; /* allows blank lines in section 1 */
1687 ACTION_ECHO; ++linenum; /* maybe end of comment line */
1694 ACTION_ECHO; yy_pop_state();
1709 ++linenum; ACTION_ECHO;
1721 linenum = myctoi( yytext );
1727 flex_free( (void *) infilename );
1728 infilename = copy_string( yytext + 1 );
1729 infilename[strlen( infilename ) - 1] = '\0';
1735 /* ignore spurious characters */
1742 ++linenum; BEGIN(INITIAL);
1755 if ( indented_code )
1764 /* separates name and definition */
1770 strcpy( (char *) nmdef, yytext );
1772 /* Skip trailing whitespace. */
1773 for ( i = strlen( (char *) nmdef ) - 1;
1774 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1778 nmdef[i + 1] = '\0';
1780 ndinstal( nmstr, nmdef );
1789 synerr( _( "incomplete name definition" ) );
1799 ++linenum; BEGIN(INITIAL);
1804 option_sense = true;
1814 option_sense = ! option_sense;
1819 csize = option_sense ? 128 : 256;
1824 csize = option_sense ? 256 : 128;
1829 long_align = option_sense;
1835 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1841 yytext_is_array = option_sense;
1846 backing_up_report = option_sense;
1851 interactive = ! option_sense;
1856 C_plus_plus = option_sense;
1861 caseins = ! option_sense;
1866 caseins = option_sense;
1871 ddebug = option_sense;
1876 spprdflt = ! option_sense;
1881 useecs = option_sense;
1887 useecs = usemecs = false;
1888 use_read = fullspd = true;
1895 useecs = usemecs = false;
1896 use_read = fulltbl = true;
1902 ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1907 interactive = option_sense;
1912 lex_compat = option_sense;
1918 action_define( "YY_MAIN", option_sense );
1919 do_yywrap = ! option_sense;
1925 usemecs = option_sense;
1931 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1937 performance_report += option_sense ? 1 : -1;
1942 yytext_is_array = ! option_sense;
1947 use_read = option_sense;
1952 reject_really_used = option_sense;
1957 action_define( "YY_STACK_USED", option_sense );
1962 do_stdinit = option_sense;
1967 use_stdout = option_sense;
1972 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1977 printstats = option_sense;
1982 nowarn = ! option_sense;
1987 do_yylineno = option_sense;
1992 yymore_really_used = option_sense;
1997 do_yywrap = option_sense;
2002 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
2007 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2012 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2017 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2022 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2027 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2048 strcpy( nmstr, yytext + 1 );
2049 nmstr[strlen( nmstr ) - 1] = '\0';
2057 format_synerr( _( "unrecognized %%option: %s" ),
2066 ++linenum; BEGIN(INITIAL);
2072 ++bracelevel; yyless( 2 ); /* eat only %{ */
2077 --bracelevel; yyless( 2 ); /* eat only %} */
2082 ACTION_ECHO; /* indented code in prolog */
2087 { /* non-indented code */
2088 if ( bracelevel <= 0 )
2089 { /* not in %{ ... %} */
2090 yyless( 0 ); /* put it all back */
2107 ++linenum; ACTION_ECHO;
2109 case YY_STATE_EOF(SECT2PROLOG):
2114 yyterminate(); /* to stop the parser */
2122 ++linenum; /* allow blank lines in section 2 */
2128 indented_code = false;
2129 doing_codeblock = true;
2131 BEGIN(PERCENT_BRACE_ACTION);
2137 BEGIN(SC); return '<';
2147 BEGIN(QUOTE); return '"';
2150 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2151 yy_c_buf_p = yy_cp = yy_bp + 1;
2152 YY_DO_BEFORE_ACTION; /* set up yytext again */
2155 BEGIN(NUM); return '{';
2158 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2159 yy_c_buf_p = yy_cp = yy_bp + 1;
2160 YY_DO_BEFORE_ACTION; /* set up yytext again */
2170 BEGIN(PERCENT_BRACE_ACTION);
2174 doing_rule_action = true;
2183 continued_action = true; ++linenum; return '\n';
2189 yyless( yyleng - 2 ); /* put back '/', '*' */
2191 continued_action = false;
2198 /* allow indented rules */
2204 /* This rule is separate from the one below because
2205 * otherwise we get variable trailing context, so
2206 * we can't build the scanner using -{f,F}.
2209 continued_action = false;
2214 doing_rule_action = true;
2225 continued_action = false;
2227 unput( '\n' ); /* so <ACTION> sees it */
2231 doing_rule_action = true;
2250 yyterminate(); /* to stop the parser */
2259 strcpy( nmstr, yytext );
2261 /* Check to see if we've already encountered this
2264 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2266 if ( input() != ']' )
2267 synerr( _( "bad character class" ) );
2275 /* We fudge a bit. We know that this ccl will
2276 * soon be numbered as lastccl + 1 by cclinit.
2278 cclinstal( (Char *) nmstr, lastccl + 1 );
2280 /* Push back everything but the leading bracket
2281 * so the ccl can be rescanned.
2294 register Char *nmdefptr;
2297 strcpy( nmstr, yytext + 1 );
2298 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */
2300 if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2302 _( "undefined definition {%s}" ),
2306 { /* push back name surrounded by ()'s */
2307 int len = strlen( (char *) nmdefptr );
2309 if ( lex_compat || nmdefptr[0] == '^' ||
2310 (len > 0 && nmdefptr[len - 1] == '$') )
2311 { /* don't use ()'s after all */
2312 PUT_BACK_STRING((char *) nmdefptr, 0);
2314 if ( nmdefptr[0] == '^' )
2321 PUT_BACK_STRING((char *) nmdefptr, 0);
2330 return (unsigned char) yytext[0];
2342 return (unsigned char) yytext[0];
2347 BEGIN(SECT2); return '>';
2350 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2351 yy_c_buf_p = yy_cp = yy_bp + 1;
2352 YY_DO_BEFORE_ACTION; /* set up yytext again */
2355 BEGIN(CARETISBOL); return '>';
2366 format_synerr( _( "bad <start condition>: %s" ),
2374 BEGIN(SECT2); return '^';
2385 BEGIN(SECT2); return '"';
2391 synerr( _( "missing quote" ) );
2400 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2401 yy_c_buf_p = yy_cp = yy_bp + 1;
2402 YY_DO_BEFORE_ACTION; /* set up yytext again */
2405 BEGIN(CCL); return '^';
2408 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2409 yy_c_buf_p = yy_cp = yy_bp + 1;
2410 YY_DO_BEFORE_ACTION; /* set up yytext again */
2418 BEGIN(CCL); RETURNCHAR;
2423 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2424 yy_c_buf_p = yy_cp = yy_bp + 1;
2425 YY_DO_BEFORE_ACTION; /* set up yytext again */
2438 BEGIN(SECT2); return ']';
2444 synerr( _( "bad character class" ) );
2454 BEGIN(CCL); return CCE_ALNUM;
2459 BEGIN(CCL); return CCE_ALPHA;
2464 BEGIN(CCL); return CCE_BLANK;
2469 BEGIN(CCL); return CCE_CNTRL;
2474 BEGIN(CCL); return CCE_DIGIT;
2479 BEGIN(CCL); return CCE_GRAPH;
2484 BEGIN(CCL); return CCE_LOWER;
2489 BEGIN(CCL); return CCE_PRINT;
2494 BEGIN(CCL); return CCE_PUNCT;
2499 BEGIN(CCL); return CCE_SPACE;
2504 BEGIN(CCL); return CCE_UPPER;
2509 BEGIN(CCL); return CCE_XDIGIT;
2516 _( "bad character class expression: %s" ),
2518 BEGIN(CCL); return CCE_ALNUM;
2527 yylval = myctoi( yytext );
2539 BEGIN(SECT2); return '}';
2545 synerr( _( "bad character inside {}'s" ) );
2554 synerr( _( "missing }" ) );
2570 ACTION_ECHO; yy_push_state( COMMENT );
2578 CHECK_REJECT(yytext);
2586 CHECK_YYMORE(yytext);
2601 if ( bracelevel == 0 ||
2602 (doing_codeblock && indented_code) )
2604 if ( doing_rule_action )
2605 add_action( "\tYY_BREAK\n" );
2607 doing_rule_action = doing_codeblock = false;
2613 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2618 ACTION_ECHO; ++bracelevel;
2623 ACTION_ECHO; --bracelevel;
2638 ACTION_ECHO; /* character constant */
2643 ACTION_ECHO; BEGIN(ACTION_STRING);
2651 if ( bracelevel == 0 )
2653 if ( doing_rule_action )
2654 add_action( "\tYY_BREAK\n" );
2656 doing_rule_action = false;
2681 ++linenum; ACTION_ECHO;
2686 ACTION_ECHO; BEGIN(ACTION);
2694 case YY_STATE_EOF(COMMENT):
2695 case YY_STATE_EOF(ACTION):
2696 case YY_STATE_EOF(ACTION_STRING):
2699 synerr( _( "EOF encountered inside an action" ) );
2707 yylval = myesc( (Char *) yytext );
2709 if ( YY_START == FIRSTCCL )
2721 case YY_STATE_EOF(SECT3):
2723 sectnum = 0; yyterminate();
2729 format_synerr( _( "bad character: %s" ), yytext );
2734 YY_FATAL_ERROR( "flex scanner jammed" );
2737 case YY_STATE_EOF(INITIAL):
2738 case YY_STATE_EOF(SECT2):
2739 case YY_STATE_EOF(CODEBLOCK):
2740 case YY_STATE_EOF(PICKUPDEF):
2741 case YY_STATE_EOF(SC):
2742 case YY_STATE_EOF(CARETISBOL):
2743 case YY_STATE_EOF(NUM):
2744 case YY_STATE_EOF(QUOTE):
2745 case YY_STATE_EOF(FIRSTCCL):
2746 case YY_STATE_EOF(CCL):
2747 case YY_STATE_EOF(RECOVER):
2748 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2749 case YY_STATE_EOF(OPTION):
2750 case YY_STATE_EOF(LINEDIR):
2753 case YY_END_OF_BUFFER:
2755 /* Amount of text matched not including the EOB char. */
2756 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2758 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2759 *yy_cp = yy_hold_char;
2760 YY_RESTORE_YY_MORE_OFFSET
2762 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2764 /* We're scanning a new file or input source. It's
2765 * possible that this happened because the user
2766 * just pointed yyin at a new source and called
2767 * yylex(). If so, then we have to assure
2768 * consistency between yy_current_buffer and our
2769 * globals. Here is the right place to do so, because
2770 * this is the first action (other than possibly a
2771 * back-up) that will match for the new input source.
2773 yy_n_chars = yy_current_buffer->yy_n_chars;
2774 yy_current_buffer->yy_input_file = yyin;
2775 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2778 /* Note that here we test for yy_c_buf_p "<=" to the position
2779 * of the first EOB in the buffer, since yy_c_buf_p will
2780 * already have been incremented past the NUL character
2781 * (since all states make transitions on EOB to the
2782 * end-of-buffer state). Contrast this with the test
2785 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2786 { /* This was really a NUL. */
2787 yy_state_type yy_next_state;
2789 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2791 yy_current_state = yy_get_previous_state();
2793 /* Okay, we're now positioned to make the NUL
2794 * transition. We couldn't have
2795 * yy_get_previous_state() go ahead and do it
2796 * for us because it doesn't know how to deal
2797 * with the possibility of jamming (and we don't
2798 * want to build jamming into it because then it
2799 * will run more slowly).
2802 yy_next_state = yy_try_NUL_trans( yy_current_state );
2804 yy_bp = yytext_ptr + YY_MORE_ADJ;
2806 if ( yy_next_state )
2808 /* Consume the NUL. */
2809 yy_cp = ++yy_c_buf_p;
2810 yy_current_state = yy_next_state;
2817 goto yy_find_action;
2821 else switch ( yy_get_next_buffer() )
2823 case EOB_ACT_END_OF_FILE:
2825 yy_did_buffer_switch_on_eof = 0;
2829 /* Note: because we've taken care in
2830 * yy_get_next_buffer() to have set up
2831 * yytext, we can now set up
2832 * yy_c_buf_p so that if some total
2833 * hoser (like flex itself) wants to
2834 * call the scanner after we return the
2835 * YY_NULL, it'll still work - another
2836 * YY_NULL will get returned.
2838 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2840 yy_act = YY_STATE_EOF(YY_START);
2846 if ( ! yy_did_buffer_switch_on_eof )
2852 case EOB_ACT_CONTINUE_SCAN:
2854 yytext_ptr + yy_amount_of_matched_text;
2856 yy_current_state = yy_get_previous_state();
2859 yy_bp = yytext_ptr + YY_MORE_ADJ;
2862 case EOB_ACT_LAST_MATCH:
2864 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2866 yy_current_state = yy_get_previous_state();
2869 yy_bp = yytext_ptr + YY_MORE_ADJ;
2870 goto yy_find_action;
2877 "fatal flex scanner internal error--no action found" );
2878 } /* end of action switch */
2879 } /* end of scanning one token */
2880 } /* end of yylex */
2883 /* yy_get_next_buffer - try to read in a new buffer
2885 * Returns a code representing an action:
2886 * EOB_ACT_LAST_MATCH -
2887 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2888 * EOB_ACT_END_OF_FILE - end of file
2891 static int yy_get_next_buffer()
2893 register char *dest = yy_current_buffer->yy_ch_buf;
2894 register char *source = yytext_ptr;
2895 register int number_to_move, i;
2898 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2900 "fatal flex scanner internal error--end of buffer missed" );
2902 if ( yy_current_buffer->yy_fill_buffer == 0 )
2903 { /* Don't try to fill the buffer, so this is an EOF. */
2904 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2906 /* We matched a single character, the EOB, so
2907 * treat this as a final EOF.
2909 return EOB_ACT_END_OF_FILE;
2914 /* We matched some text prior to the EOB, first
2917 return EOB_ACT_LAST_MATCH;
2921 /* Try to read more data. */
2923 /* First move last chars to start of buffer. */
2924 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2926 for ( i = 0; i < number_to_move; ++i )
2927 *(dest++) = *(source++);
2929 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2930 /* don't do the read, it's not guaranteed to return an EOF,
2933 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2938 yy_current_buffer->yy_buf_size - number_to_move - 1;
2940 while ( num_to_read <= 0 )
2941 { /* Not enough room in the buffer - grow it. */
2942 #ifdef YY_USES_REJECT
2944 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2947 /* just a shorter name for the current buffer */
2948 YY_BUFFER_STATE b = yy_current_buffer;
2950 int yy_c_buf_p_offset =
2951 (int) (yy_c_buf_p - b->yy_ch_buf);
2953 if ( b->yy_is_our_buffer )
2955 int new_size = b->yy_buf_size * 2;
2957 if ( new_size <= 0 )
2958 b->yy_buf_size += b->yy_buf_size / 8;
2960 b->yy_buf_size *= 2;
2962 b->yy_ch_buf = (char *)
2963 /* Include room in for 2 EOB chars. */
2964 yy_flex_realloc( (void *) b->yy_ch_buf,
2965 b->yy_buf_size + 2 );
2968 /* Can't grow it, we don't own it. */
2971 if ( ! b->yy_ch_buf )
2973 "fatal error - scanner input buffer overflow" );
2975 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2977 num_to_read = yy_current_buffer->yy_buf_size -
2982 if ( num_to_read > YY_READ_BUF_SIZE )
2983 num_to_read = YY_READ_BUF_SIZE;
2985 /* Read in more data. */
2986 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2987 yy_n_chars, num_to_read );
2989 yy_current_buffer->yy_n_chars = yy_n_chars;
2992 if ( yy_n_chars == 0 )
2994 if ( number_to_move == YY_MORE_ADJ )
2996 ret_val = EOB_ACT_END_OF_FILE;
3002 ret_val = EOB_ACT_LAST_MATCH;
3003 yy_current_buffer->yy_buffer_status =
3004 YY_BUFFER_EOF_PENDING;
3009 ret_val = EOB_ACT_CONTINUE_SCAN;
3011 yy_n_chars += number_to_move;
3012 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3013 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3015 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3021 /* yy_get_previous_state - get the state just before the EOB char was reached */
3023 static yy_state_type yy_get_previous_state()
3025 register yy_state_type yy_current_state;
3026 register char *yy_cp;
3028 yy_current_state = yy_start;
3029 yy_current_state += YY_AT_BOL();
3031 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3033 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3034 if ( yy_accept[yy_current_state] )
3036 yy_last_accepting_state = yy_current_state;
3037 yy_last_accepting_cpos = yy_cp;
3039 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3041 yy_current_state = (int) yy_def[yy_current_state];
3042 if ( yy_current_state >= 769 )
3043 yy_c = yy_meta[(unsigned int) yy_c];
3045 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3048 return yy_current_state;
3052 /* yy_try_NUL_trans - try to make a transition on the NUL character
3055 * next_state = yy_try_NUL_trans( current_state );
3058 #ifdef YY_USE_PROTOS
3059 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3061 static yy_state_type yy_try_NUL_trans( yy_current_state )
3062 yy_state_type yy_current_state;
3065 register int yy_is_jam;
3066 register char *yy_cp = yy_c_buf_p;
3068 register YY_CHAR yy_c = 1;
3069 if ( yy_accept[yy_current_state] )
3071 yy_last_accepting_state = yy_current_state;
3072 yy_last_accepting_cpos = yy_cp;
3074 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3076 yy_current_state = (int) yy_def[yy_current_state];
3077 if ( yy_current_state >= 769 )
3078 yy_c = yy_meta[(unsigned int) yy_c];
3080 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3081 yy_is_jam = (yy_current_state == 768);
3083 return yy_is_jam ? 0 : yy_current_state;
3088 #ifdef YY_USE_PROTOS
3089 static void yyunput( int c, register char *yy_bp )
3091 static void yyunput( c, yy_bp )
3093 register char *yy_bp;
3096 register char *yy_cp = yy_c_buf_p;
3098 /* undo effects of setting up yytext */
3099 *yy_cp = yy_hold_char;
3101 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3102 { /* need to shift things up to make room */
3103 /* +2 for EOB chars. */
3104 register int number_to_move = yy_n_chars + 2;
3105 register char *dest = &yy_current_buffer->yy_ch_buf[
3106 yy_current_buffer->yy_buf_size + 2];
3107 register char *source =
3108 &yy_current_buffer->yy_ch_buf[number_to_move];
3110 while ( source > yy_current_buffer->yy_ch_buf )
3111 *--dest = *--source;
3113 yy_cp += (int) (dest - source);
3114 yy_bp += (int) (dest - source);
3115 yy_current_buffer->yy_n_chars =
3116 yy_n_chars = yy_current_buffer->yy_buf_size;
3118 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3119 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3122 *--yy_cp = (char) c;
3126 yy_hold_char = *yy_cp;
3129 #endif /* ifndef YY_NO_UNPUT */
3133 static int yyinput()
3140 *yy_c_buf_p = yy_hold_char;
3142 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3144 /* yy_c_buf_p now points to the character we want to return.
3145 * If this occurs *before* the EOB characters, then it's a
3146 * valid NUL; if not, then we've hit the end of the buffer.
3148 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3149 /* This was really a NUL. */
3153 { /* need more input */
3154 int offset = yy_c_buf_p - yytext_ptr;
3157 switch ( yy_get_next_buffer() )
3159 case EOB_ACT_LAST_MATCH:
3160 /* This happens because yy_g_n_b()
3161 * sees that we've accumulated a
3162 * token and flags that we need to
3163 * try matching the token before
3164 * proceeding. But for input(),
3165 * there's no matching to consider.
3166 * So convert the EOB_ACT_LAST_MATCH
3167 * to EOB_ACT_END_OF_FILE.
3170 /* Reset buffer status. */
3175 case EOB_ACT_END_OF_FILE:
3180 if ( ! yy_did_buffer_switch_on_eof )
3189 case EOB_ACT_CONTINUE_SCAN:
3190 yy_c_buf_p = yytext_ptr + offset;
3196 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3197 *yy_c_buf_p = '\0'; /* preserve yytext */
3198 yy_hold_char = *++yy_c_buf_p;
3200 yy_current_buffer->yy_at_bol = (c == '\n');
3206 #ifdef YY_USE_PROTOS
3207 void yyrestart( FILE *input_file )
3209 void yyrestart( input_file )
3213 if ( ! yy_current_buffer )
3214 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3216 yy_init_buffer( yy_current_buffer, input_file );
3217 yy_load_buffer_state();
3221 #ifdef YY_USE_PROTOS
3222 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3224 void yy_switch_to_buffer( new_buffer )
3225 YY_BUFFER_STATE new_buffer;
3228 if ( yy_current_buffer == new_buffer )
3231 if ( yy_current_buffer )
3233 /* Flush out information for old buffer. */
3234 *yy_c_buf_p = yy_hold_char;
3235 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3236 yy_current_buffer->yy_n_chars = yy_n_chars;
3239 yy_current_buffer = new_buffer;
3240 yy_load_buffer_state();
3242 /* We don't actually know whether we did this switch during
3243 * EOF (yywrap()) processing, but the only time this flag
3244 * is looked at is after yywrap() is called, so it's safe
3245 * to go ahead and always set it.
3247 yy_did_buffer_switch_on_eof = 1;
3251 #ifdef YY_USE_PROTOS
3252 void yy_load_buffer_state( void )
3254 void yy_load_buffer_state()
3257 yy_n_chars = yy_current_buffer->yy_n_chars;
3258 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3259 yyin = yy_current_buffer->yy_input_file;
3260 yy_hold_char = *yy_c_buf_p;
3264 #ifdef YY_USE_PROTOS
3265 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3267 YY_BUFFER_STATE yy_create_buffer( file, size )
3274 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3276 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3278 b->yy_buf_size = size;
3280 /* yy_ch_buf has to be 2 characters longer than the size given because
3281 * we need to put in 2 end-of-buffer characters.
3283 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3284 if ( ! b->yy_ch_buf )
3285 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3287 b->yy_is_our_buffer = 1;
3289 yy_init_buffer( b, file );
3295 #ifdef YY_USE_PROTOS
3296 void yy_delete_buffer( YY_BUFFER_STATE b )
3298 void yy_delete_buffer( b )
3305 if ( b == yy_current_buffer )
3306 yy_current_buffer = (YY_BUFFER_STATE) 0;
3308 if ( b->yy_is_our_buffer )
3309 yy_flex_free( (void *) b->yy_ch_buf );
3311 yy_flex_free( (void *) b );
3315 #ifndef YY_ALWAYS_INTERACTIVE
3316 #ifndef YY_NEVER_INTERACTIVE
3317 extern int isatty YY_PROTO(( int ));
3321 #ifdef YY_USE_PROTOS
3322 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3324 void yy_init_buffer( b, file )
3331 yy_flush_buffer( b );
3333 b->yy_input_file = file;
3334 b->yy_fill_buffer = 1;
3336 #if YY_ALWAYS_INTERACTIVE
3337 b->yy_is_interactive = 1;
3339 #if YY_NEVER_INTERACTIVE
3340 b->yy_is_interactive = 0;
3342 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3348 #ifdef YY_USE_PROTOS
3349 void yy_flush_buffer( YY_BUFFER_STATE b )
3351 void yy_flush_buffer( b )
3361 /* We always need two end-of-buffer characters. The first causes
3362 * a transition to the end-of-buffer state. The second causes
3363 * a jam in that state.
3365 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3366 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3368 b->yy_buf_pos = &b->yy_ch_buf[0];
3371 b->yy_buffer_status = YY_BUFFER_NEW;
3373 if ( b == yy_current_buffer )
3374 yy_load_buffer_state();
3378 #ifndef YY_NO_SCAN_BUFFER
3379 #ifdef YY_USE_PROTOS
3380 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3382 YY_BUFFER_STATE yy_scan_buffer( base, size )
3390 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3391 base[size-1] != YY_END_OF_BUFFER_CHAR )
3392 /* They forgot to leave room for the EOB's. */
3395 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3397 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3399 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3400 b->yy_buf_pos = b->yy_ch_buf = base;
3401 b->yy_is_our_buffer = 0;
3402 b->yy_input_file = 0;
3403 b->yy_n_chars = b->yy_buf_size;
3404 b->yy_is_interactive = 0;
3406 b->yy_fill_buffer = 0;
3407 b->yy_buffer_status = YY_BUFFER_NEW;
3409 yy_switch_to_buffer( b );
3416 #ifndef YY_NO_SCAN_STRING
3417 #ifdef YY_USE_PROTOS
3418 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3420 YY_BUFFER_STATE yy_scan_string( yy_str )
3421 yyconst char *yy_str;
3425 for ( len = 0; yy_str[len]; ++len )
3428 return yy_scan_bytes( yy_str, len );
3433 #ifndef YY_NO_SCAN_BYTES
3434 #ifdef YY_USE_PROTOS
3435 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3437 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3438 yyconst char *bytes;
3447 /* Get memory for full buffer, including space for trailing EOB's. */
3449 buf = (char *) yy_flex_alloc( n );
3451 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3453 for ( i = 0; i < len; ++i )
3456 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3458 b = yy_scan_buffer( buf, n );
3460 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3462 /* It's okay to grow etc. this buffer, and we should throw it
3463 * away when we're done.
3465 b->yy_is_our_buffer = 1;
3472 #ifndef YY_NO_PUSH_STATE
3473 #ifdef YY_USE_PROTOS
3474 static void yy_push_state( int new_state )
3476 static void yy_push_state( new_state )
3480 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3484 yy_start_stack_depth += YY_START_STACK_INCR;
3485 new_size = yy_start_stack_depth * sizeof( int );
3487 if ( ! yy_start_stack )
3488 yy_start_stack = (int *) yy_flex_alloc( new_size );
3491 yy_start_stack = (int *) yy_flex_realloc(
3492 (void *) yy_start_stack, new_size );
3494 if ( ! yy_start_stack )
3496 "out of memory expanding start-condition stack" );
3499 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3506 #ifndef YY_NO_POP_STATE
3507 static void yy_pop_state()
3509 if ( --yy_start_stack_ptr < 0 )
3510 YY_FATAL_ERROR( "start-condition stack underflow" );
3512 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3517 #ifndef YY_NO_TOP_STATE
3518 static int yy_top_state()
3520 return yy_start_stack[yy_start_stack_ptr - 1];
3524 #ifndef YY_EXIT_FAILURE
3525 #define YY_EXIT_FAILURE 2
3528 #ifdef YY_USE_PROTOS
3529 static void yy_fatal_error( yyconst char msg[] )
3531 static void yy_fatal_error( msg )
3535 (void) fprintf( stderr, "%s\n", msg );
3536 exit( YY_EXIT_FAILURE );
3541 /* Redefine yyless() so it works in section 3 code. */
3547 /* Undo effects of setting up yytext. */ \
3548 yytext[yyleng] = yy_hold_char; \
3549 yy_c_buf_p = yytext + n; \
3550 yy_hold_char = *yy_c_buf_p; \
3551 *yy_c_buf_p = '\0'; \
3557 /* Internal utility routines. */
3560 #ifdef YY_USE_PROTOS
3561 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3563 static void yy_flex_strncpy( s1, s2, n )
3570 for ( i = 0; i < n; ++i )
3575 #ifdef YY_NEED_STRLEN
3576 #ifdef YY_USE_PROTOS
3577 static int yy_flex_strlen( yyconst char *s )
3579 static int yy_flex_strlen( s )
3584 for ( n = 0; s[n]; ++n )
3592 #ifdef YY_USE_PROTOS
3593 static void *yy_flex_alloc( yy_size_t size )
3595 static void *yy_flex_alloc( size )
3599 return (void *) malloc( size );
3602 #ifdef YY_USE_PROTOS
3603 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3605 static void *yy_flex_realloc( ptr, size )
3610 /* The cast to (char *) in the following accommodates both
3611 * implementations that use char* generic pointers, and those
3612 * that use void* generic pointers. It works with the latter
3613 * because both ANSI C and C++ allow castless assignment from
3614 * any pointer type to void*, and deal with argument conversions
3615 * as though doing an assignment.
3617 return (void *) realloc( (char *) ptr, size );
3620 #ifdef YY_USE_PROTOS
3621 static void yy_flex_free( void *ptr )
3623 static void yy_flex_free( ptr )
3643 if ( --num_input_files > 0 )
3645 set_input_file( *++input_files );
3654 /* set_input_file - open the given file (if NULL, stdin) for scanning */
3656 void set_input_file( file )
3659 if ( file && strcmp( file, "-" ) )
3661 infilename = copy_string( file );
3662 yyin = fopen( infilename, "r" );
3665 lerrsf( _( "can't open %s" ), file );
3671 infilename = copy_string( "<stdin>" );
3678 /* Wrapper routines for accessing the scanner's malloc routines. */
3680 void *flex_alloc( size )
3683 return (void *) malloc( size );
3686 void *flex_realloc( ptr, size )
3690 return (void *) realloc( ptr, size );
3693 void flex_free( ptr )