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 $
11 #define YY_FLEX_MAJOR_VERSION 2
12 #define YY_FLEX_MINOR_VERSION 5
17 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
30 /* Use prototypes in function declarations. */
33 /* The "const" storage-class-modifier is valid. */
36 #else /* ! __cplusplus */
44 #endif /* ! __cplusplus */
63 #define YY_PROTO(proto) proto
65 #define YY_PROTO(proto) ()
68 /* Returned upon end-of-file. */
71 /* Promotes a possibly negative, possibly signed char to an unsigned
72 * integer for use as an array index. If the signed char is negative,
73 * we want to instead treat it as an 8-bit unsigned char, hence the
76 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
78 /* Enter a start condition. This macro really ought to take a parameter,
79 * but we do it the disgusting crufty way forced on us by the ()-less
80 * definition of BEGIN.
82 #define BEGIN yy_start = 1 + 2 *
84 /* Translate the current start state into a value that can be later handed
85 * to BEGIN to return to the state. The YYSTATE alias is for lex
88 #define YY_START ((yy_start - 1) / 2)
89 #define YYSTATE YY_START
91 /* Action number for EOF rule of a given start state. */
92 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
94 /* Special action meaning "start processing a new file". */
95 #define YY_NEW_FILE yyrestart( yyin )
97 #define YY_END_OF_BUFFER_CHAR 0
99 /* Size of default input buffer. */
100 #define YY_BUF_SIZE 16384
102 typedef struct yy_buffer_state *YY_BUFFER_STATE;
105 extern FILE *yyin, *yyout;
107 #define EOB_ACT_CONTINUE_SCAN 0
108 #define EOB_ACT_END_OF_FILE 1
109 #define EOB_ACT_LAST_MATCH 2
111 /* The funky do-while in the following #define is used to turn the definition
112 * int a single C statement (which needs a semi-colon terminator). This
113 * avoids problems with code like:
115 * if ( condition_holds )
118 * do_something_else();
120 * Prior to using the do-while the compiler would get upset at the
121 * "else" because it interpreted the "if" statement as being all
122 * done when it reached the ';' after the yyless() call.
125 /* Return all but the first 'n' matched characters back to the input stream. */
130 /* Undo effects of setting up yytext. */ \
131 *yy_cp = yy_hold_char; \
132 YY_RESTORE_YY_MORE_OFFSET \
133 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
134 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
138 #define unput(c) yyunput( c, yytext_ptr )
140 /* The following is because we cannot portably get our hands on size_t
141 * (without autoconf's help, which isn't available because we want
142 * flex-generated scanners to compile on their own).
144 typedef unsigned int yy_size_t;
147 struct yy_buffer_state
151 char *yy_ch_buf; /* input buffer */
152 char *yy_buf_pos; /* current position in input buffer */
154 /* Size of input buffer in bytes, not including room for EOB
157 yy_size_t yy_buf_size;
159 /* Number of characters read into yy_ch_buf, not including EOB
164 /* Whether we "own" the buffer - i.e., we know we created it,
165 * and can realloc() it to grow it, and should free() it to
168 int yy_is_our_buffer;
170 /* Whether this is an "interactive" input source; if so, and
171 * if we're using stdio for input, then we want to use getc()
172 * instead of fread(), to make sure we stop fetching input after
175 int yy_is_interactive;
177 /* Whether we're considered to be at the beginning of a line.
178 * If so, '^' rules will be active on the next match, otherwise
183 /* Whether to try to fill the input buffer when we reach the
188 int yy_buffer_status;
189 #define YY_BUFFER_NEW 0
190 #define YY_BUFFER_NORMAL 1
191 /* When an EOF's been seen but there's still some text to process
192 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
193 * shouldn't try reading from the input source any more. We might
194 * still have a bunch of tokens to match, though, because of
195 * possible backing-up.
197 * When we actually see the EOF, we change the status to "new"
198 * (via yyrestart()), so that the user can continue scanning by
199 * just pointing yyin at a new input file.
201 #define YY_BUFFER_EOF_PENDING 2
204 static YY_BUFFER_STATE yy_current_buffer = 0;
206 /* We provide macros for accessing buffer states in case in the
207 * future we want to put the buffer states in a more general
210 #define YY_CURRENT_BUFFER yy_current_buffer
213 /* yy_hold_char holds the character lost when yytext is formed. */
214 static char yy_hold_char;
216 static int yy_n_chars; /* number of characters read into yy_ch_buf */
221 /* Points to current character in buffer. */
222 static char *yy_c_buf_p = (char *) 0;
223 static int yy_init = 1; /* whether we need to initialize */
224 static int yy_start = 0; /* start state number */
226 /* Flag which is used to allow yywrap()'s to do buffer switches
227 * instead of setting up a fresh yyin. A bit of a hack ...
229 static int yy_did_buffer_switch_on_eof;
231 void yyrestart YY_PROTO(( FILE *input_file ));
233 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
234 void yy_load_buffer_state YY_PROTO(( void ));
235 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
236 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
238 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
239 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
241 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
242 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
243 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
245 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
246 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
247 static void yy_flex_free YY_PROTO(( void * ));
249 #define yy_new_buffer yy_create_buffer
251 #define yy_set_interactive(is_interactive) \
253 if ( ! yy_current_buffer ) \
254 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
255 yy_current_buffer->yy_is_interactive = is_interactive; \
258 #define yy_set_bol(at_bol) \
260 if ( ! yy_current_buffer ) \
261 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
262 yy_current_buffer->yy_at_bol = at_bol; \
265 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
267 typedef unsigned char YY_CHAR;
268 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
269 typedef int yy_state_type;
271 #define yytext_ptr yytext
273 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
274 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
275 static int yy_get_next_buffer YY_PROTO(( void ));
276 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
278 /* Done after the current pattern has been matched and before the
279 * corresponding action - sets up yytext.
281 #define YY_DO_BEFORE_ACTION \
282 yytext_ptr = yy_bp; \
283 yyleng = (int) (yy_cp - yy_bp); \
284 yy_hold_char = *yy_cp; \
288 #define YY_NUM_RULES 165
289 #define YY_END_OF_BUFFER 166
290 static yyconst short int yy_accept[769] =
292 0, 0, 0, 0, 87, 87, 163, 163, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295 0, 0, 0, 0, 0, 0, 0, 0, 166, 164,
296 7, 18, 164, 16, 1, 17, 164, 164, 164, 164,
297 15, 108, 100, 101, 108, 93, 108, 107, 108, 108,
298 108, 107, 99, 89, 108, 108, 91, 92, 87, 88,
299 87, 86, 85, 86, 86, 163, 163, 28, 29, 28,
300 28, 28, 28, 28, 28, 31, 30, 32, 31, 113,
301 109, 110, 112, 114, 141, 142, 141, 139, 138, 140,
303 115, 117, 115, 116, 115, 120, 120, 120, 120, 122,
304 124, 122, 122, 122, 122, 123, 151, 155, 151, 154,
305 156, 156, 152, 152, 152, 149, 150, 164, 82, 164,
306 21, 22, 21, 20, 157, 159, 157, 160, 161, 147,
307 147, 148, 147, 147, 147, 147, 147, 147, 147, 81,
308 34, 33, 81, 81, 81, 81, 35, 81, 81, 81,
309 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
310 81, 81, 81, 81, 81, 81, 26, 23, 26, 24,
311 7, 18, 0, 16, 1, 17, 0, 0, 0, 14,
312 8, 0, 0, 0, 0, 4, 5, 0, 2, 15,
314 100, 101, 0, 0, 0, 95, 0, 0, 105, 105,
315 0, 162, 162, 162, 94, 0, 99, 89, 0, 0,
316 0, 91, 92, 104, 90, 0, 87, 88, 86, 85,
317 85, 83, 84, 163, 163, 28, 29, 28, 28, 28,
318 28, 31, 30, 32, 111, 112, 142, 138, 117, 0,
319 118, 119, 124, 121, 151, 155, 0, 153, 0, 144,
320 152, 152, 152, 0, 82, 0, 21, 22, 21, 19,
321 157, 159, 158, 147, 147, 147, 148, 143, 147, 147,
322 147, 34, 33, 0, 80, 0, 0, 81, 81, 81,
323 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
325 81, 81, 81, 36, 81, 81, 81, 81, 81, 81,
326 81, 81, 81, 81, 0, 25, 24, 0, 14, 8,
327 0, 12, 0, 0, 0, 0, 0, 4, 5, 0,
328 6, 0, 96, 0, 97, 0, 0, 105, 105, 0,
329 105, 105, 105, 162, 162, 0, 106, 90, 98, 0,
330 104, 0, 83, 84, 28, 28, 28, 27, 28, 0,
331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
332 0, 152, 152, 143, 143, 147, 147, 0, 0, 81,
333 81, 81, 81, 81, 44, 81, 81, 81, 49, 81,
334 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
336 81, 81, 81, 81, 81, 81, 81, 81, 0, 81,
337 81, 81, 81, 0, 0, 0, 12, 0, 0, 0,
338 0, 0, 0, 4, 5, 0, 105, 105, 105, 105,
339 105, 105, 162, 0, 0, 28, 28, 0, 0, 0,
340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
341 152, 152, 147, 147, 37, 38, 81, 81, 81, 81,
342 81, 81, 81, 81, 50, 51, 81, 81, 81, 55,
343 81, 81, 81, 81, 81, 81, 60, 81, 81, 81,
344 81, 81, 81, 67, 0, 0, 0, 81, 81, 81,
345 81, 0, 13, 0, 0, 0, 0, 0, 0, 105,
347 105, 105, 105, 105, 105, 0, 0, 28, 28, 137,
348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
349 0, 0, 152, 152, 147, 147, 39, 81, 41, 81,
350 43, 81, 81, 81, 47, 81, 52, 81, 81, 81,
351 81, 81, 81, 81, 81, 81, 62, 81, 81, 65,
352 81, 0, 0, 0, 0, 81, 81, 81, 81, 3,
353 0, 0, 0, 0, 105, 105, 105, 0, 0, 28,
354 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 145, 146, 145, 146, 81, 42, 81,
356 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
358 81, 78, 61, 81, 64, 81, 0, 0, 0, 0,
359 81, 81, 69, 70, 0, 10, 0, 11, 0, 103,
360 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
361 0, 0, 0, 0, 81, 81, 81, 45, 81, 48,
362 81, 81, 81, 81, 77, 81, 59, 63, 66, 0,
363 0, 0, 0, 79, 81, 0, 102, 0, 0, 0,
364 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
365 81, 81, 46, 81, 81, 56, 81, 81, 0, 0,
366 0, 0, 68, 0, 9, 0, 125, 126, 127, 128,
367 129, 130, 131, 132, 133, 134, 135, 0, 81, 81,
369 81, 81, 81, 81, 81, 0, 0, 0, 0, 0,
370 136, 81, 81, 81, 81, 54, 81, 81, 0, 0,
371 0, 0, 0, 0, 81, 81, 81, 53, 81, 58,
372 0, 0, 0, 0, 0, 0, 81, 81, 81, 81,
373 72, 0, 0, 0, 0, 73, 81, 81, 81, 81,
374 71, 0, 75, 0, 81, 81, 81, 74, 76, 81,
375 81, 81, 81, 81, 81, 57, 40, 0
378 static yyconst int yy_ec[256] =
380 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
381 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 2, 1, 5, 6, 7, 8, 1, 9, 10,
384 10, 11, 12, 13, 14, 10, 15, 16, 16, 16,
385 16, 16, 16, 16, 17, 18, 19, 20, 1, 21,
386 22, 23, 10, 1, 31, 32, 33, 34, 35, 36,
387 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
388 47, 48, 49, 50, 51, 52, 53, 54, 55, 47,
389 26, 27, 28, 29, 30, 1, 31, 32, 33, 34,
391 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
392 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
393 55, 47, 56, 57, 58, 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,
400 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,
406 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
410 static yyconst int yy_meta[59] =
412 1, 1, 2, 1, 3, 1, 1, 1, 4, 1,
413 5, 6, 1, 7, 4, 8, 8, 8, 8, 1,
414 1, 1, 1, 9, 10, 1, 11, 12, 1, 13,
415 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
416 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
417 15, 15, 15, 15, 15, 4, 1, 16
420 static yyconst short int yy_base[858] =
422 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705,
423 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191,
424 178, 188, 344, 347, 375, 0, 125, 131, 147, 216,
425 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716,
426 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696,
427 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126,
428 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716,
429 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695,
430 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716,
431 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716,
433 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716,
434 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716,
435 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356,
436 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0,
437 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716,
438 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579,
439 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587,
440 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612,
441 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0,
442 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0,
444 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657,
445 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592,
446 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0,
447 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598,
448 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773,
449 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716,
450 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716,
451 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596,
452 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582,
453 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584,
455 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125,
456 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0,
457 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723,
458 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876,
459 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570,
460 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009,
461 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013,
462 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557,
463 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536,
464 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532,
466 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526,
467 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914,
468 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539,
469 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058,
470 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081,
471 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495,
472 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0,
473 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487,
474 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475,
475 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496,
477 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716,
478 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085,
479 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460,
480 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414,
481 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0,
482 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297,
483 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0,
484 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207,
485 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221,
486 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149,
488 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137,
489 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716,
490 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098,
491 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0,
492 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938,
493 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881,
494 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784,
495 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744,
496 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716,
497 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720,
499 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671,
500 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608,
501 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0,
502 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228,
503 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948,
504 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689,
505 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279,
506 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439,
507 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576,
508 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718,
510 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236,
511 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977,
512 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123,
513 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255,
514 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388,
515 2404, 2420, 2429, 2437, 2453, 2469, 2485
518 static yyconst short int yy_def[858] =
520 768, 768, 769, 769, 770, 771, 772, 772, 768, 9,
521 773, 773, 768, 13, 774, 774, 775, 775, 776, 776,
522 777, 777, 778, 778, 768, 25, 779, 779, 780, 780,
523 781, 781, 768, 33, 768, 35, 782, 782, 768, 768,
524 768, 768, 768, 783, 768, 768, 768, 768, 784, 768,
525 785, 768, 768, 768, 768, 768, 768, 768, 768, 786,
526 787, 788, 768, 768, 768, 768, 768, 768, 789, 768,
527 789, 790, 791, 790, 790, 792, 768, 793, 768, 793,
528 768, 794, 794, 794, 793, 795, 768, 768, 795, 768,
529 768, 768, 796, 768, 768, 768, 768, 768, 768, 768,
531 768, 768, 768, 768, 787, 768, 768, 787, 797, 768,
532 768, 768, 798, 768, 787, 768, 799, 768, 799, 768,
533 800, 768, 801, 801, 801, 768, 768, 802, 768, 802,
534 803, 768, 803, 768, 804, 768, 804, 768, 805, 806,
535 806, 768, 806, 806, 768, 806, 807, 807, 807, 768,
536 768, 768, 768, 808, 768, 768, 768, 809, 809, 809,
537 809, 809, 809, 809, 809, 809, 809, 810, 809, 809,
538 809, 809, 809, 809, 809, 809, 768, 768, 811, 768,
539 768, 768, 768, 783, 768, 768, 768, 768, 768, 812,
540 813, 768, 768, 768, 768, 814, 815, 816, 768, 785,
542 768, 768, 768, 768, 817, 768, 768, 768, 818, 818,
543 819, 768, 768, 820, 768, 821, 768, 768, 768, 768,
544 768, 768, 768, 822, 768, 768, 823, 768, 824, 825,
545 825, 826, 827, 828, 768, 829, 768, 830, 830, 830,
546 768, 831, 768, 768, 768, 832, 768, 768, 768, 833,
547 768, 768, 768, 768, 834, 768, 835, 768, 835, 768,
548 836, 836, 836, 837, 768, 837, 838, 768, 838, 768,
549 839, 768, 768, 840, 840, 840, 768, 768, 841, 841,
550 841, 768, 768, 842, 768, 768, 768, 843, 843, 843,
551 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
553 843, 843, 843, 768, 843, 843, 843, 843, 843, 843,
554 843, 843, 843, 843, 844, 768, 768, 768, 845, 846,
555 847, 768, 768, 768, 768, 768, 768, 848, 849, 850,
556 768, 850, 768, 851, 768, 851, 768, 852, 852, 852,
557 768, 852, 852, 768, 853, 854, 768, 768, 768, 768,
558 855, 768, 826, 827, 830, 830, 241, 768, 241, 241,
559 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
560 833, 836, 836, 278, 278, 841, 841, 768, 768, 843,
561 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
562 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
564 843, 843, 843, 843, 843, 843, 843, 843, 768, 843,
565 843, 843, 843, 768, 847, 847, 768, 847, 847, 768,
566 768, 768, 768, 848, 849, 768, 341, 852, 343, 341,
567 852, 343, 768, 768, 768, 830, 830, 360, 768, 833,
568 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
569 836, 836, 841, 841, 768, 768, 843, 843, 843, 843,
570 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
571 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
572 843, 843, 843, 843, 768, 768, 768, 843, 843, 843,
573 843, 768, 768, 847, 847, 768, 768, 768, 768, 427,
575 852, 343, 852, 852, 852, 768, 768, 830, 830, 768,
576 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
577 833, 833, 836, 836, 841, 841, 843, 843, 843, 843,
578 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
579 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
580 843, 768, 768, 768, 768, 843, 843, 843, 843, 768,
581 856, 768, 768, 768, 852, 852, 852, 768, 768, 830,
582 830, 833, 833, 833, 833, 833, 833, 833, 833, 833,
583 833, 833, 833, 836, 836, 841, 841, 843, 843, 843,
584 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
586 843, 843, 843, 843, 843, 843, 768, 768, 768, 768,
587 843, 843, 843, 843, 856, 768, 856, 768, 768, 768,
588 768, 768, 833, 833, 833, 833, 833, 833, 833, 833,
589 833, 833, 833, 833, 843, 843, 843, 843, 843, 843,
590 843, 843, 843, 843, 843, 843, 843, 843, 843, 768,
591 768, 768, 768, 843, 843, 857, 768, 768, 768, 768,
592 768, 768, 768, 768, 768, 768, 768, 768, 833, 843,
593 843, 843, 843, 843, 843, 843, 843, 843, 768, 768,
594 768, 768, 843, 857, 768, 857, 768, 768, 768, 768,
595 768, 768, 768, 768, 768, 768, 768, 768, 843, 843,
597 843, 843, 843, 843, 843, 768, 768, 768, 768, 768,
598 768, 843, 843, 843, 843, 843, 843, 843, 768, 768,
599 768, 768, 768, 768, 843, 843, 843, 843, 843, 843,
600 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
601 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
602 768, 768, 768, 768, 843, 843, 843, 768, 768, 843,
603 843, 843, 843, 843, 843, 843, 843, 0, 768, 768,
604 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
605 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
606 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, 768, 768, 768,
613 768, 768, 768, 768, 768, 768, 768
616 static yyconst short int yy_nxt[2775] =
618 40, 41, 42, 43, 40, 40, 40, 40, 40, 40,
619 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
620 40, 40, 40, 44, 44, 40, 40, 40, 40, 44,
621 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
622 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
623 44, 44, 44, 44, 44, 40, 40, 40, 40, 45,
624 46, 47, 40, 48, 40, 49, 40, 40, 40, 40,
625 40, 40, 50, 40, 40, 40, 40, 40, 40, 40,
626 40, 51, 51, 40, 40, 40, 40, 51, 51, 51,
627 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
629 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
630 51, 51, 51, 40, 40, 40, 53, 54, 55, 56,
631 767, 57, 70, 71, 58, 58, 58, 129, 130, 58,
632 73, 70, 74, 129, 130, 59, 75, 87, 88, 89,
633 60, 61, 87, 88, 89, 188, 96, 97, 224, 132,
634 133, 210, 211, 96, 97, 404, 98, 134, 405, 99,
635 99, 99, 99, 98, 213, 213, 99, 99, 99, 99,
636 62, 58, 58, 63, 64, 65, 56, 252, 57, 66,
637 40, 58, 58, 58, 439, 189, 58, 102, 103, 104,
638 40, 252, 67, 102, 103, 104, 225, 60, 61, 275,
640 68, 100, 214, 107, 108, 276, 109, 178, 100, 179,
641 232, 105, 233, 107, 108, 572, 109, 105, 132, 133,
642 180, 180, 180, 180, 265, 266, 134, 62, 58, 58,
643 78, 78, 79, 80, 78, 78, 78, 78, 78, 78,
644 81, 78, 78, 78, 78, 78, 78, 78, 78, 78,
645 78, 78, 78, 82, 82, 78, 78, 78, 78, 82,
646 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
647 82, 82, 82, 82, 82, 82, 82, 83, 82, 82,
648 82, 82, 82, 82, 84, 78, 78, 78, 90, 90,
649 40, 90, 90, 90, 90, 90, 90, 90, 91, 90,
651 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
652 92, 93, 93, 90, 90, 90, 90, 93, 93, 93,
653 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
654 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
655 93, 93, 93, 90, 90, 90, 111, 112, 296, 111,
656 112, 178, 766, 179, 181, 182, 183, 113, 265, 266,
657 113, 185, 186, 187, 180, 180, 180, 180, 297, 114,
658 115, 116, 114, 115, 116, 117, 117, 118, 119, 120,
659 117, 117, 117, 121, 117, 117, 117, 117, 117, 122,
660 117, 117, 117, 117, 117, 117, 117, 117, 123, 123,
662 117, 117, 117, 117, 123, 123, 123, 123, 123, 123,
663 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
664 123, 123, 124, 123, 123, 123, 123, 123, 123, 125,
665 126, 117, 127, 136, 137, 138, 136, 137, 138, 206,
666 206, 207, 215, 215, 215, 215, 248, 248, 248, 248,
667 268, 269, 268, 269, 300, 331, 332, 139, 301, 765,
668 139, 140, 141, 142, 143, 140, 140, 140, 144, 140,
669 140, 145, 140, 140, 140, 146, 140, 140, 140, 140,
670 140, 140, 140, 140, 147, 147, 140, 140, 140, 140,
671 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
673 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
674 147, 147, 147, 147, 147, 149, 140, 140, 140, 150,
675 151, 152, 153, 154, 150, 150, 150, 150, 150, 150,
676 150, 150, 150, 150, 150, 155, 156, 150, 150, 150,
677 157, 150, 150, 150, 150, 150, 150, 150, 150, 158,
678 159, 160, 161, 162, 163, 164, 164, 165, 164, 164,
679 166, 167, 168, 169, 170, 164, 171, 172, 164, 173,
680 174, 175, 164, 176, 150, 150, 150, 191, 201, 202,
681 203, 258, 213, 213, 204, 289, 213, 213, 213, 213,
682 292, 290, 217, 218, 219, 383, 303, 275, 220, 259,
684 192, 188, 193, 276, 193, 221, 304, 335, 336, 293,
685 193, 222, 384, 193, 194, 195, 480, 193, 196, 223,
686 214, 306, 481, 197, 214, 198, 214, 317, 317, 317,
687 317, 307, 764, 205, 308, 181, 182, 183, 185, 186,
688 187, 189, 321, 322, 323, 339, 340, 205, 321, 322,
689 323, 387, 321, 322, 323, 388, 324, 324, 324, 324,
690 342, 342, 324, 324, 324, 324, 324, 324, 324, 324,
691 321, 322, 323, 201, 202, 203, 341, 344, 344, 204,
692 380, 258, 339, 340, 324, 324, 324, 324, 325, 217,
693 218, 219, 265, 266, 381, 220, 326, 439, 343, 259,
695 265, 266, 221, 248, 248, 248, 248, 673, 222, 268,
696 269, 268, 269, 327, 392, 402, 223, 409, 393, 440,
697 410, 416, 417, 418, 403, 331, 332, 763, 205, 411,
698 412, 317, 317, 317, 317, 419, 419, 419, 419, 721,
699 413, 331, 332, 722, 205, 357, 357, 358, 359, 357,
700 357, 357, 357, 357, 357, 360, 357, 357, 357, 357,
701 357, 357, 357, 357, 357, 357, 357, 357, 360, 360,
702 357, 357, 357, 357, 360, 360, 360, 360, 360, 360,
703 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
704 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
706 357, 357, 357, 362, 363, 364, 365, 335, 336, 366,
707 335, 336, 339, 340, 367, 212, 212, 762, 368, 493,
708 494, 369, 761, 370, 417, 494, 371, 374, 374, 760,
709 374, 374, 374, 374, 374, 374, 374, 375, 374, 374,
710 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
711 375, 375, 374, 374, 374, 374, 375, 375, 375, 375,
712 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
713 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
714 375, 375, 374, 374, 374, 420, 322, 323, 427, 439,
715 439, 428, 428, 439, 339, 340, 431, 431, 439, 324,
717 324, 324, 324, 338, 439, 485, 339, 340, 486, 487,
718 439, 441, 443, 439, 442, 420, 322, 323, 450, 552,
719 759, 513, 493, 494, 516, 553, 444, 339, 340, 429,
720 338, 338, 439, 338, 338, 338, 338, 338, 338, 338,
721 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
722 338, 338, 338, 430, 430, 339, 340, 445, 338, 338,
723 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
724 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
725 430, 430, 430, 430, 430, 338, 338, 338, 432, 432,
726 432, 432, 758, 439, 339, 340, 432, 757, 339, 340,
728 495, 417, 418, 432, 432, 432, 432, 432, 432, 360,
729 360, 439, 438, 360, 360, 360, 360, 360, 360, 448,
730 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
731 360, 360, 439, 439, 360, 360, 360, 360, 439, 446,
732 501, 501, 447, 504, 504, 416, 417, 418, 616, 617,
733 339, 340, 638, 339, 340, 515, 439, 439, 449, 419,
734 419, 419, 419, 514, 360, 360, 360, 375, 375, 580,
735 375, 375, 375, 375, 375, 375, 375, 439, 375, 375,
736 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
737 517, 439, 375, 375, 375, 375, 495, 417, 418, 439,
739 439, 511, 439, 512, 439, 439, 339, 340, 209, 439,
740 419, 419, 419, 419, 439, 519, 520, 581, 518, 522,
741 566, 566, 375, 375, 375, 500, 500, 573, 521, 578,
742 339, 340, 500, 500, 500, 500, 500, 500, 500, 500,
743 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
744 500, 500, 500, 500, 500, 500, 500, 502, 502, 502,
745 502, 532, 439, 439, 439, 502, 439, 339, 340, 439,
746 339, 340, 502, 502, 502, 502, 502, 502, 505, 505,
747 505, 505, 439, 533, 582, 576, 505, 574, 579, 534,
748 575, 439, 439, 505, 505, 505, 505, 505, 505, 567,
750 567, 567, 567, 590, 339, 340, 338, 567, 577, 583,
751 439, 439, 625, 591, 567, 567, 567, 567, 567, 567,
752 439, 439, 624, 439, 439, 439, 439, 439, 439, 439,
753 616, 617, 439, 623, 616, 617, 685, 686, 685, 686,
754 756, 628, 626, 632, 708, 755, 634, 685, 686, 302,
755 302, 627, 629, 754, 753, 630, 631, 633, 752, 751,
756 750, 709, 669, 52, 52, 52, 52, 52, 52, 52,
757 52, 52, 52, 52, 52, 52, 52, 52, 52, 69,
758 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
759 69, 69, 69, 69, 69, 72, 72, 72, 72, 72,
761 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
762 72, 76, 76, 76, 76, 76, 76, 76, 76, 76,
763 76, 76, 76, 76, 76, 76, 76, 86, 86, 86,
764 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
765 86, 86, 86, 40, 40, 40, 40, 40, 40, 40,
766 40, 40, 40, 40, 40, 40, 40, 40, 40, 95,
767 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
768 95, 95, 95, 95, 95, 101, 101, 101, 101, 101,
769 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
770 101, 106, 106, 106, 106, 106, 106, 106, 106, 106,
772 106, 106, 106, 106, 106, 106, 106, 110, 110, 110,
773 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
774 110, 110, 110, 128, 128, 128, 128, 128, 128, 128,
775 128, 128, 128, 128, 128, 128, 128, 128, 128, 131,
776 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
777 131, 131, 131, 131, 131, 135, 135, 135, 135, 135,
778 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
779 135, 177, 177, 177, 177, 177, 177, 177, 177, 177,
780 177, 177, 177, 177, 177, 177, 177, 184, 184, 184,
781 184, 749, 748, 184, 184, 184, 190, 190, 190, 190,
783 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
784 190, 200, 200, 200, 200, 747, 746, 200, 200, 200,
785 209, 745, 209, 209, 209, 209, 209, 209, 209, 209,
786 209, 209, 209, 209, 209, 209, 212, 744, 212, 212,
787 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
788 212, 212, 216, 216, 216, 743, 742, 216, 216, 216,
789 227, 741, 227, 227, 227, 227, 227, 227, 227, 227,
790 227, 227, 227, 227, 227, 227, 229, 740, 229, 229,
791 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
792 229, 229, 230, 739, 230, 230, 230, 230, 230, 230,
794 230, 230, 230, 230, 230, 230, 230, 230, 234, 234,
795 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
796 234, 234, 234, 234, 236, 738, 236, 236, 737, 236,
797 236, 236, 736, 735, 236, 236, 734, 733, 732, 236,
798 238, 238, 238, 238, 731, 730, 238, 238, 238, 242,
799 729, 242, 242, 242, 242, 242, 242, 242, 242, 242,
800 242, 242, 242, 242, 242, 246, 246, 246, 246, 728,
801 727, 246, 246, 246, 251, 726, 251, 251, 251, 251,
802 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
803 254, 725, 254, 254, 254, 254, 254, 254, 254, 254,
805 254, 724, 254, 254, 254, 254, 255, 723, 720, 719,
806 255, 255, 255, 255, 718, 717, 255, 255, 257, 716,
807 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
808 257, 257, 257, 257, 261, 261, 261, 261, 715, 714,
809 261, 261, 261, 264, 264, 264, 264, 264, 264, 264,
810 264, 264, 264, 264, 264, 264, 264, 264, 264, 267,
811 267, 267, 267, 713, 267, 267, 267, 267, 267, 267,
812 267, 267, 267, 267, 267, 271, 712, 711, 271, 271,
813 271, 271, 271, 271, 271, 710, 271, 271, 271, 271,
814 271, 273, 707, 273, 273, 273, 273, 273, 273, 273,
816 273, 273, 273, 273, 273, 273, 273, 274, 706, 274,
817 274, 705, 274, 274, 274, 704, 703, 274, 274, 702,
818 701, 700, 274, 279, 279, 279, 279, 699, 698, 279,
819 279, 279, 284, 697, 284, 284, 284, 284, 284, 284,
820 284, 284, 284, 284, 284, 284, 284, 284, 288, 288,
821 696, 288, 288, 695, 694, 693, 288, 288, 315, 692,
822 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
823 315, 315, 315, 315, 319, 691, 319, 319, 319, 319,
824 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
825 320, 690, 320, 320, 320, 320, 320, 320, 320, 320,
827 320, 320, 320, 320, 320, 320, 328, 328, 689, 688,
828 328, 328, 328, 329, 329, 687, 683, 329, 329, 329,
829 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
830 330, 330, 330, 330, 330, 330, 334, 334, 334, 334,
831 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
832 334, 334, 338, 682, 338, 338, 338, 338, 338, 338,
833 338, 338, 338, 681, 338, 338, 338, 338, 209, 680,
834 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
835 209, 209, 209, 209, 345, 345, 679, 678, 677, 676,
836 345, 346, 346, 346, 346, 675, 674, 346, 346, 346,
838 346, 351, 673, 351, 351, 351, 351, 351, 351, 351,
839 351, 351, 351, 351, 351, 351, 351, 227, 672, 227,
840 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
841 227, 227, 227, 229, 671, 229, 229, 229, 229, 229,
842 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
843 670, 230, 230, 230, 230, 230, 230, 230, 230, 230,
844 230, 230, 230, 230, 230, 353, 668, 353, 353, 353,
845 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
846 353, 354, 667, 354, 354, 354, 354, 354, 354, 354,
847 354, 354, 354, 354, 354, 354, 354, 234, 234, 234,
849 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
850 234, 234, 234, 236, 666, 236, 236, 665, 236, 236,
851 236, 664, 663, 236, 236, 662, 661, 660, 236, 238,
852 238, 238, 238, 659, 658, 238, 238, 238, 242, 657,
853 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
854 242, 242, 242, 242, 246, 246, 246, 246, 656, 655,
855 246, 246, 246, 361, 361, 654, 653, 652, 361, 361,
856 255, 651, 650, 649, 255, 255, 255, 255, 648, 647,
857 255, 255, 257, 646, 257, 257, 257, 257, 257, 257,
858 257, 257, 257, 257, 257, 257, 257, 257, 261, 261,
860 261, 261, 645, 644, 261, 261, 261, 264, 264, 264,
861 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
862 264, 264, 264, 267, 267, 267, 267, 643, 267, 267,
863 267, 267, 267, 267, 267, 267, 267, 267, 267, 271,
864 642, 641, 271, 271, 271, 271, 271, 271, 271, 640,
865 271, 271, 271, 271, 271, 274, 639, 274, 274, 638,
866 274, 274, 274, 637, 636, 274, 274, 635, 622, 621,
867 274, 279, 279, 279, 279, 620, 619, 279, 279, 279,
868 284, 618, 284, 284, 284, 284, 284, 284, 284, 284,
869 284, 284, 284, 284, 284, 284, 288, 288, 560, 288,
871 288, 614, 613, 612, 288, 288, 315, 611, 315, 315,
872 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
873 315, 315, 319, 610, 319, 319, 319, 319, 319, 319,
874 319, 319, 319, 319, 319, 319, 319, 319, 320, 609,
875 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
876 320, 320, 320, 320, 415, 415, 415, 415, 415, 415,
877 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
878 424, 424, 424, 424, 608, 607, 424, 424, 424, 425,
879 425, 425, 425, 606, 605, 425, 425, 425, 330, 330,
880 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
882 330, 330, 330, 330, 334, 334, 334, 334, 334, 334,
883 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
884 338, 604, 338, 338, 338, 338, 338, 338, 338, 338,
885 338, 603, 338, 338, 338, 338, 433, 433, 602, 601,
886 600, 599, 433, 346, 346, 346, 346, 598, 597, 346,
887 346, 346, 346, 351, 596, 351, 351, 351, 351, 351,
888 351, 351, 351, 351, 351, 351, 351, 351, 351, 615,
889 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
890 615, 615, 615, 615, 615, 684, 684, 684, 684, 684,
891 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
893 684, 595, 594, 593, 592, 589, 588, 587, 586, 585,
894 584, 571, 570, 569, 568, 565, 564, 563, 562, 561,
895 560, 559, 558, 557, 556, 555, 554, 551, 550, 549,
896 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
897 538, 537, 536, 535, 531, 530, 529, 528, 527, 526,
898 525, 524, 523, 510, 509, 508, 507, 506, 503, 499,
899 498, 497, 496, 492, 491, 490, 489, 488, 484, 483,
900 482, 479, 478, 477, 476, 475, 474, 473, 472, 471,
901 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
902 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
904 439, 437, 436, 435, 434, 347, 426, 423, 422, 421,
905 322, 414, 316, 408, 407, 406, 401, 400, 399, 398,
906 397, 396, 395, 394, 391, 390, 389, 386, 385, 382,
907 379, 378, 285, 282, 377, 376, 278, 373, 372, 243,
908 356, 355, 235, 231, 352, 350, 349, 348, 218, 347,
909 337, 206, 333, 202, 318, 186, 182, 316, 314, 313,
910 312, 311, 310, 309, 305, 299, 298, 295, 294, 291,
911 287, 286, 285, 283, 282, 281, 280, 260, 278, 277,
912 272, 270, 263, 262, 260, 256, 250, 253, 250, 249,
913 247, 245, 244, 243, 241, 240, 239, 237, 235, 228,
915 231, 228, 226, 218, 208, 202, 199, 186, 182, 768,
916 94, 94, 85, 77, 77, 39, 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,
921 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
925 static yyconst short int yy_chk[2775] =
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, 1, 1,
932 1, 1, 1, 1, 1, 1, 1, 1, 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,
936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
938 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
939 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
940 765, 3, 5, 5, 3, 3, 3, 27, 27, 3,
941 6, 6, 6, 28, 28, 3, 6, 11, 11, 11,
942 3, 3, 12, 12, 12, 48, 17, 17, 66, 29,
943 29, 60, 60, 18, 18, 310, 17, 29, 310, 17,
944 17, 17, 17, 18, 61, 61, 18, 18, 18, 18,
945 3, 3, 3, 4, 4, 4, 4, 109, 4, 4,
946 21, 4, 4, 4, 511, 48, 4, 19, 19, 19,
947 22, 109, 4, 20, 20, 20, 66, 4, 4, 141,
949 4, 17, 61, 21, 21, 141, 21, 37, 18, 37,
950 75, 19, 75, 22, 22, 511, 22, 20, 30, 30,
951 37, 37, 37, 37, 128, 128, 30, 4, 4, 4,
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, 9, 9,
957 9, 9, 9, 9, 9, 9, 9, 9, 13, 13,
958 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, 13, 13, 13, 13,
964 13, 13, 13, 13, 13, 13, 23, 23, 163, 24,
965 24, 38, 764, 38, 41, 41, 41, 23, 130, 130,
966 24, 45, 45, 45, 38, 38, 38, 38, 163, 23,
967 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
968 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
969 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, 25, 25, 25, 25, 25, 25, 25,
974 25, 25, 25, 31, 31, 31, 32, 32, 32, 57,
975 57, 57, 62, 62, 62, 62, 99, 99, 99, 99,
976 131, 131, 133, 133, 167, 198, 198, 31, 167, 763,
977 32, 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,
980 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
982 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
983 33, 33, 33, 33, 33, 33, 33, 33, 33, 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, 35, 35, 35,
989 35, 35, 35, 35, 35, 35, 35, 49, 53, 53,
990 53, 121, 105, 105, 53, 158, 108, 108, 115, 115,
991 160, 158, 63, 63, 63, 291, 168, 275, 63, 121,
993 49, 188, 49, 275, 49, 63, 168, 205, 205, 160,
994 49, 63, 291, 49, 49, 49, 405, 49, 49, 63,
995 105, 170, 405, 49, 108, 49, 115, 180, 180, 180,
996 180, 170, 762, 53, 170, 181, 181, 181, 185, 185,
997 185, 188, 192, 192, 192, 209, 209, 63, 193, 193,
998 193, 294, 194, 194, 194, 294, 192, 192, 192, 192,
999 211, 211, 193, 193, 193, 193, 194, 194, 194, 194,
1000 195, 195, 195, 201, 201, 201, 210, 213, 213, 201,
1001 289, 257, 210, 210, 195, 195, 195, 195, 192, 217,
1002 217, 217, 264, 264, 289, 217, 194, 362, 211, 257,
1004 266, 266, 217, 248, 248, 248, 248, 761, 217, 267,
1005 267, 269, 269, 195, 298, 309, 217, 314, 298, 362,
1006 314, 321, 321, 321, 309, 330, 330, 760, 201, 314,
1007 314, 317, 317, 317, 317, 321, 321, 321, 321, 708,
1008 314, 332, 332, 708, 217, 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,
1013 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1015 241, 241, 241, 250, 250, 250, 250, 334, 334, 250,
1016 336, 336, 338, 338, 250, 344, 344, 757, 250, 415,
1017 415, 250, 756, 250, 418, 418, 250, 278, 278, 755,
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, 278, 278, 278, 278, 278,
1023 278, 278, 278, 278, 278, 324, 324, 324, 339, 363,
1024 364, 340, 340, 365, 339, 339, 342, 342, 366, 324,
1026 324, 324, 324, 340, 371, 409, 342, 342, 409, 409,
1027 441, 363, 365, 444, 364, 420, 420, 420, 371, 485,
1028 754, 441, 494, 494, 444, 485, 366, 504, 504, 340,
1029 341, 341, 367, 341, 341, 341, 341, 341, 341, 341,
1030 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1031 341, 341, 341, 341, 341, 341, 341, 367, 341, 341,
1032 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1033 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1034 341, 341, 341, 341, 341, 341, 341, 341, 343, 343,
1035 343, 343, 752, 369, 505, 505, 343, 750, 343, 343,
1037 495, 495, 495, 343, 343, 343, 343, 343, 343, 360,
1038 360, 368, 360, 360, 360, 360, 360, 360, 360, 369,
1039 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
1040 360, 360, 370, 442, 360, 360, 360, 360, 443, 368,
1041 428, 428, 368, 431, 431, 416, 416, 416, 561, 561,
1042 428, 428, 749, 431, 431, 443, 519, 445, 370, 416,
1043 416, 416, 416, 442, 360, 360, 360, 375, 375, 519,
1044 375, 375, 375, 375, 375, 375, 375, 440, 375, 375,
1045 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
1046 445, 447, 375, 375, 375, 375, 419, 419, 419, 446,
1048 450, 440, 449, 440, 520, 448, 503, 503, 503, 512,
1049 419, 419, 419, 419, 517, 447, 448, 520, 446, 450,
1050 501, 501, 375, 375, 375, 427, 427, 512, 449, 517,
1051 501, 501, 427, 427, 427, 427, 427, 427, 427, 427,
1052 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1053 427, 427, 427, 427, 427, 427, 427, 429, 429, 429,
1054 429, 462, 514, 513, 518, 429, 515, 566, 566, 521,
1055 567, 567, 429, 429, 429, 429, 429, 429, 432, 432,
1056 432, 432, 516, 462, 521, 515, 432, 513, 518, 462,
1057 514, 574, 522, 432, 432, 432, 432, 432, 432, 502,
1059 502, 502, 502, 532, 565, 565, 565, 502, 516, 522,
1060 572, 573, 574, 532, 502, 502, 502, 502, 502, 502,
1061 575, 576, 573, 577, 578, 579, 580, 583, 581, 582,
1062 615, 615, 634, 572, 617, 617, 656, 656, 684, 684,
1063 748, 577, 575, 581, 681, 747, 583, 686, 686, 810,
1064 810, 576, 578, 745, 744, 579, 580, 582, 743, 742,
1065 740, 681, 634, 769, 769, 769, 769, 769, 769, 769,
1066 769, 769, 769, 769, 769, 769, 769, 769, 769, 770,
1067 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
1068 770, 770, 770, 770, 770, 771, 771, 771, 771, 771,
1070 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1071 771, 772, 772, 772, 772, 772, 772, 772, 772, 772,
1072 772, 772, 772, 772, 772, 772, 772, 773, 773, 773,
1073 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
1074 773, 773, 773, 774, 774, 774, 774, 774, 774, 774,
1075 774, 774, 774, 774, 774, 774, 774, 774, 774, 775,
1076 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1077 775, 775, 775, 775, 775, 776, 776, 776, 776, 776,
1078 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
1079 776, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1081 777, 777, 777, 777, 777, 777, 777, 778, 778, 778,
1082 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
1083 778, 778, 778, 779, 779, 779, 779, 779, 779, 779,
1084 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
1085 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
1086 780, 780, 780, 780, 780, 781, 781, 781, 781, 781,
1087 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1088 781, 782, 782, 782, 782, 782, 782, 782, 782, 782,
1089 782, 782, 782, 782, 782, 782, 782, 783, 783, 783,
1090 783, 739, 738, 783, 783, 783, 784, 784, 784, 784,
1092 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
1093 784, 785, 785, 785, 785, 737, 736, 785, 785, 785,
1094 786, 735, 786, 786, 786, 786, 786, 786, 786, 786,
1095 786, 786, 786, 786, 786, 786, 787, 734, 787, 787,
1096 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
1097 787, 787, 788, 788, 788, 733, 732, 788, 788, 788,
1098 789, 731, 789, 789, 789, 789, 789, 789, 789, 789,
1099 789, 789, 789, 789, 789, 789, 790, 729, 790, 790,
1100 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1101 790, 790, 791, 727, 791, 791, 791, 791, 791, 791,
1103 791, 791, 791, 791, 791, 791, 791, 791, 792, 792,
1104 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1105 792, 792, 792, 792, 793, 726, 793, 793, 725, 793,
1106 793, 793, 724, 723, 793, 793, 722, 721, 720, 793,
1107 794, 794, 794, 794, 719, 718, 794, 794, 794, 795,
1108 717, 795, 795, 795, 795, 795, 795, 795, 795, 795,
1109 795, 795, 795, 795, 795, 796, 796, 796, 796, 715,
1110 714, 796, 796, 796, 797, 713, 797, 797, 797, 797,
1111 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
1112 798, 712, 798, 798, 798, 798, 798, 798, 798, 798,
1114 798, 710, 798, 798, 798, 798, 799, 709, 707, 706,
1115 799, 799, 799, 799, 705, 704, 799, 799, 800, 703,
1116 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
1117 800, 800, 800, 800, 801, 801, 801, 801, 702, 701,
1118 801, 801, 801, 802, 802, 802, 802, 802, 802, 802,
1119 802, 802, 802, 802, 802, 802, 802, 802, 802, 803,
1120 803, 803, 803, 700, 803, 803, 803, 803, 803, 803,
1121 803, 803, 803, 803, 803, 804, 699, 698, 804, 804,
1122 804, 804, 804, 804, 804, 682, 804, 804, 804, 804,
1123 804, 805, 680, 805, 805, 805, 805, 805, 805, 805,
1125 805, 805, 805, 805, 805, 805, 805, 806, 679, 806,
1126 806, 678, 806, 806, 806, 677, 675, 806, 806, 674,
1127 672, 671, 806, 807, 807, 807, 807, 670, 669, 807,
1128 807, 807, 808, 668, 808, 808, 808, 808, 808, 808,
1129 808, 808, 808, 808, 808, 808, 808, 808, 809, 809,
1130 667, 809, 809, 666, 665, 664, 809, 809, 811, 663,
1131 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
1132 811, 811, 811, 811, 812, 662, 812, 812, 812, 812,
1133 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
1134 813, 661, 813, 813, 813, 813, 813, 813, 813, 813,
1136 813, 813, 813, 813, 813, 813, 814, 814, 660, 659,
1137 814, 814, 814, 815, 815, 658, 655, 815, 815, 815,
1138 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
1139 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
1140 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
1141 817, 817, 818, 653, 818, 818, 818, 818, 818, 818,
1142 818, 818, 818, 652, 818, 818, 818, 818, 819, 651,
1143 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
1144 819, 819, 819, 819, 820, 820, 650, 646, 644, 643,
1145 820, 821, 821, 821, 821, 642, 641, 821, 821, 821,
1147 821, 822, 639, 822, 822, 822, 822, 822, 822, 822,
1148 822, 822, 822, 822, 822, 822, 822, 823, 637, 823,
1149 823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
1150 823, 823, 823, 824, 636, 824, 824, 824, 824, 824,
1151 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
1152 635, 825, 825, 825, 825, 825, 825, 825, 825, 825,
1153 825, 825, 825, 825, 825, 826, 633, 826, 826, 826,
1154 826, 826, 826, 826, 826, 826, 826, 826, 826, 826,
1155 826, 827, 632, 827, 827, 827, 827, 827, 827, 827,
1156 827, 827, 827, 827, 827, 827, 827, 828, 828, 828,
1158 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
1159 828, 828, 828, 829, 631, 829, 829, 630, 829, 829,
1160 829, 629, 628, 829, 829, 627, 626, 625, 829, 830,
1161 830, 830, 830, 624, 623, 830, 830, 830, 831, 621,
1162 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
1163 831, 831, 831, 831, 832, 832, 832, 832, 619, 612,
1164 832, 832, 832, 833, 833, 611, 610, 609, 833, 833,
1165 834, 608, 607, 606, 834, 834, 834, 834, 604, 601,
1166 834, 834, 835, 600, 835, 835, 835, 835, 835, 835,
1167 835, 835, 835, 835, 835, 835, 835, 835, 836, 836,
1169 836, 836, 599, 598, 836, 836, 836, 837, 837, 837,
1170 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
1171 837, 837, 837, 838, 838, 838, 838, 597, 838, 838,
1172 838, 838, 838, 838, 838, 838, 838, 838, 838, 839,
1173 596, 595, 839, 839, 839, 839, 839, 839, 839, 594,
1174 839, 839, 839, 839, 839, 840, 593, 840, 840, 592,
1175 840, 840, 840, 591, 590, 840, 840, 588, 569, 568,
1176 840, 841, 841, 841, 841, 564, 563, 841, 841, 841,
1177 842, 562, 842, 842, 842, 842, 842, 842, 842, 842,
1178 842, 842, 842, 842, 842, 842, 843, 843, 560, 843,
1180 843, 559, 558, 557, 843, 843, 844, 556, 844, 844,
1181 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
1182 844, 844, 845, 555, 845, 845, 845, 845, 845, 845,
1183 845, 845, 845, 845, 845, 845, 845, 845, 846, 554,
1184 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1185 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
1186 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
1187 848, 848, 848, 848, 553, 552, 848, 848, 848, 849,
1188 849, 849, 849, 551, 549, 849, 849, 849, 850, 850,
1189 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
1191 850, 850, 850, 850, 851, 851, 851, 851, 851, 851,
1192 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
1193 852, 548, 852, 852, 852, 852, 852, 852, 852, 852,
1194 852, 546, 852, 852, 852, 852, 853, 853, 545, 544,
1195 543, 542, 853, 854, 854, 854, 854, 541, 540, 854,
1196 854, 854, 854, 855, 539, 855, 855, 855, 855, 855,
1197 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
1198 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
1199 856, 856, 856, 856, 856, 857, 857, 857, 857, 857,
1200 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
1202 857, 538, 536, 534, 533, 530, 528, 526, 525, 524,
1203 523, 509, 508, 507, 506, 500, 499, 498, 497, 496,
1204 492, 491, 490, 489, 488, 487, 486, 483, 482, 481,
1205 480, 479, 478, 476, 475, 474, 473, 472, 471, 469,
1206 468, 467, 464, 463, 461, 460, 459, 458, 457, 454,
1207 453, 452, 451, 439, 437, 436, 435, 434, 430, 426,
1208 423, 422, 421, 414, 413, 412, 411, 410, 408, 407,
1209 406, 404, 403, 402, 401, 400, 399, 398, 397, 396,
1210 395, 394, 393, 392, 391, 390, 388, 387, 386, 384,
1211 383, 382, 381, 380, 379, 378, 377, 376, 373, 372,
1213 361, 356, 355, 352, 350, 346, 337, 327, 326, 325,
1214 323, 318, 315, 313, 312, 311, 308, 307, 306, 305,
1215 303, 301, 300, 299, 297, 296, 295, 293, 292, 290,
1216 287, 286, 284, 282, 281, 280, 276, 263, 262, 243,
1217 240, 239, 234, 231, 226, 222, 221, 220, 219, 216,
1218 208, 207, 204, 203, 189, 187, 183, 179, 176, 175,
1219 174, 173, 172, 171, 169, 166, 165, 162, 161, 159,
1220 156, 155, 154, 153, 151, 149, 148, 146, 144, 143,
1221 137, 134, 125, 124, 122, 119, 114, 112, 107, 103,
1222 97, 92, 89, 87, 85, 84, 83, 80, 76, 74,
1224 73, 71, 67, 65, 59, 55, 50, 47, 43, 39,
1225 16, 15, 10, 8, 7, 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,
1230 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1234 static yy_state_type yy_last_accepting_state;
1235 static char *yy_last_accepting_cpos;
1237 /* The intent behind this definition is that it'll catch
1238 * any uses of REJECT which flex missed.
1240 #define REJECT reject_used_but_not_detected
1241 #define yymore() yymore_used_but_not_detected
1242 #define YY_MORE_ADJ 0
1243 #define YY_RESTORE_YY_MORE_OFFSET
1247 /* scan.l - scanner for flex input */
1250 * Copyright (c) 1990 The Regents of the University of California.
1251 * All rights reserved.
1253 * This code is derived from software contributed to Berkeley by
1256 * The United States Government has rights in this work pursuant
1257 * to contract no. DE-AC03-76SF00098 between the United States
1258 * Department of Energy and the University of California.
1260 * Redistribution and use in source and binary forms are permitted provided
1261 * that: (1) source distributions retain this entire copyright notice and
1262 * comment, and (2) distributions including binaries display the following
1263 * acknowledgement: ``This product includes software developed by the
1264 * University of California, Berkeley and its contributors'' in the
1265 * documentation or other materials provided with the distribution and in
1266 * all advertising materials mentioning features or use of this software.
1267 * Neither the name of the University nor the names of its contributors may
1268 * be used to endorse or promote products derived from this software without
1269 * specific prior written permission.
1270 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1271 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1272 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1275 /* $Header: /home/daffy/u0/vern/flex/RCS/scan.l,v 2.56 95/04/24 12:17:19 vern Exp $ */
1278 static const char rcsid[] =
1280 #endif /* not lint */
1282 #include "flexdef.h"
1285 #define ACTION_ECHO add_action( yytext )
1286 #define ACTION_IFDEF(def, should_define) \
1288 if ( should_define ) \
1289 action_define( def, 1 ); \
1292 #define MARK_END_OF_PROLOG mark_prolog();
1297 #define RETURNCHAR \
1298 yylval = (unsigned char) yytext[0]; \
1301 #define RETURNNAME \
1302 strcpy( nmstr, yytext ); \
1305 #define PUT_BACK_STRING(str, start) \
1306 for ( i = strlen( str ) - 1; i >= start; --i ) \
1309 #define CHECK_REJECT(str) \
1310 if ( all_upper( str ) ) \
1313 #define CHECK_YYMORE(str) \
1314 if ( all_lower( str ) ) \
1316 #define YY_STACK_USED 1
1317 #define YY_NO_TOP_STATE 1
1319 #define SECT2PROLOG 2
1324 #define CARETISBOL 7
1333 #define ACTION_STRING 15
1334 #define PERCENT_BRACE_ACTION 16
1341 /* Macros after this point can all be overridden by user definitions in
1345 #ifndef YY_SKIP_YYWRAP
1347 extern "C" int yywrap YY_PROTO(( void ));
1349 extern int yywrap YY_PROTO(( void ));
1354 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1358 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1361 #ifdef YY_NEED_STRLEN
1362 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1367 static int yyinput YY_PROTO(( void ));
1369 static int input YY_PROTO(( void ));
1374 static int yy_start_stack_ptr = 0;
1375 static int yy_start_stack_depth = 0;
1376 static int *yy_start_stack = 0;
1377 #ifndef YY_NO_PUSH_STATE
1378 static void yy_push_state YY_PROTO(( int new_state ));
1380 #ifndef YY_NO_POP_STATE
1381 static void yy_pop_state YY_PROTO(( void ));
1383 #ifndef YY_NO_TOP_STATE
1384 static int yy_top_state YY_PROTO(( void ));
1388 #define YY_NO_PUSH_STATE 1
1389 #define YY_NO_POP_STATE 1
1390 #define YY_NO_TOP_STATE 1
1393 #ifdef YY_MALLOC_DECL
1401 /* Just try to get by without declaring the routines. This will fail
1402 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1403 * or sizeof(void*) != sizeof(int).
1408 /* Amount of stuff to slurp up with each read. */
1409 #ifndef YY_READ_BUF_SIZE
1410 #define YY_READ_BUF_SIZE 8192
1413 /* Copy whatever the last rule matched to the standard output. */
1416 /* This used to be an fputs(), but since the string might contain NUL's,
1417 * we now use fwrite().
1419 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1422 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1423 * is returned in "result".
1426 #define YY_INPUT(buf,result,max_size) \
1427 if ( yy_current_buffer->yy_is_interactive ) \
1430 for ( n = 0; n < max_size && \
1431 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1432 buf[n] = (char) c; \
1434 buf[n++] = (char) c; \
1435 if ( c == EOF && ferror( yyin ) ) \
1436 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1439 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1440 && ferror( yyin ) ) \
1441 YY_FATAL_ERROR( "input in flex scanner failed" );
1444 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1445 * we don't want an extra ';' after the "return" because that will cause
1446 * some compilers to complain about unreachable statements.
1449 #define yyterminate() return YY_NULL
1452 /* Number of entries by which start-condition stack grows. */
1453 #ifndef YY_START_STACK_INCR
1454 #define YY_START_STACK_INCR 25
1457 /* Report a fatal error. */
1458 #ifndef YY_FATAL_ERROR
1459 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1462 /* Default declaration of generated scanner - a define so the user can
1463 * easily add parameters.
1466 #define YY_DECL int yylex YY_PROTO(( void ))
1469 /* Code executed at the beginning of each rule, after yytext and yyleng
1472 #ifndef YY_USER_ACTION
1473 #define YY_USER_ACTION
1476 /* Code executed at the end of each rule. */
1478 #define YY_BREAK break;
1481 #define YY_RULE_SETUP \
1483 yy_current_buffer->yy_at_bol = \
1484 (yytext[yyleng - 1] == '\n'); \
1489 register yy_state_type yy_current_state;
1490 register char *yy_cp, *yy_bp;
1491 register int yy_act;
1495 static int bracelevel, didadef, indented_code;
1496 static int doing_rule_action = false;
1497 static int option_sense;
1499 int doing_codeblock = false;
1501 Char nmdef[MAXLINE], myesc();
1515 yy_start = 1; /* first start state */
1523 if ( ! yy_current_buffer )
1525 yy_create_buffer( yyin, YY_BUF_SIZE );
1527 yy_load_buffer_state();
1530 while ( 1 ) /* loops until end-of-file is reached */
1534 /* Support of yytext. */
1535 *yy_cp = yy_hold_char;
1537 /* yy_bp points to the position in yy_ch_buf of the start of
1542 yy_current_state = yy_start;
1543 yy_current_state += YY_AT_BOL();
1547 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1548 if ( yy_accept[yy_current_state] )
1550 yy_last_accepting_state = yy_current_state;
1551 yy_last_accepting_cpos = yy_cp;
1553 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1555 yy_current_state = (int) yy_def[yy_current_state];
1556 if ( yy_current_state >= 769 )
1557 yy_c = yy_meta[(unsigned int) yy_c];
1559 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1562 while ( yy_base[yy_current_state] != 2716 );
1565 yy_act = yy_accept[yy_current_state];
1567 { /* have to back up */
1568 yy_cp = yy_last_accepting_cpos;
1569 yy_current_state = yy_last_accepting_state;
1570 yy_act = yy_accept[yy_current_state];
1573 YY_DO_BEFORE_ACTION;
1576 do_action: /* This label is used only to access EOF actions. */
1580 { /* beginning of action switch */
1581 case 0: /* must back up */
1582 /* undo the effects of YY_DO_BEFORE_ACTION */
1583 *yy_cp = yy_hold_char;
1584 yy_cp = yy_last_accepting_cpos;
1585 yy_current_state = yy_last_accepting_state;
1586 goto yy_find_action;
1592 indented_code = true; BEGIN(CODEBLOCK);
1597 ACTION_ECHO; yy_push_state( COMMENT );
1602 yy_push_state( LINEDIR );
1619 line_directive_out( (FILE *) 0, 1 );
1620 indented_code = false;
1636 line_directive_out( (FILE *) 0, 1 );
1644 yytext_is_array = false; ++linenum;
1649 yytext_is_array = true; ++linenum;
1654 BEGIN(OPTION); return OPTION_OP;
1659 ++linenum; /* ignore */
1664 ++linenum; /* ignore */
1669 synerr( _( "unrecognized '%' directive" ) );
1675 strcpy( nmstr, yytext );
1688 ++linenum; /* allows blank lines in section 1 */
1693 ACTION_ECHO; ++linenum; /* maybe end of comment line */
1700 ACTION_ECHO; yy_pop_state();
1715 ++linenum; ACTION_ECHO;
1727 linenum = myctoi( yytext );
1733 flex_free( (void *) infilename );
1734 infilename = copy_string( yytext + 1 );
1735 infilename[strlen( infilename ) - 1] = '\0';
1741 /* ignore spurious characters */
1748 ++linenum; BEGIN(INITIAL);
1761 if ( indented_code )
1770 /* separates name and definition */
1776 strcpy( (char *) nmdef, yytext );
1778 /* Skip trailing whitespace. */
1779 for ( i = strlen( (char *) nmdef ) - 1;
1780 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1784 nmdef[i + 1] = '\0';
1786 ndinstal( nmstr, nmdef );
1795 synerr( _( "incomplete name definition" ) );
1805 ++linenum; BEGIN(INITIAL);
1810 option_sense = true;
1820 option_sense = ! option_sense;
1825 csize = option_sense ? 128 : 256;
1830 csize = option_sense ? 256 : 128;
1835 long_align = option_sense;
1841 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1847 yytext_is_array = option_sense;
1852 backing_up_report = option_sense;
1857 interactive = ! option_sense;
1862 C_plus_plus = option_sense;
1867 caseins = ! option_sense;
1872 caseins = option_sense;
1877 ddebug = option_sense;
1882 spprdflt = ! option_sense;
1887 useecs = option_sense;
1893 useecs = usemecs = false;
1894 use_read = fullspd = true;
1901 useecs = usemecs = false;
1902 use_read = fulltbl = true;
1908 ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1913 interactive = option_sense;
1918 lex_compat = option_sense;
1924 action_define( "YY_MAIN", option_sense );
1925 do_yywrap = ! option_sense;
1931 usemecs = option_sense;
1937 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1943 performance_report += option_sense ? 1 : -1;
1948 yytext_is_array = ! option_sense;
1953 use_read = option_sense;
1958 reject_really_used = option_sense;
1963 action_define( "YY_STACK_USED", option_sense );
1968 do_stdinit = option_sense;
1973 use_stdout = option_sense;
1978 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1983 printstats = option_sense;
1988 nowarn = ! option_sense;
1993 do_yylineno = option_sense;
1998 yymore_really_used = option_sense;
2003 do_yywrap = option_sense;
2008 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
2013 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2018 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2023 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2028 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2033 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2054 strcpy( nmstr, yytext + 1 );
2055 nmstr[strlen( nmstr ) - 1] = '\0';
2063 format_synerr( _( "unrecognized %%option: %s" ),
2072 ++linenum; BEGIN(INITIAL);
2078 ++bracelevel; yyless( 2 ); /* eat only %{ */
2083 --bracelevel; yyless( 2 ); /* eat only %} */
2088 ACTION_ECHO; /* indented code in prolog */
2093 { /* non-indented code */
2094 if ( bracelevel <= 0 )
2095 { /* not in %{ ... %} */
2096 yyless( 0 ); /* put it all back */
2113 ++linenum; ACTION_ECHO;
2115 case YY_STATE_EOF(SECT2PROLOG):
2120 yyterminate(); /* to stop the parser */
2128 ++linenum; /* allow blank lines in section 2 */
2134 indented_code = false;
2135 doing_codeblock = true;
2137 BEGIN(PERCENT_BRACE_ACTION);
2143 BEGIN(SC); return '<';
2153 BEGIN(QUOTE); return '"';
2156 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2157 yy_c_buf_p = yy_cp = yy_bp + 1;
2158 YY_DO_BEFORE_ACTION; /* set up yytext again */
2161 BEGIN(NUM); return '{';
2164 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2165 yy_c_buf_p = yy_cp = yy_bp + 1;
2166 YY_DO_BEFORE_ACTION; /* set up yytext again */
2176 BEGIN(PERCENT_BRACE_ACTION);
2180 doing_rule_action = true;
2189 continued_action = true; ++linenum; return '\n';
2195 yyless( yyleng - 2 ); /* put back '/', '*' */
2197 continued_action = false;
2204 /* allow indented rules */
2210 /* This rule is separate from the one below because
2211 * otherwise we get variable trailing context, so
2212 * we can't build the scanner using -{f,F}.
2215 continued_action = false;
2220 doing_rule_action = true;
2231 continued_action = false;
2233 unput( '\n' ); /* so <ACTION> sees it */
2237 doing_rule_action = true;
2256 yyterminate(); /* to stop the parser */
2265 strcpy( nmstr, yytext );
2267 /* Check to see if we've already encountered this
2270 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2272 if ( input() != ']' )
2273 synerr( _( "bad character class" ) );
2281 /* We fudge a bit. We know that this ccl will
2282 * soon be numbered as lastccl + 1 by cclinit.
2284 cclinstal( (Char *) nmstr, lastccl + 1 );
2286 /* Push back everything but the leading bracket
2287 * so the ccl can be rescanned.
2300 register Char *nmdefptr;
2303 strcpy( nmstr, yytext + 1 );
2304 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */
2306 if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2308 _( "undefined definition {%s}" ),
2312 { /* push back name surrounded by ()'s */
2313 int len = strlen( (char *) nmdefptr );
2315 if ( lex_compat || nmdefptr[0] == '^' ||
2316 (len > 0 && nmdefptr[len - 1] == '$') )
2317 { /* don't use ()'s after all */
2318 PUT_BACK_STRING((char *) nmdefptr, 0);
2320 if ( nmdefptr[0] == '^' )
2327 PUT_BACK_STRING((char *) nmdefptr, 0);
2336 return (unsigned char) yytext[0];
2348 return (unsigned char) yytext[0];
2353 BEGIN(SECT2); return '>';
2356 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2357 yy_c_buf_p = yy_cp = yy_bp + 1;
2358 YY_DO_BEFORE_ACTION; /* set up yytext again */
2361 BEGIN(CARETISBOL); return '>';
2372 format_synerr( _( "bad <start condition>: %s" ),
2380 BEGIN(SECT2); return '^';
2391 BEGIN(SECT2); return '"';
2397 synerr( _( "missing quote" ) );
2406 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2407 yy_c_buf_p = yy_cp = yy_bp + 1;
2408 YY_DO_BEFORE_ACTION; /* set up yytext again */
2411 BEGIN(CCL); return '^';
2414 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2415 yy_c_buf_p = yy_cp = yy_bp + 1;
2416 YY_DO_BEFORE_ACTION; /* set up yytext again */
2424 BEGIN(CCL); RETURNCHAR;
2429 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2430 yy_c_buf_p = yy_cp = yy_bp + 1;
2431 YY_DO_BEFORE_ACTION; /* set up yytext again */
2444 BEGIN(SECT2); return ']';
2450 synerr( _( "bad character class" ) );
2460 BEGIN(CCL); return CCE_ALNUM;
2465 BEGIN(CCL); return CCE_ALPHA;
2470 BEGIN(CCL); return CCE_BLANK;
2475 BEGIN(CCL); return CCE_CNTRL;
2480 BEGIN(CCL); return CCE_DIGIT;
2485 BEGIN(CCL); return CCE_GRAPH;
2490 BEGIN(CCL); return CCE_LOWER;
2495 BEGIN(CCL); return CCE_PRINT;
2500 BEGIN(CCL); return CCE_PUNCT;
2505 BEGIN(CCL); return CCE_SPACE;
2510 BEGIN(CCL); return CCE_UPPER;
2515 BEGIN(CCL); return CCE_XDIGIT;
2522 _( "bad character class expression: %s" ),
2524 BEGIN(CCL); return CCE_ALNUM;
2533 yylval = myctoi( yytext );
2545 BEGIN(SECT2); return '}';
2551 synerr( _( "bad character inside {}'s" ) );
2560 synerr( _( "missing }" ) );
2576 ACTION_ECHO; yy_push_state( COMMENT );
2584 CHECK_REJECT(yytext);
2592 CHECK_YYMORE(yytext);
2607 if ( bracelevel == 0 ||
2608 (doing_codeblock && indented_code) )
2610 if ( doing_rule_action )
2611 add_action( "\tYY_BREAK\n" );
2613 doing_rule_action = doing_codeblock = false;
2619 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2624 ACTION_ECHO; ++bracelevel;
2629 ACTION_ECHO; --bracelevel;
2644 ACTION_ECHO; /* character constant */
2649 ACTION_ECHO; BEGIN(ACTION_STRING);
2657 if ( bracelevel == 0 )
2659 if ( doing_rule_action )
2660 add_action( "\tYY_BREAK\n" );
2662 doing_rule_action = false;
2687 ++linenum; ACTION_ECHO;
2692 ACTION_ECHO; BEGIN(ACTION);
2700 case YY_STATE_EOF(COMMENT):
2701 case YY_STATE_EOF(ACTION):
2702 case YY_STATE_EOF(ACTION_STRING):
2705 synerr( _( "EOF encountered inside an action" ) );
2713 yylval = myesc( (Char *) yytext );
2715 if ( YY_START == FIRSTCCL )
2727 case YY_STATE_EOF(SECT3):
2729 sectnum = 0; yyterminate();
2735 format_synerr( _( "bad character: %s" ), yytext );
2740 YY_FATAL_ERROR( "flex scanner jammed" );
2743 case YY_STATE_EOF(INITIAL):
2744 case YY_STATE_EOF(SECT2):
2745 case YY_STATE_EOF(CODEBLOCK):
2746 case YY_STATE_EOF(PICKUPDEF):
2747 case YY_STATE_EOF(SC):
2748 case YY_STATE_EOF(CARETISBOL):
2749 case YY_STATE_EOF(NUM):
2750 case YY_STATE_EOF(QUOTE):
2751 case YY_STATE_EOF(FIRSTCCL):
2752 case YY_STATE_EOF(CCL):
2753 case YY_STATE_EOF(RECOVER):
2754 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2755 case YY_STATE_EOF(OPTION):
2756 case YY_STATE_EOF(LINEDIR):
2759 case YY_END_OF_BUFFER:
2761 /* Amount of text matched not including the EOB char. */
2762 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2764 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2765 *yy_cp = yy_hold_char;
2766 YY_RESTORE_YY_MORE_OFFSET
2768 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2770 /* We're scanning a new file or input source. It's
2771 * possible that this happened because the user
2772 * just pointed yyin at a new source and called
2773 * yylex(). If so, then we have to assure
2774 * consistency between yy_current_buffer and our
2775 * globals. Here is the right place to do so, because
2776 * this is the first action (other than possibly a
2777 * back-up) that will match for the new input source.
2779 yy_n_chars = yy_current_buffer->yy_n_chars;
2780 yy_current_buffer->yy_input_file = yyin;
2781 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2784 /* Note that here we test for yy_c_buf_p "<=" to the position
2785 * of the first EOB in the buffer, since yy_c_buf_p will
2786 * already have been incremented past the NUL character
2787 * (since all states make transitions on EOB to the
2788 * end-of-buffer state). Contrast this with the test
2791 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2792 { /* This was really a NUL. */
2793 yy_state_type yy_next_state;
2795 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2797 yy_current_state = yy_get_previous_state();
2799 /* Okay, we're now positioned to make the NUL
2800 * transition. We couldn't have
2801 * yy_get_previous_state() go ahead and do it
2802 * for us because it doesn't know how to deal
2803 * with the possibility of jamming (and we don't
2804 * want to build jamming into it because then it
2805 * will run more slowly).
2808 yy_next_state = yy_try_NUL_trans( yy_current_state );
2810 yy_bp = yytext_ptr + YY_MORE_ADJ;
2812 if ( yy_next_state )
2814 /* Consume the NUL. */
2815 yy_cp = ++yy_c_buf_p;
2816 yy_current_state = yy_next_state;
2823 goto yy_find_action;
2827 else switch ( yy_get_next_buffer() )
2829 case EOB_ACT_END_OF_FILE:
2831 yy_did_buffer_switch_on_eof = 0;
2835 /* Note: because we've taken care in
2836 * yy_get_next_buffer() to have set up
2837 * yytext, we can now set up
2838 * yy_c_buf_p so that if some total
2839 * hoser (like flex itself) wants to
2840 * call the scanner after we return the
2841 * YY_NULL, it'll still work - another
2842 * YY_NULL will get returned.
2844 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2846 yy_act = YY_STATE_EOF(YY_START);
2852 if ( ! yy_did_buffer_switch_on_eof )
2858 case EOB_ACT_CONTINUE_SCAN:
2860 yytext_ptr + yy_amount_of_matched_text;
2862 yy_current_state = yy_get_previous_state();
2865 yy_bp = yytext_ptr + YY_MORE_ADJ;
2868 case EOB_ACT_LAST_MATCH:
2870 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2872 yy_current_state = yy_get_previous_state();
2875 yy_bp = yytext_ptr + YY_MORE_ADJ;
2876 goto yy_find_action;
2883 "fatal flex scanner internal error--no action found" );
2884 } /* end of action switch */
2885 } /* end of scanning one token */
2886 } /* end of yylex */
2889 /* yy_get_next_buffer - try to read in a new buffer
2891 * Returns a code representing an action:
2892 * EOB_ACT_LAST_MATCH -
2893 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2894 * EOB_ACT_END_OF_FILE - end of file
2897 static int yy_get_next_buffer()
2899 register char *dest = yy_current_buffer->yy_ch_buf;
2900 register char *source = yytext_ptr;
2901 register int number_to_move, i;
2904 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2906 "fatal flex scanner internal error--end of buffer missed" );
2908 if ( yy_current_buffer->yy_fill_buffer == 0 )
2909 { /* Don't try to fill the buffer, so this is an EOF. */
2910 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2912 /* We matched a single character, the EOB, so
2913 * treat this as a final EOF.
2915 return EOB_ACT_END_OF_FILE;
2920 /* We matched some text prior to the EOB, first
2923 return EOB_ACT_LAST_MATCH;
2927 /* Try to read more data. */
2929 /* First move last chars to start of buffer. */
2930 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2932 for ( i = 0; i < number_to_move; ++i )
2933 *(dest++) = *(source++);
2935 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2936 /* don't do the read, it's not guaranteed to return an EOF,
2939 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2944 yy_current_buffer->yy_buf_size - number_to_move - 1;
2946 while ( num_to_read <= 0 )
2947 { /* Not enough room in the buffer - grow it. */
2948 #ifdef YY_USES_REJECT
2950 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2953 /* just a shorter name for the current buffer */
2954 YY_BUFFER_STATE b = yy_current_buffer;
2956 int yy_c_buf_p_offset =
2957 (int) (yy_c_buf_p - b->yy_ch_buf);
2959 if ( b->yy_is_our_buffer )
2961 int new_size = b->yy_buf_size * 2;
2963 if ( new_size <= 0 )
2964 b->yy_buf_size += b->yy_buf_size / 8;
2966 b->yy_buf_size *= 2;
2968 b->yy_ch_buf = (char *)
2969 /* Include room in for 2 EOB chars. */
2970 yy_flex_realloc( (void *) b->yy_ch_buf,
2971 b->yy_buf_size + 2 );
2974 /* Can't grow it, we don't own it. */
2977 if ( ! b->yy_ch_buf )
2979 "fatal error - scanner input buffer overflow" );
2981 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2983 num_to_read = yy_current_buffer->yy_buf_size -
2988 if ( num_to_read > YY_READ_BUF_SIZE )
2989 num_to_read = YY_READ_BUF_SIZE;
2991 /* Read in more data. */
2992 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2993 yy_n_chars, num_to_read );
2995 yy_current_buffer->yy_n_chars = yy_n_chars;
2998 if ( yy_n_chars == 0 )
3000 if ( number_to_move == YY_MORE_ADJ )
3002 ret_val = EOB_ACT_END_OF_FILE;
3008 ret_val = EOB_ACT_LAST_MATCH;
3009 yy_current_buffer->yy_buffer_status =
3010 YY_BUFFER_EOF_PENDING;
3015 ret_val = EOB_ACT_CONTINUE_SCAN;
3017 yy_n_chars += number_to_move;
3018 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3019 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3021 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3027 /* yy_get_previous_state - get the state just before the EOB char was reached */
3029 static yy_state_type yy_get_previous_state()
3031 register yy_state_type yy_current_state;
3032 register char *yy_cp;
3034 yy_current_state = yy_start;
3035 yy_current_state += YY_AT_BOL();
3037 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3039 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3040 if ( yy_accept[yy_current_state] )
3042 yy_last_accepting_state = yy_current_state;
3043 yy_last_accepting_cpos = yy_cp;
3045 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3047 yy_current_state = (int) yy_def[yy_current_state];
3048 if ( yy_current_state >= 769 )
3049 yy_c = yy_meta[(unsigned int) yy_c];
3051 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3054 return yy_current_state;
3058 /* yy_try_NUL_trans - try to make a transition on the NUL character
3061 * next_state = yy_try_NUL_trans( current_state );
3064 #ifdef YY_USE_PROTOS
3065 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3067 static yy_state_type yy_try_NUL_trans( yy_current_state )
3068 yy_state_type yy_current_state;
3071 register int yy_is_jam;
3072 register char *yy_cp = yy_c_buf_p;
3074 register YY_CHAR yy_c = 1;
3075 if ( yy_accept[yy_current_state] )
3077 yy_last_accepting_state = yy_current_state;
3078 yy_last_accepting_cpos = yy_cp;
3080 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3082 yy_current_state = (int) yy_def[yy_current_state];
3083 if ( yy_current_state >= 769 )
3084 yy_c = yy_meta[(unsigned int) yy_c];
3086 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3087 yy_is_jam = (yy_current_state == 768);
3089 return yy_is_jam ? 0 : yy_current_state;
3094 #ifdef YY_USE_PROTOS
3095 static void yyunput( int c, register char *yy_bp )
3097 static void yyunput( c, yy_bp )
3099 register char *yy_bp;
3102 register char *yy_cp = yy_c_buf_p;
3104 /* undo effects of setting up yytext */
3105 *yy_cp = yy_hold_char;
3107 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3108 { /* need to shift things up to make room */
3109 /* +2 for EOB chars. */
3110 register int number_to_move = yy_n_chars + 2;
3111 register char *dest = &yy_current_buffer->yy_ch_buf[
3112 yy_current_buffer->yy_buf_size + 2];
3113 register char *source =
3114 &yy_current_buffer->yy_ch_buf[number_to_move];
3116 while ( source > yy_current_buffer->yy_ch_buf )
3117 *--dest = *--source;
3119 yy_cp += (int) (dest - source);
3120 yy_bp += (int) (dest - source);
3121 yy_current_buffer->yy_n_chars =
3122 yy_n_chars = yy_current_buffer->yy_buf_size;
3124 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3125 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3128 *--yy_cp = (char) c;
3132 yy_hold_char = *yy_cp;
3135 #endif /* ifndef YY_NO_UNPUT */
3139 static int yyinput()
3146 *yy_c_buf_p = yy_hold_char;
3148 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3150 /* yy_c_buf_p now points to the character we want to return.
3151 * If this occurs *before* the EOB characters, then it's a
3152 * valid NUL; if not, then we've hit the end of the buffer.
3154 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3155 /* This was really a NUL. */
3159 { /* need more input */
3160 int offset = yy_c_buf_p - yytext_ptr;
3163 switch ( yy_get_next_buffer() )
3165 case EOB_ACT_LAST_MATCH:
3166 /* This happens because yy_g_n_b()
3167 * sees that we've accumulated a
3168 * token and flags that we need to
3169 * try matching the token before
3170 * proceeding. But for input(),
3171 * there's no matching to consider.
3172 * So convert the EOB_ACT_LAST_MATCH
3173 * to EOB_ACT_END_OF_FILE.
3176 /* Reset buffer status. */
3181 case EOB_ACT_END_OF_FILE:
3186 if ( ! yy_did_buffer_switch_on_eof )
3195 case EOB_ACT_CONTINUE_SCAN:
3196 yy_c_buf_p = yytext_ptr + offset;
3202 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3203 *yy_c_buf_p = '\0'; /* preserve yytext */
3204 yy_hold_char = *++yy_c_buf_p;
3206 yy_current_buffer->yy_at_bol = (c == '\n');
3212 #ifdef YY_USE_PROTOS
3213 void yyrestart( FILE *input_file )
3215 void yyrestart( input_file )
3219 if ( ! yy_current_buffer )
3220 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3222 yy_init_buffer( yy_current_buffer, input_file );
3223 yy_load_buffer_state();
3227 #ifdef YY_USE_PROTOS
3228 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3230 void yy_switch_to_buffer( new_buffer )
3231 YY_BUFFER_STATE new_buffer;
3234 if ( yy_current_buffer == new_buffer )
3237 if ( yy_current_buffer )
3239 /* Flush out information for old buffer. */
3240 *yy_c_buf_p = yy_hold_char;
3241 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3242 yy_current_buffer->yy_n_chars = yy_n_chars;
3245 yy_current_buffer = new_buffer;
3246 yy_load_buffer_state();
3248 /* We don't actually know whether we did this switch during
3249 * EOF (yywrap()) processing, but the only time this flag
3250 * is looked at is after yywrap() is called, so it's safe
3251 * to go ahead and always set it.
3253 yy_did_buffer_switch_on_eof = 1;
3257 #ifdef YY_USE_PROTOS
3258 void yy_load_buffer_state( void )
3260 void yy_load_buffer_state()
3263 yy_n_chars = yy_current_buffer->yy_n_chars;
3264 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3265 yyin = yy_current_buffer->yy_input_file;
3266 yy_hold_char = *yy_c_buf_p;
3270 #ifdef YY_USE_PROTOS
3271 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3273 YY_BUFFER_STATE yy_create_buffer( file, size )
3280 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3282 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3284 b->yy_buf_size = size;
3286 /* yy_ch_buf has to be 2 characters longer than the size given because
3287 * we need to put in 2 end-of-buffer characters.
3289 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3290 if ( ! b->yy_ch_buf )
3291 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3293 b->yy_is_our_buffer = 1;
3295 yy_init_buffer( b, file );
3301 #ifdef YY_USE_PROTOS
3302 void yy_delete_buffer( YY_BUFFER_STATE b )
3304 void yy_delete_buffer( b )
3311 if ( b == yy_current_buffer )
3312 yy_current_buffer = (YY_BUFFER_STATE) 0;
3314 if ( b->yy_is_our_buffer )
3315 yy_flex_free( (void *) b->yy_ch_buf );
3317 yy_flex_free( (void *) b );
3321 #ifndef YY_ALWAYS_INTERACTIVE
3322 #ifndef YY_NEVER_INTERACTIVE
3323 extern int isatty YY_PROTO(( int ));
3327 #ifdef YY_USE_PROTOS
3328 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3330 void yy_init_buffer( b, file )
3337 yy_flush_buffer( b );
3339 b->yy_input_file = file;
3340 b->yy_fill_buffer = 1;
3342 #if YY_ALWAYS_INTERACTIVE
3343 b->yy_is_interactive = 1;
3345 #if YY_NEVER_INTERACTIVE
3346 b->yy_is_interactive = 0;
3348 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3354 #ifdef YY_USE_PROTOS
3355 void yy_flush_buffer( YY_BUFFER_STATE b )
3357 void yy_flush_buffer( b )
3367 /* We always need two end-of-buffer characters. The first causes
3368 * a transition to the end-of-buffer state. The second causes
3369 * a jam in that state.
3371 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3372 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3374 b->yy_buf_pos = &b->yy_ch_buf[0];
3377 b->yy_buffer_status = YY_BUFFER_NEW;
3379 if ( b == yy_current_buffer )
3380 yy_load_buffer_state();
3384 #ifndef YY_NO_SCAN_BUFFER
3385 #ifdef YY_USE_PROTOS
3386 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3388 YY_BUFFER_STATE yy_scan_buffer( base, size )
3396 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3397 base[size-1] != YY_END_OF_BUFFER_CHAR )
3398 /* They forgot to leave room for the EOB's. */
3401 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3403 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3405 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3406 b->yy_buf_pos = b->yy_ch_buf = base;
3407 b->yy_is_our_buffer = 0;
3408 b->yy_input_file = 0;
3409 b->yy_n_chars = b->yy_buf_size;
3410 b->yy_is_interactive = 0;
3412 b->yy_fill_buffer = 0;
3413 b->yy_buffer_status = YY_BUFFER_NEW;
3415 yy_switch_to_buffer( b );
3422 #ifndef YY_NO_SCAN_STRING
3423 #ifdef YY_USE_PROTOS
3424 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3426 YY_BUFFER_STATE yy_scan_string( yy_str )
3427 yyconst char *yy_str;
3431 for ( len = 0; yy_str[len]; ++len )
3434 return yy_scan_bytes( yy_str, len );
3439 #ifndef YY_NO_SCAN_BYTES
3440 #ifdef YY_USE_PROTOS
3441 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3443 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3444 yyconst char *bytes;
3453 /* Get memory for full buffer, including space for trailing EOB's. */
3455 buf = (char *) yy_flex_alloc( n );
3457 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3459 for ( i = 0; i < len; ++i )
3462 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3464 b = yy_scan_buffer( buf, n );
3466 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3468 /* It's okay to grow etc. this buffer, and we should throw it
3469 * away when we're done.
3471 b->yy_is_our_buffer = 1;
3478 #ifndef YY_NO_PUSH_STATE
3479 #ifdef YY_USE_PROTOS
3480 static void yy_push_state( int new_state )
3482 static void yy_push_state( new_state )
3486 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3490 yy_start_stack_depth += YY_START_STACK_INCR;
3491 new_size = yy_start_stack_depth * sizeof( int );
3493 if ( ! yy_start_stack )
3494 yy_start_stack = (int *) yy_flex_alloc( new_size );
3497 yy_start_stack = (int *) yy_flex_realloc(
3498 (void *) yy_start_stack, new_size );
3500 if ( ! yy_start_stack )
3502 "out of memory expanding start-condition stack" );
3505 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3512 #ifndef YY_NO_POP_STATE
3513 static void yy_pop_state()
3515 if ( --yy_start_stack_ptr < 0 )
3516 YY_FATAL_ERROR( "start-condition stack underflow" );
3518 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3523 #ifndef YY_NO_TOP_STATE
3524 static int yy_top_state()
3526 return yy_start_stack[yy_start_stack_ptr - 1];
3530 #ifndef YY_EXIT_FAILURE
3531 #define YY_EXIT_FAILURE 2
3534 #ifdef YY_USE_PROTOS
3535 static void yy_fatal_error( yyconst char msg[] )
3537 static void yy_fatal_error( msg )
3541 (void) fprintf( stderr, "%s\n", msg );
3542 exit( YY_EXIT_FAILURE );
3547 /* Redefine yyless() so it works in section 3 code. */
3553 /* Undo effects of setting up yytext. */ \
3554 yytext[yyleng] = yy_hold_char; \
3555 yy_c_buf_p = yytext + n; \
3556 yy_hold_char = *yy_c_buf_p; \
3557 *yy_c_buf_p = '\0'; \
3563 /* Internal utility routines. */
3566 #ifdef YY_USE_PROTOS
3567 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3569 static void yy_flex_strncpy( s1, s2, n )
3576 for ( i = 0; i < n; ++i )
3581 #ifdef YY_NEED_STRLEN
3582 #ifdef YY_USE_PROTOS
3583 static int yy_flex_strlen( yyconst char *s )
3585 static int yy_flex_strlen( s )
3590 for ( n = 0; s[n]; ++n )
3598 #ifdef YY_USE_PROTOS
3599 static void *yy_flex_alloc( yy_size_t size )
3601 static void *yy_flex_alloc( size )
3605 return (void *) malloc( size );
3608 #ifdef YY_USE_PROTOS
3609 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3611 static void *yy_flex_realloc( ptr, size )
3616 /* The cast to (char *) in the following accommodates both
3617 * implementations that use char* generic pointers, and those
3618 * that use void* generic pointers. It works with the latter
3619 * because both ANSI C and C++ allow castless assignment from
3620 * any pointer type to void*, and deal with argument conversions
3621 * as though doing an assignment.
3623 return (void *) realloc( (char *) ptr, size );
3626 #ifdef YY_USE_PROTOS
3627 static void yy_flex_free( void *ptr )
3629 static void yy_flex_free( ptr )
3649 if ( --num_input_files > 0 )
3651 set_input_file( *++input_files );
3660 /* set_input_file - open the given file (if NULL, stdin) for scanning */
3662 void set_input_file( file )
3665 if ( file && strcmp( file, "-" ) )
3667 infilename = copy_string( file );
3668 yyin = fopen( infilename, "r" );
3671 lerrsf( _( "can't open %s" ), file );
3677 infilename = copy_string( "<stdin>" );
3684 /* Wrapper routines for accessing the scanner's malloc routines. */
3686 void *flex_alloc( size )
3689 return (void *) malloc( size );
3692 void *flex_realloc( ptr, size )
3696 return (void *) realloc( ptr, size );
3699 void flex_free( ptr )