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 $
6 * $FreeBSD: src/usr.bin/lex/initscan.c,v 1.6 1999/10/27 07:56:45 obrien Exp $
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
16 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
29 /* Use prototypes in function declarations. */
32 /* The "const" storage-class-modifier is valid. */
35 #else /* ! __cplusplus */
40 #endif /* ! __cplusplus */
50 #define YY_PROTO(proto) proto
52 #define YY_PROTO(proto) ()
55 /* Returned upon end-of-file. */
58 /* Promotes a possibly negative, possibly signed char to an unsigned
59 * integer for use as an array index. If the signed char is negative,
60 * we want to instead treat it as an 8-bit unsigned char, hence the
63 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
65 /* Enter a start condition. This macro really ought to take a parameter,
66 * but we do it the disgusting crufty way forced on us by the ()-less
67 * definition of BEGIN.
69 #define BEGIN yy_start = 1 + 2 *
71 /* Translate the current start state into a value that can be later handed
72 * to BEGIN to return to the state. The YYSTATE alias is for lex
75 #define YY_START ((yy_start - 1) / 2)
76 #define YYSTATE YY_START
78 /* Action number for EOF rule of a given start state. */
79 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
81 /* Special action meaning "start processing a new file". */
82 #define YY_NEW_FILE yyrestart( yyin )
84 #define YY_END_OF_BUFFER_CHAR 0
86 /* Size of default input buffer. */
87 #define YY_BUF_SIZE 16384
89 typedef struct yy_buffer_state *YY_BUFFER_STATE;
92 extern FILE *yyin, *yyout;
94 #define EOB_ACT_CONTINUE_SCAN 0
95 #define EOB_ACT_END_OF_FILE 1
96 #define EOB_ACT_LAST_MATCH 2
98 /* The funky do-while in the following #define is used to turn the definition
99 * int a single C statement (which needs a semi-colon terminator). This
100 * avoids problems with code like:
102 * if ( condition_holds )
105 * do_something_else();
107 * Prior to using the do-while the compiler would get upset at the
108 * "else" because it interpreted the "if" statement as being all
109 * done when it reached the ';' after the yyless() call.
112 /* Return all but the first 'n' matched characters back to the input stream. */
117 /* Undo effects of setting up yytext. */ \
118 *yy_cp = yy_hold_char; \
119 YY_RESTORE_YY_MORE_OFFSET \
120 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
121 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
125 #define unput(c) yyunput( c, yytext_ptr )
127 /* The following is because we cannot portably get our hands on size_t
128 * (without autoconf's help, which isn't available because we want
129 * flex-generated scanners to compile on their own).
131 typedef unsigned int yy_size_t;
134 struct yy_buffer_state
138 char *yy_ch_buf; /* input buffer */
139 char *yy_buf_pos; /* current position in input buffer */
141 /* Size of input buffer in bytes, not including room for EOB
144 yy_size_t yy_buf_size;
146 /* Number of characters read into yy_ch_buf, not including EOB
151 /* Whether we "own" the buffer - i.e., we know we created it,
152 * and can realloc() it to grow it, and should free() it to
155 int yy_is_our_buffer;
157 /* Whether this is an "interactive" input source; if so, and
158 * if we're using stdio for input, then we want to use getc()
159 * instead of fread(), to make sure we stop fetching input after
162 int yy_is_interactive;
164 /* Whether we're considered to be at the beginning of a line.
165 * If so, '^' rules will be active on the next match, otherwise
170 /* Whether to try to fill the input buffer when we reach the
175 int yy_buffer_status;
176 #define YY_BUFFER_NEW 0
177 #define YY_BUFFER_NORMAL 1
178 /* When an EOF's been seen but there's still some text to process
179 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
180 * shouldn't try reading from the input source any more. We might
181 * still have a bunch of tokens to match, though, because of
182 * possible backing-up.
184 * When we actually see the EOF, we change the status to "new"
185 * (via yyrestart()), so that the user can continue scanning by
186 * just pointing yyin at a new input file.
188 #define YY_BUFFER_EOF_PENDING 2
191 static YY_BUFFER_STATE yy_current_buffer = NULL;
193 /* We provide macros for accessing buffer states in case in the
194 * future we want to put the buffer states in a more general
197 #define YY_CURRENT_BUFFER yy_current_buffer
200 /* yy_hold_char holds the character lost when yytext is formed. */
201 static char yy_hold_char;
203 static int yy_n_chars; /* number of characters read into yy_ch_buf */
208 /* Points to current character in buffer. */
209 static char *yy_c_buf_p = NULL;
210 static int yy_init = 1; /* whether we need to initialize */
211 static int yy_start = 0; /* start state number */
213 /* Flag which is used to allow yywrap()'s to do buffer switches
214 * instead of setting up a fresh yyin. A bit of a hack ...
216 static int yy_did_buffer_switch_on_eof;
218 void yyrestart YY_PROTO(( FILE *input_file ));
220 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
221 void yy_load_buffer_state YY_PROTO(( void ));
222 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
223 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
224 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
225 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
226 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
228 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
229 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
230 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
232 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
233 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
234 static void yy_flex_free YY_PROTO(( void * ));
236 #define yy_new_buffer yy_create_buffer
238 #define yy_set_interactive(is_interactive) \
240 if ( ! yy_current_buffer ) \
241 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
242 yy_current_buffer->yy_is_interactive = is_interactive; \
245 #define yy_set_bol(at_bol) \
247 if ( ! yy_current_buffer ) \
248 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
249 yy_current_buffer->yy_at_bol = at_bol; \
252 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
254 typedef unsigned char YY_CHAR;
255 FILE *yyin = NULL, *yyout = NULL;
256 typedef int yy_state_type;
258 #define yytext_ptr yytext
260 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
261 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
262 static int yy_get_next_buffer YY_PROTO(( void ));
263 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
265 /* Done after the current pattern has been matched and before the
266 * corresponding action - sets up yytext.
268 #define YY_DO_BEFORE_ACTION \
269 yytext_ptr = yy_bp; \
270 yyleng = (int) (yy_cp - yy_bp); \
271 yy_hold_char = *yy_cp; \
275 #define YY_NUM_RULES 165
276 #define YY_END_OF_BUFFER 166
277 static yyconst short int yy_accept[769] =
279 0, 0, 0, 0, 87, 87, 163, 163, 0, 0,
280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
282 0, 0, 0, 0, 0, 0, 0, 0, 166, 164,
283 7, 18, 164, 16, 1, 17, 164, 164, 164, 164,
284 15, 108, 100, 101, 108, 93, 108, 107, 108, 108,
285 108, 107, 99, 89, 108, 108, 91, 92, 87, 88,
286 87, 86, 85, 86, 86, 163, 163, 28, 29, 28,
287 28, 28, 28, 28, 28, 31, 30, 32, 31, 113,
288 109, 110, 112, 114, 141, 142, 141, 139, 138, 140,
290 115, 117, 115, 116, 115, 120, 120, 120, 120, 122,
291 124, 122, 122, 122, 122, 123, 151, 155, 151, 154,
292 156, 156, 152, 152, 152, 149, 150, 164, 82, 164,
293 21, 22, 21, 20, 157, 159, 157, 160, 161, 147,
294 147, 148, 147, 147, 147, 147, 147, 147, 147, 81,
295 34, 33, 81, 81, 81, 81, 35, 81, 81, 81,
296 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
297 81, 81, 81, 81, 81, 81, 26, 23, 26, 24,
298 7, 18, 0, 16, 1, 17, 0, 0, 0, 14,
299 8, 0, 0, 0, 0, 4, 5, 0, 2, 15,
301 100, 101, 0, 0, 0, 95, 0, 0, 105, 105,
302 0, 162, 162, 162, 94, 0, 99, 89, 0, 0,
303 0, 91, 92, 104, 90, 0, 87, 88, 86, 85,
304 85, 83, 84, 163, 163, 28, 29, 28, 28, 28,
305 28, 31, 30, 32, 111, 112, 142, 138, 117, 0,
306 118, 119, 124, 121, 151, 155, 0, 153, 0, 144,
307 152, 152, 152, 0, 82, 0, 21, 22, 21, 19,
308 157, 159, 158, 147, 147, 147, 148, 143, 147, 147,
309 147, 34, 33, 0, 80, 0, 0, 81, 81, 81,
310 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
312 81, 81, 81, 36, 81, 81, 81, 81, 81, 81,
313 81, 81, 81, 81, 0, 25, 24, 0, 14, 8,
314 0, 12, 0, 0, 0, 0, 0, 4, 5, 0,
315 6, 0, 96, 0, 97, 0, 0, 105, 105, 0,
316 105, 105, 105, 162, 162, 0, 106, 90, 98, 0,
317 104, 0, 83, 84, 28, 28, 28, 27, 28, 0,
318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
319 0, 152, 152, 143, 143, 147, 147, 0, 0, 81,
320 81, 81, 81, 81, 44, 81, 81, 81, 49, 81,
321 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
323 81, 81, 81, 81, 81, 81, 81, 81, 0, 81,
324 81, 81, 81, 0, 0, 0, 12, 0, 0, 0,
325 0, 0, 0, 4, 5, 0, 105, 105, 105, 105,
326 105, 105, 162, 0, 0, 28, 28, 0, 0, 0,
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
328 152, 152, 147, 147, 37, 38, 81, 81, 81, 81,
329 81, 81, 81, 81, 50, 51, 81, 81, 81, 55,
330 81, 81, 81, 81, 81, 81, 60, 81, 81, 81,
331 81, 81, 81, 67, 0, 0, 0, 81, 81, 81,
332 81, 0, 13, 0, 0, 0, 0, 0, 0, 105,
334 105, 105, 105, 105, 105, 0, 0, 28, 28, 137,
335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
336 0, 0, 152, 152, 147, 147, 39, 81, 41, 81,
337 43, 81, 81, 81, 47, 81, 52, 81, 81, 81,
338 81, 81, 81, 81, 81, 81, 62, 81, 81, 65,
339 81, 0, 0, 0, 0, 81, 81, 81, 81, 3,
340 0, 0, 0, 0, 105, 105, 105, 0, 0, 28,
341 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 145, 146, 145, 146, 81, 42, 81,
343 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
345 81, 78, 61, 81, 64, 81, 0, 0, 0, 0,
346 81, 81, 69, 70, 0, 10, 0, 11, 0, 103,
347 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
348 0, 0, 0, 0, 81, 81, 81, 45, 81, 48,
349 81, 81, 81, 81, 77, 81, 59, 63, 66, 0,
350 0, 0, 0, 79, 81, 0, 102, 0, 0, 0,
351 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
352 81, 81, 46, 81, 81, 56, 81, 81, 0, 0,
353 0, 0, 68, 0, 9, 0, 125, 126, 127, 128,
354 129, 130, 131, 132, 133, 134, 135, 0, 81, 81,
356 81, 81, 81, 81, 81, 0, 0, 0, 0, 0,
357 136, 81, 81, 81, 81, 54, 81, 81, 0, 0,
358 0, 0, 0, 0, 81, 81, 81, 53, 81, 58,
359 0, 0, 0, 0, 0, 0, 81, 81, 81, 81,
360 72, 0, 0, 0, 0, 73, 81, 81, 81, 81,
361 71, 0, 75, 0, 81, 81, 81, 74, 76, 81,
362 81, 81, 81, 81, 81, 57, 40, 0
365 static yyconst int yy_ec[256] =
367 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
368 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
369 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
370 1, 2, 1, 5, 6, 7, 8, 1, 9, 10,
371 10, 11, 12, 13, 14, 10, 15, 16, 16, 16,
372 16, 16, 16, 16, 17, 18, 19, 20, 1, 21,
373 22, 23, 10, 1, 31, 32, 33, 34, 35, 36,
374 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
375 47, 48, 49, 50, 51, 52, 53, 54, 55, 47,
376 26, 27, 28, 29, 30, 1, 31, 32, 33, 34,
378 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
379 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
380 55, 47, 56, 57, 58, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
384 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
391 1, 1, 1, 1, 1, 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,
397 static yyconst int yy_meta[59] =
399 1, 1, 2, 1, 3, 1, 1, 1, 4, 1,
400 5, 6, 1, 7, 4, 8, 8, 8, 8, 1,
401 1, 1, 1, 9, 10, 1, 11, 12, 1, 13,
402 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
403 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
404 15, 15, 15, 15, 15, 4, 1, 16
407 static yyconst short int yy_base[858] =
409 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705,
410 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191,
411 178, 188, 344, 347, 375, 0, 125, 131, 147, 216,
412 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716,
413 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696,
414 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126,
415 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716,
416 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695,
417 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716,
418 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716,
420 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716,
421 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716,
422 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356,
423 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0,
424 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716,
425 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579,
426 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587,
427 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612,
428 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0,
429 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0,
431 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657,
432 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592,
433 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0,
434 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598,
435 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773,
436 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716,
437 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716,
438 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596,
439 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582,
440 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584,
442 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125,
443 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0,
444 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723,
445 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876,
446 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570,
447 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009,
448 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013,
449 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557,
450 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536,
451 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532,
453 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526,
454 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914,
455 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539,
456 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058,
457 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081,
458 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495,
459 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0,
460 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487,
461 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475,
462 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496,
464 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716,
465 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085,
466 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460,
467 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414,
468 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0,
469 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297,
470 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0,
471 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207,
472 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221,
473 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149,
475 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137,
476 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716,
477 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098,
478 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0,
479 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938,
480 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881,
481 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784,
482 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744,
483 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716,
484 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720,
486 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671,
487 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608,
488 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0,
489 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228,
490 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948,
491 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689,
492 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279,
493 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439,
494 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576,
495 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718,
497 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236,
498 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977,
499 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123,
500 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255,
501 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388,
502 2404, 2420, 2429, 2437, 2453, 2469, 2485
505 static yyconst short int yy_def[858] =
507 768, 768, 769, 769, 770, 771, 772, 772, 768, 9,
508 773, 773, 768, 13, 774, 774, 775, 775, 776, 776,
509 777, 777, 778, 778, 768, 25, 779, 779, 780, 780,
510 781, 781, 768, 33, 768, 35, 782, 782, 768, 768,
511 768, 768, 768, 783, 768, 768, 768, 768, 784, 768,
512 785, 768, 768, 768, 768, 768, 768, 768, 768, 786,
513 787, 788, 768, 768, 768, 768, 768, 768, 789, 768,
514 789, 790, 791, 790, 790, 792, 768, 793, 768, 793,
515 768, 794, 794, 794, 793, 795, 768, 768, 795, 768,
516 768, 768, 796, 768, 768, 768, 768, 768, 768, 768,
518 768, 768, 768, 768, 787, 768, 768, 787, 797, 768,
519 768, 768, 798, 768, 787, 768, 799, 768, 799, 768,
520 800, 768, 801, 801, 801, 768, 768, 802, 768, 802,
521 803, 768, 803, 768, 804, 768, 804, 768, 805, 806,
522 806, 768, 806, 806, 768, 806, 807, 807, 807, 768,
523 768, 768, 768, 808, 768, 768, 768, 809, 809, 809,
524 809, 809, 809, 809, 809, 809, 809, 810, 809, 809,
525 809, 809, 809, 809, 809, 809, 768, 768, 811, 768,
526 768, 768, 768, 783, 768, 768, 768, 768, 768, 812,
527 813, 768, 768, 768, 768, 814, 815, 816, 768, 785,
529 768, 768, 768, 768, 817, 768, 768, 768, 818, 818,
530 819, 768, 768, 820, 768, 821, 768, 768, 768, 768,
531 768, 768, 768, 822, 768, 768, 823, 768, 824, 825,
532 825, 826, 827, 828, 768, 829, 768, 830, 830, 830,
533 768, 831, 768, 768, 768, 832, 768, 768, 768, 833,
534 768, 768, 768, 768, 834, 768, 835, 768, 835, 768,
535 836, 836, 836, 837, 768, 837, 838, 768, 838, 768,
536 839, 768, 768, 840, 840, 840, 768, 768, 841, 841,
537 841, 768, 768, 842, 768, 768, 768, 843, 843, 843,
538 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
540 843, 843, 843, 768, 843, 843, 843, 843, 843, 843,
541 843, 843, 843, 843, 844, 768, 768, 768, 845, 846,
542 847, 768, 768, 768, 768, 768, 768, 848, 849, 850,
543 768, 850, 768, 851, 768, 851, 768, 852, 852, 852,
544 768, 852, 852, 768, 853, 854, 768, 768, 768, 768,
545 855, 768, 826, 827, 830, 830, 241, 768, 241, 241,
546 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
547 833, 836, 836, 278, 278, 841, 841, 768, 768, 843,
548 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
549 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
551 843, 843, 843, 843, 843, 843, 843, 843, 768, 843,
552 843, 843, 843, 768, 847, 847, 768, 847, 847, 768,
553 768, 768, 768, 848, 849, 768, 341, 852, 343, 341,
554 852, 343, 768, 768, 768, 830, 830, 360, 768, 833,
555 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
556 836, 836, 841, 841, 768, 768, 843, 843, 843, 843,
557 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
558 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
559 843, 843, 843, 843, 768, 768, 768, 843, 843, 843,
560 843, 768, 768, 847, 847, 768, 768, 768, 768, 427,
562 852, 343, 852, 852, 852, 768, 768, 830, 830, 768,
563 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
564 833, 833, 836, 836, 841, 841, 843, 843, 843, 843,
565 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
566 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
567 843, 768, 768, 768, 768, 843, 843, 843, 843, 768,
568 856, 768, 768, 768, 852, 852, 852, 768, 768, 830,
569 830, 833, 833, 833, 833, 833, 833, 833, 833, 833,
570 833, 833, 833, 836, 836, 841, 841, 843, 843, 843,
571 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
573 843, 843, 843, 843, 843, 843, 768, 768, 768, 768,
574 843, 843, 843, 843, 856, 768, 856, 768, 768, 768,
575 768, 768, 833, 833, 833, 833, 833, 833, 833, 833,
576 833, 833, 833, 833, 843, 843, 843, 843, 843, 843,
577 843, 843, 843, 843, 843, 843, 843, 843, 843, 768,
578 768, 768, 768, 843, 843, 857, 768, 768, 768, 768,
579 768, 768, 768, 768, 768, 768, 768, 768, 833, 843,
580 843, 843, 843, 843, 843, 843, 843, 843, 768, 768,
581 768, 768, 843, 857, 768, 857, 768, 768, 768, 768,
582 768, 768, 768, 768, 768, 768, 768, 768, 843, 843,
584 843, 843, 843, 843, 843, 768, 768, 768, 768, 768,
585 768, 843, 843, 843, 843, 843, 843, 843, 768, 768,
586 768, 768, 768, 768, 843, 843, 843, 843, 843, 843,
587 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
588 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
589 768, 768, 768, 768, 843, 843, 843, 768, 768, 843,
590 843, 843, 843, 843, 843, 843, 843, 0, 768, 768,
591 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
592 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
593 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
595 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
596 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
597 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
598 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
599 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
600 768, 768, 768, 768, 768, 768, 768
603 static yyconst short int yy_nxt[2775] =
605 40, 41, 42, 43, 40, 40, 40, 40, 40, 40,
606 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
607 40, 40, 40, 44, 44, 40, 40, 40, 40, 44,
608 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
609 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
610 44, 44, 44, 44, 44, 40, 40, 40, 40, 45,
611 46, 47, 40, 48, 40, 49, 40, 40, 40, 40,
612 40, 40, 50, 40, 40, 40, 40, 40, 40, 40,
613 40, 51, 51, 40, 40, 40, 40, 51, 51, 51,
614 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
616 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
617 51, 51, 51, 40, 40, 40, 53, 54, 55, 56,
618 767, 57, 70, 71, 58, 58, 58, 129, 130, 58,
619 73, 70, 74, 129, 130, 59, 75, 87, 88, 89,
620 60, 61, 87, 88, 89, 188, 96, 97, 224, 132,
621 133, 210, 211, 96, 97, 404, 98, 134, 405, 99,
622 99, 99, 99, 98, 213, 213, 99, 99, 99, 99,
623 62, 58, 58, 63, 64, 65, 56, 252, 57, 66,
624 40, 58, 58, 58, 439, 189, 58, 102, 103, 104,
625 40, 252, 67, 102, 103, 104, 225, 60, 61, 275,
627 68, 100, 214, 107, 108, 276, 109, 178, 100, 179,
628 232, 105, 233, 107, 108, 572, 109, 105, 132, 133,
629 180, 180, 180, 180, 265, 266, 134, 62, 58, 58,
630 78, 78, 79, 80, 78, 78, 78, 78, 78, 78,
631 81, 78, 78, 78, 78, 78, 78, 78, 78, 78,
632 78, 78, 78, 82, 82, 78, 78, 78, 78, 82,
633 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
634 82, 82, 82, 82, 82, 82, 82, 83, 82, 82,
635 82, 82, 82, 82, 84, 78, 78, 78, 90, 90,
636 40, 90, 90, 90, 90, 90, 90, 90, 91, 90,
638 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
639 92, 93, 93, 90, 90, 90, 90, 93, 93, 93,
640 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
641 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
642 93, 93, 93, 90, 90, 90, 111, 112, 296, 111,
643 112, 178, 766, 179, 181, 182, 183, 113, 265, 266,
644 113, 185, 186, 187, 180, 180, 180, 180, 297, 114,
645 115, 116, 114, 115, 116, 117, 117, 118, 119, 120,
646 117, 117, 117, 121, 117, 117, 117, 117, 117, 122,
647 117, 117, 117, 117, 117, 117, 117, 117, 123, 123,
649 117, 117, 117, 117, 123, 123, 123, 123, 123, 123,
650 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
651 123, 123, 124, 123, 123, 123, 123, 123, 123, 125,
652 126, 117, 127, 136, 137, 138, 136, 137, 138, 206,
653 206, 207, 215, 215, 215, 215, 248, 248, 248, 248,
654 268, 269, 268, 269, 300, 331, 332, 139, 301, 765,
655 139, 140, 141, 142, 143, 140, 140, 140, 144, 140,
656 140, 145, 140, 140, 140, 146, 140, 140, 140, 140,
657 140, 140, 140, 140, 147, 147, 140, 140, 140, 140,
658 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
660 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
661 147, 147, 147, 147, 147, 149, 140, 140, 140, 150,
662 151, 152, 153, 154, 150, 150, 150, 150, 150, 150,
663 150, 150, 150, 150, 150, 155, 156, 150, 150, 150,
664 157, 150, 150, 150, 150, 150, 150, 150, 150, 158,
665 159, 160, 161, 162, 163, 164, 164, 165, 164, 164,
666 166, 167, 168, 169, 170, 164, 171, 172, 164, 173,
667 174, 175, 164, 176, 150, 150, 150, 191, 201, 202,
668 203, 258, 213, 213, 204, 289, 213, 213, 213, 213,
669 292, 290, 217, 218, 219, 383, 303, 275, 220, 259,
671 192, 188, 193, 276, 193, 221, 304, 335, 336, 293,
672 193, 222, 384, 193, 194, 195, 480, 193, 196, 223,
673 214, 306, 481, 197, 214, 198, 214, 317, 317, 317,
674 317, 307, 764, 205, 308, 181, 182, 183, 185, 186,
675 187, 189, 321, 322, 323, 339, 340, 205, 321, 322,
676 323, 387, 321, 322, 323, 388, 324, 324, 324, 324,
677 342, 342, 324, 324, 324, 324, 324, 324, 324, 324,
678 321, 322, 323, 201, 202, 203, 341, 344, 344, 204,
679 380, 258, 339, 340, 324, 324, 324, 324, 325, 217,
680 218, 219, 265, 266, 381, 220, 326, 439, 343, 259,
682 265, 266, 221, 248, 248, 248, 248, 673, 222, 268,
683 269, 268, 269, 327, 392, 402, 223, 409, 393, 440,
684 410, 416, 417, 418, 403, 331, 332, 763, 205, 411,
685 412, 317, 317, 317, 317, 419, 419, 419, 419, 721,
686 413, 331, 332, 722, 205, 357, 357, 358, 359, 357,
687 357, 357, 357, 357, 357, 360, 357, 357, 357, 357,
688 357, 357, 357, 357, 357, 357, 357, 357, 360, 360,
689 357, 357, 357, 357, 360, 360, 360, 360, 360, 360,
690 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
691 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
693 357, 357, 357, 362, 363, 364, 365, 335, 336, 366,
694 335, 336, 339, 340, 367, 212, 212, 762, 368, 493,
695 494, 369, 761, 370, 417, 494, 371, 374, 374, 760,
696 374, 374, 374, 374, 374, 374, 374, 375, 374, 374,
697 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
698 375, 375, 374, 374, 374, 374, 375, 375, 375, 375,
699 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
700 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
701 375, 375, 374, 374, 374, 420, 322, 323, 427, 439,
702 439, 428, 428, 439, 339, 340, 431, 431, 439, 324,
704 324, 324, 324, 338, 439, 485, 339, 340, 486, 487,
705 439, 441, 443, 439, 442, 420, 322, 323, 450, 552,
706 759, 513, 493, 494, 516, 553, 444, 339, 340, 429,
707 338, 338, 439, 338, 338, 338, 338, 338, 338, 338,
708 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
709 338, 338, 338, 430, 430, 339, 340, 445, 338, 338,
710 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
711 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
712 430, 430, 430, 430, 430, 338, 338, 338, 432, 432,
713 432, 432, 758, 439, 339, 340, 432, 757, 339, 340,
715 495, 417, 418, 432, 432, 432, 432, 432, 432, 360,
716 360, 439, 438, 360, 360, 360, 360, 360, 360, 448,
717 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
718 360, 360, 439, 439, 360, 360, 360, 360, 439, 446,
719 501, 501, 447, 504, 504, 416, 417, 418, 616, 617,
720 339, 340, 638, 339, 340, 515, 439, 439, 449, 419,
721 419, 419, 419, 514, 360, 360, 360, 375, 375, 580,
722 375, 375, 375, 375, 375, 375, 375, 439, 375, 375,
723 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
724 517, 439, 375, 375, 375, 375, 495, 417, 418, 439,
726 439, 511, 439, 512, 439, 439, 339, 340, 209, 439,
727 419, 419, 419, 419, 439, 519, 520, 581, 518, 522,
728 566, 566, 375, 375, 375, 500, 500, 573, 521, 578,
729 339, 340, 500, 500, 500, 500, 500, 500, 500, 500,
730 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
731 500, 500, 500, 500, 500, 500, 500, 502, 502, 502,
732 502, 532, 439, 439, 439, 502, 439, 339, 340, 439,
733 339, 340, 502, 502, 502, 502, 502, 502, 505, 505,
734 505, 505, 439, 533, 582, 576, 505, 574, 579, 534,
735 575, 439, 439, 505, 505, 505, 505, 505, 505, 567,
737 567, 567, 567, 590, 339, 340, 338, 567, 577, 583,
738 439, 439, 625, 591, 567, 567, 567, 567, 567, 567,
739 439, 439, 624, 439, 439, 439, 439, 439, 439, 439,
740 616, 617, 439, 623, 616, 617, 685, 686, 685, 686,
741 756, 628, 626, 632, 708, 755, 634, 685, 686, 302,
742 302, 627, 629, 754, 753, 630, 631, 633, 752, 751,
743 750, 709, 669, 52, 52, 52, 52, 52, 52, 52,
744 52, 52, 52, 52, 52, 52, 52, 52, 52, 69,
745 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
746 69, 69, 69, 69, 69, 72, 72, 72, 72, 72,
748 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
749 72, 76, 76, 76, 76, 76, 76, 76, 76, 76,
750 76, 76, 76, 76, 76, 76, 76, 86, 86, 86,
751 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
752 86, 86, 86, 40, 40, 40, 40, 40, 40, 40,
753 40, 40, 40, 40, 40, 40, 40, 40, 40, 95,
754 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
755 95, 95, 95, 95, 95, 101, 101, 101, 101, 101,
756 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
757 101, 106, 106, 106, 106, 106, 106, 106, 106, 106,
759 106, 106, 106, 106, 106, 106, 106, 110, 110, 110,
760 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
761 110, 110, 110, 128, 128, 128, 128, 128, 128, 128,
762 128, 128, 128, 128, 128, 128, 128, 128, 128, 131,
763 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
764 131, 131, 131, 131, 131, 135, 135, 135, 135, 135,
765 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
766 135, 177, 177, 177, 177, 177, 177, 177, 177, 177,
767 177, 177, 177, 177, 177, 177, 177, 184, 184, 184,
768 184, 749, 748, 184, 184, 184, 190, 190, 190, 190,
770 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
771 190, 200, 200, 200, 200, 747, 746, 200, 200, 200,
772 209, 745, 209, 209, 209, 209, 209, 209, 209, 209,
773 209, 209, 209, 209, 209, 209, 212, 744, 212, 212,
774 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
775 212, 212, 216, 216, 216, 743, 742, 216, 216, 216,
776 227, 741, 227, 227, 227, 227, 227, 227, 227, 227,
777 227, 227, 227, 227, 227, 227, 229, 740, 229, 229,
778 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
779 229, 229, 230, 739, 230, 230, 230, 230, 230, 230,
781 230, 230, 230, 230, 230, 230, 230, 230, 234, 234,
782 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
783 234, 234, 234, 234, 236, 738, 236, 236, 737, 236,
784 236, 236, 736, 735, 236, 236, 734, 733, 732, 236,
785 238, 238, 238, 238, 731, 730, 238, 238, 238, 242,
786 729, 242, 242, 242, 242, 242, 242, 242, 242, 242,
787 242, 242, 242, 242, 242, 246, 246, 246, 246, 728,
788 727, 246, 246, 246, 251, 726, 251, 251, 251, 251,
789 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
790 254, 725, 254, 254, 254, 254, 254, 254, 254, 254,
792 254, 724, 254, 254, 254, 254, 255, 723, 720, 719,
793 255, 255, 255, 255, 718, 717, 255, 255, 257, 716,
794 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
795 257, 257, 257, 257, 261, 261, 261, 261, 715, 714,
796 261, 261, 261, 264, 264, 264, 264, 264, 264, 264,
797 264, 264, 264, 264, 264, 264, 264, 264, 264, 267,
798 267, 267, 267, 713, 267, 267, 267, 267, 267, 267,
799 267, 267, 267, 267, 267, 271, 712, 711, 271, 271,
800 271, 271, 271, 271, 271, 710, 271, 271, 271, 271,
801 271, 273, 707, 273, 273, 273, 273, 273, 273, 273,
803 273, 273, 273, 273, 273, 273, 273, 274, 706, 274,
804 274, 705, 274, 274, 274, 704, 703, 274, 274, 702,
805 701, 700, 274, 279, 279, 279, 279, 699, 698, 279,
806 279, 279, 284, 697, 284, 284, 284, 284, 284, 284,
807 284, 284, 284, 284, 284, 284, 284, 284, 288, 288,
808 696, 288, 288, 695, 694, 693, 288, 288, 315, 692,
809 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
810 315, 315, 315, 315, 319, 691, 319, 319, 319, 319,
811 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
812 320, 690, 320, 320, 320, 320, 320, 320, 320, 320,
814 320, 320, 320, 320, 320, 320, 328, 328, 689, 688,
815 328, 328, 328, 329, 329, 687, 683, 329, 329, 329,
816 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
817 330, 330, 330, 330, 330, 330, 334, 334, 334, 334,
818 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
819 334, 334, 338, 682, 338, 338, 338, 338, 338, 338,
820 338, 338, 338, 681, 338, 338, 338, 338, 209, 680,
821 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
822 209, 209, 209, 209, 345, 345, 679, 678, 677, 676,
823 345, 346, 346, 346, 346, 675, 674, 346, 346, 346,
825 346, 351, 673, 351, 351, 351, 351, 351, 351, 351,
826 351, 351, 351, 351, 351, 351, 351, 227, 672, 227,
827 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
828 227, 227, 227, 229, 671, 229, 229, 229, 229, 229,
829 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
830 670, 230, 230, 230, 230, 230, 230, 230, 230, 230,
831 230, 230, 230, 230, 230, 353, 668, 353, 353, 353,
832 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
833 353, 354, 667, 354, 354, 354, 354, 354, 354, 354,
834 354, 354, 354, 354, 354, 354, 354, 234, 234, 234,
836 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
837 234, 234, 234, 236, 666, 236, 236, 665, 236, 236,
838 236, 664, 663, 236, 236, 662, 661, 660, 236, 238,
839 238, 238, 238, 659, 658, 238, 238, 238, 242, 657,
840 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
841 242, 242, 242, 242, 246, 246, 246, 246, 656, 655,
842 246, 246, 246, 361, 361, 654, 653, 652, 361, 361,
843 255, 651, 650, 649, 255, 255, 255, 255, 648, 647,
844 255, 255, 257, 646, 257, 257, 257, 257, 257, 257,
845 257, 257, 257, 257, 257, 257, 257, 257, 261, 261,
847 261, 261, 645, 644, 261, 261, 261, 264, 264, 264,
848 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
849 264, 264, 264, 267, 267, 267, 267, 643, 267, 267,
850 267, 267, 267, 267, 267, 267, 267, 267, 267, 271,
851 642, 641, 271, 271, 271, 271, 271, 271, 271, 640,
852 271, 271, 271, 271, 271, 274, 639, 274, 274, 638,
853 274, 274, 274, 637, 636, 274, 274, 635, 622, 621,
854 274, 279, 279, 279, 279, 620, 619, 279, 279, 279,
855 284, 618, 284, 284, 284, 284, 284, 284, 284, 284,
856 284, 284, 284, 284, 284, 284, 288, 288, 560, 288,
858 288, 614, 613, 612, 288, 288, 315, 611, 315, 315,
859 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
860 315, 315, 319, 610, 319, 319, 319, 319, 319, 319,
861 319, 319, 319, 319, 319, 319, 319, 319, 320, 609,
862 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
863 320, 320, 320, 320, 415, 415, 415, 415, 415, 415,
864 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
865 424, 424, 424, 424, 608, 607, 424, 424, 424, 425,
866 425, 425, 425, 606, 605, 425, 425, 425, 330, 330,
867 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
869 330, 330, 330, 330, 334, 334, 334, 334, 334, 334,
870 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
871 338, 604, 338, 338, 338, 338, 338, 338, 338, 338,
872 338, 603, 338, 338, 338, 338, 433, 433, 602, 601,
873 600, 599, 433, 346, 346, 346, 346, 598, 597, 346,
874 346, 346, 346, 351, 596, 351, 351, 351, 351, 351,
875 351, 351, 351, 351, 351, 351, 351, 351, 351, 615,
876 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
877 615, 615, 615, 615, 615, 684, 684, 684, 684, 684,
878 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
880 684, 595, 594, 593, 592, 589, 588, 587, 586, 585,
881 584, 571, 570, 569, 568, 565, 564, 563, 562, 561,
882 560, 559, 558, 557, 556, 555, 554, 551, 550, 549,
883 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
884 538, 537, 536, 535, 531, 530, 529, 528, 527, 526,
885 525, 524, 523, 510, 509, 508, 507, 506, 503, 499,
886 498, 497, 496, 492, 491, 490, 489, 488, 484, 483,
887 482, 479, 478, 477, 476, 475, 474, 473, 472, 471,
888 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
889 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
891 439, 437, 436, 435, 434, 347, 426, 423, 422, 421,
892 322, 414, 316, 408, 407, 406, 401, 400, 399, 398,
893 397, 396, 395, 394, 391, 390, 389, 386, 385, 382,
894 379, 378, 285, 282, 377, 376, 278, 373, 372, 243,
895 356, 355, 235, 231, 352, 350, 349, 348, 218, 347,
896 337, 206, 333, 202, 318, 186, 182, 316, 314, 313,
897 312, 311, 310, 309, 305, 299, 298, 295, 294, 291,
898 287, 286, 285, 283, 282, 281, 280, 260, 278, 277,
899 272, 270, 263, 262, 260, 256, 250, 253, 250, 249,
900 247, 245, 244, 243, 241, 240, 239, 237, 235, 228,
902 231, 228, 226, 218, 208, 202, 199, 186, 182, 768,
903 94, 94, 85, 77, 77, 39, 768, 768, 768, 768,
904 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
905 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
906 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
907 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
908 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
912 static yyconst short int yy_chk[2775] =
914 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
915 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
916 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
917 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
918 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
919 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
921 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
922 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
923 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
926 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
927 765, 3, 5, 5, 3, 3, 3, 27, 27, 3,
928 6, 6, 6, 28, 28, 3, 6, 11, 11, 11,
929 3, 3, 12, 12, 12, 48, 17, 17, 66, 29,
930 29, 60, 60, 18, 18, 310, 17, 29, 310, 17,
931 17, 17, 17, 18, 61, 61, 18, 18, 18, 18,
932 3, 3, 3, 4, 4, 4, 4, 109, 4, 4,
933 21, 4, 4, 4, 511, 48, 4, 19, 19, 19,
934 22, 109, 4, 20, 20, 20, 66, 4, 4, 141,
936 4, 17, 61, 21, 21, 141, 21, 37, 18, 37,
937 75, 19, 75, 22, 22, 511, 22, 20, 30, 30,
938 37, 37, 37, 37, 128, 128, 30, 4, 4, 4,
939 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
940 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
941 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
942 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
943 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
944 9, 9, 9, 9, 9, 9, 9, 9, 13, 13,
945 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
947 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
948 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
949 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
950 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
951 13, 13, 13, 13, 13, 13, 23, 23, 163, 24,
952 24, 38, 764, 38, 41, 41, 41, 23, 130, 130,
953 24, 45, 45, 45, 38, 38, 38, 38, 163, 23,
954 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
955 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
956 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
958 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
959 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
960 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
961 25, 25, 25, 31, 31, 31, 32, 32, 32, 57,
962 57, 57, 62, 62, 62, 62, 99, 99, 99, 99,
963 131, 131, 133, 133, 167, 198, 198, 31, 167, 763,
964 32, 33, 33, 33, 33, 33, 33, 33, 33, 33,
965 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
966 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
967 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
969 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
970 33, 33, 33, 33, 33, 33, 33, 33, 33, 35,
971 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
972 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
973 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
974 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
975 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
976 35, 35, 35, 35, 35, 35, 35, 49, 53, 53,
977 53, 121, 105, 105, 53, 158, 108, 108, 115, 115,
978 160, 158, 63, 63, 63, 291, 168, 275, 63, 121,
980 49, 188, 49, 275, 49, 63, 168, 205, 205, 160,
981 49, 63, 291, 49, 49, 49, 405, 49, 49, 63,
982 105, 170, 405, 49, 108, 49, 115, 180, 180, 180,
983 180, 170, 762, 53, 170, 181, 181, 181, 185, 185,
984 185, 188, 192, 192, 192, 209, 209, 63, 193, 193,
985 193, 294, 194, 194, 194, 294, 192, 192, 192, 192,
986 211, 211, 193, 193, 193, 193, 194, 194, 194, 194,
987 195, 195, 195, 201, 201, 201, 210, 213, 213, 201,
988 289, 257, 210, 210, 195, 195, 195, 195, 192, 217,
989 217, 217, 264, 264, 289, 217, 194, 362, 211, 257,
991 266, 266, 217, 248, 248, 248, 248, 761, 217, 267,
992 267, 269, 269, 195, 298, 309, 217, 314, 298, 362,
993 314, 321, 321, 321, 309, 330, 330, 760, 201, 314,
994 314, 317, 317, 317, 317, 321, 321, 321, 321, 708,
995 314, 332, 332, 708, 217, 241, 241, 241, 241, 241,
996 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
997 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
998 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
999 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1000 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1002 241, 241, 241, 250, 250, 250, 250, 334, 334, 250,
1003 336, 336, 338, 338, 250, 344, 344, 757, 250, 415,
1004 415, 250, 756, 250, 418, 418, 250, 278, 278, 755,
1005 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1006 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1007 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1008 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1009 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1010 278, 278, 278, 278, 278, 324, 324, 324, 339, 363,
1011 364, 340, 340, 365, 339, 339, 342, 342, 366, 324,
1013 324, 324, 324, 340, 371, 409, 342, 342, 409, 409,
1014 441, 363, 365, 444, 364, 420, 420, 420, 371, 485,
1015 754, 441, 494, 494, 444, 485, 366, 504, 504, 340,
1016 341, 341, 367, 341, 341, 341, 341, 341, 341, 341,
1017 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1018 341, 341, 341, 341, 341, 341, 341, 367, 341, 341,
1019 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1020 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1021 341, 341, 341, 341, 341, 341, 341, 341, 343, 343,
1022 343, 343, 752, 369, 505, 505, 343, 750, 343, 343,
1024 495, 495, 495, 343, 343, 343, 343, 343, 343, 360,
1025 360, 368, 360, 360, 360, 360, 360, 360, 360, 369,
1026 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
1027 360, 360, 370, 442, 360, 360, 360, 360, 443, 368,
1028 428, 428, 368, 431, 431, 416, 416, 416, 561, 561,
1029 428, 428, 749, 431, 431, 443, 519, 445, 370, 416,
1030 416, 416, 416, 442, 360, 360, 360, 375, 375, 519,
1031 375, 375, 375, 375, 375, 375, 375, 440, 375, 375,
1032 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
1033 445, 447, 375, 375, 375, 375, 419, 419, 419, 446,
1035 450, 440, 449, 440, 520, 448, 503, 503, 503, 512,
1036 419, 419, 419, 419, 517, 447, 448, 520, 446, 450,
1037 501, 501, 375, 375, 375, 427, 427, 512, 449, 517,
1038 501, 501, 427, 427, 427, 427, 427, 427, 427, 427,
1039 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1040 427, 427, 427, 427, 427, 427, 427, 429, 429, 429,
1041 429, 462, 514, 513, 518, 429, 515, 566, 566, 521,
1042 567, 567, 429, 429, 429, 429, 429, 429, 432, 432,
1043 432, 432, 516, 462, 521, 515, 432, 513, 518, 462,
1044 514, 574, 522, 432, 432, 432, 432, 432, 432, 502,
1046 502, 502, 502, 532, 565, 565, 565, 502, 516, 522,
1047 572, 573, 574, 532, 502, 502, 502, 502, 502, 502,
1048 575, 576, 573, 577, 578, 579, 580, 583, 581, 582,
1049 615, 615, 634, 572, 617, 617, 656, 656, 684, 684,
1050 748, 577, 575, 581, 681, 747, 583, 686, 686, 810,
1051 810, 576, 578, 745, 744, 579, 580, 582, 743, 742,
1052 740, 681, 634, 769, 769, 769, 769, 769, 769, 769,
1053 769, 769, 769, 769, 769, 769, 769, 769, 769, 770,
1054 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
1055 770, 770, 770, 770, 770, 771, 771, 771, 771, 771,
1057 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1058 771, 772, 772, 772, 772, 772, 772, 772, 772, 772,
1059 772, 772, 772, 772, 772, 772, 772, 773, 773, 773,
1060 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
1061 773, 773, 773, 774, 774, 774, 774, 774, 774, 774,
1062 774, 774, 774, 774, 774, 774, 774, 774, 774, 775,
1063 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1064 775, 775, 775, 775, 775, 776, 776, 776, 776, 776,
1065 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
1066 776, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1068 777, 777, 777, 777, 777, 777, 777, 778, 778, 778,
1069 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
1070 778, 778, 778, 779, 779, 779, 779, 779, 779, 779,
1071 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
1072 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
1073 780, 780, 780, 780, 780, 781, 781, 781, 781, 781,
1074 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1075 781, 782, 782, 782, 782, 782, 782, 782, 782, 782,
1076 782, 782, 782, 782, 782, 782, 782, 783, 783, 783,
1077 783, 739, 738, 783, 783, 783, 784, 784, 784, 784,
1079 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
1080 784, 785, 785, 785, 785, 737, 736, 785, 785, 785,
1081 786, 735, 786, 786, 786, 786, 786, 786, 786, 786,
1082 786, 786, 786, 786, 786, 786, 787, 734, 787, 787,
1083 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
1084 787, 787, 788, 788, 788, 733, 732, 788, 788, 788,
1085 789, 731, 789, 789, 789, 789, 789, 789, 789, 789,
1086 789, 789, 789, 789, 789, 789, 790, 729, 790, 790,
1087 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1088 790, 790, 791, 727, 791, 791, 791, 791, 791, 791,
1090 791, 791, 791, 791, 791, 791, 791, 791, 792, 792,
1091 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1092 792, 792, 792, 792, 793, 726, 793, 793, 725, 793,
1093 793, 793, 724, 723, 793, 793, 722, 721, 720, 793,
1094 794, 794, 794, 794, 719, 718, 794, 794, 794, 795,
1095 717, 795, 795, 795, 795, 795, 795, 795, 795, 795,
1096 795, 795, 795, 795, 795, 796, 796, 796, 796, 715,
1097 714, 796, 796, 796, 797, 713, 797, 797, 797, 797,
1098 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
1099 798, 712, 798, 798, 798, 798, 798, 798, 798, 798,
1101 798, 710, 798, 798, 798, 798, 799, 709, 707, 706,
1102 799, 799, 799, 799, 705, 704, 799, 799, 800, 703,
1103 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
1104 800, 800, 800, 800, 801, 801, 801, 801, 702, 701,
1105 801, 801, 801, 802, 802, 802, 802, 802, 802, 802,
1106 802, 802, 802, 802, 802, 802, 802, 802, 802, 803,
1107 803, 803, 803, 700, 803, 803, 803, 803, 803, 803,
1108 803, 803, 803, 803, 803, 804, 699, 698, 804, 804,
1109 804, 804, 804, 804, 804, 682, 804, 804, 804, 804,
1110 804, 805, 680, 805, 805, 805, 805, 805, 805, 805,
1112 805, 805, 805, 805, 805, 805, 805, 806, 679, 806,
1113 806, 678, 806, 806, 806, 677, 675, 806, 806, 674,
1114 672, 671, 806, 807, 807, 807, 807, 670, 669, 807,
1115 807, 807, 808, 668, 808, 808, 808, 808, 808, 808,
1116 808, 808, 808, 808, 808, 808, 808, 808, 809, 809,
1117 667, 809, 809, 666, 665, 664, 809, 809, 811, 663,
1118 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
1119 811, 811, 811, 811, 812, 662, 812, 812, 812, 812,
1120 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
1121 813, 661, 813, 813, 813, 813, 813, 813, 813, 813,
1123 813, 813, 813, 813, 813, 813, 814, 814, 660, 659,
1124 814, 814, 814, 815, 815, 658, 655, 815, 815, 815,
1125 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
1126 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
1127 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
1128 817, 817, 818, 653, 818, 818, 818, 818, 818, 818,
1129 818, 818, 818, 652, 818, 818, 818, 818, 819, 651,
1130 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
1131 819, 819, 819, 819, 820, 820, 650, 646, 644, 643,
1132 820, 821, 821, 821, 821, 642, 641, 821, 821, 821,
1134 821, 822, 639, 822, 822, 822, 822, 822, 822, 822,
1135 822, 822, 822, 822, 822, 822, 822, 823, 637, 823,
1136 823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
1137 823, 823, 823, 824, 636, 824, 824, 824, 824, 824,
1138 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
1139 635, 825, 825, 825, 825, 825, 825, 825, 825, 825,
1140 825, 825, 825, 825, 825, 826, 633, 826, 826, 826,
1141 826, 826, 826, 826, 826, 826, 826, 826, 826, 826,
1142 826, 827, 632, 827, 827, 827, 827, 827, 827, 827,
1143 827, 827, 827, 827, 827, 827, 827, 828, 828, 828,
1145 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
1146 828, 828, 828, 829, 631, 829, 829, 630, 829, 829,
1147 829, 629, 628, 829, 829, 627, 626, 625, 829, 830,
1148 830, 830, 830, 624, 623, 830, 830, 830, 831, 621,
1149 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
1150 831, 831, 831, 831, 832, 832, 832, 832, 619, 612,
1151 832, 832, 832, 833, 833, 611, 610, 609, 833, 833,
1152 834, 608, 607, 606, 834, 834, 834, 834, 604, 601,
1153 834, 834, 835, 600, 835, 835, 835, 835, 835, 835,
1154 835, 835, 835, 835, 835, 835, 835, 835, 836, 836,
1156 836, 836, 599, 598, 836, 836, 836, 837, 837, 837,
1157 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
1158 837, 837, 837, 838, 838, 838, 838, 597, 838, 838,
1159 838, 838, 838, 838, 838, 838, 838, 838, 838, 839,
1160 596, 595, 839, 839, 839, 839, 839, 839, 839, 594,
1161 839, 839, 839, 839, 839, 840, 593, 840, 840, 592,
1162 840, 840, 840, 591, 590, 840, 840, 588, 569, 568,
1163 840, 841, 841, 841, 841, 564, 563, 841, 841, 841,
1164 842, 562, 842, 842, 842, 842, 842, 842, 842, 842,
1165 842, 842, 842, 842, 842, 842, 843, 843, 560, 843,
1167 843, 559, 558, 557, 843, 843, 844, 556, 844, 844,
1168 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
1169 844, 844, 845, 555, 845, 845, 845, 845, 845, 845,
1170 845, 845, 845, 845, 845, 845, 845, 845, 846, 554,
1171 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1172 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
1173 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
1174 848, 848, 848, 848, 553, 552, 848, 848, 848, 849,
1175 849, 849, 849, 551, 549, 849, 849, 849, 850, 850,
1176 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
1178 850, 850, 850, 850, 851, 851, 851, 851, 851, 851,
1179 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
1180 852, 548, 852, 852, 852, 852, 852, 852, 852, 852,
1181 852, 546, 852, 852, 852, 852, 853, 853, 545, 544,
1182 543, 542, 853, 854, 854, 854, 854, 541, 540, 854,
1183 854, 854, 854, 855, 539, 855, 855, 855, 855, 855,
1184 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
1185 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
1186 856, 856, 856, 856, 856, 857, 857, 857, 857, 857,
1187 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
1189 857, 538, 536, 534, 533, 530, 528, 526, 525, 524,
1190 523, 509, 508, 507, 506, 500, 499, 498, 497, 496,
1191 492, 491, 490, 489, 488, 487, 486, 483, 482, 481,
1192 480, 479, 478, 476, 475, 474, 473, 472, 471, 469,
1193 468, 467, 464, 463, 461, 460, 459, 458, 457, 454,
1194 453, 452, 451, 439, 437, 436, 435, 434, 430, 426,
1195 423, 422, 421, 414, 413, 412, 411, 410, 408, 407,
1196 406, 404, 403, 402, 401, 400, 399, 398, 397, 396,
1197 395, 394, 393, 392, 391, 390, 388, 387, 386, 384,
1198 383, 382, 381, 380, 379, 378, 377, 376, 373, 372,
1200 361, 356, 355, 352, 350, 346, 337, 327, 326, 325,
1201 323, 318, 315, 313, 312, 311, 308, 307, 306, 305,
1202 303, 301, 300, 299, 297, 296, 295, 293, 292, 290,
1203 287, 286, 284, 282, 281, 280, 276, 263, 262, 243,
1204 240, 239, 234, 231, 226, 222, 221, 220, 219, 216,
1205 208, 207, 204, 203, 189, 187, 183, 179, 176, 175,
1206 174, 173, 172, 171, 169, 166, 165, 162, 161, 159,
1207 156, 155, 154, 153, 151, 149, 148, 146, 144, 143,
1208 137, 134, 125, 124, 122, 119, 114, 112, 107, 103,
1209 97, 92, 89, 87, 85, 84, 83, 80, 76, 74,
1211 73, 71, 67, 65, 59, 55, 50, 47, 43, 39,
1212 16, 15, 10, 8, 7, 768, 768, 768, 768, 768,
1213 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1214 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1215 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1216 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1217 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1221 static yy_state_type yy_last_accepting_state;
1222 static char *yy_last_accepting_cpos;
1224 /* The intent behind this definition is that it'll catch
1225 * any uses of REJECT which flex missed.
1227 #define REJECT reject_used_but_not_detected
1228 #define yymore() yymore_used_but_not_detected
1229 #define YY_MORE_ADJ 0
1230 #define YY_RESTORE_YY_MORE_OFFSET
1234 /* scan.l - scanner for flex input */
1237 * Copyright (c) 1990 The Regents of the University of California.
1238 * All rights reserved.
1240 * This code is derived from software contributed to Berkeley by
1243 * The United States Government has rights in this work pursuant
1244 * to contract no. DE-AC03-76SF00098 between the United States
1245 * Department of Energy and the University of California.
1247 * Redistribution and use in source and binary forms are permitted provided
1248 * that: (1) source distributions retain this entire copyright notice and
1249 * comment, and (2) distributions including binaries display the following
1250 * acknowledgement: ``This product includes software developed by the
1251 * University of California, Berkeley and its contributors'' in the
1252 * documentation or other materials provided with the distribution and in
1253 * all advertising materials mentioning features or use of this software.
1254 * Neither the name of the University nor the names of its contributors may
1255 * be used to endorse or promote products derived from this software without
1256 * specific prior written permission.
1257 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1258 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1259 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1262 /* $FreeBSD: src/usr.bin/lex/initscan.c,v 1.6 1999/10/27 07:56:45 obrien Exp $ */
1264 #include "flexdef.h"
1267 #define ACTION_ECHO add_action( yytext )
1268 #define ACTION_IFDEF(def, should_define) \
1270 if ( should_define ) \
1271 action_define( def, 1 ); \
1274 #define MARK_END_OF_PROLOG mark_prolog();
1279 #define RETURNCHAR \
1280 yylval = (unsigned char) yytext[0]; \
1283 #define RETURNNAME \
1284 strcpy( nmstr, yytext ); \
1287 #define PUT_BACK_STRING(str, start) \
1288 for ( i = strlen( str ) - 1; i >= start; --i ) \
1291 #define CHECK_REJECT(str) \
1292 if ( all_upper( str ) ) \
1295 #define CHECK_YYMORE(str) \
1296 if ( all_lower( str ) ) \
1298 #define YY_STACK_USED 1
1299 #define YY_NO_TOP_STATE 1
1301 #define SECT2PROLOG 2
1306 #define CARETISBOL 7
1315 #define ACTION_STRING 15
1316 #define PERCENT_BRACE_ACTION 16
1323 /* Macros after this point can all be overridden by user definitions in
1327 #ifndef YY_SKIP_YYWRAP
1329 extern "C" int yywrap YY_PROTO(( void ));
1331 extern int yywrap YY_PROTO(( void ));
1336 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1340 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1343 #ifdef YY_NEED_STRLEN
1344 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1349 static int yyinput YY_PROTO(( void ));
1351 static int input YY_PROTO(( void ));
1356 static int yy_start_stack_ptr = 0;
1357 static int yy_start_stack_depth = 0;
1358 static int *yy_start_stack = NULL;
1359 #ifndef YY_NO_PUSH_STATE
1360 static void yy_push_state YY_PROTO(( int new_state ));
1362 #ifndef YY_NO_POP_STATE
1363 static void yy_pop_state YY_PROTO(( void ));
1365 #ifndef YY_NO_TOP_STATE
1366 static int yy_top_state YY_PROTO(( void ));
1370 #define YY_NO_PUSH_STATE 1
1371 #define YY_NO_POP_STATE 1
1372 #define YY_NO_TOP_STATE 1
1375 #ifdef YY_MALLOC_DECL
1383 /* Amount of stuff to slurp up with each read. */
1384 #ifndef YY_READ_BUF_SIZE
1385 #define YY_READ_BUF_SIZE 8192
1388 /* Copy whatever the last rule matched to the standard output. */
1391 /* This used to be an fputs(), but since the string might contain NUL's,
1392 * we now use fwrite().
1394 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1397 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1398 * is returned in "result".
1401 #define YY_INPUT(buf,result,max_size) \
1402 if ( yy_current_buffer->yy_is_interactive ) \
1405 for ( n = 0; n < max_size && \
1406 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1407 buf[n] = (char) c; \
1409 buf[n++] = (char) c; \
1410 if ( c == EOF && ferror( yyin ) ) \
1411 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1414 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1415 && ferror( yyin ) ) \
1416 YY_FATAL_ERROR( "input in flex scanner failed" );
1419 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1420 * we don't want an extra ';' after the "return" because that will cause
1421 * some compilers to complain about unreachable statements.
1424 #define yyterminate() return YY_NULL
1427 /* Number of entries by which start-condition stack grows. */
1428 #ifndef YY_START_STACK_INCR
1429 #define YY_START_STACK_INCR 25
1432 /* Report a fatal error. */
1433 #ifndef YY_FATAL_ERROR
1434 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1437 /* Default declaration of generated scanner - a define so the user can
1438 * easily add parameters.
1441 #define YY_DECL int yylex YY_PROTO(( void ))
1444 /* Code executed at the beginning of each rule, after yytext and yyleng
1447 #ifndef YY_USER_ACTION
1448 #define YY_USER_ACTION
1451 /* Code executed at the end of each rule. */
1453 #define YY_BREAK break;
1456 #define YY_RULE_SETUP \
1458 yy_current_buffer->yy_at_bol = \
1459 (yytext[yyleng - 1] == '\n'); \
1464 yy_state_type yy_current_state;
1465 char *yy_cp, *yy_bp;
1470 static int bracelevel, didadef, indented_code;
1471 static int doing_rule_action = false;
1472 static int option_sense;
1474 int doing_codeblock = false;
1476 Char nmdef[MAXLINE], myesc();
1490 yy_start = 1; /* first start state */
1498 if ( ! yy_current_buffer )
1500 yy_create_buffer( yyin, YY_BUF_SIZE );
1502 yy_load_buffer_state();
1505 while ( 1 ) /* loops until end-of-file is reached */
1509 /* Support of yytext. */
1510 *yy_cp = yy_hold_char;
1512 /* yy_bp points to the position in yy_ch_buf of the start of
1517 yy_current_state = yy_start;
1518 yy_current_state += YY_AT_BOL();
1522 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1523 if ( yy_accept[yy_current_state] )
1525 yy_last_accepting_state = yy_current_state;
1526 yy_last_accepting_cpos = yy_cp;
1528 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1530 yy_current_state = (int) yy_def[yy_current_state];
1531 if ( yy_current_state >= 769 )
1532 yy_c = yy_meta[(unsigned int) yy_c];
1534 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1537 while ( yy_base[yy_current_state] != 2716 );
1540 yy_act = yy_accept[yy_current_state];
1542 { /* have to back up */
1543 yy_cp = yy_last_accepting_cpos;
1544 yy_current_state = yy_last_accepting_state;
1545 yy_act = yy_accept[yy_current_state];
1548 YY_DO_BEFORE_ACTION;
1551 do_action: /* This label is used only to access EOF actions. */
1555 { /* beginning of action switch */
1556 case 0: /* must back up */
1557 /* undo the effects of YY_DO_BEFORE_ACTION */
1558 *yy_cp = yy_hold_char;
1559 yy_cp = yy_last_accepting_cpos;
1560 yy_current_state = yy_last_accepting_state;
1561 goto yy_find_action;
1567 indented_code = true; BEGIN(CODEBLOCK);
1572 ACTION_ECHO; yy_push_state( COMMENT );
1577 yy_push_state( LINEDIR );
1594 line_directive_out( NULL, 1 );
1595 indented_code = false;
1611 line_directive_out( NULL, 1 );
1619 yytext_is_array = false; ++linenum;
1624 yytext_is_array = true; ++linenum;
1629 BEGIN(OPTION); return OPTION_OP;
1634 ++linenum; /* ignore */
1639 ++linenum; /* ignore */
1644 synerr( _( "unrecognized '%' directive" ) );
1650 strcpy( nmstr, yytext );
1663 ++linenum; /* allows blank lines in section 1 */
1668 ACTION_ECHO; ++linenum; /* maybe end of comment line */
1675 ACTION_ECHO; yy_pop_state();
1690 ++linenum; ACTION_ECHO;
1702 linenum = myctoi( yytext );
1708 flex_free( (void *) infilename );
1709 infilename = copy_string( yytext + 1 );
1710 infilename[strlen( infilename ) - 1] = '\0';
1716 /* ignore spurious characters */
1723 ++linenum; BEGIN(INITIAL);
1736 if ( indented_code )
1745 /* separates name and definition */
1751 strcpy( (char *) nmdef, yytext );
1753 /* Skip trailing whitespace. */
1754 for ( i = strlen( (char *) nmdef ) - 1;
1755 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1759 nmdef[i + 1] = '\0';
1761 ndinstal( nmstr, nmdef );
1770 synerr( _( "incomplete name definition" ) );
1780 ++linenum; BEGIN(INITIAL);
1785 option_sense = true;
1795 option_sense = ! option_sense;
1800 csize = option_sense ? 128 : 256;
1805 csize = option_sense ? 256 : 128;
1810 long_align = option_sense;
1816 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1822 yytext_is_array = option_sense;
1827 backing_up_report = option_sense;
1832 interactive = ! option_sense;
1837 C_plus_plus = option_sense;
1842 caseins = ! option_sense;
1847 caseins = option_sense;
1852 ddebug = option_sense;
1857 spprdflt = ! option_sense;
1862 useecs = option_sense;
1868 useecs = usemecs = false;
1869 use_read = fullspd = true;
1876 useecs = usemecs = false;
1877 use_read = fulltbl = true;
1883 ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1888 interactive = option_sense;
1893 lex_compat = option_sense;
1899 action_define( "YY_MAIN", option_sense );
1900 do_yywrap = ! option_sense;
1906 usemecs = option_sense;
1912 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1918 performance_report += option_sense ? 1 : -1;
1923 yytext_is_array = ! option_sense;
1928 use_read = option_sense;
1933 reject_really_used = option_sense;
1938 action_define( "YY_STACK_USED", option_sense );
1943 do_stdinit = option_sense;
1948 use_stdout = option_sense;
1953 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1958 printstats = option_sense;
1963 nowarn = ! option_sense;
1968 do_yylineno = option_sense;
1973 yymore_really_used = option_sense;
1978 do_yywrap = option_sense;
1983 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
1988 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
1993 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
1998 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2003 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2008 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2029 strcpy( nmstr, yytext + 1 );
2030 nmstr[strlen( nmstr ) - 1] = '\0';
2038 format_synerr( _( "unrecognized %%option: %s" ),
2047 ++linenum; BEGIN(INITIAL);
2053 ++bracelevel; yyless( 2 ); /* eat only %{ */
2058 --bracelevel; yyless( 2 ); /* eat only %} */
2063 ACTION_ECHO; /* indented code in prolog */
2068 { /* non-indented code */
2069 if ( bracelevel <= 0 )
2070 { /* not in %{ ... %} */
2071 yyless( 0 ); /* put it all back */
2088 ++linenum; ACTION_ECHO;
2090 case YY_STATE_EOF(SECT2PROLOG):
2095 yyterminate(); /* to stop the parser */
2103 ++linenum; /* allow blank lines in section 2 */
2109 indented_code = false;
2110 doing_codeblock = true;
2112 BEGIN(PERCENT_BRACE_ACTION);
2118 BEGIN(SC); return '<';
2128 BEGIN(QUOTE); return '"';
2131 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2132 yy_c_buf_p = yy_cp = yy_bp + 1;
2133 YY_DO_BEFORE_ACTION; /* set up yytext again */
2136 BEGIN(NUM); return '{';
2139 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2140 yy_c_buf_p = yy_cp = yy_bp + 1;
2141 YY_DO_BEFORE_ACTION; /* set up yytext again */
2151 BEGIN(PERCENT_BRACE_ACTION);
2155 doing_rule_action = true;
2164 continued_action = true; ++linenum; return '\n';
2170 yyless( yyleng - 2 ); /* put back '/', '*' */
2172 continued_action = false;
2179 /* allow indented rules */
2185 /* This rule is separate from the one below because
2186 * otherwise we get variable trailing context, so
2187 * we can't build the scanner using -{f,F}.
2190 continued_action = false;
2195 doing_rule_action = true;
2206 continued_action = false;
2208 unput( '\n' ); /* so <ACTION> sees it */
2212 doing_rule_action = true;
2231 yyterminate(); /* to stop the parser */
2240 strcpy( nmstr, yytext );
2242 /* Check to see if we've already encountered this
2245 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2247 if ( input() != ']' )
2248 synerr( _( "bad character class" ) );
2256 /* We fudge a bit. We know that this ccl will
2257 * soon be numbered as lastccl + 1 by cclinit.
2259 cclinstal( (Char *) nmstr, lastccl + 1 );
2261 /* Push back everything but the leading bracket
2262 * so the ccl can be rescanned.
2278 strcpy( nmstr, yytext + 1 );
2279 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */
2281 if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2283 _( "undefined definition {%s}" ),
2287 { /* push back name surrounded by ()'s */
2288 int len = strlen( (char *) nmdefptr );
2290 if ( lex_compat || nmdefptr[0] == '^' ||
2291 (len > 0 && nmdefptr[len - 1] == '$') )
2292 { /* don't use ()'s after all */
2293 PUT_BACK_STRING((char *) nmdefptr, 0);
2295 if ( nmdefptr[0] == '^' )
2302 PUT_BACK_STRING((char *) nmdefptr, 0);
2311 return (unsigned char) yytext[0];
2323 return (unsigned char) yytext[0];
2328 BEGIN(SECT2); return '>';
2331 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2332 yy_c_buf_p = yy_cp = yy_bp + 1;
2333 YY_DO_BEFORE_ACTION; /* set up yytext again */
2336 BEGIN(CARETISBOL); return '>';
2347 format_synerr( _( "bad <start condition>: %s" ),
2355 BEGIN(SECT2); return '^';
2366 BEGIN(SECT2); return '"';
2372 synerr( _( "missing quote" ) );
2381 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2382 yy_c_buf_p = yy_cp = yy_bp + 1;
2383 YY_DO_BEFORE_ACTION; /* set up yytext again */
2386 BEGIN(CCL); return '^';
2389 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2390 yy_c_buf_p = yy_cp = yy_bp + 1;
2391 YY_DO_BEFORE_ACTION; /* set up yytext again */
2399 BEGIN(CCL); RETURNCHAR;
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 */
2419 BEGIN(SECT2); return ']';
2425 synerr( _( "bad character class" ) );
2435 BEGIN(CCL); return CCE_ALNUM;
2440 BEGIN(CCL); return CCE_ALPHA;
2445 BEGIN(CCL); return CCE_BLANK;
2450 BEGIN(CCL); return CCE_CNTRL;
2455 BEGIN(CCL); return CCE_DIGIT;
2460 BEGIN(CCL); return CCE_GRAPH;
2465 BEGIN(CCL); return CCE_LOWER;
2470 BEGIN(CCL); return CCE_PRINT;
2475 BEGIN(CCL); return CCE_PUNCT;
2480 BEGIN(CCL); return CCE_SPACE;
2485 BEGIN(CCL); return CCE_UPPER;
2490 BEGIN(CCL); return CCE_XDIGIT;
2497 _( "bad character class expression: %s" ),
2499 BEGIN(CCL); return CCE_ALNUM;
2508 yylval = myctoi( yytext );
2520 BEGIN(SECT2); return '}';
2526 synerr( _( "bad character inside {}'s" ) );
2535 synerr( _( "missing }" ) );
2551 ACTION_ECHO; yy_push_state( COMMENT );
2559 CHECK_REJECT(yytext);
2567 CHECK_YYMORE(yytext);
2582 if ( bracelevel == 0 ||
2583 (doing_codeblock && indented_code) )
2585 if ( doing_rule_action )
2586 add_action( "\tYY_BREAK\n" );
2588 doing_rule_action = doing_codeblock = false;
2594 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2599 ACTION_ECHO; ++bracelevel;
2604 ACTION_ECHO; --bracelevel;
2619 ACTION_ECHO; /* character constant */
2624 ACTION_ECHO; BEGIN(ACTION_STRING);
2632 if ( bracelevel == 0 )
2634 if ( doing_rule_action )
2635 add_action( "\tYY_BREAK\n" );
2637 doing_rule_action = false;
2662 ++linenum; ACTION_ECHO;
2667 ACTION_ECHO; BEGIN(ACTION);
2675 case YY_STATE_EOF(COMMENT):
2676 case YY_STATE_EOF(ACTION):
2677 case YY_STATE_EOF(ACTION_STRING):
2680 synerr( _( "EOF encountered inside an action" ) );
2688 yylval = myesc( (Char *) yytext );
2690 if ( YY_START == FIRSTCCL )
2702 case YY_STATE_EOF(SECT3):
2704 sectnum = 0; yyterminate();
2710 format_synerr( _( "bad character: %s" ), yytext );
2715 YY_FATAL_ERROR( "flex scanner jammed" );
2718 case YY_STATE_EOF(INITIAL):
2719 case YY_STATE_EOF(SECT2):
2720 case YY_STATE_EOF(CODEBLOCK):
2721 case YY_STATE_EOF(PICKUPDEF):
2722 case YY_STATE_EOF(SC):
2723 case YY_STATE_EOF(CARETISBOL):
2724 case YY_STATE_EOF(NUM):
2725 case YY_STATE_EOF(QUOTE):
2726 case YY_STATE_EOF(FIRSTCCL):
2727 case YY_STATE_EOF(CCL):
2728 case YY_STATE_EOF(RECOVER):
2729 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2730 case YY_STATE_EOF(OPTION):
2731 case YY_STATE_EOF(LINEDIR):
2734 case YY_END_OF_BUFFER:
2736 /* Amount of text matched not including the EOB char. */
2737 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2739 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2740 *yy_cp = yy_hold_char;
2741 YY_RESTORE_YY_MORE_OFFSET
2743 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2745 /* We're scanning a new file or input source. It's
2746 * possible that this happened because the user
2747 * just pointed yyin at a new source and called
2748 * yylex(). If so, then we have to assure
2749 * consistency between yy_current_buffer and our
2750 * globals. Here is the right place to do so, because
2751 * this is the first action (other than possibly a
2752 * back-up) that will match for the new input source.
2754 yy_n_chars = yy_current_buffer->yy_n_chars;
2755 yy_current_buffer->yy_input_file = yyin;
2756 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2759 /* Note that here we test for yy_c_buf_p "<=" to the position
2760 * of the first EOB in the buffer, since yy_c_buf_p will
2761 * already have been incremented past the NUL character
2762 * (since all states make transitions on EOB to the
2763 * end-of-buffer state). Contrast this with the test
2766 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2767 { /* This was really a NUL. */
2768 yy_state_type yy_next_state;
2770 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2772 yy_current_state = yy_get_previous_state();
2774 /* Okay, we're now positioned to make the NUL
2775 * transition. We couldn't have
2776 * yy_get_previous_state() go ahead and do it
2777 * for us because it doesn't know how to deal
2778 * with the possibility of jamming (and we don't
2779 * want to build jamming into it because then it
2780 * will run more slowly).
2783 yy_next_state = yy_try_NUL_trans( yy_current_state );
2785 yy_bp = yytext_ptr + YY_MORE_ADJ;
2787 if ( yy_next_state )
2789 /* Consume the NUL. */
2790 yy_cp = ++yy_c_buf_p;
2791 yy_current_state = yy_next_state;
2798 goto yy_find_action;
2802 else switch ( yy_get_next_buffer() )
2804 case EOB_ACT_END_OF_FILE:
2806 yy_did_buffer_switch_on_eof = 0;
2810 /* Note: because we've taken care in
2811 * yy_get_next_buffer() to have set up
2812 * yytext, we can now set up
2813 * yy_c_buf_p so that if some total
2814 * hoser (like flex itself) wants to
2815 * call the scanner after we return the
2816 * YY_NULL, it'll still work - another
2817 * YY_NULL will get returned.
2819 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2821 yy_act = YY_STATE_EOF(YY_START);
2827 if ( ! yy_did_buffer_switch_on_eof )
2833 case EOB_ACT_CONTINUE_SCAN:
2835 yytext_ptr + yy_amount_of_matched_text;
2837 yy_current_state = yy_get_previous_state();
2840 yy_bp = yytext_ptr + YY_MORE_ADJ;
2843 case EOB_ACT_LAST_MATCH:
2845 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2847 yy_current_state = yy_get_previous_state();
2850 yy_bp = yytext_ptr + YY_MORE_ADJ;
2851 goto yy_find_action;
2858 "fatal flex scanner internal error--no action found" );
2859 } /* end of action switch */
2860 } /* end of scanning one token */
2861 } /* end of yylex */
2864 /* yy_get_next_buffer - try to read in a new buffer
2866 * Returns a code representing an action:
2867 * EOB_ACT_LAST_MATCH -
2868 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2869 * EOB_ACT_END_OF_FILE - end of file
2872 static int yy_get_next_buffer()
2874 char *dest = yy_current_buffer->yy_ch_buf;
2875 char *source = yytext_ptr;
2876 int number_to_move, i;
2879 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2881 "fatal flex scanner internal error--end of buffer missed" );
2883 if ( yy_current_buffer->yy_fill_buffer == 0 )
2884 { /* Don't try to fill the buffer, so this is an EOF. */
2885 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2887 /* We matched a single character, the EOB, so
2888 * treat this as a final EOF.
2890 return EOB_ACT_END_OF_FILE;
2895 /* We matched some text prior to the EOB, first
2898 return EOB_ACT_LAST_MATCH;
2902 /* Try to read more data. */
2904 /* First move last chars to start of buffer. */
2905 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2907 for ( i = 0; i < number_to_move; ++i )
2908 *(dest++) = *(source++);
2910 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2911 /* don't do the read, it's not guaranteed to return an EOF,
2914 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2919 yy_current_buffer->yy_buf_size - number_to_move - 1;
2921 while ( num_to_read <= 0 )
2922 { /* Not enough room in the buffer - grow it. */
2923 #ifdef YY_USES_REJECT
2925 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2928 /* just a shorter name for the current buffer */
2929 YY_BUFFER_STATE b = yy_current_buffer;
2931 int yy_c_buf_p_offset =
2932 (int) (yy_c_buf_p - b->yy_ch_buf);
2934 if ( b->yy_is_our_buffer )
2936 int new_size = b->yy_buf_size * 2;
2938 if ( new_size <= 0 )
2939 b->yy_buf_size += b->yy_buf_size / 8;
2941 b->yy_buf_size *= 2;
2943 b->yy_ch_buf = (char *)
2944 /* Include room in for 2 EOB chars. */
2945 yy_flex_realloc( (void *) b->yy_ch_buf,
2946 b->yy_buf_size + 2 );
2949 /* Can't grow it, we don't own it. */
2950 b->yy_ch_buf = NULL;
2952 if ( ! b->yy_ch_buf )
2954 "fatal error - scanner input buffer overflow" );
2956 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2958 num_to_read = yy_current_buffer->yy_buf_size -
2963 if ( num_to_read > YY_READ_BUF_SIZE )
2964 num_to_read = YY_READ_BUF_SIZE;
2966 /* Read in more data. */
2967 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2968 yy_n_chars, num_to_read );
2970 yy_current_buffer->yy_n_chars = yy_n_chars;
2973 if ( yy_n_chars == 0 )
2975 if ( number_to_move == YY_MORE_ADJ )
2977 ret_val = EOB_ACT_END_OF_FILE;
2983 ret_val = EOB_ACT_LAST_MATCH;
2984 yy_current_buffer->yy_buffer_status =
2985 YY_BUFFER_EOF_PENDING;
2990 ret_val = EOB_ACT_CONTINUE_SCAN;
2992 yy_n_chars += number_to_move;
2993 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2994 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2996 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3002 /* yy_get_previous_state - get the state just before the EOB char was reached */
3004 static yy_state_type yy_get_previous_state()
3006 yy_state_type yy_current_state;
3009 yy_current_state = yy_start;
3010 yy_current_state += YY_AT_BOL();
3012 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3014 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3015 if ( yy_accept[yy_current_state] )
3017 yy_last_accepting_state = yy_current_state;
3018 yy_last_accepting_cpos = yy_cp;
3020 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3022 yy_current_state = (int) yy_def[yy_current_state];
3023 if ( yy_current_state >= 769 )
3024 yy_c = yy_meta[(unsigned int) yy_c];
3026 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3029 return yy_current_state;
3033 /* yy_try_NUL_trans - try to make a transition on the NUL character
3036 * next_state = yy_try_NUL_trans( current_state );
3039 #ifdef YY_USE_PROTOS
3040 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3042 static yy_state_type yy_try_NUL_trans( yy_current_state )
3043 yy_state_type yy_current_state;
3047 char *yy_cp = yy_c_buf_p;
3050 if ( yy_accept[yy_current_state] )
3052 yy_last_accepting_state = yy_current_state;
3053 yy_last_accepting_cpos = yy_cp;
3055 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3057 yy_current_state = (int) yy_def[yy_current_state];
3058 if ( yy_current_state >= 769 )
3059 yy_c = yy_meta[(unsigned int) yy_c];
3061 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3062 yy_is_jam = (yy_current_state == 768);
3064 return yy_is_jam ? 0 : yy_current_state;
3069 #ifdef YY_USE_PROTOS
3070 static void yyunput( int c, char *yy_bp )
3072 static void yyunput( c, yy_bp )
3077 char *yy_cp = yy_c_buf_p;
3079 /* undo effects of setting up yytext */
3080 *yy_cp = yy_hold_char;
3082 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3083 { /* need to shift things up to make room */
3084 /* +2 for EOB chars. */
3085 int number_to_move = yy_n_chars + 2;
3086 char *dest = &yy_current_buffer->yy_ch_buf[
3087 yy_current_buffer->yy_buf_size + 2];
3089 &yy_current_buffer->yy_ch_buf[number_to_move];
3091 while ( source > yy_current_buffer->yy_ch_buf )
3092 *--dest = *--source;
3094 yy_cp += (int) (dest - source);
3095 yy_bp += (int) (dest - source);
3096 yy_current_buffer->yy_n_chars =
3097 yy_n_chars = yy_current_buffer->yy_buf_size;
3099 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3100 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3103 *--yy_cp = (char) c;
3107 yy_hold_char = *yy_cp;
3110 #endif /* ifndef YY_NO_UNPUT */
3114 static int yyinput()
3121 *yy_c_buf_p = yy_hold_char;
3123 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3125 /* yy_c_buf_p now points to the character we want to return.
3126 * If this occurs *before* the EOB characters, then it's a
3127 * valid NUL; if not, then we've hit the end of the buffer.
3129 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3130 /* This was really a NUL. */
3134 { /* need more input */
3135 int offset = yy_c_buf_p - yytext_ptr;
3138 switch ( yy_get_next_buffer() )
3140 case EOB_ACT_LAST_MATCH:
3141 /* This happens because yy_g_n_b()
3142 * sees that we've accumulated a
3143 * token and flags that we need to
3144 * try matching the token before
3145 * proceeding. But for input(),
3146 * there's no matching to consider.
3147 * So convert the EOB_ACT_LAST_MATCH
3148 * to EOB_ACT_END_OF_FILE.
3151 /* Reset buffer status. */
3156 case EOB_ACT_END_OF_FILE:
3161 if ( ! yy_did_buffer_switch_on_eof )
3170 case EOB_ACT_CONTINUE_SCAN:
3171 yy_c_buf_p = yytext_ptr + offset;
3177 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3178 *yy_c_buf_p = '\0'; /* preserve yytext */
3179 yy_hold_char = *++yy_c_buf_p;
3181 yy_current_buffer->yy_at_bol = (c == '\n');
3187 #ifdef YY_USE_PROTOS
3188 void yyrestart( FILE *input_file )
3190 void yyrestart( input_file )
3194 if ( ! yy_current_buffer )
3195 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3197 yy_init_buffer( yy_current_buffer, input_file );
3198 yy_load_buffer_state();
3202 #ifdef YY_USE_PROTOS
3203 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3205 void yy_switch_to_buffer( new_buffer )
3206 YY_BUFFER_STATE new_buffer;
3209 if ( yy_current_buffer == new_buffer )
3212 if ( yy_current_buffer )
3214 /* Flush out information for old buffer. */
3215 *yy_c_buf_p = yy_hold_char;
3216 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3217 yy_current_buffer->yy_n_chars = yy_n_chars;
3220 yy_current_buffer = new_buffer;
3221 yy_load_buffer_state();
3223 /* We don't actually know whether we did this switch during
3224 * EOF (yywrap()) processing, but the only time this flag
3225 * is looked at is after yywrap() is called, so it's safe
3226 * to go ahead and always set it.
3228 yy_did_buffer_switch_on_eof = 1;
3232 #ifdef YY_USE_PROTOS
3233 void yy_load_buffer_state( void )
3235 void yy_load_buffer_state()
3238 yy_n_chars = yy_current_buffer->yy_n_chars;
3239 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3240 yyin = yy_current_buffer->yy_input_file;
3241 yy_hold_char = *yy_c_buf_p;
3245 #ifdef YY_USE_PROTOS
3246 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3248 YY_BUFFER_STATE yy_create_buffer( file, size )
3255 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3257 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3259 b->yy_buf_size = size;
3261 /* yy_ch_buf has to be 2 characters longer than the size given because
3262 * we need to put in 2 end-of-buffer characters.
3264 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3265 if ( ! b->yy_ch_buf )
3266 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3268 b->yy_is_our_buffer = 1;
3270 yy_init_buffer( b, file );
3276 #ifdef YY_USE_PROTOS
3277 void yy_delete_buffer( YY_BUFFER_STATE b )
3279 void yy_delete_buffer( b )
3286 if ( b == yy_current_buffer )
3287 yy_current_buffer = (YY_BUFFER_STATE) 0;
3289 if ( b->yy_is_our_buffer )
3290 yy_flex_free( (void *) b->yy_ch_buf );
3292 yy_flex_free( (void *) b );
3296 #ifndef YY_ALWAYS_INTERACTIVE
3297 #ifndef YY_NEVER_INTERACTIVE
3298 extern int isatty YY_PROTO(( int ));
3302 #ifdef YY_USE_PROTOS
3303 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3305 void yy_init_buffer( b, file )
3312 yy_flush_buffer( b );
3314 b->yy_input_file = file;
3315 b->yy_fill_buffer = 1;
3317 #if YY_ALWAYS_INTERACTIVE
3318 b->yy_is_interactive = 1;
3320 #if YY_NEVER_INTERACTIVE
3321 b->yy_is_interactive = 0;
3323 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3329 #ifdef YY_USE_PROTOS
3330 void yy_flush_buffer( YY_BUFFER_STATE b )
3332 void yy_flush_buffer( b )
3342 /* We always need two end-of-buffer characters. The first causes
3343 * a transition to the end-of-buffer state. The second causes
3344 * a jam in that state.
3346 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3347 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3349 b->yy_buf_pos = &b->yy_ch_buf[0];
3352 b->yy_buffer_status = YY_BUFFER_NEW;
3354 if ( b == yy_current_buffer )
3355 yy_load_buffer_state();
3359 #ifndef YY_NO_SCAN_BUFFER
3360 #ifdef YY_USE_PROTOS
3361 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3363 YY_BUFFER_STATE yy_scan_buffer( base, size )
3371 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3372 base[size-1] != YY_END_OF_BUFFER_CHAR )
3373 /* They forgot to leave room for the EOB's. */
3376 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3378 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3380 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3381 b->yy_buf_pos = b->yy_ch_buf = base;
3382 b->yy_is_our_buffer = 0;
3383 b->yy_input_file = NULL;
3384 b->yy_n_chars = b->yy_buf_size;
3385 b->yy_is_interactive = 0;
3387 b->yy_fill_buffer = 0;
3388 b->yy_buffer_status = YY_BUFFER_NEW;
3390 yy_switch_to_buffer( b );
3397 #ifndef YY_NO_SCAN_STRING
3398 #ifdef YY_USE_PROTOS
3399 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3401 YY_BUFFER_STATE yy_scan_string( yy_str )
3402 yyconst char *yy_str;
3406 for ( len = 0; yy_str[len]; ++len )
3409 return yy_scan_bytes( yy_str, len );
3414 #ifndef YY_NO_SCAN_BYTES
3415 #ifdef YY_USE_PROTOS
3416 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3418 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3419 yyconst char *bytes;
3428 /* Get memory for full buffer, including space for trailing EOB's. */
3430 buf = (char *) yy_flex_alloc( n );
3432 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3434 for ( i = 0; i < len; ++i )
3437 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3439 b = yy_scan_buffer( buf, n );
3441 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3443 /* It's okay to grow etc. this buffer, and we should throw it
3444 * away when we're done.
3446 b->yy_is_our_buffer = 1;
3453 #ifndef YY_NO_PUSH_STATE
3454 #ifdef YY_USE_PROTOS
3455 static void yy_push_state( int new_state )
3457 static void yy_push_state( new_state )
3461 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3465 yy_start_stack_depth += YY_START_STACK_INCR;
3466 new_size = yy_start_stack_depth * sizeof( int );
3468 if ( ! yy_start_stack )
3469 yy_start_stack = (int *) yy_flex_alloc( new_size );
3472 yy_start_stack = (int *) yy_flex_realloc(
3473 (void *) yy_start_stack, new_size );
3475 if ( ! yy_start_stack )
3477 "out of memory expanding start-condition stack" );
3480 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3487 #ifndef YY_NO_POP_STATE
3488 static void yy_pop_state()
3490 if ( --yy_start_stack_ptr < 0 )
3491 YY_FATAL_ERROR( "start-condition stack underflow" );
3493 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3498 #ifndef YY_NO_TOP_STATE
3499 static int yy_top_state()
3501 return yy_start_stack[yy_start_stack_ptr - 1];
3505 #ifndef YY_EXIT_FAILURE
3506 #define YY_EXIT_FAILURE 2
3509 #ifdef YY_USE_PROTOS
3510 static void yy_fatal_error( yyconst char msg[] )
3512 static void yy_fatal_error( msg )
3516 (void) fprintf( stderr, "%s\n", msg );
3517 exit( YY_EXIT_FAILURE );
3522 /* Redefine yyless() so it works in section 3 code. */
3528 /* Undo effects of setting up yytext. */ \
3529 yytext[yyleng] = yy_hold_char; \
3530 yy_c_buf_p = yytext + n; \
3531 yy_hold_char = *yy_c_buf_p; \
3532 *yy_c_buf_p = '\0'; \
3538 /* Internal utility routines. */
3541 #ifdef YY_USE_PROTOS
3542 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3544 static void yy_flex_strncpy( s1, s2, n )
3551 for ( i = 0; i < n; ++i )
3556 #ifdef YY_NEED_STRLEN
3557 #ifdef YY_USE_PROTOS
3558 static int yy_flex_strlen( yyconst char *s )
3560 static int yy_flex_strlen( s )
3565 for ( n = 0; s[n]; ++n )
3573 #ifdef YY_USE_PROTOS
3574 static void *yy_flex_alloc( yy_size_t size )
3576 static void *yy_flex_alloc( size )
3580 return (void *) malloc( size );
3583 #ifdef YY_USE_PROTOS
3584 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3586 static void *yy_flex_realloc( ptr, size )
3591 /* The cast to (char *) in the following accommodates both
3592 * implementations that use char* generic pointers, and those
3593 * that use void* generic pointers. It works with the latter
3594 * because both ANSI C and C++ allow castless assignment from
3595 * any pointer type to void*, and deal with argument conversions
3596 * as though doing an assignment.
3598 return (void *) realloc( (char *) ptr, size );
3601 #ifdef YY_USE_PROTOS
3602 static void yy_flex_free( void *ptr )
3604 static void yy_flex_free( ptr )
3624 if ( --num_input_files > 0 )
3626 set_input_file( *++input_files );
3635 /* set_input_file - open the given file (if NULL, stdin) for scanning */
3637 void set_input_file(char *file)
3639 if ( file && strcmp( file, "-" ) )
3641 infilename = copy_string( file );
3642 yyin = fopen( infilename, "r" );
3645 lerrsf( _( "can't open %s" ), file );
3651 infilename = copy_string( "<stdin>" );
3658 /* Wrapper routines for accessing the scanner's malloc routines. */
3660 void *flex_alloc(size_t size)
3662 return (void *) malloc( size );
3665 void *flex_realloc(void *ptr, size_t size)
3667 return (void *) realloc( ptr, size );
3670 void flex_free(void *ptr)