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 $
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
28 /* Use prototypes in function declarations. */
31 /* The "const" storage-class-modifier is valid. */
34 #else /* ! __cplusplus */
42 #endif /* ! __cplusplus */
61 #define YY_PROTO(proto) proto
63 #define YY_PROTO(proto) ()
66 /* Returned upon end-of-file. */
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index. If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
76 /* Enter a start condition. This macro really ought to take a parameter,
77 * but we do it the disgusting crufty way forced on us by the ()-less
78 * definition of BEGIN.
80 #define BEGIN yy_start = 1 + 2 *
82 /* Translate the current start state into a value that can be later handed
83 * to BEGIN to return to the state. The YYSTATE alias is for lex
86 #define YY_START ((yy_start - 1) / 2)
87 #define YYSTATE YY_START
89 /* Action number for EOF rule of a given start state. */
90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
92 /* Special action meaning "start processing a new file". */
93 #define YY_NEW_FILE yyrestart( yyin )
95 #define YY_END_OF_BUFFER_CHAR 0
97 /* Size of default input buffer. */
98 #define YY_BUF_SIZE 16384
100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
103 extern FILE *yyin, *yyout;
105 #define EOB_ACT_CONTINUE_SCAN 0
106 #define EOB_ACT_END_OF_FILE 1
107 #define EOB_ACT_LAST_MATCH 2
109 /* The funky do-while in the following #define is used to turn the definition
110 * int a single C statement (which needs a semi-colon terminator). This
111 * avoids problems with code like:
113 * if ( condition_holds )
116 * do_something_else();
118 * Prior to using the do-while the compiler would get upset at the
119 * "else" because it interpreted the "if" statement as being all
120 * done when it reached the ';' after the yyless() call.
123 /* Return all but the first 'n' matched characters back to the input stream. */
128 /* Undo effects of setting up yytext. */ \
129 *yy_cp = yy_hold_char; \
130 YY_RESTORE_YY_MORE_OFFSET \
131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
136 #define unput(c) yyunput( c, yytext_ptr )
138 /* The following is because we cannot portably get our hands on size_t
139 * (without autoconf's help, which isn't available because we want
140 * flex-generated scanners to compile on their own).
142 typedef unsigned int yy_size_t;
145 struct yy_buffer_state
149 char *yy_ch_buf; /* input buffer */
150 char *yy_buf_pos; /* current position in input buffer */
152 /* Size of input buffer in bytes, not including room for EOB
155 yy_size_t yy_buf_size;
157 /* Number of characters read into yy_ch_buf, not including EOB
162 /* Whether we "own" the buffer - i.e., we know we created it,
163 * and can realloc() it to grow it, and should free() it to
166 int yy_is_our_buffer;
168 /* Whether this is an "interactive" input source; if so, and
169 * if we're using stdio for input, then we want to use getc()
170 * instead of fread(), to make sure we stop fetching input after
173 int yy_is_interactive;
175 /* Whether we're considered to be at the beginning of a line.
176 * If so, '^' rules will be active on the next match, otherwise
181 /* Whether to try to fill the input buffer when we reach the
186 int yy_buffer_status;
187 #define YY_BUFFER_NEW 0
188 #define YY_BUFFER_NORMAL 1
189 /* When an EOF's been seen but there's still some text to process
190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191 * shouldn't try reading from the input source any more. We might
192 * still have a bunch of tokens to match, though, because of
193 * possible backing-up.
195 * When we actually see the EOF, we change the status to "new"
196 * (via yyrestart()), so that the user can continue scanning by
197 * just pointing yyin at a new input file.
199 #define YY_BUFFER_EOF_PENDING 2
202 static YY_BUFFER_STATE yy_current_buffer = 0;
204 /* We provide macros for accessing buffer states in case in the
205 * future we want to put the buffer states in a more general
208 #define YY_CURRENT_BUFFER yy_current_buffer
211 /* yy_hold_char holds the character lost when yytext is formed. */
212 static char yy_hold_char;
214 static int yy_n_chars; /* number of characters read into yy_ch_buf */
219 /* Points to current character in buffer. */
220 static char *yy_c_buf_p = (char *) 0;
221 static int yy_init = 1; /* whether we need to initialize */
222 static int yy_start = 0; /* start state number */
224 /* Flag which is used to allow yywrap()'s to do buffer switches
225 * instead of setting up a fresh yyin. A bit of a hack ...
227 static int yy_did_buffer_switch_on_eof;
229 void yyrestart YY_PROTO(( FILE *input_file ));
231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232 void yy_load_buffer_state YY_PROTO(( void ));
233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
243 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
245 static void yy_flex_free YY_PROTO(( void * ));
247 #define yy_new_buffer yy_create_buffer
249 #define yy_set_interactive(is_interactive) \
251 if ( ! yy_current_buffer ) \
252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
253 yy_current_buffer->yy_is_interactive = is_interactive; \
256 #define yy_set_bol(at_bol) \
258 if ( ! yy_current_buffer ) \
259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
260 yy_current_buffer->yy_at_bol = at_bol; \
263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
265 typedef unsigned char YY_CHAR;
266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
267 typedef int yy_state_type;
269 #define yytext_ptr yytext
271 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
273 static int yy_get_next_buffer YY_PROTO(( void ));
274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
276 /* Done after the current pattern has been matched and before the
277 * corresponding action - sets up yytext.
279 #define YY_DO_BEFORE_ACTION \
280 yytext_ptr = yy_bp; \
281 yyleng = (int) (yy_cp - yy_bp); \
282 yy_hold_char = *yy_cp; \
286 #define YY_NUM_RULES 165
287 #define YY_END_OF_BUFFER 166
288 static yyconst short int yy_accept[769] =
290 0, 0, 0, 0, 87, 87, 163, 163, 0, 0,
291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 0, 166, 164,
294 7, 18, 164, 16, 1, 17, 164, 164, 164, 164,
295 15, 108, 100, 101, 108, 93, 108, 107, 108, 108,
296 108, 107, 99, 89, 108, 108, 91, 92, 87, 88,
297 87, 86, 85, 86, 86, 163, 163, 28, 29, 28,
298 28, 28, 28, 28, 28, 31, 30, 32, 31, 113,
299 109, 110, 112, 114, 141, 142, 141, 139, 138, 140,
301 115, 117, 115, 116, 115, 120, 120, 120, 120, 122,
302 124, 122, 122, 122, 122, 123, 151, 155, 151, 154,
303 156, 156, 152, 152, 152, 149, 150, 164, 82, 164,
304 21, 22, 21, 20, 157, 159, 157, 160, 161, 147,
305 147, 148, 147, 147, 147, 147, 147, 147, 147, 81,
306 34, 33, 81, 81, 81, 81, 35, 81, 81, 81,
307 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
308 81, 81, 81, 81, 81, 81, 26, 23, 26, 24,
309 7, 18, 0, 16, 1, 17, 0, 0, 0, 14,
310 8, 0, 0, 0, 0, 4, 5, 0, 2, 15,
312 100, 101, 0, 0, 0, 95, 0, 0, 105, 105,
313 0, 162, 162, 162, 94, 0, 99, 89, 0, 0,
314 0, 91, 92, 104, 90, 0, 87, 88, 86, 85,
315 85, 83, 84, 163, 163, 28, 29, 28, 28, 28,
316 28, 31, 30, 32, 111, 112, 142, 138, 117, 0,
317 118, 119, 124, 121, 151, 155, 0, 153, 0, 144,
318 152, 152, 152, 0, 82, 0, 21, 22, 21, 19,
319 157, 159, 158, 147, 147, 147, 148, 143, 147, 147,
320 147, 34, 33, 0, 80, 0, 0, 81, 81, 81,
321 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
323 81, 81, 81, 36, 81, 81, 81, 81, 81, 81,
324 81, 81, 81, 81, 0, 25, 24, 0, 14, 8,
325 0, 12, 0, 0, 0, 0, 0, 4, 5, 0,
326 6, 0, 96, 0, 97, 0, 0, 105, 105, 0,
327 105, 105, 105, 162, 162, 0, 106, 90, 98, 0,
328 104, 0, 83, 84, 28, 28, 28, 27, 28, 0,
329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330 0, 152, 152, 143, 143, 147, 147, 0, 0, 81,
331 81, 81, 81, 81, 44, 81, 81, 81, 49, 81,
332 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
334 81, 81, 81, 81, 81, 81, 81, 81, 0, 81,
335 81, 81, 81, 0, 0, 0, 12, 0, 0, 0,
336 0, 0, 0, 4, 5, 0, 105, 105, 105, 105,
337 105, 105, 162, 0, 0, 28, 28, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
339 152, 152, 147, 147, 37, 38, 81, 81, 81, 81,
340 81, 81, 81, 81, 50, 51, 81, 81, 81, 55,
341 81, 81, 81, 81, 81, 81, 60, 81, 81, 81,
342 81, 81, 81, 67, 0, 0, 0, 81, 81, 81,
343 81, 0, 13, 0, 0, 0, 0, 0, 0, 105,
345 105, 105, 105, 105, 105, 0, 0, 28, 28, 137,
346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
347 0, 0, 152, 152, 147, 147, 39, 81, 41, 81,
348 43, 81, 81, 81, 47, 81, 52, 81, 81, 81,
349 81, 81, 81, 81, 81, 81, 62, 81, 81, 65,
350 81, 0, 0, 0, 0, 81, 81, 81, 81, 3,
351 0, 0, 0, 0, 105, 105, 105, 0, 0, 28,
352 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
353 0, 0, 0, 145, 146, 145, 146, 81, 42, 81,
354 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
356 81, 78, 61, 81, 64, 81, 0, 0, 0, 0,
357 81, 81, 69, 70, 0, 10, 0, 11, 0, 103,
358 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
359 0, 0, 0, 0, 81, 81, 81, 45, 81, 48,
360 81, 81, 81, 81, 77, 81, 59, 63, 66, 0,
361 0, 0, 0, 79, 81, 0, 102, 0, 0, 0,
362 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
363 81, 81, 46, 81, 81, 56, 81, 81, 0, 0,
364 0, 0, 68, 0, 9, 0, 125, 126, 127, 128,
365 129, 130, 131, 132, 133, 134, 135, 0, 81, 81,
367 81, 81, 81, 81, 81, 0, 0, 0, 0, 0,
368 136, 81, 81, 81, 81, 54, 81, 81, 0, 0,
369 0, 0, 0, 0, 81, 81, 81, 53, 81, 58,
370 0, 0, 0, 0, 0, 0, 81, 81, 81, 81,
371 72, 0, 0, 0, 0, 73, 81, 81, 81, 81,
372 71, 0, 75, 0, 81, 81, 81, 74, 76, 81,
373 81, 81, 81, 81, 81, 57, 40, 0
376 static yyconst int yy_ec[256] =
378 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
379 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 2, 1, 5, 6, 7, 8, 1, 9, 10,
382 10, 11, 12, 13, 14, 10, 15, 16, 16, 16,
383 16, 16, 16, 16, 17, 18, 19, 20, 1, 21,
384 22, 23, 10, 1, 31, 32, 33, 34, 35, 36,
385 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
386 47, 48, 49, 50, 51, 52, 53, 54, 55, 47,
387 26, 27, 28, 29, 30, 1, 31, 32, 33, 34,
389 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
390 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
391 55, 47, 56, 57, 58, 1, 1, 1, 1, 1,
392 1, 1, 1, 1, 1, 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,
400 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,
408 static yyconst int yy_meta[59] =
410 1, 1, 2, 1, 3, 1, 1, 1, 4, 1,
411 5, 6, 1, 7, 4, 8, 8, 8, 8, 1,
412 1, 1, 1, 9, 10, 1, 11, 12, 1, 13,
413 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
414 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
415 15, 15, 15, 15, 15, 4, 1, 16
418 static yyconst short int yy_base[858] =
420 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705,
421 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191,
422 178, 188, 344, 347, 375, 0, 125, 131, 147, 216,
423 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716,
424 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696,
425 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126,
426 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716,
427 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695,
428 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716,
429 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716,
431 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716,
432 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716,
433 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356,
434 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0,
435 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716,
436 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579,
437 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587,
438 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612,
439 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0,
440 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0,
442 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657,
443 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592,
444 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0,
445 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598,
446 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773,
447 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716,
448 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716,
449 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596,
450 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582,
451 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584,
453 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125,
454 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0,
455 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723,
456 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876,
457 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570,
458 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009,
459 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013,
460 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557,
461 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536,
462 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532,
464 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526,
465 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914,
466 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539,
467 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058,
468 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081,
469 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495,
470 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0,
471 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487,
472 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475,
473 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496,
475 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716,
476 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085,
477 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460,
478 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414,
479 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0,
480 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297,
481 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0,
482 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207,
483 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221,
484 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149,
486 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137,
487 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716,
488 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098,
489 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0,
490 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938,
491 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881,
492 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784,
493 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744,
494 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716,
495 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720,
497 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671,
498 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608,
499 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0,
500 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228,
501 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948,
502 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689,
503 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279,
504 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439,
505 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576,
506 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718,
508 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236,
509 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977,
510 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123,
511 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255,
512 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388,
513 2404, 2420, 2429, 2437, 2453, 2469, 2485
516 static yyconst short int yy_def[858] =
518 768, 768, 769, 769, 770, 771, 772, 772, 768, 9,
519 773, 773, 768, 13, 774, 774, 775, 775, 776, 776,
520 777, 777, 778, 778, 768, 25, 779, 779, 780, 780,
521 781, 781, 768, 33, 768, 35, 782, 782, 768, 768,
522 768, 768, 768, 783, 768, 768, 768, 768, 784, 768,
523 785, 768, 768, 768, 768, 768, 768, 768, 768, 786,
524 787, 788, 768, 768, 768, 768, 768, 768, 789, 768,
525 789, 790, 791, 790, 790, 792, 768, 793, 768, 793,
526 768, 794, 794, 794, 793, 795, 768, 768, 795, 768,
527 768, 768, 796, 768, 768, 768, 768, 768, 768, 768,
529 768, 768, 768, 768, 787, 768, 768, 787, 797, 768,
530 768, 768, 798, 768, 787, 768, 799, 768, 799, 768,
531 800, 768, 801, 801, 801, 768, 768, 802, 768, 802,
532 803, 768, 803, 768, 804, 768, 804, 768, 805, 806,
533 806, 768, 806, 806, 768, 806, 807, 807, 807, 768,
534 768, 768, 768, 808, 768, 768, 768, 809, 809, 809,
535 809, 809, 809, 809, 809, 809, 809, 810, 809, 809,
536 809, 809, 809, 809, 809, 809, 768, 768, 811, 768,
537 768, 768, 768, 783, 768, 768, 768, 768, 768, 812,
538 813, 768, 768, 768, 768, 814, 815, 816, 768, 785,
540 768, 768, 768, 768, 817, 768, 768, 768, 818, 818,
541 819, 768, 768, 820, 768, 821, 768, 768, 768, 768,
542 768, 768, 768, 822, 768, 768, 823, 768, 824, 825,
543 825, 826, 827, 828, 768, 829, 768, 830, 830, 830,
544 768, 831, 768, 768, 768, 832, 768, 768, 768, 833,
545 768, 768, 768, 768, 834, 768, 835, 768, 835, 768,
546 836, 836, 836, 837, 768, 837, 838, 768, 838, 768,
547 839, 768, 768, 840, 840, 840, 768, 768, 841, 841,
548 841, 768, 768, 842, 768, 768, 768, 843, 843, 843,
549 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
551 843, 843, 843, 768, 843, 843, 843, 843, 843, 843,
552 843, 843, 843, 843, 844, 768, 768, 768, 845, 846,
553 847, 768, 768, 768, 768, 768, 768, 848, 849, 850,
554 768, 850, 768, 851, 768, 851, 768, 852, 852, 852,
555 768, 852, 852, 768, 853, 854, 768, 768, 768, 768,
556 855, 768, 826, 827, 830, 830, 241, 768, 241, 241,
557 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
558 833, 836, 836, 278, 278, 841, 841, 768, 768, 843,
559 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
560 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
562 843, 843, 843, 843, 843, 843, 843, 843, 768, 843,
563 843, 843, 843, 768, 847, 847, 768, 847, 847, 768,
564 768, 768, 768, 848, 849, 768, 341, 852, 343, 341,
565 852, 343, 768, 768, 768, 830, 830, 360, 768, 833,
566 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
567 836, 836, 841, 841, 768, 768, 843, 843, 843, 843,
568 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
569 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
570 843, 843, 843, 843, 768, 768, 768, 843, 843, 843,
571 843, 768, 768, 847, 847, 768, 768, 768, 768, 427,
573 852, 343, 852, 852, 852, 768, 768, 830, 830, 768,
574 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
575 833, 833, 836, 836, 841, 841, 843, 843, 843, 843,
576 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
577 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
578 843, 768, 768, 768, 768, 843, 843, 843, 843, 768,
579 856, 768, 768, 768, 852, 852, 852, 768, 768, 830,
580 830, 833, 833, 833, 833, 833, 833, 833, 833, 833,
581 833, 833, 833, 836, 836, 841, 841, 843, 843, 843,
582 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
584 843, 843, 843, 843, 843, 843, 768, 768, 768, 768,
585 843, 843, 843, 843, 856, 768, 856, 768, 768, 768,
586 768, 768, 833, 833, 833, 833, 833, 833, 833, 833,
587 833, 833, 833, 833, 843, 843, 843, 843, 843, 843,
588 843, 843, 843, 843, 843, 843, 843, 843, 843, 768,
589 768, 768, 768, 843, 843, 857, 768, 768, 768, 768,
590 768, 768, 768, 768, 768, 768, 768, 768, 833, 843,
591 843, 843, 843, 843, 843, 843, 843, 843, 768, 768,
592 768, 768, 843, 857, 768, 857, 768, 768, 768, 768,
593 768, 768, 768, 768, 768, 768, 768, 768, 843, 843,
595 843, 843, 843, 843, 843, 768, 768, 768, 768, 768,
596 768, 843, 843, 843, 843, 843, 843, 843, 768, 768,
597 768, 768, 768, 768, 843, 843, 843, 843, 843, 843,
598 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
599 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
600 768, 768, 768, 768, 843, 843, 843, 768, 768, 843,
601 843, 843, 843, 843, 843, 843, 843, 0, 768, 768,
602 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
603 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
604 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
606 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
614 static yyconst short int yy_nxt[2775] =
616 40, 41, 42, 43, 40, 40, 40, 40, 40, 40,
617 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
618 40, 40, 40, 44, 44, 40, 40, 40, 40, 44,
619 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
620 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
621 44, 44, 44, 44, 44, 40, 40, 40, 40, 45,
622 46, 47, 40, 48, 40, 49, 40, 40, 40, 40,
623 40, 40, 50, 40, 40, 40, 40, 40, 40, 40,
624 40, 51, 51, 40, 40, 40, 40, 51, 51, 51,
625 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
627 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
628 51, 51, 51, 40, 40, 40, 53, 54, 55, 56,
629 767, 57, 70, 71, 58, 58, 58, 129, 130, 58,
630 73, 70, 74, 129, 130, 59, 75, 87, 88, 89,
631 60, 61, 87, 88, 89, 188, 96, 97, 224, 132,
632 133, 210, 211, 96, 97, 404, 98, 134, 405, 99,
633 99, 99, 99, 98, 213, 213, 99, 99, 99, 99,
634 62, 58, 58, 63, 64, 65, 56, 252, 57, 66,
635 40, 58, 58, 58, 439, 189, 58, 102, 103, 104,
636 40, 252, 67, 102, 103, 104, 225, 60, 61, 275,
638 68, 100, 214, 107, 108, 276, 109, 178, 100, 179,
639 232, 105, 233, 107, 108, 572, 109, 105, 132, 133,
640 180, 180, 180, 180, 265, 266, 134, 62, 58, 58,
641 78, 78, 79, 80, 78, 78, 78, 78, 78, 78,
642 81, 78, 78, 78, 78, 78, 78, 78, 78, 78,
643 78, 78, 78, 82, 82, 78, 78, 78, 78, 82,
644 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
645 82, 82, 82, 82, 82, 82, 82, 83, 82, 82,
646 82, 82, 82, 82, 84, 78, 78, 78, 90, 90,
647 40, 90, 90, 90, 90, 90, 90, 90, 91, 90,
649 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
650 92, 93, 93, 90, 90, 90, 90, 93, 93, 93,
651 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
652 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
653 93, 93, 93, 90, 90, 90, 111, 112, 296, 111,
654 112, 178, 766, 179, 181, 182, 183, 113, 265, 266,
655 113, 185, 186, 187, 180, 180, 180, 180, 297, 114,
656 115, 116, 114, 115, 116, 117, 117, 118, 119, 120,
657 117, 117, 117, 121, 117, 117, 117, 117, 117, 122,
658 117, 117, 117, 117, 117, 117, 117, 117, 123, 123,
660 117, 117, 117, 117, 123, 123, 123, 123, 123, 123,
661 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
662 123, 123, 124, 123, 123, 123, 123, 123, 123, 125,
663 126, 117, 127, 136, 137, 138, 136, 137, 138, 206,
664 206, 207, 215, 215, 215, 215, 248, 248, 248, 248,
665 268, 269, 268, 269, 300, 331, 332, 139, 301, 765,
666 139, 140, 141, 142, 143, 140, 140, 140, 144, 140,
667 140, 145, 140, 140, 140, 146, 140, 140, 140, 140,
668 140, 140, 140, 140, 147, 147, 140, 140, 140, 140,
669 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
671 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
672 147, 147, 147, 147, 147, 149, 140, 140, 140, 150,
673 151, 152, 153, 154, 150, 150, 150, 150, 150, 150,
674 150, 150, 150, 150, 150, 155, 156, 150, 150, 150,
675 157, 150, 150, 150, 150, 150, 150, 150, 150, 158,
676 159, 160, 161, 162, 163, 164, 164, 165, 164, 164,
677 166, 167, 168, 169, 170, 164, 171, 172, 164, 173,
678 174, 175, 164, 176, 150, 150, 150, 191, 201, 202,
679 203, 258, 213, 213, 204, 289, 213, 213, 213, 213,
680 292, 290, 217, 218, 219, 383, 303, 275, 220, 259,
682 192, 188, 193, 276, 193, 221, 304, 335, 336, 293,
683 193, 222, 384, 193, 194, 195, 480, 193, 196, 223,
684 214, 306, 481, 197, 214, 198, 214, 317, 317, 317,
685 317, 307, 764, 205, 308, 181, 182, 183, 185, 186,
686 187, 189, 321, 322, 323, 339, 340, 205, 321, 322,
687 323, 387, 321, 322, 323, 388, 324, 324, 324, 324,
688 342, 342, 324, 324, 324, 324, 324, 324, 324, 324,
689 321, 322, 323, 201, 202, 203, 341, 344, 344, 204,
690 380, 258, 339, 340, 324, 324, 324, 324, 325, 217,
691 218, 219, 265, 266, 381, 220, 326, 439, 343, 259,
693 265, 266, 221, 248, 248, 248, 248, 673, 222, 268,
694 269, 268, 269, 327, 392, 402, 223, 409, 393, 440,
695 410, 416, 417, 418, 403, 331, 332, 763, 205, 411,
696 412, 317, 317, 317, 317, 419, 419, 419, 419, 721,
697 413, 331, 332, 722, 205, 357, 357, 358, 359, 357,
698 357, 357, 357, 357, 357, 360, 357, 357, 357, 357,
699 357, 357, 357, 357, 357, 357, 357, 357, 360, 360,
700 357, 357, 357, 357, 360, 360, 360, 360, 360, 360,
701 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
702 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
704 357, 357, 357, 362, 363, 364, 365, 335, 336, 366,
705 335, 336, 339, 340, 367, 212, 212, 762, 368, 493,
706 494, 369, 761, 370, 417, 494, 371, 374, 374, 760,
707 374, 374, 374, 374, 374, 374, 374, 375, 374, 374,
708 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
709 375, 375, 374, 374, 374, 374, 375, 375, 375, 375,
710 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
711 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
712 375, 375, 374, 374, 374, 420, 322, 323, 427, 439,
713 439, 428, 428, 439, 339, 340, 431, 431, 439, 324,
715 324, 324, 324, 338, 439, 485, 339, 340, 486, 487,
716 439, 441, 443, 439, 442, 420, 322, 323, 450, 552,
717 759, 513, 493, 494, 516, 553, 444, 339, 340, 429,
718 338, 338, 439, 338, 338, 338, 338, 338, 338, 338,
719 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
720 338, 338, 338, 430, 430, 339, 340, 445, 338, 338,
721 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
722 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
723 430, 430, 430, 430, 430, 338, 338, 338, 432, 432,
724 432, 432, 758, 439, 339, 340, 432, 757, 339, 340,
726 495, 417, 418, 432, 432, 432, 432, 432, 432, 360,
727 360, 439, 438, 360, 360, 360, 360, 360, 360, 448,
728 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
729 360, 360, 439, 439, 360, 360, 360, 360, 439, 446,
730 501, 501, 447, 504, 504, 416, 417, 418, 616, 617,
731 339, 340, 638, 339, 340, 515, 439, 439, 449, 419,
732 419, 419, 419, 514, 360, 360, 360, 375, 375, 580,
733 375, 375, 375, 375, 375, 375, 375, 439, 375, 375,
734 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
735 517, 439, 375, 375, 375, 375, 495, 417, 418, 439,
737 439, 511, 439, 512, 439, 439, 339, 340, 209, 439,
738 419, 419, 419, 419, 439, 519, 520, 581, 518, 522,
739 566, 566, 375, 375, 375, 500, 500, 573, 521, 578,
740 339, 340, 500, 500, 500, 500, 500, 500, 500, 500,
741 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
742 500, 500, 500, 500, 500, 500, 500, 502, 502, 502,
743 502, 532, 439, 439, 439, 502, 439, 339, 340, 439,
744 339, 340, 502, 502, 502, 502, 502, 502, 505, 505,
745 505, 505, 439, 533, 582, 576, 505, 574, 579, 534,
746 575, 439, 439, 505, 505, 505, 505, 505, 505, 567,
748 567, 567, 567, 590, 339, 340, 338, 567, 577, 583,
749 439, 439, 625, 591, 567, 567, 567, 567, 567, 567,
750 439, 439, 624, 439, 439, 439, 439, 439, 439, 439,
751 616, 617, 439, 623, 616, 617, 685, 686, 685, 686,
752 756, 628, 626, 632, 708, 755, 634, 685, 686, 302,
753 302, 627, 629, 754, 753, 630, 631, 633, 752, 751,
754 750, 709, 669, 52, 52, 52, 52, 52, 52, 52,
755 52, 52, 52, 52, 52, 52, 52, 52, 52, 69,
756 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
757 69, 69, 69, 69, 69, 72, 72, 72, 72, 72,
759 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
760 72, 76, 76, 76, 76, 76, 76, 76, 76, 76,
761 76, 76, 76, 76, 76, 76, 76, 86, 86, 86,
762 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
763 86, 86, 86, 40, 40, 40, 40, 40, 40, 40,
764 40, 40, 40, 40, 40, 40, 40, 40, 40, 95,
765 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
766 95, 95, 95, 95, 95, 101, 101, 101, 101, 101,
767 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
768 101, 106, 106, 106, 106, 106, 106, 106, 106, 106,
770 106, 106, 106, 106, 106, 106, 106, 110, 110, 110,
771 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
772 110, 110, 110, 128, 128, 128, 128, 128, 128, 128,
773 128, 128, 128, 128, 128, 128, 128, 128, 128, 131,
774 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
775 131, 131, 131, 131, 131, 135, 135, 135, 135, 135,
776 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
777 135, 177, 177, 177, 177, 177, 177, 177, 177, 177,
778 177, 177, 177, 177, 177, 177, 177, 184, 184, 184,
779 184, 749, 748, 184, 184, 184, 190, 190, 190, 190,
781 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
782 190, 200, 200, 200, 200, 747, 746, 200, 200, 200,
783 209, 745, 209, 209, 209, 209, 209, 209, 209, 209,
784 209, 209, 209, 209, 209, 209, 212, 744, 212, 212,
785 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
786 212, 212, 216, 216, 216, 743, 742, 216, 216, 216,
787 227, 741, 227, 227, 227, 227, 227, 227, 227, 227,
788 227, 227, 227, 227, 227, 227, 229, 740, 229, 229,
789 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
790 229, 229, 230, 739, 230, 230, 230, 230, 230, 230,
792 230, 230, 230, 230, 230, 230, 230, 230, 234, 234,
793 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
794 234, 234, 234, 234, 236, 738, 236, 236, 737, 236,
795 236, 236, 736, 735, 236, 236, 734, 733, 732, 236,
796 238, 238, 238, 238, 731, 730, 238, 238, 238, 242,
797 729, 242, 242, 242, 242, 242, 242, 242, 242, 242,
798 242, 242, 242, 242, 242, 246, 246, 246, 246, 728,
799 727, 246, 246, 246, 251, 726, 251, 251, 251, 251,
800 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
801 254, 725, 254, 254, 254, 254, 254, 254, 254, 254,
803 254, 724, 254, 254, 254, 254, 255, 723, 720, 719,
804 255, 255, 255, 255, 718, 717, 255, 255, 257, 716,
805 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
806 257, 257, 257, 257, 261, 261, 261, 261, 715, 714,
807 261, 261, 261, 264, 264, 264, 264, 264, 264, 264,
808 264, 264, 264, 264, 264, 264, 264, 264, 264, 267,
809 267, 267, 267, 713, 267, 267, 267, 267, 267, 267,
810 267, 267, 267, 267, 267, 271, 712, 711, 271, 271,
811 271, 271, 271, 271, 271, 710, 271, 271, 271, 271,
812 271, 273, 707, 273, 273, 273, 273, 273, 273, 273,
814 273, 273, 273, 273, 273, 273, 273, 274, 706, 274,
815 274, 705, 274, 274, 274, 704, 703, 274, 274, 702,
816 701, 700, 274, 279, 279, 279, 279, 699, 698, 279,
817 279, 279, 284, 697, 284, 284, 284, 284, 284, 284,
818 284, 284, 284, 284, 284, 284, 284, 284, 288, 288,
819 696, 288, 288, 695, 694, 693, 288, 288, 315, 692,
820 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
821 315, 315, 315, 315, 319, 691, 319, 319, 319, 319,
822 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
823 320, 690, 320, 320, 320, 320, 320, 320, 320, 320,
825 320, 320, 320, 320, 320, 320, 328, 328, 689, 688,
826 328, 328, 328, 329, 329, 687, 683, 329, 329, 329,
827 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
828 330, 330, 330, 330, 330, 330, 334, 334, 334, 334,
829 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
830 334, 334, 338, 682, 338, 338, 338, 338, 338, 338,
831 338, 338, 338, 681, 338, 338, 338, 338, 209, 680,
832 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
833 209, 209, 209, 209, 345, 345, 679, 678, 677, 676,
834 345, 346, 346, 346, 346, 675, 674, 346, 346, 346,
836 346, 351, 673, 351, 351, 351, 351, 351, 351, 351,
837 351, 351, 351, 351, 351, 351, 351, 227, 672, 227,
838 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
839 227, 227, 227, 229, 671, 229, 229, 229, 229, 229,
840 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
841 670, 230, 230, 230, 230, 230, 230, 230, 230, 230,
842 230, 230, 230, 230, 230, 353, 668, 353, 353, 353,
843 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
844 353, 354, 667, 354, 354, 354, 354, 354, 354, 354,
845 354, 354, 354, 354, 354, 354, 354, 234, 234, 234,
847 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
848 234, 234, 234, 236, 666, 236, 236, 665, 236, 236,
849 236, 664, 663, 236, 236, 662, 661, 660, 236, 238,
850 238, 238, 238, 659, 658, 238, 238, 238, 242, 657,
851 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
852 242, 242, 242, 242, 246, 246, 246, 246, 656, 655,
853 246, 246, 246, 361, 361, 654, 653, 652, 361, 361,
854 255, 651, 650, 649, 255, 255, 255, 255, 648, 647,
855 255, 255, 257, 646, 257, 257, 257, 257, 257, 257,
856 257, 257, 257, 257, 257, 257, 257, 257, 261, 261,
858 261, 261, 645, 644, 261, 261, 261, 264, 264, 264,
859 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
860 264, 264, 264, 267, 267, 267, 267, 643, 267, 267,
861 267, 267, 267, 267, 267, 267, 267, 267, 267, 271,
862 642, 641, 271, 271, 271, 271, 271, 271, 271, 640,
863 271, 271, 271, 271, 271, 274, 639, 274, 274, 638,
864 274, 274, 274, 637, 636, 274, 274, 635, 622, 621,
865 274, 279, 279, 279, 279, 620, 619, 279, 279, 279,
866 284, 618, 284, 284, 284, 284, 284, 284, 284, 284,
867 284, 284, 284, 284, 284, 284, 288, 288, 560, 288,
869 288, 614, 613, 612, 288, 288, 315, 611, 315, 315,
870 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
871 315, 315, 319, 610, 319, 319, 319, 319, 319, 319,
872 319, 319, 319, 319, 319, 319, 319, 319, 320, 609,
873 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
874 320, 320, 320, 320, 415, 415, 415, 415, 415, 415,
875 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
876 424, 424, 424, 424, 608, 607, 424, 424, 424, 425,
877 425, 425, 425, 606, 605, 425, 425, 425, 330, 330,
878 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
880 330, 330, 330, 330, 334, 334, 334, 334, 334, 334,
881 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
882 338, 604, 338, 338, 338, 338, 338, 338, 338, 338,
883 338, 603, 338, 338, 338, 338, 433, 433, 602, 601,
884 600, 599, 433, 346, 346, 346, 346, 598, 597, 346,
885 346, 346, 346, 351, 596, 351, 351, 351, 351, 351,
886 351, 351, 351, 351, 351, 351, 351, 351, 351, 615,
887 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
888 615, 615, 615, 615, 615, 684, 684, 684, 684, 684,
889 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
891 684, 595, 594, 593, 592, 589, 588, 587, 586, 585,
892 584, 571, 570, 569, 568, 565, 564, 563, 562, 561,
893 560, 559, 558, 557, 556, 555, 554, 551, 550, 549,
894 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
895 538, 537, 536, 535, 531, 530, 529, 528, 527, 526,
896 525, 524, 523, 510, 509, 508, 507, 506, 503, 499,
897 498, 497, 496, 492, 491, 490, 489, 488, 484, 483,
898 482, 479, 478, 477, 476, 475, 474, 473, 472, 471,
899 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
900 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
902 439, 437, 436, 435, 434, 347, 426, 423, 422, 421,
903 322, 414, 316, 408, 407, 406, 401, 400, 399, 398,
904 397, 396, 395, 394, 391, 390, 389, 386, 385, 382,
905 379, 378, 285, 282, 377, 376, 278, 373, 372, 243,
906 356, 355, 235, 231, 352, 350, 349, 348, 218, 347,
907 337, 206, 333, 202, 318, 186, 182, 316, 314, 313,
908 312, 311, 310, 309, 305, 299, 298, 295, 294, 291,
909 287, 286, 285, 283, 282, 281, 280, 260, 278, 277,
910 272, 270, 263, 262, 260, 256, 250, 253, 250, 249,
911 247, 245, 244, 243, 241, 240, 239, 237, 235, 228,
913 231, 228, 226, 218, 208, 202, 199, 186, 182, 768,
914 94, 94, 85, 77, 77, 39, 768, 768, 768, 768,
915 768, 768, 768, 768, 768, 768, 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,
923 static yyconst short int yy_chk[2775] =
925 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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, 2, 2,
931 2, 2, 2, 2, 2, 2, 2, 2, 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,
936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
938 765, 3, 5, 5, 3, 3, 3, 27, 27, 3,
939 6, 6, 6, 28, 28, 3, 6, 11, 11, 11,
940 3, 3, 12, 12, 12, 48, 17, 17, 66, 29,
941 29, 60, 60, 18, 18, 310, 17, 29, 310, 17,
942 17, 17, 17, 18, 61, 61, 18, 18, 18, 18,
943 3, 3, 3, 4, 4, 4, 4, 109, 4, 4,
944 21, 4, 4, 4, 511, 48, 4, 19, 19, 19,
945 22, 109, 4, 20, 20, 20, 66, 4, 4, 141,
947 4, 17, 61, 21, 21, 141, 21, 37, 18, 37,
948 75, 19, 75, 22, 22, 511, 22, 20, 30, 30,
949 37, 37, 37, 37, 128, 128, 30, 4, 4, 4,
950 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
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, 13, 13,
956 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
958 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, 23, 23, 163, 24,
963 24, 38, 764, 38, 41, 41, 41, 23, 130, 130,
964 24, 45, 45, 45, 38, 38, 38, 38, 163, 23,
965 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
966 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
967 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
969 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, 31, 31, 31, 32, 32, 32, 57,
973 57, 57, 62, 62, 62, 62, 99, 99, 99, 99,
974 131, 131, 133, 133, 167, 198, 198, 31, 167, 763,
975 32, 33, 33, 33, 33, 33, 33, 33, 33, 33,
976 33, 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,
980 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
981 33, 33, 33, 33, 33, 33, 33, 33, 33, 35,
982 35, 35, 35, 35, 35, 35, 35, 35, 35, 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, 49, 53, 53,
988 53, 121, 105, 105, 53, 158, 108, 108, 115, 115,
989 160, 158, 63, 63, 63, 291, 168, 275, 63, 121,
991 49, 188, 49, 275, 49, 63, 168, 205, 205, 160,
992 49, 63, 291, 49, 49, 49, 405, 49, 49, 63,
993 105, 170, 405, 49, 108, 49, 115, 180, 180, 180,
994 180, 170, 762, 53, 170, 181, 181, 181, 185, 185,
995 185, 188, 192, 192, 192, 209, 209, 63, 193, 193,
996 193, 294, 194, 194, 194, 294, 192, 192, 192, 192,
997 211, 211, 193, 193, 193, 193, 194, 194, 194, 194,
998 195, 195, 195, 201, 201, 201, 210, 213, 213, 201,
999 289, 257, 210, 210, 195, 195, 195, 195, 192, 217,
1000 217, 217, 264, 264, 289, 217, 194, 362, 211, 257,
1002 266, 266, 217, 248, 248, 248, 248, 761, 217, 267,
1003 267, 269, 269, 195, 298, 309, 217, 314, 298, 362,
1004 314, 321, 321, 321, 309, 330, 330, 760, 201, 314,
1005 314, 317, 317, 317, 317, 321, 321, 321, 321, 708,
1006 314, 332, 332, 708, 217, 241, 241, 241, 241, 241,
1007 241, 241, 241, 241, 241, 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,
1013 241, 241, 241, 250, 250, 250, 250, 334, 334, 250,
1014 336, 336, 338, 338, 250, 344, 344, 757, 250, 415,
1015 415, 250, 756, 250, 418, 418, 250, 278, 278, 755,
1016 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
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, 324, 324, 324, 339, 363,
1022 364, 340, 340, 365, 339, 339, 342, 342, 366, 324,
1024 324, 324, 324, 340, 371, 409, 342, 342, 409, 409,
1025 441, 363, 365, 444, 364, 420, 420, 420, 371, 485,
1026 754, 441, 494, 494, 444, 485, 366, 504, 504, 340,
1027 341, 341, 367, 341, 341, 341, 341, 341, 341, 341,
1028 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1029 341, 341, 341, 341, 341, 341, 341, 367, 341, 341,
1030 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1031 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1032 341, 341, 341, 341, 341, 341, 341, 341, 343, 343,
1033 343, 343, 752, 369, 505, 505, 343, 750, 343, 343,
1035 495, 495, 495, 343, 343, 343, 343, 343, 343, 360,
1036 360, 368, 360, 360, 360, 360, 360, 360, 360, 369,
1037 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
1038 360, 360, 370, 442, 360, 360, 360, 360, 443, 368,
1039 428, 428, 368, 431, 431, 416, 416, 416, 561, 561,
1040 428, 428, 749, 431, 431, 443, 519, 445, 370, 416,
1041 416, 416, 416, 442, 360, 360, 360, 375, 375, 519,
1042 375, 375, 375, 375, 375, 375, 375, 440, 375, 375,
1043 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
1044 445, 447, 375, 375, 375, 375, 419, 419, 419, 446,
1046 450, 440, 449, 440, 520, 448, 503, 503, 503, 512,
1047 419, 419, 419, 419, 517, 447, 448, 520, 446, 450,
1048 501, 501, 375, 375, 375, 427, 427, 512, 449, 517,
1049 501, 501, 427, 427, 427, 427, 427, 427, 427, 427,
1050 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1051 427, 427, 427, 427, 427, 427, 427, 429, 429, 429,
1052 429, 462, 514, 513, 518, 429, 515, 566, 566, 521,
1053 567, 567, 429, 429, 429, 429, 429, 429, 432, 432,
1054 432, 432, 516, 462, 521, 515, 432, 513, 518, 462,
1055 514, 574, 522, 432, 432, 432, 432, 432, 432, 502,
1057 502, 502, 502, 532, 565, 565, 565, 502, 516, 522,
1058 572, 573, 574, 532, 502, 502, 502, 502, 502, 502,
1059 575, 576, 573, 577, 578, 579, 580, 583, 581, 582,
1060 615, 615, 634, 572, 617, 617, 656, 656, 684, 684,
1061 748, 577, 575, 581, 681, 747, 583, 686, 686, 810,
1062 810, 576, 578, 745, 744, 579, 580, 582, 743, 742,
1063 740, 681, 634, 769, 769, 769, 769, 769, 769, 769,
1064 769, 769, 769, 769, 769, 769, 769, 769, 769, 770,
1065 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
1066 770, 770, 770, 770, 770, 771, 771, 771, 771, 771,
1068 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1069 771, 772, 772, 772, 772, 772, 772, 772, 772, 772,
1070 772, 772, 772, 772, 772, 772, 772, 773, 773, 773,
1071 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
1072 773, 773, 773, 774, 774, 774, 774, 774, 774, 774,
1073 774, 774, 774, 774, 774, 774, 774, 774, 774, 775,
1074 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1075 775, 775, 775, 775, 775, 776, 776, 776, 776, 776,
1076 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
1077 776, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1079 777, 777, 777, 777, 777, 777, 777, 778, 778, 778,
1080 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
1081 778, 778, 778, 779, 779, 779, 779, 779, 779, 779,
1082 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
1083 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
1084 780, 780, 780, 780, 780, 781, 781, 781, 781, 781,
1085 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1086 781, 782, 782, 782, 782, 782, 782, 782, 782, 782,
1087 782, 782, 782, 782, 782, 782, 782, 783, 783, 783,
1088 783, 739, 738, 783, 783, 783, 784, 784, 784, 784,
1090 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
1091 784, 785, 785, 785, 785, 737, 736, 785, 785, 785,
1092 786, 735, 786, 786, 786, 786, 786, 786, 786, 786,
1093 786, 786, 786, 786, 786, 786, 787, 734, 787, 787,
1094 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
1095 787, 787, 788, 788, 788, 733, 732, 788, 788, 788,
1096 789, 731, 789, 789, 789, 789, 789, 789, 789, 789,
1097 789, 789, 789, 789, 789, 789, 790, 729, 790, 790,
1098 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1099 790, 790, 791, 727, 791, 791, 791, 791, 791, 791,
1101 791, 791, 791, 791, 791, 791, 791, 791, 792, 792,
1102 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1103 792, 792, 792, 792, 793, 726, 793, 793, 725, 793,
1104 793, 793, 724, 723, 793, 793, 722, 721, 720, 793,
1105 794, 794, 794, 794, 719, 718, 794, 794, 794, 795,
1106 717, 795, 795, 795, 795, 795, 795, 795, 795, 795,
1107 795, 795, 795, 795, 795, 796, 796, 796, 796, 715,
1108 714, 796, 796, 796, 797, 713, 797, 797, 797, 797,
1109 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
1110 798, 712, 798, 798, 798, 798, 798, 798, 798, 798,
1112 798, 710, 798, 798, 798, 798, 799, 709, 707, 706,
1113 799, 799, 799, 799, 705, 704, 799, 799, 800, 703,
1114 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
1115 800, 800, 800, 800, 801, 801, 801, 801, 702, 701,
1116 801, 801, 801, 802, 802, 802, 802, 802, 802, 802,
1117 802, 802, 802, 802, 802, 802, 802, 802, 802, 803,
1118 803, 803, 803, 700, 803, 803, 803, 803, 803, 803,
1119 803, 803, 803, 803, 803, 804, 699, 698, 804, 804,
1120 804, 804, 804, 804, 804, 682, 804, 804, 804, 804,
1121 804, 805, 680, 805, 805, 805, 805, 805, 805, 805,
1123 805, 805, 805, 805, 805, 805, 805, 806, 679, 806,
1124 806, 678, 806, 806, 806, 677, 675, 806, 806, 674,
1125 672, 671, 806, 807, 807, 807, 807, 670, 669, 807,
1126 807, 807, 808, 668, 808, 808, 808, 808, 808, 808,
1127 808, 808, 808, 808, 808, 808, 808, 808, 809, 809,
1128 667, 809, 809, 666, 665, 664, 809, 809, 811, 663,
1129 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
1130 811, 811, 811, 811, 812, 662, 812, 812, 812, 812,
1131 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
1132 813, 661, 813, 813, 813, 813, 813, 813, 813, 813,
1134 813, 813, 813, 813, 813, 813, 814, 814, 660, 659,
1135 814, 814, 814, 815, 815, 658, 655, 815, 815, 815,
1136 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
1137 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
1138 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
1139 817, 817, 818, 653, 818, 818, 818, 818, 818, 818,
1140 818, 818, 818, 652, 818, 818, 818, 818, 819, 651,
1141 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
1142 819, 819, 819, 819, 820, 820, 650, 646, 644, 643,
1143 820, 821, 821, 821, 821, 642, 641, 821, 821, 821,
1145 821, 822, 639, 822, 822, 822, 822, 822, 822, 822,
1146 822, 822, 822, 822, 822, 822, 822, 823, 637, 823,
1147 823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
1148 823, 823, 823, 824, 636, 824, 824, 824, 824, 824,
1149 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
1150 635, 825, 825, 825, 825, 825, 825, 825, 825, 825,
1151 825, 825, 825, 825, 825, 826, 633, 826, 826, 826,
1152 826, 826, 826, 826, 826, 826, 826, 826, 826, 826,
1153 826, 827, 632, 827, 827, 827, 827, 827, 827, 827,
1154 827, 827, 827, 827, 827, 827, 827, 828, 828, 828,
1156 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
1157 828, 828, 828, 829, 631, 829, 829, 630, 829, 829,
1158 829, 629, 628, 829, 829, 627, 626, 625, 829, 830,
1159 830, 830, 830, 624, 623, 830, 830, 830, 831, 621,
1160 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
1161 831, 831, 831, 831, 832, 832, 832, 832, 619, 612,
1162 832, 832, 832, 833, 833, 611, 610, 609, 833, 833,
1163 834, 608, 607, 606, 834, 834, 834, 834, 604, 601,
1164 834, 834, 835, 600, 835, 835, 835, 835, 835, 835,
1165 835, 835, 835, 835, 835, 835, 835, 835, 836, 836,
1167 836, 836, 599, 598, 836, 836, 836, 837, 837, 837,
1168 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
1169 837, 837, 837, 838, 838, 838, 838, 597, 838, 838,
1170 838, 838, 838, 838, 838, 838, 838, 838, 838, 839,
1171 596, 595, 839, 839, 839, 839, 839, 839, 839, 594,
1172 839, 839, 839, 839, 839, 840, 593, 840, 840, 592,
1173 840, 840, 840, 591, 590, 840, 840, 588, 569, 568,
1174 840, 841, 841, 841, 841, 564, 563, 841, 841, 841,
1175 842, 562, 842, 842, 842, 842, 842, 842, 842, 842,
1176 842, 842, 842, 842, 842, 842, 843, 843, 560, 843,
1178 843, 559, 558, 557, 843, 843, 844, 556, 844, 844,
1179 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
1180 844, 844, 845, 555, 845, 845, 845, 845, 845, 845,
1181 845, 845, 845, 845, 845, 845, 845, 845, 846, 554,
1182 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1183 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
1184 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
1185 848, 848, 848, 848, 553, 552, 848, 848, 848, 849,
1186 849, 849, 849, 551, 549, 849, 849, 849, 850, 850,
1187 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
1189 850, 850, 850, 850, 851, 851, 851, 851, 851, 851,
1190 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
1191 852, 548, 852, 852, 852, 852, 852, 852, 852, 852,
1192 852, 546, 852, 852, 852, 852, 853, 853, 545, 544,
1193 543, 542, 853, 854, 854, 854, 854, 541, 540, 854,
1194 854, 854, 854, 855, 539, 855, 855, 855, 855, 855,
1195 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
1196 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
1197 856, 856, 856, 856, 856, 857, 857, 857, 857, 857,
1198 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
1200 857, 538, 536, 534, 533, 530, 528, 526, 525, 524,
1201 523, 509, 508, 507, 506, 500, 499, 498, 497, 496,
1202 492, 491, 490, 489, 488, 487, 486, 483, 482, 481,
1203 480, 479, 478, 476, 475, 474, 473, 472, 471, 469,
1204 468, 467, 464, 463, 461, 460, 459, 458, 457, 454,
1205 453, 452, 451, 439, 437, 436, 435, 434, 430, 426,
1206 423, 422, 421, 414, 413, 412, 411, 410, 408, 407,
1207 406, 404, 403, 402, 401, 400, 399, 398, 397, 396,
1208 395, 394, 393, 392, 391, 390, 388, 387, 386, 384,
1209 383, 382, 381, 380, 379, 378, 377, 376, 373, 372,
1211 361, 356, 355, 352, 350, 346, 337, 327, 326, 325,
1212 323, 318, 315, 313, 312, 311, 308, 307, 306, 305,
1213 303, 301, 300, 299, 297, 296, 295, 293, 292, 290,
1214 287, 286, 284, 282, 281, 280, 276, 263, 262, 243,
1215 240, 239, 234, 231, 226, 222, 221, 220, 219, 216,
1216 208, 207, 204, 203, 189, 187, 183, 179, 176, 175,
1217 174, 173, 172, 171, 169, 166, 165, 162, 161, 159,
1218 156, 155, 154, 153, 151, 149, 148, 146, 144, 143,
1219 137, 134, 125, 124, 122, 119, 114, 112, 107, 103,
1220 97, 92, 89, 87, 85, 84, 83, 80, 76, 74,
1222 73, 71, 67, 65, 59, 55, 50, 47, 43, 39,
1223 16, 15, 10, 8, 7, 768, 768, 768, 768, 768,
1224 768, 768, 768, 768, 768, 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,
1232 static yy_state_type yy_last_accepting_state;
1233 static char *yy_last_accepting_cpos;
1235 /* The intent behind this definition is that it'll catch
1236 * any uses of REJECT which flex missed.
1238 #define REJECT reject_used_but_not_detected
1239 #define yymore() yymore_used_but_not_detected
1240 #define YY_MORE_ADJ 0
1241 #define YY_RESTORE_YY_MORE_OFFSET
1245 /* scan.l - scanner for flex input */
1248 * Copyright (c) 1990 The Regents of the University of California.
1249 * All rights reserved.
1251 * This code is derived from software contributed to Berkeley by
1254 * The United States Government has rights in this work pursuant
1255 * to contract no. DE-AC03-76SF00098 between the United States
1256 * Department of Energy and the University of California.
1258 * Redistribution and use in source and binary forms are permitted provided
1259 * that: (1) source distributions retain this entire copyright notice and
1260 * comment, and (2) distributions including binaries display the following
1261 * acknowledgement: ``This product includes software developed by the
1262 * University of California, Berkeley and its contributors'' in the
1263 * documentation or other materials provided with the distribution and in
1264 * all advertising materials mentioning features or use of this software.
1265 * Neither the name of the University nor the names of its contributors may
1266 * be used to endorse or promote products derived from this software without
1267 * specific prior written permission.
1268 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1269 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1270 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1273 /* $Header: /home/daffy/u0/vern/flex/RCS/scan.l,v 2.56 95/04/24 12:17:19 vern Exp $ */
1276 static const char rcsid[] =
1278 #endif /* not lint */
1280 #include "flexdef.h"
1283 #define ACTION_ECHO add_action( yytext )
1284 #define ACTION_IFDEF(def, should_define) \
1286 if ( should_define ) \
1287 action_define( def, 1 ); \
1290 #define MARK_END_OF_PROLOG mark_prolog();
1295 #define RETURNCHAR \
1296 yylval = (unsigned char) yytext[0]; \
1299 #define RETURNNAME \
1300 strcpy( nmstr, yytext ); \
1303 #define PUT_BACK_STRING(str, start) \
1304 for ( i = strlen( str ) - 1; i >= start; --i ) \
1307 #define CHECK_REJECT(str) \
1308 if ( all_upper( str ) ) \
1311 #define CHECK_YYMORE(str) \
1312 if ( all_lower( str ) ) \
1314 #define YY_STACK_USED 1
1315 #define YY_NO_TOP_STATE 1
1317 #define SECT2PROLOG 2
1322 #define CARETISBOL 7
1331 #define ACTION_STRING 15
1332 #define PERCENT_BRACE_ACTION 16
1339 /* Macros after this point can all be overridden by user definitions in
1343 #ifndef YY_SKIP_YYWRAP
1345 extern "C" int yywrap YY_PROTO(( void ));
1347 extern int yywrap YY_PROTO(( void ));
1352 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1356 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1359 #ifdef YY_NEED_STRLEN
1360 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1365 static int yyinput YY_PROTO(( void ));
1367 static int input YY_PROTO(( void ));
1372 static int yy_start_stack_ptr = 0;
1373 static int yy_start_stack_depth = 0;
1374 static int *yy_start_stack = 0;
1375 #ifndef YY_NO_PUSH_STATE
1376 static void yy_push_state YY_PROTO(( int new_state ));
1378 #ifndef YY_NO_POP_STATE
1379 static void yy_pop_state YY_PROTO(( void ));
1381 #ifndef YY_NO_TOP_STATE
1382 static int yy_top_state YY_PROTO(( void ));
1386 #define YY_NO_PUSH_STATE 1
1387 #define YY_NO_POP_STATE 1
1388 #define YY_NO_TOP_STATE 1
1391 #ifdef YY_MALLOC_DECL
1399 /* Just try to get by without declaring the routines. This will fail
1400 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1401 * or sizeof(void*) != sizeof(int).
1406 /* Amount of stuff to slurp up with each read. */
1407 #ifndef YY_READ_BUF_SIZE
1408 #define YY_READ_BUF_SIZE 8192
1411 /* Copy whatever the last rule matched to the standard output. */
1414 /* This used to be an fputs(), but since the string might contain NUL's,
1415 * we now use fwrite().
1417 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1420 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1421 * is returned in "result".
1424 #define YY_INPUT(buf,result,max_size) \
1425 if ( yy_current_buffer->yy_is_interactive ) \
1428 for ( n = 0; n < max_size && \
1429 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1430 buf[n] = (char) c; \
1432 buf[n++] = (char) c; \
1433 if ( c == EOF && ferror( yyin ) ) \
1434 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1437 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1438 && ferror( yyin ) ) \
1439 YY_FATAL_ERROR( "input in flex scanner failed" );
1442 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1443 * we don't want an extra ';' after the "return" because that will cause
1444 * some compilers to complain about unreachable statements.
1447 #define yyterminate() return YY_NULL
1450 /* Number of entries by which start-condition stack grows. */
1451 #ifndef YY_START_STACK_INCR
1452 #define YY_START_STACK_INCR 25
1455 /* Report a fatal error. */
1456 #ifndef YY_FATAL_ERROR
1457 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1460 /* Default declaration of generated scanner - a define so the user can
1461 * easily add parameters.
1464 #define YY_DECL int yylex YY_PROTO(( void ))
1467 /* Code executed at the beginning of each rule, after yytext and yyleng
1470 #ifndef YY_USER_ACTION
1471 #define YY_USER_ACTION
1474 /* Code executed at the end of each rule. */
1476 #define YY_BREAK break;
1479 #define YY_RULE_SETUP \
1481 yy_current_buffer->yy_at_bol = \
1482 (yytext[yyleng - 1] == '\n'); \
1487 register yy_state_type yy_current_state;
1488 register char *yy_cp, *yy_bp;
1489 register int yy_act;
1493 static int bracelevel, didadef, indented_code;
1494 static int doing_rule_action = false;
1495 static int option_sense;
1497 int doing_codeblock = false;
1499 Char nmdef[MAXLINE], myesc();
1513 yy_start = 1; /* first start state */
1521 if ( ! yy_current_buffer )
1523 yy_create_buffer( yyin, YY_BUF_SIZE );
1525 yy_load_buffer_state();
1528 while ( 1 ) /* loops until end-of-file is reached */
1532 /* Support of yytext. */
1533 *yy_cp = yy_hold_char;
1535 /* yy_bp points to the position in yy_ch_buf of the start of
1540 yy_current_state = yy_start;
1541 yy_current_state += YY_AT_BOL();
1545 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1546 if ( yy_accept[yy_current_state] )
1548 yy_last_accepting_state = yy_current_state;
1549 yy_last_accepting_cpos = yy_cp;
1551 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1553 yy_current_state = (int) yy_def[yy_current_state];
1554 if ( yy_current_state >= 769 )
1555 yy_c = yy_meta[(unsigned int) yy_c];
1557 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1560 while ( yy_base[yy_current_state] != 2716 );
1563 yy_act = yy_accept[yy_current_state];
1565 { /* have to back up */
1566 yy_cp = yy_last_accepting_cpos;
1567 yy_current_state = yy_last_accepting_state;
1568 yy_act = yy_accept[yy_current_state];
1571 YY_DO_BEFORE_ACTION;
1574 do_action: /* This label is used only to access EOF actions. */
1578 { /* beginning of action switch */
1579 case 0: /* must back up */
1580 /* undo the effects of YY_DO_BEFORE_ACTION */
1581 *yy_cp = yy_hold_char;
1582 yy_cp = yy_last_accepting_cpos;
1583 yy_current_state = yy_last_accepting_state;
1584 goto yy_find_action;
1590 indented_code = true; BEGIN(CODEBLOCK);
1595 ACTION_ECHO; yy_push_state( COMMENT );
1600 yy_push_state( LINEDIR );
1617 line_directive_out( (FILE *) 0, 1 );
1618 indented_code = false;
1634 line_directive_out( (FILE *) 0, 1 );
1642 yytext_is_array = false; ++linenum;
1647 yytext_is_array = true; ++linenum;
1652 BEGIN(OPTION); return OPTION_OP;
1657 ++linenum; /* ignore */
1662 ++linenum; /* ignore */
1667 synerr( _( "unrecognized '%' directive" ) );
1673 strcpy( nmstr, yytext );
1686 ++linenum; /* allows blank lines in section 1 */
1691 ACTION_ECHO; ++linenum; /* maybe end of comment line */
1698 ACTION_ECHO; yy_pop_state();
1713 ++linenum; ACTION_ECHO;
1725 linenum = myctoi( yytext );
1731 flex_free( (void *) infilename );
1732 infilename = copy_string( yytext + 1 );
1733 infilename[strlen( infilename ) - 1] = '\0';
1739 /* ignore spurious characters */
1746 ++linenum; BEGIN(INITIAL);
1759 if ( indented_code )
1768 /* separates name and definition */
1774 strcpy( (char *) nmdef, yytext );
1776 /* Skip trailing whitespace. */
1777 for ( i = strlen( (char *) nmdef ) - 1;
1778 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1782 nmdef[i + 1] = '\0';
1784 ndinstal( nmstr, nmdef );
1793 synerr( _( "incomplete name definition" ) );
1803 ++linenum; BEGIN(INITIAL);
1808 option_sense = true;
1818 option_sense = ! option_sense;
1823 csize = option_sense ? 128 : 256;
1828 csize = option_sense ? 256 : 128;
1833 long_align = option_sense;
1839 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1845 yytext_is_array = option_sense;
1850 backing_up_report = option_sense;
1855 interactive = ! option_sense;
1860 C_plus_plus = option_sense;
1865 caseins = ! option_sense;
1870 caseins = option_sense;
1875 ddebug = option_sense;
1880 spprdflt = ! option_sense;
1885 useecs = option_sense;
1891 useecs = usemecs = false;
1892 use_read = fullspd = true;
1899 useecs = usemecs = false;
1900 use_read = fulltbl = true;
1906 ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1911 interactive = option_sense;
1916 lex_compat = option_sense;
1922 action_define( "YY_MAIN", option_sense );
1923 do_yywrap = ! option_sense;
1929 usemecs = option_sense;
1935 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1941 performance_report += option_sense ? 1 : -1;
1946 yytext_is_array = ! option_sense;
1951 use_read = option_sense;
1956 reject_really_used = option_sense;
1961 action_define( "YY_STACK_USED", option_sense );
1966 do_stdinit = option_sense;
1971 use_stdout = option_sense;
1976 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1981 printstats = option_sense;
1986 nowarn = ! option_sense;
1991 do_yylineno = option_sense;
1996 yymore_really_used = option_sense;
2001 do_yywrap = option_sense;
2006 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
2011 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2016 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2021 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2026 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2031 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2052 strcpy( nmstr, yytext + 1 );
2053 nmstr[strlen( nmstr ) - 1] = '\0';
2061 format_synerr( _( "unrecognized %%option: %s" ),
2070 ++linenum; BEGIN(INITIAL);
2076 ++bracelevel; yyless( 2 ); /* eat only %{ */
2081 --bracelevel; yyless( 2 ); /* eat only %} */
2086 ACTION_ECHO; /* indented code in prolog */
2091 { /* non-indented code */
2092 if ( bracelevel <= 0 )
2093 { /* not in %{ ... %} */
2094 yyless( 0 ); /* put it all back */
2111 ++linenum; ACTION_ECHO;
2113 case YY_STATE_EOF(SECT2PROLOG):
2118 yyterminate(); /* to stop the parser */
2126 ++linenum; /* allow blank lines in section 2 */
2132 indented_code = false;
2133 doing_codeblock = true;
2135 BEGIN(PERCENT_BRACE_ACTION);
2141 BEGIN(SC); return '<';
2151 BEGIN(QUOTE); return '"';
2154 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2155 yy_c_buf_p = yy_cp = yy_bp + 1;
2156 YY_DO_BEFORE_ACTION; /* set up yytext again */
2159 BEGIN(NUM); return '{';
2162 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2163 yy_c_buf_p = yy_cp = yy_bp + 1;
2164 YY_DO_BEFORE_ACTION; /* set up yytext again */
2174 BEGIN(PERCENT_BRACE_ACTION);
2178 doing_rule_action = true;
2187 continued_action = true; ++linenum; return '\n';
2193 yyless( yyleng - 2 ); /* put back '/', '*' */
2195 continued_action = false;
2202 /* allow indented rules */
2208 /* This rule is separate from the one below because
2209 * otherwise we get variable trailing context, so
2210 * we can't build the scanner using -{f,F}.
2213 continued_action = false;
2218 doing_rule_action = true;
2229 continued_action = false;
2231 unput( '\n' ); /* so <ACTION> sees it */
2235 doing_rule_action = true;
2254 yyterminate(); /* to stop the parser */
2263 strcpy( nmstr, yytext );
2265 /* Check to see if we've already encountered this
2268 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2270 if ( input() != ']' )
2271 synerr( _( "bad character class" ) );
2279 /* We fudge a bit. We know that this ccl will
2280 * soon be numbered as lastccl + 1 by cclinit.
2282 cclinstal( (Char *) nmstr, lastccl + 1 );
2284 /* Push back everything but the leading bracket
2285 * so the ccl can be rescanned.
2298 register Char *nmdefptr;
2301 strcpy( nmstr, yytext + 1 );
2302 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */
2304 if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2306 _( "undefined definition {%s}" ),
2310 { /* push back name surrounded by ()'s */
2311 int len = strlen( (char *) nmdefptr );
2313 if ( lex_compat || nmdefptr[0] == '^' ||
2314 (len > 0 && nmdefptr[len - 1] == '$') )
2315 { /* don't use ()'s after all */
2316 PUT_BACK_STRING((char *) nmdefptr, 0);
2318 if ( nmdefptr[0] == '^' )
2325 PUT_BACK_STRING((char *) nmdefptr, 0);
2334 return (unsigned char) yytext[0];
2346 return (unsigned char) yytext[0];
2351 BEGIN(SECT2); return '>';
2354 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2355 yy_c_buf_p = yy_cp = yy_bp + 1;
2356 YY_DO_BEFORE_ACTION; /* set up yytext again */
2359 BEGIN(CARETISBOL); return '>';
2370 format_synerr( _( "bad <start condition>: %s" ),
2378 BEGIN(SECT2); return '^';
2389 BEGIN(SECT2); return '"';
2395 synerr( _( "missing quote" ) );
2404 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2405 yy_c_buf_p = yy_cp = yy_bp + 1;
2406 YY_DO_BEFORE_ACTION; /* set up yytext again */
2409 BEGIN(CCL); return '^';
2412 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2413 yy_c_buf_p = yy_cp = yy_bp + 1;
2414 YY_DO_BEFORE_ACTION; /* set up yytext again */
2422 BEGIN(CCL); RETURNCHAR;
2427 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2428 yy_c_buf_p = yy_cp = yy_bp + 1;
2429 YY_DO_BEFORE_ACTION; /* set up yytext again */
2442 BEGIN(SECT2); return ']';
2448 synerr( _( "bad character class" ) );
2458 BEGIN(CCL); return CCE_ALNUM;
2463 BEGIN(CCL); return CCE_ALPHA;
2468 BEGIN(CCL); return CCE_BLANK;
2473 BEGIN(CCL); return CCE_CNTRL;
2478 BEGIN(CCL); return CCE_DIGIT;
2483 BEGIN(CCL); return CCE_GRAPH;
2488 BEGIN(CCL); return CCE_LOWER;
2493 BEGIN(CCL); return CCE_PRINT;
2498 BEGIN(CCL); return CCE_PUNCT;
2503 BEGIN(CCL); return CCE_SPACE;
2508 BEGIN(CCL); return CCE_UPPER;
2513 BEGIN(CCL); return CCE_XDIGIT;
2520 _( "bad character class expression: %s" ),
2522 BEGIN(CCL); return CCE_ALNUM;
2531 yylval = myctoi( yytext );
2543 BEGIN(SECT2); return '}';
2549 synerr( _( "bad character inside {}'s" ) );
2558 synerr( _( "missing }" ) );
2574 ACTION_ECHO; yy_push_state( COMMENT );
2582 CHECK_REJECT(yytext);
2590 CHECK_YYMORE(yytext);
2605 if ( bracelevel == 0 ||
2606 (doing_codeblock && indented_code) )
2608 if ( doing_rule_action )
2609 add_action( "\tYY_BREAK\n" );
2611 doing_rule_action = doing_codeblock = false;
2617 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2622 ACTION_ECHO; ++bracelevel;
2627 ACTION_ECHO; --bracelevel;
2642 ACTION_ECHO; /* character constant */
2647 ACTION_ECHO; BEGIN(ACTION_STRING);
2655 if ( bracelevel == 0 )
2657 if ( doing_rule_action )
2658 add_action( "\tYY_BREAK\n" );
2660 doing_rule_action = false;
2685 ++linenum; ACTION_ECHO;
2690 ACTION_ECHO; BEGIN(ACTION);
2698 case YY_STATE_EOF(COMMENT):
2699 case YY_STATE_EOF(ACTION):
2700 case YY_STATE_EOF(ACTION_STRING):
2703 synerr( _( "EOF encountered inside an action" ) );
2711 yylval = myesc( (Char *) yytext );
2713 if ( YY_START == FIRSTCCL )
2725 case YY_STATE_EOF(SECT3):
2727 sectnum = 0; yyterminate();
2733 format_synerr( _( "bad character: %s" ), yytext );
2738 YY_FATAL_ERROR( "flex scanner jammed" );
2741 case YY_STATE_EOF(INITIAL):
2742 case YY_STATE_EOF(SECT2):
2743 case YY_STATE_EOF(CODEBLOCK):
2744 case YY_STATE_EOF(PICKUPDEF):
2745 case YY_STATE_EOF(SC):
2746 case YY_STATE_EOF(CARETISBOL):
2747 case YY_STATE_EOF(NUM):
2748 case YY_STATE_EOF(QUOTE):
2749 case YY_STATE_EOF(FIRSTCCL):
2750 case YY_STATE_EOF(CCL):
2751 case YY_STATE_EOF(RECOVER):
2752 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2753 case YY_STATE_EOF(OPTION):
2754 case YY_STATE_EOF(LINEDIR):
2757 case YY_END_OF_BUFFER:
2759 /* Amount of text matched not including the EOB char. */
2760 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2762 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2763 *yy_cp = yy_hold_char;
2764 YY_RESTORE_YY_MORE_OFFSET
2766 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2768 /* We're scanning a new file or input source. It's
2769 * possible that this happened because the user
2770 * just pointed yyin at a new source and called
2771 * yylex(). If so, then we have to assure
2772 * consistency between yy_current_buffer and our
2773 * globals. Here is the right place to do so, because
2774 * this is the first action (other than possibly a
2775 * back-up) that will match for the new input source.
2777 yy_n_chars = yy_current_buffer->yy_n_chars;
2778 yy_current_buffer->yy_input_file = yyin;
2779 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2782 /* Note that here we test for yy_c_buf_p "<=" to the position
2783 * of the first EOB in the buffer, since yy_c_buf_p will
2784 * already have been incremented past the NUL character
2785 * (since all states make transitions on EOB to the
2786 * end-of-buffer state). Contrast this with the test
2789 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2790 { /* This was really a NUL. */
2791 yy_state_type yy_next_state;
2793 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2795 yy_current_state = yy_get_previous_state();
2797 /* Okay, we're now positioned to make the NUL
2798 * transition. We couldn't have
2799 * yy_get_previous_state() go ahead and do it
2800 * for us because it doesn't know how to deal
2801 * with the possibility of jamming (and we don't
2802 * want to build jamming into it because then it
2803 * will run more slowly).
2806 yy_next_state = yy_try_NUL_trans( yy_current_state );
2808 yy_bp = yytext_ptr + YY_MORE_ADJ;
2810 if ( yy_next_state )
2812 /* Consume the NUL. */
2813 yy_cp = ++yy_c_buf_p;
2814 yy_current_state = yy_next_state;
2821 goto yy_find_action;
2825 else switch ( yy_get_next_buffer() )
2827 case EOB_ACT_END_OF_FILE:
2829 yy_did_buffer_switch_on_eof = 0;
2833 /* Note: because we've taken care in
2834 * yy_get_next_buffer() to have set up
2835 * yytext, we can now set up
2836 * yy_c_buf_p so that if some total
2837 * hoser (like flex itself) wants to
2838 * call the scanner after we return the
2839 * YY_NULL, it'll still work - another
2840 * YY_NULL will get returned.
2842 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2844 yy_act = YY_STATE_EOF(YY_START);
2850 if ( ! yy_did_buffer_switch_on_eof )
2856 case EOB_ACT_CONTINUE_SCAN:
2858 yytext_ptr + yy_amount_of_matched_text;
2860 yy_current_state = yy_get_previous_state();
2863 yy_bp = yytext_ptr + YY_MORE_ADJ;
2866 case EOB_ACT_LAST_MATCH:
2868 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2870 yy_current_state = yy_get_previous_state();
2873 yy_bp = yytext_ptr + YY_MORE_ADJ;
2874 goto yy_find_action;
2881 "fatal flex scanner internal error--no action found" );
2882 } /* end of action switch */
2883 } /* end of scanning one token */
2884 } /* end of yylex */
2887 /* yy_get_next_buffer - try to read in a new buffer
2889 * Returns a code representing an action:
2890 * EOB_ACT_LAST_MATCH -
2891 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2892 * EOB_ACT_END_OF_FILE - end of file
2895 static int yy_get_next_buffer()
2897 register char *dest = yy_current_buffer->yy_ch_buf;
2898 register char *source = yytext_ptr;
2899 register int number_to_move, i;
2902 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2904 "fatal flex scanner internal error--end of buffer missed" );
2906 if ( yy_current_buffer->yy_fill_buffer == 0 )
2907 { /* Don't try to fill the buffer, so this is an EOF. */
2908 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2910 /* We matched a single character, the EOB, so
2911 * treat this as a final EOF.
2913 return EOB_ACT_END_OF_FILE;
2918 /* We matched some text prior to the EOB, first
2921 return EOB_ACT_LAST_MATCH;
2925 /* Try to read more data. */
2927 /* First move last chars to start of buffer. */
2928 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2930 for ( i = 0; i < number_to_move; ++i )
2931 *(dest++) = *(source++);
2933 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2934 /* don't do the read, it's not guaranteed to return an EOF,
2937 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2942 yy_current_buffer->yy_buf_size - number_to_move - 1;
2944 while ( num_to_read <= 0 )
2945 { /* Not enough room in the buffer - grow it. */
2946 #ifdef YY_USES_REJECT
2948 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2951 /* just a shorter name for the current buffer */
2952 YY_BUFFER_STATE b = yy_current_buffer;
2954 int yy_c_buf_p_offset =
2955 (int) (yy_c_buf_p - b->yy_ch_buf);
2957 if ( b->yy_is_our_buffer )
2959 int new_size = b->yy_buf_size * 2;
2961 if ( new_size <= 0 )
2962 b->yy_buf_size += b->yy_buf_size / 8;
2964 b->yy_buf_size *= 2;
2966 b->yy_ch_buf = (char *)
2967 /* Include room in for 2 EOB chars. */
2968 yy_flex_realloc( (void *) b->yy_ch_buf,
2969 b->yy_buf_size + 2 );
2972 /* Can't grow it, we don't own it. */
2975 if ( ! b->yy_ch_buf )
2977 "fatal error - scanner input buffer overflow" );
2979 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2981 num_to_read = yy_current_buffer->yy_buf_size -
2986 if ( num_to_read > YY_READ_BUF_SIZE )
2987 num_to_read = YY_READ_BUF_SIZE;
2989 /* Read in more data. */
2990 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2991 yy_n_chars, num_to_read );
2993 yy_current_buffer->yy_n_chars = yy_n_chars;
2996 if ( yy_n_chars == 0 )
2998 if ( number_to_move == YY_MORE_ADJ )
3000 ret_val = EOB_ACT_END_OF_FILE;
3006 ret_val = EOB_ACT_LAST_MATCH;
3007 yy_current_buffer->yy_buffer_status =
3008 YY_BUFFER_EOF_PENDING;
3013 ret_val = EOB_ACT_CONTINUE_SCAN;
3015 yy_n_chars += number_to_move;
3016 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3017 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3019 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3025 /* yy_get_previous_state - get the state just before the EOB char was reached */
3027 static yy_state_type yy_get_previous_state()
3029 register yy_state_type yy_current_state;
3030 register char *yy_cp;
3032 yy_current_state = yy_start;
3033 yy_current_state += YY_AT_BOL();
3035 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3037 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3038 if ( yy_accept[yy_current_state] )
3040 yy_last_accepting_state = yy_current_state;
3041 yy_last_accepting_cpos = yy_cp;
3043 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3045 yy_current_state = (int) yy_def[yy_current_state];
3046 if ( yy_current_state >= 769 )
3047 yy_c = yy_meta[(unsigned int) yy_c];
3049 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3052 return yy_current_state;
3056 /* yy_try_NUL_trans - try to make a transition on the NUL character
3059 * next_state = yy_try_NUL_trans( current_state );
3062 #ifdef YY_USE_PROTOS
3063 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3065 static yy_state_type yy_try_NUL_trans( yy_current_state )
3066 yy_state_type yy_current_state;
3069 register int yy_is_jam;
3070 register char *yy_cp = yy_c_buf_p;
3072 register YY_CHAR yy_c = 1;
3073 if ( yy_accept[yy_current_state] )
3075 yy_last_accepting_state = yy_current_state;
3076 yy_last_accepting_cpos = yy_cp;
3078 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3080 yy_current_state = (int) yy_def[yy_current_state];
3081 if ( yy_current_state >= 769 )
3082 yy_c = yy_meta[(unsigned int) yy_c];
3084 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3085 yy_is_jam = (yy_current_state == 768);
3087 return yy_is_jam ? 0 : yy_current_state;
3092 #ifdef YY_USE_PROTOS
3093 static void yyunput( int c, register char *yy_bp )
3095 static void yyunput( c, yy_bp )
3097 register char *yy_bp;
3100 register char *yy_cp = yy_c_buf_p;
3102 /* undo effects of setting up yytext */
3103 *yy_cp = yy_hold_char;
3105 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3106 { /* need to shift things up to make room */
3107 /* +2 for EOB chars. */
3108 register int number_to_move = yy_n_chars + 2;
3109 register char *dest = &yy_current_buffer->yy_ch_buf[
3110 yy_current_buffer->yy_buf_size + 2];
3111 register char *source =
3112 &yy_current_buffer->yy_ch_buf[number_to_move];
3114 while ( source > yy_current_buffer->yy_ch_buf )
3115 *--dest = *--source;
3117 yy_cp += (int) (dest - source);
3118 yy_bp += (int) (dest - source);
3119 yy_current_buffer->yy_n_chars =
3120 yy_n_chars = yy_current_buffer->yy_buf_size;
3122 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3123 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3126 *--yy_cp = (char) c;
3130 yy_hold_char = *yy_cp;
3133 #endif /* ifndef YY_NO_UNPUT */
3137 static int yyinput()
3144 *yy_c_buf_p = yy_hold_char;
3146 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3148 /* yy_c_buf_p now points to the character we want to return.
3149 * If this occurs *before* the EOB characters, then it's a
3150 * valid NUL; if not, then we've hit the end of the buffer.
3152 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3153 /* This was really a NUL. */
3157 { /* need more input */
3158 int offset = yy_c_buf_p - yytext_ptr;
3161 switch ( yy_get_next_buffer() )
3163 case EOB_ACT_LAST_MATCH:
3164 /* This happens because yy_g_n_b()
3165 * sees that we've accumulated a
3166 * token and flags that we need to
3167 * try matching the token before
3168 * proceeding. But for input(),
3169 * there's no matching to consider.
3170 * So convert the EOB_ACT_LAST_MATCH
3171 * to EOB_ACT_END_OF_FILE.
3174 /* Reset buffer status. */
3179 case EOB_ACT_END_OF_FILE:
3184 if ( ! yy_did_buffer_switch_on_eof )
3193 case EOB_ACT_CONTINUE_SCAN:
3194 yy_c_buf_p = yytext_ptr + offset;
3200 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3201 *yy_c_buf_p = '\0'; /* preserve yytext */
3202 yy_hold_char = *++yy_c_buf_p;
3204 yy_current_buffer->yy_at_bol = (c == '\n');
3210 #ifdef YY_USE_PROTOS
3211 void yyrestart( FILE *input_file )
3213 void yyrestart( input_file )
3217 if ( ! yy_current_buffer )
3218 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3220 yy_init_buffer( yy_current_buffer, input_file );
3221 yy_load_buffer_state();
3225 #ifdef YY_USE_PROTOS
3226 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3228 void yy_switch_to_buffer( new_buffer )
3229 YY_BUFFER_STATE new_buffer;
3232 if ( yy_current_buffer == new_buffer )
3235 if ( yy_current_buffer )
3237 /* Flush out information for old buffer. */
3238 *yy_c_buf_p = yy_hold_char;
3239 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3240 yy_current_buffer->yy_n_chars = yy_n_chars;
3243 yy_current_buffer = new_buffer;
3244 yy_load_buffer_state();
3246 /* We don't actually know whether we did this switch during
3247 * EOF (yywrap()) processing, but the only time this flag
3248 * is looked at is after yywrap() is called, so it's safe
3249 * to go ahead and always set it.
3251 yy_did_buffer_switch_on_eof = 1;
3255 #ifdef YY_USE_PROTOS
3256 void yy_load_buffer_state( void )
3258 void yy_load_buffer_state()
3261 yy_n_chars = yy_current_buffer->yy_n_chars;
3262 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3263 yyin = yy_current_buffer->yy_input_file;
3264 yy_hold_char = *yy_c_buf_p;
3268 #ifdef YY_USE_PROTOS
3269 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3271 YY_BUFFER_STATE yy_create_buffer( file, size )
3278 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3280 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3282 b->yy_buf_size = size;
3284 /* yy_ch_buf has to be 2 characters longer than the size given because
3285 * we need to put in 2 end-of-buffer characters.
3287 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3288 if ( ! b->yy_ch_buf )
3289 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3291 b->yy_is_our_buffer = 1;
3293 yy_init_buffer( b, file );
3299 #ifdef YY_USE_PROTOS
3300 void yy_delete_buffer( YY_BUFFER_STATE b )
3302 void yy_delete_buffer( b )
3309 if ( b == yy_current_buffer )
3310 yy_current_buffer = (YY_BUFFER_STATE) 0;
3312 if ( b->yy_is_our_buffer )
3313 yy_flex_free( (void *) b->yy_ch_buf );
3315 yy_flex_free( (void *) b );
3319 #ifndef YY_ALWAYS_INTERACTIVE
3320 #ifndef YY_NEVER_INTERACTIVE
3321 extern int isatty YY_PROTO(( int ));
3325 #ifdef YY_USE_PROTOS
3326 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3328 void yy_init_buffer( b, file )
3335 yy_flush_buffer( b );
3337 b->yy_input_file = file;
3338 b->yy_fill_buffer = 1;
3340 #if YY_ALWAYS_INTERACTIVE
3341 b->yy_is_interactive = 1;
3343 #if YY_NEVER_INTERACTIVE
3344 b->yy_is_interactive = 0;
3346 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3352 #ifdef YY_USE_PROTOS
3353 void yy_flush_buffer( YY_BUFFER_STATE b )
3355 void yy_flush_buffer( b )
3365 /* We always need two end-of-buffer characters. The first causes
3366 * a transition to the end-of-buffer state. The second causes
3367 * a jam in that state.
3369 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3370 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3372 b->yy_buf_pos = &b->yy_ch_buf[0];
3375 b->yy_buffer_status = YY_BUFFER_NEW;
3377 if ( b == yy_current_buffer )
3378 yy_load_buffer_state();
3382 #ifndef YY_NO_SCAN_BUFFER
3383 #ifdef YY_USE_PROTOS
3384 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3386 YY_BUFFER_STATE yy_scan_buffer( base, size )
3394 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3395 base[size-1] != YY_END_OF_BUFFER_CHAR )
3396 /* They forgot to leave room for the EOB's. */
3399 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3401 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3403 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3404 b->yy_buf_pos = b->yy_ch_buf = base;
3405 b->yy_is_our_buffer = 0;
3406 b->yy_input_file = 0;
3407 b->yy_n_chars = b->yy_buf_size;
3408 b->yy_is_interactive = 0;
3410 b->yy_fill_buffer = 0;
3411 b->yy_buffer_status = YY_BUFFER_NEW;
3413 yy_switch_to_buffer( b );
3420 #ifndef YY_NO_SCAN_STRING
3421 #ifdef YY_USE_PROTOS
3422 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3424 YY_BUFFER_STATE yy_scan_string( yy_str )
3425 yyconst char *yy_str;
3429 for ( len = 0; yy_str[len]; ++len )
3432 return yy_scan_bytes( yy_str, len );
3437 #ifndef YY_NO_SCAN_BYTES
3438 #ifdef YY_USE_PROTOS
3439 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3441 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3442 yyconst char *bytes;
3451 /* Get memory for full buffer, including space for trailing EOB's. */
3453 buf = (char *) yy_flex_alloc( n );
3455 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3457 for ( i = 0; i < len; ++i )
3460 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3462 b = yy_scan_buffer( buf, n );
3464 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3466 /* It's okay to grow etc. this buffer, and we should throw it
3467 * away when we're done.
3469 b->yy_is_our_buffer = 1;
3476 #ifndef YY_NO_PUSH_STATE
3477 #ifdef YY_USE_PROTOS
3478 static void yy_push_state( int new_state )
3480 static void yy_push_state( new_state )
3484 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3488 yy_start_stack_depth += YY_START_STACK_INCR;
3489 new_size = yy_start_stack_depth * sizeof( int );
3491 if ( ! yy_start_stack )
3492 yy_start_stack = (int *) yy_flex_alloc( new_size );
3495 yy_start_stack = (int *) yy_flex_realloc(
3496 (void *) yy_start_stack, new_size );
3498 if ( ! yy_start_stack )
3500 "out of memory expanding start-condition stack" );
3503 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3510 #ifndef YY_NO_POP_STATE
3511 static void yy_pop_state()
3513 if ( --yy_start_stack_ptr < 0 )
3514 YY_FATAL_ERROR( "start-condition stack underflow" );
3516 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3521 #ifndef YY_NO_TOP_STATE
3522 static int yy_top_state()
3524 return yy_start_stack[yy_start_stack_ptr - 1];
3528 #ifndef YY_EXIT_FAILURE
3529 #define YY_EXIT_FAILURE 2
3532 #ifdef YY_USE_PROTOS
3533 static void yy_fatal_error( yyconst char msg[] )
3535 static void yy_fatal_error( msg )
3539 (void) fprintf( stderr, "%s\n", msg );
3540 exit( YY_EXIT_FAILURE );
3545 /* Redefine yyless() so it works in section 3 code. */
3551 /* Undo effects of setting up yytext. */ \
3552 yytext[yyleng] = yy_hold_char; \
3553 yy_c_buf_p = yytext + n; \
3554 yy_hold_char = *yy_c_buf_p; \
3555 *yy_c_buf_p = '\0'; \
3561 /* Internal utility routines. */
3564 #ifdef YY_USE_PROTOS
3565 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3567 static void yy_flex_strncpy( s1, s2, n )
3574 for ( i = 0; i < n; ++i )
3579 #ifdef YY_NEED_STRLEN
3580 #ifdef YY_USE_PROTOS
3581 static int yy_flex_strlen( yyconst char *s )
3583 static int yy_flex_strlen( s )
3588 for ( n = 0; s[n]; ++n )
3596 #ifdef YY_USE_PROTOS
3597 static void *yy_flex_alloc( yy_size_t size )
3599 static void *yy_flex_alloc( size )
3603 return (void *) malloc( size );
3606 #ifdef YY_USE_PROTOS
3607 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3609 static void *yy_flex_realloc( ptr, size )
3614 /* The cast to (char *) in the following accommodates both
3615 * implementations that use char* generic pointers, and those
3616 * that use void* generic pointers. It works with the latter
3617 * because both ANSI C and C++ allow castless assignment from
3618 * any pointer type to void*, and deal with argument conversions
3619 * as though doing an assignment.
3621 return (void *) realloc( (char *) ptr, size );
3624 #ifdef YY_USE_PROTOS
3625 static void yy_flex_free( void *ptr )
3627 static void yy_flex_free( ptr )
3647 if ( --num_input_files > 0 )
3649 set_input_file( *++input_files );
3658 /* set_input_file - open the given file (if NULL, stdin) for scanning */
3660 void set_input_file( file )
3663 if ( file && strcmp( file, "-" ) )
3665 infilename = copy_string( file );
3666 yyin = fopen( infilename, "r" );
3669 lerrsf( _( "can't open %s" ), file );
3675 infilename = copy_string( "<stdin>" );
3682 /* Wrapper routines for accessing the scanner's malloc routines. */
3684 void *flex_alloc( size )
3687 return (void *) malloc( size );
3690 void *flex_realloc( ptr, size )
3694 return (void *) realloc( ptr, size );
3697 void flex_free( ptr )