Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / usr.bin / lex / initscan.c
blob679c5254b0fcf837c21f87b2b7a7a69163aa6d98
1 #line 2 "scan.c"
2 /* A lexical scanner generated by flex */
4 /* Scanner skeleton version:
5 * $NetBSD: initscan.c,v 1.17 2003/12/02 06:22:14 lukem Exp $
6 */
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
12 #include <stdio.h>
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
16 #ifdef c_plusplus
17 #ifndef __cplusplus
18 #define __cplusplus
19 #endif
20 #endif
23 #ifdef __cplusplus
25 #include <stdlib.h>
26 #include <unistd.h>
28 /* Use prototypes in function declarations. */
29 #define YY_USE_PROTOS
31 /* The "const" storage-class-modifier is valid. */
32 #define YY_USE_CONST
34 #else /* ! __cplusplus */
36 #if __STDC__
38 #define YY_USE_PROTOS
39 #define YY_USE_CONST
41 #endif /* __STDC__ */
42 #endif /* ! __cplusplus */
44 #ifdef __TURBOC__
45 #pragma warn -rch
46 #pragma warn -use
47 #include <io.h>
48 #include <stdlib.h>
49 #define YY_USE_CONST
50 #define YY_USE_PROTOS
51 #endif
53 #ifdef YY_USE_CONST
54 #define yyconst const
55 #else
56 #define yyconst
57 #endif
60 #ifdef YY_USE_PROTOS
61 #define YY_PROTO(proto) proto
62 #else
63 #define YY_PROTO(proto) ()
64 #endif
66 /* Returned upon end-of-file. */
67 #define YY_NULL 0
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index. If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
72 * double cast.
74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
76 /* Enter a start condition. This macro really ought to take a parameter,
77 * but we do it the disgusting crufty way forced on us by the ()-less
78 * definition of BEGIN.
80 #define BEGIN yy_start = 1 + 2 *
82 /* Translate the current start state into a value that can be later handed
83 * to BEGIN to return to the state. The YYSTATE alias is for lex
84 * compatibility.
86 #define YY_START ((yy_start - 1) / 2)
87 #define YYSTATE YY_START
89 /* Action number for EOF rule of a given start state. */
90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
92 /* Special action meaning "start processing a new file". */
93 #define YY_NEW_FILE yyrestart( yyin )
95 #define YY_END_OF_BUFFER_CHAR 0
97 /* Size of default input buffer. */
98 #define YY_BUF_SIZE 16384
100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
102 extern int yyleng;
103 extern FILE *yyin, *yyout;
105 #define EOB_ACT_CONTINUE_SCAN 0
106 #define EOB_ACT_END_OF_FILE 1
107 #define EOB_ACT_LAST_MATCH 2
109 /* The funky do-while in the following #define is used to turn the definition
110 * int a single C statement (which needs a semi-colon terminator). This
111 * avoids problems with code like:
113 * if ( condition_holds )
114 * yyless( 5 );
115 * else
116 * do_something_else();
118 * Prior to using the do-while the compiler would get upset at the
119 * "else" because it interpreted the "if" statement as being all
120 * done when it reached the ';' after the yyless() call.
123 /* Return all but the first 'n' matched characters back to the input stream. */
125 #define yyless(n) \
126 do \
128 /* Undo effects of setting up yytext. */ \
129 *yy_cp = yy_hold_char; \
130 YY_RESTORE_YY_MORE_OFFSET \
131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
134 while ( 0 )
136 #define unput(c) yyunput( c, yytext_ptr )
138 /* The following is because we cannot portably get our hands on size_t
139 * (without autoconf's help, which isn't available because we want
140 * flex-generated scanners to compile on their own).
142 typedef unsigned int yy_size_t;
145 struct yy_buffer_state
147 FILE *yy_input_file;
149 char *yy_ch_buf; /* input buffer */
150 char *yy_buf_pos; /* current position in input buffer */
152 /* Size of input buffer in bytes, not including room for EOB
153 * characters.
155 yy_size_t yy_buf_size;
157 /* Number of characters read into yy_ch_buf, not including EOB
158 * characters.
160 int yy_n_chars;
162 /* Whether we "own" the buffer - i.e., we know we created it,
163 * and can realloc() it to grow it, and should free() it to
164 * delete it.
166 int yy_is_our_buffer;
168 /* Whether this is an "interactive" input source; if so, and
169 * if we're using stdio for input, then we want to use getc()
170 * instead of fread(), to make sure we stop fetching input after
171 * each newline.
173 int yy_is_interactive;
175 /* Whether we're considered to be at the beginning of a line.
176 * If so, '^' rules will be active on the next match, otherwise
177 * not.
179 int yy_at_bol;
181 /* Whether to try to fill the input buffer when we reach the
182 * end of it.
184 int yy_fill_buffer;
186 int yy_buffer_status;
187 #define YY_BUFFER_NEW 0
188 #define YY_BUFFER_NORMAL 1
189 /* When an EOF's been seen but there's still some text to process
190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191 * shouldn't try reading from the input source any more. We might
192 * still have a bunch of tokens to match, though, because of
193 * possible backing-up.
195 * When we actually see the EOF, we change the status to "new"
196 * (via yyrestart()), so that the user can continue scanning by
197 * just pointing yyin at a new input file.
199 #define YY_BUFFER_EOF_PENDING 2
202 static YY_BUFFER_STATE yy_current_buffer = 0;
204 /* We provide macros for accessing buffer states in case in the
205 * future we want to put the buffer states in a more general
206 * "scanner state".
208 #define YY_CURRENT_BUFFER yy_current_buffer
211 /* yy_hold_char holds the character lost when yytext is formed. */
212 static char yy_hold_char;
214 static int yy_n_chars; /* number of characters read into yy_ch_buf */
217 int yyleng;
219 /* Points to current character in buffer. */
220 static char *yy_c_buf_p = (char *) 0;
221 static int yy_init = 1; /* whether we need to initialize */
222 static int yy_start = 0; /* start state number */
224 /* Flag which is used to allow yywrap()'s to do buffer switches
225 * instead of setting up a fresh yyin. A bit of a hack ...
227 static int yy_did_buffer_switch_on_eof;
229 void yyrestart YY_PROTO(( FILE *input_file ));
231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232 void yy_load_buffer_state YY_PROTO(( void ));
233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, yy_size_t len ));
243 #define yy_new_buffer yy_create_buffer
245 #define yy_set_interactive(is_interactive) \
247 if ( ! yy_current_buffer ) \
248 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
249 yy_current_buffer->yy_is_interactive = is_interactive; \
252 #define yy_set_bol(at_bol) \
254 if ( ! yy_current_buffer ) \
255 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
256 yy_current_buffer->yy_at_bol = at_bol; \
259 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
261 typedef unsigned char YY_CHAR;
262 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
263 typedef int yy_state_type;
264 extern char *yytext;
265 #define yytext_ptr yytext
267 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
268 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ))
269 #ifdef __GNUC__
270 __attribute__((__unused__))
271 #endif
273 static void yy_flex_free YY_PROTO(( void * ));
275 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
276 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
277 static int yy_get_next_buffer YY_PROTO(( void ));
278 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
280 /* Done after the current pattern has been matched and before the
281 * corresponding action - sets up yytext.
283 #define YY_DO_BEFORE_ACTION \
284 yytext_ptr = yy_bp; \
285 yyleng = (int) (yy_cp - yy_bp); \
286 yy_hold_char = *yy_cp; \
287 *yy_cp = '\0'; \
288 yy_c_buf_p = yy_cp;
290 #define YY_NUM_RULES 165
291 #define YY_END_OF_BUFFER 166
292 static yyconst short int yy_accept[769] =
293 { 0,
294 0, 0, 0, 0, 87, 87, 163, 163, 0, 0,
295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 0, 0, 166, 164,
298 7, 18, 164, 16, 1, 17, 164, 164, 164, 164,
299 15, 108, 100, 101, 108, 93, 108, 107, 108, 108,
300 108, 107, 99, 89, 108, 108, 91, 92, 87, 88,
301 87, 86, 85, 86, 86, 163, 163, 28, 29, 28,
302 28, 28, 28, 28, 28, 31, 30, 32, 31, 113,
303 109, 110, 112, 114, 141, 142, 141, 139, 138, 140,
305 115, 117, 115, 116, 115, 120, 120, 120, 120, 122,
306 124, 122, 122, 122, 122, 123, 151, 155, 151, 154,
307 156, 156, 152, 152, 152, 149, 150, 164, 82, 164,
308 21, 22, 21, 20, 157, 159, 157, 160, 161, 147,
309 147, 148, 147, 147, 147, 147, 147, 147, 147, 81,
310 34, 33, 81, 81, 81, 81, 35, 81, 81, 81,
311 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
312 81, 81, 81, 81, 81, 81, 26, 23, 26, 24,
313 7, 18, 0, 16, 1, 17, 0, 0, 0, 14,
314 8, 0, 0, 0, 0, 4, 5, 0, 2, 15,
316 100, 101, 0, 0, 0, 95, 0, 0, 105, 105,
317 0, 162, 162, 162, 94, 0, 99, 89, 0, 0,
318 0, 91, 92, 104, 90, 0, 87, 88, 86, 85,
319 85, 83, 84, 163, 163, 28, 29, 28, 28, 28,
320 28, 31, 30, 32, 111, 112, 142, 138, 117, 0,
321 118, 119, 124, 121, 151, 155, 0, 153, 0, 144,
322 152, 152, 152, 0, 82, 0, 21, 22, 21, 19,
323 157, 159, 158, 147, 147, 147, 148, 143, 147, 147,
324 147, 34, 33, 0, 80, 0, 0, 81, 81, 81,
325 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
327 81, 81, 81, 36, 81, 81, 81, 81, 81, 81,
328 81, 81, 81, 81, 0, 25, 24, 0, 14, 8,
329 0, 12, 0, 0, 0, 0, 0, 4, 5, 0,
330 6, 0, 96, 0, 97, 0, 0, 105, 105, 0,
331 105, 105, 105, 162, 162, 0, 106, 90, 98, 0,
332 104, 0, 83, 84, 28, 28, 28, 27, 28, 0,
333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
334 0, 152, 152, 143, 143, 147, 147, 0, 0, 81,
335 81, 81, 81, 81, 44, 81, 81, 81, 49, 81,
336 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
338 81, 81, 81, 81, 81, 81, 81, 81, 0, 81,
339 81, 81, 81, 0, 0, 0, 12, 0, 0, 0,
340 0, 0, 0, 4, 5, 0, 105, 105, 105, 105,
341 105, 105, 162, 0, 0, 28, 28, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
343 152, 152, 147, 147, 37, 38, 81, 81, 81, 81,
344 81, 81, 81, 81, 50, 51, 81, 81, 81, 55,
345 81, 81, 81, 81, 81, 81, 60, 81, 81, 81,
346 81, 81, 81, 67, 0, 0, 0, 81, 81, 81,
347 81, 0, 13, 0, 0, 0, 0, 0, 0, 105,
349 105, 105, 105, 105, 105, 0, 0, 28, 28, 137,
350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0, 152, 152, 147, 147, 39, 81, 41, 81,
352 43, 81, 81, 81, 47, 81, 52, 81, 81, 81,
353 81, 81, 81, 81, 81, 81, 62, 81, 81, 65,
354 81, 0, 0, 0, 0, 81, 81, 81, 81, 3,
355 0, 0, 0, 0, 105, 105, 105, 0, 0, 28,
356 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 0, 0, 145, 146, 145, 146, 81, 42, 81,
358 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
360 81, 78, 61, 81, 64, 81, 0, 0, 0, 0,
361 81, 81, 69, 70, 0, 10, 0, 11, 0, 103,
362 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 0, 0, 81, 81, 81, 45, 81, 48,
364 81, 81, 81, 81, 77, 81, 59, 63, 66, 0,
365 0, 0, 0, 79, 81, 0, 102, 0, 0, 0,
366 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
367 81, 81, 46, 81, 81, 56, 81, 81, 0, 0,
368 0, 0, 68, 0, 9, 0, 125, 126, 127, 128,
369 129, 130, 131, 132, 133, 134, 135, 0, 81, 81,
371 81, 81, 81, 81, 81, 0, 0, 0, 0, 0,
372 136, 81, 81, 81, 81, 54, 81, 81, 0, 0,
373 0, 0, 0, 0, 81, 81, 81, 53, 81, 58,
374 0, 0, 0, 0, 0, 0, 81, 81, 81, 81,
375 72, 0, 0, 0, 0, 73, 81, 81, 81, 81,
376 71, 0, 75, 0, 81, 81, 81, 74, 76, 81,
377 81, 81, 81, 81, 81, 57, 40, 0
380 static yyconst int yy_ec[256] =
381 { 0,
382 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
383 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
384 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
385 1, 2, 1, 5, 6, 7, 8, 1, 9, 10,
386 10, 11, 12, 13, 14, 10, 15, 16, 16, 16,
387 16, 16, 16, 16, 17, 18, 19, 20, 1, 21,
388 22, 23, 10, 1, 31, 32, 33, 34, 35, 36,
389 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
390 47, 48, 49, 50, 51, 52, 53, 54, 55, 47,
391 26, 27, 28, 29, 30, 1, 31, 32, 33, 34,
393 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
394 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
395 55, 47, 56, 57, 58, 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,
401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
402 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,
407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
409 1, 1, 1, 1, 1
412 static yyconst int yy_meta[59] =
413 { 0,
414 1, 1, 2, 1, 3, 1, 1, 1, 4, 1,
415 5, 6, 1, 7, 4, 8, 8, 8, 8, 1,
416 1, 1, 1, 9, 10, 1, 11, 12, 1, 13,
417 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
418 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
419 15, 15, 15, 15, 15, 4, 1, 16
422 static yyconst short int yy_base[858] =
423 { 0,
424 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705,
425 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191,
426 178, 188, 344, 347, 375, 0, 125, 131, 147, 216,
427 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716,
428 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696,
429 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126,
430 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716,
431 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695,
432 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716,
433 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716,
435 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716,
436 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716,
437 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356,
438 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0,
439 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716,
440 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579,
441 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587,
442 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612,
443 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0,
444 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0,
446 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657,
447 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592,
448 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0,
449 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598,
450 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773,
451 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716,
452 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716,
453 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596,
454 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582,
455 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584,
457 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125,
458 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0,
459 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723,
460 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876,
461 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570,
462 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009,
463 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013,
464 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557,
465 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536,
466 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532,
468 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526,
469 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914,
470 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539,
471 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058,
472 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081,
473 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495,
474 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0,
475 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487,
476 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475,
477 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496,
479 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716,
480 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085,
481 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460,
482 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414,
483 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0,
484 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297,
485 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0,
486 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207,
487 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221,
488 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149,
490 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137,
491 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716,
492 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098,
493 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0,
494 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938,
495 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881,
496 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784,
497 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744,
498 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716,
499 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720,
501 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671,
502 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608,
503 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0,
504 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228,
505 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948,
506 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689,
507 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279,
508 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439,
509 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576,
510 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718,
512 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236,
513 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977,
514 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123,
515 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255,
516 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388,
517 2404, 2420, 2429, 2437, 2453, 2469, 2485
520 static yyconst short int yy_def[858] =
521 { 0,
522 768, 768, 769, 769, 770, 771, 772, 772, 768, 9,
523 773, 773, 768, 13, 774, 774, 775, 775, 776, 776,
524 777, 777, 778, 778, 768, 25, 779, 779, 780, 780,
525 781, 781, 768, 33, 768, 35, 782, 782, 768, 768,
526 768, 768, 768, 783, 768, 768, 768, 768, 784, 768,
527 785, 768, 768, 768, 768, 768, 768, 768, 768, 786,
528 787, 788, 768, 768, 768, 768, 768, 768, 789, 768,
529 789, 790, 791, 790, 790, 792, 768, 793, 768, 793,
530 768, 794, 794, 794, 793, 795, 768, 768, 795, 768,
531 768, 768, 796, 768, 768, 768, 768, 768, 768, 768,
533 768, 768, 768, 768, 787, 768, 768, 787, 797, 768,
534 768, 768, 798, 768, 787, 768, 799, 768, 799, 768,
535 800, 768, 801, 801, 801, 768, 768, 802, 768, 802,
536 803, 768, 803, 768, 804, 768, 804, 768, 805, 806,
537 806, 768, 806, 806, 768, 806, 807, 807, 807, 768,
538 768, 768, 768, 808, 768, 768, 768, 809, 809, 809,
539 809, 809, 809, 809, 809, 809, 809, 810, 809, 809,
540 809, 809, 809, 809, 809, 809, 768, 768, 811, 768,
541 768, 768, 768, 783, 768, 768, 768, 768, 768, 812,
542 813, 768, 768, 768, 768, 814, 815, 816, 768, 785,
544 768, 768, 768, 768, 817, 768, 768, 768, 818, 818,
545 819, 768, 768, 820, 768, 821, 768, 768, 768, 768,
546 768, 768, 768, 822, 768, 768, 823, 768, 824, 825,
547 825, 826, 827, 828, 768, 829, 768, 830, 830, 830,
548 768, 831, 768, 768, 768, 832, 768, 768, 768, 833,
549 768, 768, 768, 768, 834, 768, 835, 768, 835, 768,
550 836, 836, 836, 837, 768, 837, 838, 768, 838, 768,
551 839, 768, 768, 840, 840, 840, 768, 768, 841, 841,
552 841, 768, 768, 842, 768, 768, 768, 843, 843, 843,
553 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
555 843, 843, 843, 768, 843, 843, 843, 843, 843, 843,
556 843, 843, 843, 843, 844, 768, 768, 768, 845, 846,
557 847, 768, 768, 768, 768, 768, 768, 848, 849, 850,
558 768, 850, 768, 851, 768, 851, 768, 852, 852, 852,
559 768, 852, 852, 768, 853, 854, 768, 768, 768, 768,
560 855, 768, 826, 827, 830, 830, 241, 768, 241, 241,
561 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
562 833, 836, 836, 278, 278, 841, 841, 768, 768, 843,
563 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
564 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
566 843, 843, 843, 843, 843, 843, 843, 843, 768, 843,
567 843, 843, 843, 768, 847, 847, 768, 847, 847, 768,
568 768, 768, 768, 848, 849, 768, 341, 852, 343, 341,
569 852, 343, 768, 768, 768, 830, 830, 360, 768, 833,
570 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
571 836, 836, 841, 841, 768, 768, 843, 843, 843, 843,
572 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
573 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
574 843, 843, 843, 843, 768, 768, 768, 843, 843, 843,
575 843, 768, 768, 847, 847, 768, 768, 768, 768, 427,
577 852, 343, 852, 852, 852, 768, 768, 830, 830, 768,
578 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
579 833, 833, 836, 836, 841, 841, 843, 843, 843, 843,
580 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
581 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
582 843, 768, 768, 768, 768, 843, 843, 843, 843, 768,
583 856, 768, 768, 768, 852, 852, 852, 768, 768, 830,
584 830, 833, 833, 833, 833, 833, 833, 833, 833, 833,
585 833, 833, 833, 836, 836, 841, 841, 843, 843, 843,
586 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
588 843, 843, 843, 843, 843, 843, 768, 768, 768, 768,
589 843, 843, 843, 843, 856, 768, 856, 768, 768, 768,
590 768, 768, 833, 833, 833, 833, 833, 833, 833, 833,
591 833, 833, 833, 833, 843, 843, 843, 843, 843, 843,
592 843, 843, 843, 843, 843, 843, 843, 843, 843, 768,
593 768, 768, 768, 843, 843, 857, 768, 768, 768, 768,
594 768, 768, 768, 768, 768, 768, 768, 768, 833, 843,
595 843, 843, 843, 843, 843, 843, 843, 843, 768, 768,
596 768, 768, 843, 857, 768, 857, 768, 768, 768, 768,
597 768, 768, 768, 768, 768, 768, 768, 768, 843, 843,
599 843, 843, 843, 843, 843, 768, 768, 768, 768, 768,
600 768, 843, 843, 843, 843, 843, 843, 843, 768, 768,
601 768, 768, 768, 768, 843, 843, 843, 843, 843, 843,
602 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
603 768, 768, 768, 768, 768, 768, 843, 843, 843, 843,
604 768, 768, 768, 768, 843, 843, 843, 768, 768, 843,
605 843, 843, 843, 843, 843, 843, 843, 0, 768, 768,
606 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
607 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
608 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
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, 768, 768, 768,
614 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
615 768, 768, 768, 768, 768, 768, 768
618 static yyconst short int yy_nxt[2775] =
619 { 0,
620 40, 41, 42, 43, 40, 40, 40, 40, 40, 40,
621 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
622 40, 40, 40, 44, 44, 40, 40, 40, 40, 44,
623 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
624 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
625 44, 44, 44, 44, 44, 40, 40, 40, 40, 45,
626 46, 47, 40, 48, 40, 49, 40, 40, 40, 40,
627 40, 40, 50, 40, 40, 40, 40, 40, 40, 40,
628 40, 51, 51, 40, 40, 40, 40, 51, 51, 51,
629 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
631 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
632 51, 51, 51, 40, 40, 40, 53, 54, 55, 56,
633 767, 57, 70, 71, 58, 58, 58, 129, 130, 58,
634 73, 70, 74, 129, 130, 59, 75, 87, 88, 89,
635 60, 61, 87, 88, 89, 188, 96, 97, 224, 132,
636 133, 210, 211, 96, 97, 404, 98, 134, 405, 99,
637 99, 99, 99, 98, 213, 213, 99, 99, 99, 99,
638 62, 58, 58, 63, 64, 65, 56, 252, 57, 66,
639 40, 58, 58, 58, 439, 189, 58, 102, 103, 104,
640 40, 252, 67, 102, 103, 104, 225, 60, 61, 275,
642 68, 100, 214, 107, 108, 276, 109, 178, 100, 179,
643 232, 105, 233, 107, 108, 572, 109, 105, 132, 133,
644 180, 180, 180, 180, 265, 266, 134, 62, 58, 58,
645 78, 78, 79, 80, 78, 78, 78, 78, 78, 78,
646 81, 78, 78, 78, 78, 78, 78, 78, 78, 78,
647 78, 78, 78, 82, 82, 78, 78, 78, 78, 82,
648 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
649 82, 82, 82, 82, 82, 82, 82, 83, 82, 82,
650 82, 82, 82, 82, 84, 78, 78, 78, 90, 90,
651 40, 90, 90, 90, 90, 90, 90, 90, 91, 90,
653 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
654 92, 93, 93, 90, 90, 90, 90, 93, 93, 93,
655 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
656 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
657 93, 93, 93, 90, 90, 90, 111, 112, 296, 111,
658 112, 178, 766, 179, 181, 182, 183, 113, 265, 266,
659 113, 185, 186, 187, 180, 180, 180, 180, 297, 114,
660 115, 116, 114, 115, 116, 117, 117, 118, 119, 120,
661 117, 117, 117, 121, 117, 117, 117, 117, 117, 122,
662 117, 117, 117, 117, 117, 117, 117, 117, 123, 123,
664 117, 117, 117, 117, 123, 123, 123, 123, 123, 123,
665 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
666 123, 123, 124, 123, 123, 123, 123, 123, 123, 125,
667 126, 117, 127, 136, 137, 138, 136, 137, 138, 206,
668 206, 207, 215, 215, 215, 215, 248, 248, 248, 248,
669 268, 269, 268, 269, 300, 331, 332, 139, 301, 765,
670 139, 140, 141, 142, 143, 140, 140, 140, 144, 140,
671 140, 145, 140, 140, 140, 146, 140, 140, 140, 140,
672 140, 140, 140, 140, 147, 147, 140, 140, 140, 140,
673 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
675 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
676 147, 147, 147, 147, 147, 149, 140, 140, 140, 150,
677 151, 152, 153, 154, 150, 150, 150, 150, 150, 150,
678 150, 150, 150, 150, 150, 155, 156, 150, 150, 150,
679 157, 150, 150, 150, 150, 150, 150, 150, 150, 158,
680 159, 160, 161, 162, 163, 164, 164, 165, 164, 164,
681 166, 167, 168, 169, 170, 164, 171, 172, 164, 173,
682 174, 175, 164, 176, 150, 150, 150, 191, 201, 202,
683 203, 258, 213, 213, 204, 289, 213, 213, 213, 213,
684 292, 290, 217, 218, 219, 383, 303, 275, 220, 259,
686 192, 188, 193, 276, 193, 221, 304, 335, 336, 293,
687 193, 222, 384, 193, 194, 195, 480, 193, 196, 223,
688 214, 306, 481, 197, 214, 198, 214, 317, 317, 317,
689 317, 307, 764, 205, 308, 181, 182, 183, 185, 186,
690 187, 189, 321, 322, 323, 339, 340, 205, 321, 322,
691 323, 387, 321, 322, 323, 388, 324, 324, 324, 324,
692 342, 342, 324, 324, 324, 324, 324, 324, 324, 324,
693 321, 322, 323, 201, 202, 203, 341, 344, 344, 204,
694 380, 258, 339, 340, 324, 324, 324, 324, 325, 217,
695 218, 219, 265, 266, 381, 220, 326, 439, 343, 259,
697 265, 266, 221, 248, 248, 248, 248, 673, 222, 268,
698 269, 268, 269, 327, 392, 402, 223, 409, 393, 440,
699 410, 416, 417, 418, 403, 331, 332, 763, 205, 411,
700 412, 317, 317, 317, 317, 419, 419, 419, 419, 721,
701 413, 331, 332, 722, 205, 357, 357, 358, 359, 357,
702 357, 357, 357, 357, 357, 360, 357, 357, 357, 357,
703 357, 357, 357, 357, 357, 357, 357, 357, 360, 360,
704 357, 357, 357, 357, 360, 360, 360, 360, 360, 360,
705 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
706 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
708 357, 357, 357, 362, 363, 364, 365, 335, 336, 366,
709 335, 336, 339, 340, 367, 212, 212, 762, 368, 493,
710 494, 369, 761, 370, 417, 494, 371, 374, 374, 760,
711 374, 374, 374, 374, 374, 374, 374, 375, 374, 374,
712 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
713 375, 375, 374, 374, 374, 374, 375, 375, 375, 375,
714 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
715 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
716 375, 375, 374, 374, 374, 420, 322, 323, 427, 439,
717 439, 428, 428, 439, 339, 340, 431, 431, 439, 324,
719 324, 324, 324, 338, 439, 485, 339, 340, 486, 487,
720 439, 441, 443, 439, 442, 420, 322, 323, 450, 552,
721 759, 513, 493, 494, 516, 553, 444, 339, 340, 429,
722 338, 338, 439, 338, 338, 338, 338, 338, 338, 338,
723 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
724 338, 338, 338, 430, 430, 339, 340, 445, 338, 338,
725 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
726 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
727 430, 430, 430, 430, 430, 338, 338, 338, 432, 432,
728 432, 432, 758, 439, 339, 340, 432, 757, 339, 340,
730 495, 417, 418, 432, 432, 432, 432, 432, 432, 360,
731 360, 439, 438, 360, 360, 360, 360, 360, 360, 448,
732 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
733 360, 360, 439, 439, 360, 360, 360, 360, 439, 446,
734 501, 501, 447, 504, 504, 416, 417, 418, 616, 617,
735 339, 340, 638, 339, 340, 515, 439, 439, 449, 419,
736 419, 419, 419, 514, 360, 360, 360, 375, 375, 580,
737 375, 375, 375, 375, 375, 375, 375, 439, 375, 375,
738 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
739 517, 439, 375, 375, 375, 375, 495, 417, 418, 439,
741 439, 511, 439, 512, 439, 439, 339, 340, 209, 439,
742 419, 419, 419, 419, 439, 519, 520, 581, 518, 522,
743 566, 566, 375, 375, 375, 500, 500, 573, 521, 578,
744 339, 340, 500, 500, 500, 500, 500, 500, 500, 500,
745 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
746 500, 500, 500, 500, 500, 500, 500, 502, 502, 502,
747 502, 532, 439, 439, 439, 502, 439, 339, 340, 439,
748 339, 340, 502, 502, 502, 502, 502, 502, 505, 505,
749 505, 505, 439, 533, 582, 576, 505, 574, 579, 534,
750 575, 439, 439, 505, 505, 505, 505, 505, 505, 567,
752 567, 567, 567, 590, 339, 340, 338, 567, 577, 583,
753 439, 439, 625, 591, 567, 567, 567, 567, 567, 567,
754 439, 439, 624, 439, 439, 439, 439, 439, 439, 439,
755 616, 617, 439, 623, 616, 617, 685, 686, 685, 686,
756 756, 628, 626, 632, 708, 755, 634, 685, 686, 302,
757 302, 627, 629, 754, 753, 630, 631, 633, 752, 751,
758 750, 709, 669, 52, 52, 52, 52, 52, 52, 52,
759 52, 52, 52, 52, 52, 52, 52, 52, 52, 69,
760 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
761 69, 69, 69, 69, 69, 72, 72, 72, 72, 72,
763 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
764 72, 76, 76, 76, 76, 76, 76, 76, 76, 76,
765 76, 76, 76, 76, 76, 76, 76, 86, 86, 86,
766 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
767 86, 86, 86, 40, 40, 40, 40, 40, 40, 40,
768 40, 40, 40, 40, 40, 40, 40, 40, 40, 95,
769 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
770 95, 95, 95, 95, 95, 101, 101, 101, 101, 101,
771 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
772 101, 106, 106, 106, 106, 106, 106, 106, 106, 106,
774 106, 106, 106, 106, 106, 106, 106, 110, 110, 110,
775 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
776 110, 110, 110, 128, 128, 128, 128, 128, 128, 128,
777 128, 128, 128, 128, 128, 128, 128, 128, 128, 131,
778 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
779 131, 131, 131, 131, 131, 135, 135, 135, 135, 135,
780 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
781 135, 177, 177, 177, 177, 177, 177, 177, 177, 177,
782 177, 177, 177, 177, 177, 177, 177, 184, 184, 184,
783 184, 749, 748, 184, 184, 184, 190, 190, 190, 190,
785 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
786 190, 200, 200, 200, 200, 747, 746, 200, 200, 200,
787 209, 745, 209, 209, 209, 209, 209, 209, 209, 209,
788 209, 209, 209, 209, 209, 209, 212, 744, 212, 212,
789 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
790 212, 212, 216, 216, 216, 743, 742, 216, 216, 216,
791 227, 741, 227, 227, 227, 227, 227, 227, 227, 227,
792 227, 227, 227, 227, 227, 227, 229, 740, 229, 229,
793 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
794 229, 229, 230, 739, 230, 230, 230, 230, 230, 230,
796 230, 230, 230, 230, 230, 230, 230, 230, 234, 234,
797 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
798 234, 234, 234, 234, 236, 738, 236, 236, 737, 236,
799 236, 236, 736, 735, 236, 236, 734, 733, 732, 236,
800 238, 238, 238, 238, 731, 730, 238, 238, 238, 242,
801 729, 242, 242, 242, 242, 242, 242, 242, 242, 242,
802 242, 242, 242, 242, 242, 246, 246, 246, 246, 728,
803 727, 246, 246, 246, 251, 726, 251, 251, 251, 251,
804 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
805 254, 725, 254, 254, 254, 254, 254, 254, 254, 254,
807 254, 724, 254, 254, 254, 254, 255, 723, 720, 719,
808 255, 255, 255, 255, 718, 717, 255, 255, 257, 716,
809 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
810 257, 257, 257, 257, 261, 261, 261, 261, 715, 714,
811 261, 261, 261, 264, 264, 264, 264, 264, 264, 264,
812 264, 264, 264, 264, 264, 264, 264, 264, 264, 267,
813 267, 267, 267, 713, 267, 267, 267, 267, 267, 267,
814 267, 267, 267, 267, 267, 271, 712, 711, 271, 271,
815 271, 271, 271, 271, 271, 710, 271, 271, 271, 271,
816 271, 273, 707, 273, 273, 273, 273, 273, 273, 273,
818 273, 273, 273, 273, 273, 273, 273, 274, 706, 274,
819 274, 705, 274, 274, 274, 704, 703, 274, 274, 702,
820 701, 700, 274, 279, 279, 279, 279, 699, 698, 279,
821 279, 279, 284, 697, 284, 284, 284, 284, 284, 284,
822 284, 284, 284, 284, 284, 284, 284, 284, 288, 288,
823 696, 288, 288, 695, 694, 693, 288, 288, 315, 692,
824 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
825 315, 315, 315, 315, 319, 691, 319, 319, 319, 319,
826 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
827 320, 690, 320, 320, 320, 320, 320, 320, 320, 320,
829 320, 320, 320, 320, 320, 320, 328, 328, 689, 688,
830 328, 328, 328, 329, 329, 687, 683, 329, 329, 329,
831 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
832 330, 330, 330, 330, 330, 330, 334, 334, 334, 334,
833 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
834 334, 334, 338, 682, 338, 338, 338, 338, 338, 338,
835 338, 338, 338, 681, 338, 338, 338, 338, 209, 680,
836 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
837 209, 209, 209, 209, 345, 345, 679, 678, 677, 676,
838 345, 346, 346, 346, 346, 675, 674, 346, 346, 346,
840 346, 351, 673, 351, 351, 351, 351, 351, 351, 351,
841 351, 351, 351, 351, 351, 351, 351, 227, 672, 227,
842 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
843 227, 227, 227, 229, 671, 229, 229, 229, 229, 229,
844 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
845 670, 230, 230, 230, 230, 230, 230, 230, 230, 230,
846 230, 230, 230, 230, 230, 353, 668, 353, 353, 353,
847 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
848 353, 354, 667, 354, 354, 354, 354, 354, 354, 354,
849 354, 354, 354, 354, 354, 354, 354, 234, 234, 234,
851 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
852 234, 234, 234, 236, 666, 236, 236, 665, 236, 236,
853 236, 664, 663, 236, 236, 662, 661, 660, 236, 238,
854 238, 238, 238, 659, 658, 238, 238, 238, 242, 657,
855 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
856 242, 242, 242, 242, 246, 246, 246, 246, 656, 655,
857 246, 246, 246, 361, 361, 654, 653, 652, 361, 361,
858 255, 651, 650, 649, 255, 255, 255, 255, 648, 647,
859 255, 255, 257, 646, 257, 257, 257, 257, 257, 257,
860 257, 257, 257, 257, 257, 257, 257, 257, 261, 261,
862 261, 261, 645, 644, 261, 261, 261, 264, 264, 264,
863 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
864 264, 264, 264, 267, 267, 267, 267, 643, 267, 267,
865 267, 267, 267, 267, 267, 267, 267, 267, 267, 271,
866 642, 641, 271, 271, 271, 271, 271, 271, 271, 640,
867 271, 271, 271, 271, 271, 274, 639, 274, 274, 638,
868 274, 274, 274, 637, 636, 274, 274, 635, 622, 621,
869 274, 279, 279, 279, 279, 620, 619, 279, 279, 279,
870 284, 618, 284, 284, 284, 284, 284, 284, 284, 284,
871 284, 284, 284, 284, 284, 284, 288, 288, 560, 288,
873 288, 614, 613, 612, 288, 288, 315, 611, 315, 315,
874 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
875 315, 315, 319, 610, 319, 319, 319, 319, 319, 319,
876 319, 319, 319, 319, 319, 319, 319, 319, 320, 609,
877 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
878 320, 320, 320, 320, 415, 415, 415, 415, 415, 415,
879 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
880 424, 424, 424, 424, 608, 607, 424, 424, 424, 425,
881 425, 425, 425, 606, 605, 425, 425, 425, 330, 330,
882 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
884 330, 330, 330, 330, 334, 334, 334, 334, 334, 334,
885 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
886 338, 604, 338, 338, 338, 338, 338, 338, 338, 338,
887 338, 603, 338, 338, 338, 338, 433, 433, 602, 601,
888 600, 599, 433, 346, 346, 346, 346, 598, 597, 346,
889 346, 346, 346, 351, 596, 351, 351, 351, 351, 351,
890 351, 351, 351, 351, 351, 351, 351, 351, 351, 615,
891 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
892 615, 615, 615, 615, 615, 684, 684, 684, 684, 684,
893 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
895 684, 595, 594, 593, 592, 589, 588, 587, 586, 585,
896 584, 571, 570, 569, 568, 565, 564, 563, 562, 561,
897 560, 559, 558, 557, 556, 555, 554, 551, 550, 549,
898 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
899 538, 537, 536, 535, 531, 530, 529, 528, 527, 526,
900 525, 524, 523, 510, 509, 508, 507, 506, 503, 499,
901 498, 497, 496, 492, 491, 490, 489, 488, 484, 483,
902 482, 479, 478, 477, 476, 475, 474, 473, 472, 471,
903 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
904 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
906 439, 437, 436, 435, 434, 347, 426, 423, 422, 421,
907 322, 414, 316, 408, 407, 406, 401, 400, 399, 398,
908 397, 396, 395, 394, 391, 390, 389, 386, 385, 382,
909 379, 378, 285, 282, 377, 376, 278, 373, 372, 243,
910 356, 355, 235, 231, 352, 350, 349, 348, 218, 347,
911 337, 206, 333, 202, 318, 186, 182, 316, 314, 313,
912 312, 311, 310, 309, 305, 299, 298, 295, 294, 291,
913 287, 286, 285, 283, 282, 281, 280, 260, 278, 277,
914 272, 270, 263, 262, 260, 256, 250, 253, 250, 249,
915 247, 245, 244, 243, 241, 240, 239, 237, 235, 228,
917 231, 228, 226, 218, 208, 202, 199, 186, 182, 768,
918 94, 94, 85, 77, 77, 39, 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,
922 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
923 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
924 768, 768, 768, 768
927 static yyconst short int yy_chk[2775] =
928 { 0,
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, 1, 1,
933 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
934 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
935 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
938 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
940 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
941 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
942 765, 3, 5, 5, 3, 3, 3, 27, 27, 3,
943 6, 6, 6, 28, 28, 3, 6, 11, 11, 11,
944 3, 3, 12, 12, 12, 48, 17, 17, 66, 29,
945 29, 60, 60, 18, 18, 310, 17, 29, 310, 17,
946 17, 17, 17, 18, 61, 61, 18, 18, 18, 18,
947 3, 3, 3, 4, 4, 4, 4, 109, 4, 4,
948 21, 4, 4, 4, 511, 48, 4, 19, 19, 19,
949 22, 109, 4, 20, 20, 20, 66, 4, 4, 141,
951 4, 17, 61, 21, 21, 141, 21, 37, 18, 37,
952 75, 19, 75, 22, 22, 511, 22, 20, 30, 30,
953 37, 37, 37, 37, 128, 128, 30, 4, 4, 4,
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, 9, 9,
958 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
959 9, 9, 9, 9, 9, 9, 9, 9, 13, 13,
960 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, 13, 13, 13, 13,
965 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
966 13, 13, 13, 13, 13, 13, 23, 23, 163, 24,
967 24, 38, 764, 38, 41, 41, 41, 23, 130, 130,
968 24, 45, 45, 45, 38, 38, 38, 38, 163, 23,
969 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
970 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
971 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
973 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
974 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
975 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
976 25, 25, 25, 31, 31, 31, 32, 32, 32, 57,
977 57, 57, 62, 62, 62, 62, 99, 99, 99, 99,
978 131, 131, 133, 133, 167, 198, 198, 31, 167, 763,
979 32, 33, 33, 33, 33, 33, 33, 33, 33, 33,
980 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
981 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
982 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
984 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
985 33, 33, 33, 33, 33, 33, 33, 33, 33, 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, 35, 35, 35,
990 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
991 35, 35, 35, 35, 35, 35, 35, 49, 53, 53,
992 53, 121, 105, 105, 53, 158, 108, 108, 115, 115,
993 160, 158, 63, 63, 63, 291, 168, 275, 63, 121,
995 49, 188, 49, 275, 49, 63, 168, 205, 205, 160,
996 49, 63, 291, 49, 49, 49, 405, 49, 49, 63,
997 105, 170, 405, 49, 108, 49, 115, 180, 180, 180,
998 180, 170, 762, 53, 170, 181, 181, 181, 185, 185,
999 185, 188, 192, 192, 192, 209, 209, 63, 193, 193,
1000 193, 294, 194, 194, 194, 294, 192, 192, 192, 192,
1001 211, 211, 193, 193, 193, 193, 194, 194, 194, 194,
1002 195, 195, 195, 201, 201, 201, 210, 213, 213, 201,
1003 289, 257, 210, 210, 195, 195, 195, 195, 192, 217,
1004 217, 217, 264, 264, 289, 217, 194, 362, 211, 257,
1006 266, 266, 217, 248, 248, 248, 248, 761, 217, 267,
1007 267, 269, 269, 195, 298, 309, 217, 314, 298, 362,
1008 314, 321, 321, 321, 309, 330, 330, 760, 201, 314,
1009 314, 317, 317, 317, 317, 321, 321, 321, 321, 708,
1010 314, 332, 332, 708, 217, 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,
1014 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1015 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1017 241, 241, 241, 250, 250, 250, 250, 334, 334, 250,
1018 336, 336, 338, 338, 250, 344, 344, 757, 250, 415,
1019 415, 250, 756, 250, 418, 418, 250, 278, 278, 755,
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, 278, 278, 278, 278, 278,
1024 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1025 278, 278, 278, 278, 278, 324, 324, 324, 339, 363,
1026 364, 340, 340, 365, 339, 339, 342, 342, 366, 324,
1028 324, 324, 324, 340, 371, 409, 342, 342, 409, 409,
1029 441, 363, 365, 444, 364, 420, 420, 420, 371, 485,
1030 754, 441, 494, 494, 444, 485, 366, 504, 504, 340,
1031 341, 341, 367, 341, 341, 341, 341, 341, 341, 341,
1032 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1033 341, 341, 341, 341, 341, 341, 341, 367, 341, 341,
1034 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1035 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
1036 341, 341, 341, 341, 341, 341, 341, 341, 343, 343,
1037 343, 343, 752, 369, 505, 505, 343, 750, 343, 343,
1039 495, 495, 495, 343, 343, 343, 343, 343, 343, 360,
1040 360, 368, 360, 360, 360, 360, 360, 360, 360, 369,
1041 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
1042 360, 360, 370, 442, 360, 360, 360, 360, 443, 368,
1043 428, 428, 368, 431, 431, 416, 416, 416, 561, 561,
1044 428, 428, 749, 431, 431, 443, 519, 445, 370, 416,
1045 416, 416, 416, 442, 360, 360, 360, 375, 375, 519,
1046 375, 375, 375, 375, 375, 375, 375, 440, 375, 375,
1047 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
1048 445, 447, 375, 375, 375, 375, 419, 419, 419, 446,
1050 450, 440, 449, 440, 520, 448, 503, 503, 503, 512,
1051 419, 419, 419, 419, 517, 447, 448, 520, 446, 450,
1052 501, 501, 375, 375, 375, 427, 427, 512, 449, 517,
1053 501, 501, 427, 427, 427, 427, 427, 427, 427, 427,
1054 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1055 427, 427, 427, 427, 427, 427, 427, 429, 429, 429,
1056 429, 462, 514, 513, 518, 429, 515, 566, 566, 521,
1057 567, 567, 429, 429, 429, 429, 429, 429, 432, 432,
1058 432, 432, 516, 462, 521, 515, 432, 513, 518, 462,
1059 514, 574, 522, 432, 432, 432, 432, 432, 432, 502,
1061 502, 502, 502, 532, 565, 565, 565, 502, 516, 522,
1062 572, 573, 574, 532, 502, 502, 502, 502, 502, 502,
1063 575, 576, 573, 577, 578, 579, 580, 583, 581, 582,
1064 615, 615, 634, 572, 617, 617, 656, 656, 684, 684,
1065 748, 577, 575, 581, 681, 747, 583, 686, 686, 810,
1066 810, 576, 578, 745, 744, 579, 580, 582, 743, 742,
1067 740, 681, 634, 769, 769, 769, 769, 769, 769, 769,
1068 769, 769, 769, 769, 769, 769, 769, 769, 769, 770,
1069 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
1070 770, 770, 770, 770, 770, 771, 771, 771, 771, 771,
1072 771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
1073 771, 772, 772, 772, 772, 772, 772, 772, 772, 772,
1074 772, 772, 772, 772, 772, 772, 772, 773, 773, 773,
1075 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
1076 773, 773, 773, 774, 774, 774, 774, 774, 774, 774,
1077 774, 774, 774, 774, 774, 774, 774, 774, 774, 775,
1078 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1079 775, 775, 775, 775, 775, 776, 776, 776, 776, 776,
1080 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
1081 776, 777, 777, 777, 777, 777, 777, 777, 777, 777,
1083 777, 777, 777, 777, 777, 777, 777, 778, 778, 778,
1084 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
1085 778, 778, 778, 779, 779, 779, 779, 779, 779, 779,
1086 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
1087 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
1088 780, 780, 780, 780, 780, 781, 781, 781, 781, 781,
1089 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
1090 781, 782, 782, 782, 782, 782, 782, 782, 782, 782,
1091 782, 782, 782, 782, 782, 782, 782, 783, 783, 783,
1092 783, 739, 738, 783, 783, 783, 784, 784, 784, 784,
1094 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
1095 784, 785, 785, 785, 785, 737, 736, 785, 785, 785,
1096 786, 735, 786, 786, 786, 786, 786, 786, 786, 786,
1097 786, 786, 786, 786, 786, 786, 787, 734, 787, 787,
1098 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
1099 787, 787, 788, 788, 788, 733, 732, 788, 788, 788,
1100 789, 731, 789, 789, 789, 789, 789, 789, 789, 789,
1101 789, 789, 789, 789, 789, 789, 790, 729, 790, 790,
1102 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1103 790, 790, 791, 727, 791, 791, 791, 791, 791, 791,
1105 791, 791, 791, 791, 791, 791, 791, 791, 792, 792,
1106 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1107 792, 792, 792, 792, 793, 726, 793, 793, 725, 793,
1108 793, 793, 724, 723, 793, 793, 722, 721, 720, 793,
1109 794, 794, 794, 794, 719, 718, 794, 794, 794, 795,
1110 717, 795, 795, 795, 795, 795, 795, 795, 795, 795,
1111 795, 795, 795, 795, 795, 796, 796, 796, 796, 715,
1112 714, 796, 796, 796, 797, 713, 797, 797, 797, 797,
1113 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
1114 798, 712, 798, 798, 798, 798, 798, 798, 798, 798,
1116 798, 710, 798, 798, 798, 798, 799, 709, 707, 706,
1117 799, 799, 799, 799, 705, 704, 799, 799, 800, 703,
1118 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
1119 800, 800, 800, 800, 801, 801, 801, 801, 702, 701,
1120 801, 801, 801, 802, 802, 802, 802, 802, 802, 802,
1121 802, 802, 802, 802, 802, 802, 802, 802, 802, 803,
1122 803, 803, 803, 700, 803, 803, 803, 803, 803, 803,
1123 803, 803, 803, 803, 803, 804, 699, 698, 804, 804,
1124 804, 804, 804, 804, 804, 682, 804, 804, 804, 804,
1125 804, 805, 680, 805, 805, 805, 805, 805, 805, 805,
1127 805, 805, 805, 805, 805, 805, 805, 806, 679, 806,
1128 806, 678, 806, 806, 806, 677, 675, 806, 806, 674,
1129 672, 671, 806, 807, 807, 807, 807, 670, 669, 807,
1130 807, 807, 808, 668, 808, 808, 808, 808, 808, 808,
1131 808, 808, 808, 808, 808, 808, 808, 808, 809, 809,
1132 667, 809, 809, 666, 665, 664, 809, 809, 811, 663,
1133 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
1134 811, 811, 811, 811, 812, 662, 812, 812, 812, 812,
1135 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
1136 813, 661, 813, 813, 813, 813, 813, 813, 813, 813,
1138 813, 813, 813, 813, 813, 813, 814, 814, 660, 659,
1139 814, 814, 814, 815, 815, 658, 655, 815, 815, 815,
1140 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
1141 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
1142 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
1143 817, 817, 818, 653, 818, 818, 818, 818, 818, 818,
1144 818, 818, 818, 652, 818, 818, 818, 818, 819, 651,
1145 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
1146 819, 819, 819, 819, 820, 820, 650, 646, 644, 643,
1147 820, 821, 821, 821, 821, 642, 641, 821, 821, 821,
1149 821, 822, 639, 822, 822, 822, 822, 822, 822, 822,
1150 822, 822, 822, 822, 822, 822, 822, 823, 637, 823,
1151 823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
1152 823, 823, 823, 824, 636, 824, 824, 824, 824, 824,
1153 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
1154 635, 825, 825, 825, 825, 825, 825, 825, 825, 825,
1155 825, 825, 825, 825, 825, 826, 633, 826, 826, 826,
1156 826, 826, 826, 826, 826, 826, 826, 826, 826, 826,
1157 826, 827, 632, 827, 827, 827, 827, 827, 827, 827,
1158 827, 827, 827, 827, 827, 827, 827, 828, 828, 828,
1160 828, 828, 828, 828, 828, 828, 828, 828, 828, 828,
1161 828, 828, 828, 829, 631, 829, 829, 630, 829, 829,
1162 829, 629, 628, 829, 829, 627, 626, 625, 829, 830,
1163 830, 830, 830, 624, 623, 830, 830, 830, 831, 621,
1164 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
1165 831, 831, 831, 831, 832, 832, 832, 832, 619, 612,
1166 832, 832, 832, 833, 833, 611, 610, 609, 833, 833,
1167 834, 608, 607, 606, 834, 834, 834, 834, 604, 601,
1168 834, 834, 835, 600, 835, 835, 835, 835, 835, 835,
1169 835, 835, 835, 835, 835, 835, 835, 835, 836, 836,
1171 836, 836, 599, 598, 836, 836, 836, 837, 837, 837,
1172 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
1173 837, 837, 837, 838, 838, 838, 838, 597, 838, 838,
1174 838, 838, 838, 838, 838, 838, 838, 838, 838, 839,
1175 596, 595, 839, 839, 839, 839, 839, 839, 839, 594,
1176 839, 839, 839, 839, 839, 840, 593, 840, 840, 592,
1177 840, 840, 840, 591, 590, 840, 840, 588, 569, 568,
1178 840, 841, 841, 841, 841, 564, 563, 841, 841, 841,
1179 842, 562, 842, 842, 842, 842, 842, 842, 842, 842,
1180 842, 842, 842, 842, 842, 842, 843, 843, 560, 843,
1182 843, 559, 558, 557, 843, 843, 844, 556, 844, 844,
1183 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
1184 844, 844, 845, 555, 845, 845, 845, 845, 845, 845,
1185 845, 845, 845, 845, 845, 845, 845, 845, 846, 554,
1186 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1187 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
1188 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
1189 848, 848, 848, 848, 553, 552, 848, 848, 848, 849,
1190 849, 849, 849, 551, 549, 849, 849, 849, 850, 850,
1191 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
1193 850, 850, 850, 850, 851, 851, 851, 851, 851, 851,
1194 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
1195 852, 548, 852, 852, 852, 852, 852, 852, 852, 852,
1196 852, 546, 852, 852, 852, 852, 853, 853, 545, 544,
1197 543, 542, 853, 854, 854, 854, 854, 541, 540, 854,
1198 854, 854, 854, 855, 539, 855, 855, 855, 855, 855,
1199 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
1200 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
1201 856, 856, 856, 856, 856, 857, 857, 857, 857, 857,
1202 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
1204 857, 538, 536, 534, 533, 530, 528, 526, 525, 524,
1205 523, 509, 508, 507, 506, 500, 499, 498, 497, 496,
1206 492, 491, 490, 489, 488, 487, 486, 483, 482, 481,
1207 480, 479, 478, 476, 475, 474, 473, 472, 471, 469,
1208 468, 467, 464, 463, 461, 460, 459, 458, 457, 454,
1209 453, 452, 451, 439, 437, 436, 435, 434, 430, 426,
1210 423, 422, 421, 414, 413, 412, 411, 410, 408, 407,
1211 406, 404, 403, 402, 401, 400, 399, 398, 397, 396,
1212 395, 394, 393, 392, 391, 390, 388, 387, 386, 384,
1213 383, 382, 381, 380, 379, 378, 377, 376, 373, 372,
1215 361, 356, 355, 352, 350, 346, 337, 327, 326, 325,
1216 323, 318, 315, 313, 312, 311, 308, 307, 306, 305,
1217 303, 301, 300, 299, 297, 296, 295, 293, 292, 290,
1218 287, 286, 284, 282, 281, 280, 276, 263, 262, 243,
1219 240, 239, 234, 231, 226, 222, 221, 220, 219, 216,
1220 208, 207, 204, 203, 189, 187, 183, 179, 176, 175,
1221 174, 173, 172, 171, 169, 166, 165, 162, 161, 159,
1222 156, 155, 154, 153, 151, 149, 148, 146, 144, 143,
1223 137, 134, 125, 124, 122, 119, 114, 112, 107, 103,
1224 97, 92, 89, 87, 85, 84, 83, 80, 76, 74,
1226 73, 71, 67, 65, 59, 55, 50, 47, 43, 39,
1227 16, 15, 10, 8, 7, 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,
1231 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1232 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1233 768, 768, 768, 768
1236 static yy_state_type yy_last_accepting_state;
1237 static char *yy_last_accepting_cpos;
1239 /* The intent behind this definition is that it'll catch
1240 * any uses of REJECT which flex missed.
1242 #define REJECT reject_used_but_not_detected
1243 #define yymore() yymore_used_but_not_detected
1244 #define YY_MORE_ADJ 0
1245 #define YY_RESTORE_YY_MORE_OFFSET
1246 char *yytext;
1247 #line 1 "scan.l"
1248 #define INITIAL 0
1249 /* scan.l - scanner for flex input */
1250 #line 4 "scan.l"
1252 * Copyright (c) 1990 The Regents of the University of California.
1253 * All rights reserved.
1255 * This code is derived from software contributed to Berkeley by
1256 * Vern Paxson.
1258 * The United States Government has rights in this work pursuant
1259 * to contract no. DE-AC03-76SF00098 between the United States
1260 * Department of Energy and the University of California.
1262 * Redistribution and use in source and binary forms are permitted provided
1263 * that: (1) source distributions retain this entire copyright notice and
1264 * comment, and (2) distributions including binaries display the following
1265 * acknowledgement: ``This product includes software developed by the
1266 * University of California, Berkeley and its contributors'' in the
1267 * documentation or other materials provided with the distribution and in
1268 * all advertising materials mentioning features or use of this software.
1269 * Neither the name of the University nor the names of its contributors may
1270 * be used to endorse or promote products derived from this software without
1271 * specific prior written permission.
1272 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1273 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1274 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1277 /* $NetBSD: initscan.c,v 1.17 2003/12/02 06:22:14 lukem Exp $ */
1279 #include "flexdef.h"
1280 #include "parse.h"
1282 #define ACTION_ECHO add_action( yytext )
1283 #define ACTION_IFDEF(def, should_define) \
1285 if ( should_define ) \
1286 action_define( def, 1 ); \
1289 #define MARK_END_OF_PROLOG mark_prolog();
1291 #define YY_DECL \
1292 int flexscan()
1294 #define RETURNCHAR \
1295 yylval = (unsigned char) yytext[0]; \
1296 return CHAR;
1298 #define RETURNNAME \
1299 strlcpy(nmstr, yytext, sizeof(nmstr)); \
1300 return NAME;
1302 #define PUT_BACK_STRING(str, start) \
1303 for ( i = strlen( str ) - 1; i >= start; --i ) \
1304 unput((str)[i])
1306 #define CHECK_REJECT(str) \
1307 if ( all_upper( str ) ) \
1308 reject = true;
1310 #define CHECK_YYMORE(str) \
1311 if ( all_lower( str ) ) \
1312 yymore_used = true;
1313 #define YY_STACK_USED 1
1314 #define YY_NO_TOP_STATE 1
1315 #define SECT2 1
1316 #define SECT2PROLOG 2
1317 #define SECT3 3
1318 #define CODEBLOCK 4
1319 #define PICKUPDEF 5
1320 #define SC 6
1321 #define CARETISBOL 7
1322 #define NUM 8
1323 #define QUOTE 9
1325 #define FIRSTCCL 10
1326 #define CCL 11
1327 #define ACTION 12
1328 #define RECOVER 13
1329 #define COMMENT 14
1330 #define ACTION_STRING 15
1331 #define PERCENT_BRACE_ACTION 16
1333 #define OPTION 17
1334 #define LINEDIR 18
1336 #line 1335 "scan.c"
1338 /* Macros after this point can all be overridden by user definitions in
1339 * section 1.
1342 #ifndef YY_SKIP_YYWRAP
1343 #ifdef __cplusplus
1344 extern "C" int yywrap YY_PROTO(( void ));
1345 #else
1346 extern int yywrap YY_PROTO(( void ));
1347 #endif
1348 #endif
1350 #ifndef YY_NO_UNPUT
1351 static void yyunput YY_PROTO(( int c, char *buf_ptr ))
1352 #ifdef __GNUC__
1353 __attribute__((__unused__))
1354 #endif
1356 #endif
1358 #ifndef yytext_ptr
1359 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, yy_size_t ));
1360 #endif
1362 #ifdef YY_NEED_STRLEN
1363 static yy_size_t yy_flex_strlen YY_PROTO(( yyconst char * ));
1364 #endif
1366 #ifndef YY_NO_INPUT
1367 #ifdef __cplusplus
1368 static int yyinput YY_PROTO(( void ));
1369 #else
1370 static int input YY_PROTO(( void ));
1371 #endif
1372 #endif
1374 #if YY_STACK_USED
1375 static int yy_start_stack_ptr = 0;
1376 static int yy_start_stack_depth = 0;
1377 static int *yy_start_stack = 0;
1378 #ifndef YY_NO_PUSH_STATE
1379 static void yy_push_state YY_PROTO(( int new_state ));
1380 #endif
1381 #ifndef YY_NO_POP_STATE
1382 static void yy_pop_state YY_PROTO(( void ));
1383 #endif
1384 #ifndef YY_NO_TOP_STATE
1385 static int yy_top_state YY_PROTO(( void ));
1386 #endif
1388 #else
1389 #define YY_NO_PUSH_STATE 1
1390 #define YY_NO_POP_STATE 1
1391 #define YY_NO_TOP_STATE 1
1392 #endif
1394 #ifdef YY_MALLOC_DECL
1395 YY_MALLOC_DECL
1396 #else
1397 #if __STDC__
1398 #ifndef __cplusplus
1399 #include <stdlib.h>
1400 #endif
1401 #else
1402 /* Just try to get by without declaring the routines. This will fail
1403 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1404 * or sizeof(void*) != sizeof(int).
1406 #endif
1407 #endif
1409 /* Amount of stuff to slurp up with each read. */
1410 #ifndef YY_READ_BUF_SIZE
1411 #define YY_READ_BUF_SIZE 8192
1412 #endif
1414 /* Copy whatever the last rule matched to the standard output. */
1416 #ifndef ECHO
1417 /* This used to be an fputs(), but since the string might contain NUL's,
1418 * we now use fwrite().
1420 #define ECHO (void) fwrite( yytext, (size_t)yyleng, 1, yyout )
1421 #endif
1423 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1424 * is returned in "result".
1426 #ifndef YY_INPUT
1427 #define YY_INPUT(buf,result,max_size) \
1428 if ( yy_current_buffer->yy_is_interactive ) \
1430 int c = '*', n; \
1431 for ( n = 0; n < max_size && \
1432 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1433 buf[n] = (char) c; \
1434 if ( c == '\n' ) \
1435 buf[n++] = (char) c; \
1436 if ( c == EOF && ferror( yyin ) ) \
1437 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1438 result = n; \
1440 else if ( ((result = fread( buf, 1, (size_t)max_size, yyin )) == 0) \
1441 && ferror( yyin ) ) \
1442 YY_FATAL_ERROR( "input in flex scanner failed" );
1443 #endif
1445 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1446 * we don't want an extra ';' after the "return" because that will cause
1447 * some compilers to complain about unreachable statements.
1449 #ifndef yyterminate
1450 #define yyterminate() return YY_NULL
1451 #endif
1453 /* Number of entries by which start-condition stack grows. */
1454 #ifndef YY_START_STACK_INCR
1455 #define YY_START_STACK_INCR 25
1456 #endif
1458 /* Report a fatal error. */
1459 #ifndef YY_FATAL_ERROR
1460 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1461 #endif
1463 /* Default declaration of generated scanner - a define so the user can
1464 * easily add parameters.
1466 #ifndef YY_DECL
1467 #define YY_DECL int yylex YY_PROTO(( void ))
1468 #endif
1470 /* Code executed at the beginning of each rule, after yytext and yyleng
1471 * have been set up.
1473 #ifndef YY_USER_ACTION
1474 #define YY_USER_ACTION
1475 #endif
1477 /* Code executed at the end of each rule. */
1478 #ifndef YY_BREAK
1479 #define YY_BREAK /*LINTED*/break;
1480 #endif
1482 #define YY_RULE_SETUP \
1483 if ( yyleng > 0 ) \
1484 yy_current_buffer->yy_at_bol = \
1485 (yytext[yyleng - 1] == '\n'); \
1486 YY_USER_ACTION
1488 YY_DECL
1490 register yy_state_type yy_current_state;
1491 register char *yy_cp, *yy_bp;
1492 register int yy_act;
1494 #line 94 "scan.l"
1496 static int bracelevel, didadef, indented_code;
1497 static int doing_rule_action = false;
1498 static int option_sense;
1500 int doing_codeblock = false;
1501 int i;
1502 Char nmdef[MAXLINE];
1505 #line 1504 "scan.c"
1507 #if defined(YY_USES_REJECT) && (defined(__GNUC__) || defined(lint))
1508 /* XXX: shut up `unused label' warning with %options yylineno */
1509 if (/*CONSTCOND*/0 && yy_full_match)
1510 goto find_rule;
1511 #endif
1512 if ( yy_init )
1514 yy_init = 0;
1516 #ifdef YY_USER_INIT
1517 YY_USER_INIT;
1518 #endif
1520 if ( ! yy_start )
1521 yy_start = 1; /* first start state */
1523 if ( ! yyin )
1524 yyin = stdin;
1526 if ( ! yyout )
1527 yyout = stdout;
1529 if ( ! yy_current_buffer )
1530 yy_current_buffer =
1531 yy_create_buffer( yyin, YY_BUF_SIZE );
1533 yy_load_buffer_state();
1536 while (/*CONSTCOND*/ 1 ) /* loops until end-of-file is reached */
1538 yy_cp = yy_c_buf_p;
1540 /* Support of yytext. */
1541 *yy_cp = yy_hold_char;
1543 /* yy_bp points to the position in yy_ch_buf of the start of
1544 * the current run.
1546 yy_bp = yy_cp;
1548 yy_current_state = yy_start;
1549 yy_current_state += YY_AT_BOL();
1550 yy_match:
1553 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1554 if ( yy_accept[yy_current_state] )
1556 yy_last_accepting_state = yy_current_state;
1557 yy_last_accepting_cpos = yy_cp;
1559 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1561 yy_current_state = (int) yy_def[yy_current_state];
1562 if ( yy_current_state >= 769 )
1563 yy_c = yy_meta[(unsigned int) yy_c];
1565 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1566 ++yy_cp;
1568 while ( yy_base[yy_current_state] != 2716 );
1570 yy_find_action:
1571 yy_act = yy_accept[yy_current_state];
1572 if ( yy_act == 0 )
1573 { /* have to back up */
1574 yy_cp = yy_last_accepting_cpos;
1575 yy_current_state = yy_last_accepting_state;
1576 yy_act = yy_accept[yy_current_state];
1579 YY_DO_BEFORE_ACTION;
1582 do_action: /* This label is used only to access EOF actions. */
1585 switch ( yy_act )
1586 { /* beginning of action switch */
1587 case 0: /* must back up */
1588 /* undo the effects of YY_DO_BEFORE_ACTION */
1589 *yy_cp = yy_hold_char;
1590 yy_cp = yy_last_accepting_cpos;
1591 yy_current_state = yy_last_accepting_state;
1592 goto yy_find_action;
1595 case 1:
1596 YY_RULE_SETUP
1597 #line 105 "scan.l"
1598 indented_code = true; BEGIN(CODEBLOCK);
1599 YY_BREAK
1600 case 2:
1601 YY_RULE_SETUP
1602 #line 106 "scan.l"
1603 ACTION_ECHO; yy_push_state( COMMENT );
1604 YY_BREAK
1605 case 3:
1606 YY_RULE_SETUP
1607 #line 107 "scan.l"
1608 yy_push_state( LINEDIR );
1609 YY_BREAK
1610 case 4:
1611 YY_RULE_SETUP
1612 #line 108 "scan.l"
1613 return SCDECL;
1614 YY_BREAK
1615 case 5:
1616 YY_RULE_SETUP
1617 #line 109 "scan.l"
1618 return XSCDECL;
1619 YY_BREAK
1620 case 6:
1621 YY_RULE_SETUP
1622 #line 110 "scan.l"
1624 ++linenum;
1625 line_directive_out( (FILE *) 0, 1 );
1626 indented_code = false;
1627 BEGIN(CODEBLOCK);
1629 YY_BREAK
1630 case 7:
1631 YY_RULE_SETUP
1632 #line 117 "scan.l"
1633 /* discard */
1634 YY_BREAK
1635 case 8:
1636 YY_RULE_SETUP
1637 #line 119 "scan.l"
1639 sectnum = 2;
1640 bracelevel = 0;
1641 mark_defs1();
1642 line_directive_out( (FILE *) 0, 1 );
1643 BEGIN(SECT2PROLOG);
1644 return SECTEND;
1646 YY_BREAK
1647 case 9:
1648 YY_RULE_SETUP
1649 #line 128 "scan.l"
1650 yytext_is_array = false; ++linenum;
1651 YY_BREAK
1652 case 10:
1653 YY_RULE_SETUP
1654 #line 129 "scan.l"
1655 yytext_is_array = true; ++linenum;
1656 YY_BREAK
1657 case 11:
1658 YY_RULE_SETUP
1659 #line 131 "scan.l"
1660 BEGIN(OPTION); return OPTION_OP;
1661 YY_BREAK
1662 case 12:
1663 YY_RULE_SETUP
1664 #line 133 "scan.l"
1665 ++linenum; /* ignore */
1666 YY_BREAK
1667 case 13:
1668 YY_RULE_SETUP
1669 #line 134 "scan.l"
1670 ++linenum; /* ignore */
1671 YY_BREAK
1672 case 14:
1673 YY_RULE_SETUP
1674 #line 136 "scan.l"
1675 synerr( _( "unrecognized '%' directive" ) );
1676 YY_BREAK
1677 case 15:
1678 YY_RULE_SETUP
1679 #line 138 "scan.l"
1681 strlcpy(nmstr, yytext, sizeof(nmstr));
1682 didadef = false;
1683 BEGIN(PICKUPDEF);
1685 YY_BREAK
1686 case 16:
1687 YY_RULE_SETUP
1688 #line 144 "scan.l"
1689 RETURNNAME;
1690 YY_BREAK
1691 case 17:
1692 YY_RULE_SETUP
1693 #line 145 "scan.l"
1694 ++linenum; /* allows blank lines in section 1 */
1695 YY_BREAK
1696 case 18:
1697 YY_RULE_SETUP
1698 #line 146 "scan.l"
1699 ACTION_ECHO; ++linenum; /* maybe end of comment line */
1700 YY_BREAK
1703 case 19:
1704 YY_RULE_SETUP
1705 #line 151 "scan.l"
1706 ACTION_ECHO; yy_pop_state();
1707 YY_BREAK
1708 case 20:
1709 YY_RULE_SETUP
1710 #line 152 "scan.l"
1711 ACTION_ECHO;
1712 YY_BREAK
1713 case 21:
1714 YY_RULE_SETUP
1715 #line 153 "scan.l"
1716 ACTION_ECHO;
1717 YY_BREAK
1718 case 22:
1719 YY_RULE_SETUP
1720 #line 154 "scan.l"
1721 ++linenum; ACTION_ECHO;
1722 YY_BREAK
1725 case 23:
1726 YY_RULE_SETUP
1727 #line 158 "scan.l"
1728 yy_pop_state();
1729 YY_BREAK
1730 case 24:
1731 YY_RULE_SETUP
1732 #line 159 "scan.l"
1733 linenum = myctoi( yytext );
1734 YY_BREAK
1735 case 25:
1736 YY_RULE_SETUP
1737 #line 161 "scan.l"
1739 flex_free( (void *) infilename );
1740 infilename = copy_string( yytext + 1 );
1741 infilename[strlen( infilename ) - 1] = '\0';
1743 YY_BREAK
1744 case 26:
1745 YY_RULE_SETUP
1746 #line 166 "scan.l"
1747 /* ignore spurious characters */
1748 YY_BREAK
1751 case 27:
1752 YY_RULE_SETUP
1753 #line 170 "scan.l"
1754 ++linenum; BEGIN(INITIAL);
1755 YY_BREAK
1756 case 28:
1757 YY_RULE_SETUP
1758 #line 172 "scan.l"
1759 ACTION_ECHO;
1760 YY_BREAK
1761 case 29:
1762 YY_RULE_SETUP
1763 #line 174 "scan.l"
1765 ++linenum;
1766 ACTION_ECHO;
1767 if ( indented_code )
1768 BEGIN(INITIAL);
1770 YY_BREAK
1773 case 30:
1774 YY_RULE_SETUP
1775 #line 184 "scan.l"
1776 /* separates name and definition */
1777 YY_BREAK
1778 case 31:
1779 YY_RULE_SETUP
1780 #line 186 "scan.l"
1782 strlcpy((char *) nmdef, yytext, sizeof(nmdef));
1784 /* Skip trailing whitespace. */
1785 for ( i = strlen( (char *) nmdef ) - 1;
1786 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1787 --i )
1790 nmdef[i + 1] = '\0';
1792 ndinstal( nmstr, nmdef );
1793 didadef = true;
1795 YY_BREAK
1796 case 32:
1797 YY_RULE_SETUP
1798 #line 201 "scan.l"
1800 if ( ! didadef )
1801 synerr( _( "incomplete name definition" ) );
1802 BEGIN(INITIAL);
1803 ++linenum;
1805 YY_BREAK
1808 case 33:
1809 YY_RULE_SETUP
1810 #line 211 "scan.l"
1811 ++linenum; BEGIN(INITIAL);
1812 YY_BREAK
1813 case 34:
1814 YY_RULE_SETUP
1815 #line 212 "scan.l"
1816 option_sense = true;
1817 YY_BREAK
1818 case 35:
1819 YY_RULE_SETUP
1820 #line 214 "scan.l"
1821 return '=';
1822 YY_BREAK
1823 case 36:
1824 YY_RULE_SETUP
1825 #line 216 "scan.l"
1826 option_sense = ! option_sense;
1827 YY_BREAK
1828 case 37:
1829 YY_RULE_SETUP
1830 #line 218 "scan.l"
1831 csize = option_sense ? 128 : 256;
1832 YY_BREAK
1833 case 38:
1834 YY_RULE_SETUP
1835 #line 219 "scan.l"
1836 csize = option_sense ? 256 : 128;
1837 YY_BREAK
1838 case 39:
1839 YY_RULE_SETUP
1840 #line 221 "scan.l"
1841 long_align = option_sense;
1842 YY_BREAK
1843 case 40:
1844 YY_RULE_SETUP
1845 #line 222 "scan.l"
1847 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1849 YY_BREAK
1850 case 41:
1851 YY_RULE_SETUP
1852 #line 225 "scan.l"
1853 yytext_is_array = option_sense;
1854 YY_BREAK
1855 case 42:
1856 YY_RULE_SETUP
1857 #line 226 "scan.l"
1858 backing_up_report = option_sense;
1859 YY_BREAK
1860 case 43:
1861 YY_RULE_SETUP
1862 #line 227 "scan.l"
1863 interactive = ! option_sense;
1864 YY_BREAK
1865 case 44:
1866 YY_RULE_SETUP
1867 #line 228 "scan.l"
1868 C_plus_plus = option_sense;
1869 YY_BREAK
1870 case 45:
1871 YY_RULE_SETUP
1872 #line 229 "scan.l"
1873 caseins = ! option_sense;
1874 YY_BREAK
1875 case 46:
1876 YY_RULE_SETUP
1877 #line 230 "scan.l"
1878 caseins = option_sense;
1879 YY_BREAK
1880 case 47:
1881 YY_RULE_SETUP
1882 #line 231 "scan.l"
1883 ddebug = option_sense;
1884 YY_BREAK
1885 case 48:
1886 YY_RULE_SETUP
1887 #line 232 "scan.l"
1888 spprdflt = ! option_sense;
1889 YY_BREAK
1890 case 49:
1891 YY_RULE_SETUP
1892 #line 233 "scan.l"
1893 useecs = option_sense;
1894 YY_BREAK
1895 case 50:
1896 YY_RULE_SETUP
1897 #line 234 "scan.l"
1899 useecs = usemecs = false;
1900 use_read = fullspd = true;
1902 YY_BREAK
1903 case 51:
1904 YY_RULE_SETUP
1905 #line 238 "scan.l"
1907 useecs = usemecs = false;
1908 use_read = fulltbl = true;
1910 YY_BREAK
1911 case 52:
1912 YY_RULE_SETUP
1913 #line 242 "scan.l"
1914 ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1915 YY_BREAK
1916 case 53:
1917 YY_RULE_SETUP
1918 #line 243 "scan.l"
1919 interactive = option_sense;
1920 YY_BREAK
1921 case 54:
1922 YY_RULE_SETUP
1923 #line 244 "scan.l"
1924 lex_compat = option_sense;
1925 YY_BREAK
1926 case 55:
1927 YY_RULE_SETUP
1928 #line 245 "scan.l"
1930 action_define( "YY_MAIN", option_sense );
1931 do_yywrap = ! option_sense;
1933 YY_BREAK
1934 case 56:
1935 YY_RULE_SETUP
1936 #line 249 "scan.l"
1937 usemecs = option_sense;
1938 YY_BREAK
1939 case 57:
1940 YY_RULE_SETUP
1941 #line 250 "scan.l"
1943 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1945 YY_BREAK
1946 case 58:
1947 YY_RULE_SETUP
1948 #line 253 "scan.l"
1949 performance_report += option_sense ? 1 : -1;
1950 YY_BREAK
1951 case 59:
1952 YY_RULE_SETUP
1953 #line 254 "scan.l"
1954 yytext_is_array = ! option_sense;
1955 YY_BREAK
1956 case 60:
1957 YY_RULE_SETUP
1958 #line 255 "scan.l"
1959 use_read = option_sense;
1960 YY_BREAK
1961 case 61:
1962 YY_RULE_SETUP
1963 #line 256 "scan.l"
1964 reject_really_used = option_sense;
1965 YY_BREAK
1966 case 62:
1967 YY_RULE_SETUP
1968 #line 257 "scan.l"
1969 action_define( "YY_STACK_USED", option_sense );
1970 YY_BREAK
1971 case 63:
1972 YY_RULE_SETUP
1973 #line 258 "scan.l"
1974 do_stdinit = option_sense;
1975 YY_BREAK
1976 case 64:
1977 YY_RULE_SETUP
1978 #line 259 "scan.l"
1979 use_stdout = option_sense;
1980 YY_BREAK
1981 case 65:
1982 YY_RULE_SETUP
1983 #line 260 "scan.l"
1984 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1985 YY_BREAK
1986 case 66:
1987 YY_RULE_SETUP
1988 #line 261 "scan.l"
1989 printstats = option_sense;
1990 YY_BREAK
1991 case 67:
1992 YY_RULE_SETUP
1993 #line 262 "scan.l"
1994 nowarn = ! option_sense;
1995 YY_BREAK
1996 case 68:
1997 YY_RULE_SETUP
1998 #line 263 "scan.l"
1999 do_yylineno = option_sense;
2000 YY_BREAK
2001 case 69:
2002 YY_RULE_SETUP
2003 #line 264 "scan.l"
2004 yymore_really_used = option_sense;
2005 YY_BREAK
2006 case 70:
2007 YY_RULE_SETUP
2008 #line 265 "scan.l"
2009 do_yywrap = option_sense;
2010 YY_BREAK
2011 case 71:
2012 YY_RULE_SETUP
2013 #line 267 "scan.l"
2014 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
2015 YY_BREAK
2016 case 72:
2017 YY_RULE_SETUP
2018 #line 268 "scan.l"
2019 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2020 YY_BREAK
2021 case 73:
2022 YY_RULE_SETUP
2023 #line 269 "scan.l"
2024 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2025 YY_BREAK
2026 case 74:
2027 YY_RULE_SETUP
2028 #line 271 "scan.l"
2029 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2030 YY_BREAK
2031 case 75:
2032 YY_RULE_SETUP
2033 #line 272 "scan.l"
2034 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2035 YY_BREAK
2036 case 76:
2037 YY_RULE_SETUP
2038 #line 273 "scan.l"
2039 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2040 YY_BREAK
2041 case 77:
2042 YY_RULE_SETUP
2043 #line 275 "scan.l"
2044 return OPT_OUTFILE;
2045 YY_BREAK
2046 case 78:
2047 YY_RULE_SETUP
2048 #line 276 "scan.l"
2049 return OPT_PREFIX;
2050 YY_BREAK
2051 case 79:
2052 YY_RULE_SETUP
2053 #line 277 "scan.l"
2054 return OPT_YYCLASS;
2055 YY_BREAK
2056 case 80:
2057 YY_RULE_SETUP
2058 #line 279 "scan.l"
2060 strlcpy(nmstr, yytext + 1, sizeof(nmstr));
2061 nmstr[strlen( nmstr ) - 1] = '\0';
2062 return NAME;
2064 YY_BREAK
2065 case 81:
2066 YY_RULE_SETUP
2067 #line 285 "scan.l"
2069 format_synerr( _( "unrecognized %%option: %s" ),
2070 yytext );
2071 BEGIN(RECOVER);
2073 YY_BREAK
2075 case 82:
2076 YY_RULE_SETUP
2077 #line 292 "scan.l"
2078 ++linenum; BEGIN(INITIAL);
2079 YY_BREAK
2081 case 83:
2082 YY_RULE_SETUP
2083 #line 296 "scan.l"
2084 ++bracelevel; yyless( 2 ); /* eat only %{ */
2085 YY_BREAK
2086 case 84:
2087 YY_RULE_SETUP
2088 #line 297 "scan.l"
2089 --bracelevel; yyless( 2 ); /* eat only %} */
2090 YY_BREAK
2091 case 85:
2092 YY_RULE_SETUP
2093 #line 299 "scan.l"
2094 ACTION_ECHO; /* indented code in prolog */
2095 YY_BREAK
2096 case 86:
2097 YY_RULE_SETUP
2098 #line 301 "scan.l"
2099 { /* non-indented code */
2100 if ( bracelevel <= 0 )
2101 { /* not in %{ ... %} */
2102 yyless( 0 ); /* put it all back */
2103 yy_set_bol( 1 );
2104 mark_prolog();
2105 BEGIN(SECT2);
2107 else
2108 ACTION_ECHO;
2110 YY_BREAK
2111 case 87:
2112 YY_RULE_SETUP
2113 #line 313 "scan.l"
2114 ACTION_ECHO;
2115 YY_BREAK
2116 case 88:
2117 YY_RULE_SETUP
2118 #line 314 "scan.l"
2119 ++linenum; ACTION_ECHO;
2120 YY_BREAK
2121 case YY_STATE_EOF(SECT2PROLOG):
2122 #line 316 "scan.l"
2124 mark_prolog();
2125 sectnum = 0;
2126 yyterminate(); /* to stop the parser */
2128 YY_BREAK
2131 case 89:
2132 YY_RULE_SETUP
2133 #line 324 "scan.l"
2134 ++linenum; /* allow blank lines in section 2 */
2135 YY_BREAK
2136 case 90:
2137 YY_RULE_SETUP
2138 #line 326 "scan.l"
2140 indented_code = false;
2141 doing_codeblock = true;
2142 bracelevel = 1;
2143 BEGIN(PERCENT_BRACE_ACTION);
2145 YY_BREAK
2146 case 91:
2147 YY_RULE_SETUP
2148 #line 333 "scan.l"
2149 BEGIN(SC); return '<';
2150 YY_BREAK
2151 case 92:
2152 YY_RULE_SETUP
2153 #line 334 "scan.l"
2154 return '^';
2155 YY_BREAK
2156 case 93:
2157 YY_RULE_SETUP
2158 #line 335 "scan.l"
2159 BEGIN(QUOTE); return '"';
2160 YY_BREAK
2161 case 94:
2162 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2163 yy_c_buf_p = yy_cp = yy_bp + 1;
2164 YY_DO_BEFORE_ACTION; /* set up yytext again */
2165 YY_RULE_SETUP
2166 #line 336 "scan.l"
2167 BEGIN(NUM); return '{';
2168 YY_BREAK
2169 case 95:
2170 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2171 yy_c_buf_p = yy_cp = yy_bp + 1;
2172 YY_DO_BEFORE_ACTION; /* set up yytext again */
2173 YY_RULE_SETUP
2174 #line 337 "scan.l"
2175 return '$';
2176 YY_BREAK
2177 case 96:
2178 YY_RULE_SETUP
2179 #line 339 "scan.l"
2181 bracelevel = 1;
2182 BEGIN(PERCENT_BRACE_ACTION);
2184 if ( in_rule )
2186 doing_rule_action = true;
2187 in_rule = false;
2188 return '\n';
2191 YY_BREAK
2192 case 97:
2193 YY_RULE_SETUP
2194 #line 350 "scan.l"
2195 continued_action = true; ++linenum; return '\n';
2196 YY_BREAK
2197 case 98:
2198 YY_RULE_SETUP
2199 #line 352 "scan.l"
2201 yyless( yyleng - 2 ); /* put back '/', '*' */
2202 bracelevel = 0;
2203 continued_action = false;
2204 BEGIN(ACTION);
2206 YY_BREAK
2207 case 99:
2208 YY_RULE_SETUP
2209 #line 359 "scan.l"
2210 /* allow indented rules */
2211 YY_BREAK
2212 case 100:
2213 YY_RULE_SETUP
2214 #line 361 "scan.l"
2216 /* This rule is separate from the one below because
2217 * otherwise we get variable trailing context, so
2218 * we can't build the scanner using -{f,F}.
2220 bracelevel = 0;
2221 continued_action = false;
2222 BEGIN(ACTION);
2224 if ( in_rule )
2226 doing_rule_action = true;
2227 in_rule = false;
2228 return '\n';
2231 YY_BREAK
2232 case 101:
2233 YY_RULE_SETUP
2234 #line 378 "scan.l"
2236 bracelevel = 0;
2237 continued_action = false;
2238 BEGIN(ACTION);
2239 unput( '\n' ); /* so <ACTION> sees it */
2241 if ( in_rule )
2243 doing_rule_action = true;
2244 in_rule = false;
2245 return '\n';
2248 YY_BREAK
2249 case 102:
2250 #line 393 "scan.l"
2251 case 103:
2252 YY_RULE_SETUP
2253 #line 393 "scan.l"
2254 return EOF_OP;
2255 YY_BREAK
2256 case 104:
2257 YY_RULE_SETUP
2258 #line 395 "scan.l"
2260 sectnum = 3;
2261 BEGIN(SECT3);
2262 yyterminate(); /* to stop the parser */
2264 YY_BREAK
2265 case 105:
2266 YY_RULE_SETUP
2267 #line 401 "scan.l"
2269 int cclval;
2271 strlcpy(nmstr, yytext, sizeof(nmstr));
2273 /* Check to see if we've already encountered this
2274 * ccl.
2276 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2278 if ( input() != ']' )
2279 synerr( _( "bad character class" ) );
2281 yylval = cclval;
2282 ++cclreuse;
2283 return PREVCCL;
2285 else
2287 /* We fudge a bit. We know that this ccl will
2288 * soon be numbered as lastccl + 1 by cclinit.
2290 cclinstal( (Char *) nmstr, lastccl + 1 );
2292 /* Push back everything but the leading bracket
2293 * so the ccl can be rescanned.
2295 yyless( 1 );
2297 BEGIN(FIRSTCCL);
2298 return '[';
2301 YY_BREAK
2302 case 106:
2303 YY_RULE_SETUP
2304 #line 435 "scan.l"
2306 register Char *nmdefptr;
2308 strlcpy(nmstr, yytext + 1, sizeof(nmstr));
2309 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */
2311 if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2312 format_synerr(
2313 _( "undefined definition {%s}" ),
2314 nmstr );
2316 else
2317 { /* push back name surrounded by ()'s */
2318 int len = strlen( (char *) nmdefptr );
2320 if ( lex_compat || nmdefptr[0] == '^' ||
2321 (len > 0 && nmdefptr[len - 1] == '$') )
2322 { /* don't use ()'s after all */
2323 PUT_BACK_STRING((char *) nmdefptr, 0);
2325 if ( nmdefptr[0] == '^' )
2326 BEGIN(CARETISBOL);
2329 else
2331 unput(')');
2332 PUT_BACK_STRING((char *) nmdefptr, 0);
2333 unput('(');
2337 YY_BREAK
2338 case 107:
2339 YY_RULE_SETUP
2340 #line 468 "scan.l"
2341 return (unsigned char) yytext[0];
2342 YY_BREAK
2343 case 108:
2344 YY_RULE_SETUP
2345 #line 469 "scan.l"
2346 RETURNCHAR;
2347 YY_BREAK
2350 case 109:
2351 YY_RULE_SETUP
2352 #line 474 "scan.l"
2353 return (unsigned char) yytext[0];
2354 YY_BREAK
2355 case 110:
2356 YY_RULE_SETUP
2357 #line 475 "scan.l"
2358 BEGIN(SECT2); return '>';
2359 YY_BREAK
2360 case 111:
2361 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2362 yy_c_buf_p = yy_cp = yy_bp + 1;
2363 YY_DO_BEFORE_ACTION; /* set up yytext again */
2364 YY_RULE_SETUP
2365 #line 476 "scan.l"
2366 BEGIN(CARETISBOL); return '>';
2367 YY_BREAK
2368 case 112:
2369 YY_RULE_SETUP
2370 #line 477 "scan.l"
2371 RETURNNAME;
2372 YY_BREAK
2373 case 113:
2374 YY_RULE_SETUP
2375 #line 478 "scan.l"
2377 format_synerr( _( "bad <start condition>: %s" ),
2378 yytext );
2380 YY_BREAK
2382 case 114:
2383 YY_RULE_SETUP
2384 #line 484 "scan.l"
2385 BEGIN(SECT2); return '^';
2386 YY_BREAK
2388 case 115:
2389 YY_RULE_SETUP
2390 #line 488 "scan.l"
2391 RETURNCHAR;
2392 YY_BREAK
2393 case 116:
2394 YY_RULE_SETUP
2395 #line 489 "scan.l"
2396 BEGIN(SECT2); return '"';
2397 YY_BREAK
2398 case 117:
2399 YY_RULE_SETUP
2400 #line 491 "scan.l"
2402 synerr( _( "missing quote" ) );
2403 BEGIN(SECT2);
2404 ++linenum;
2405 return '"';
2407 YY_BREAK
2410 case 118:
2411 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2412 yy_c_buf_p = yy_cp = yy_bp + 1;
2413 YY_DO_BEFORE_ACTION; /* set up yytext again */
2414 YY_RULE_SETUP
2415 #line 501 "scan.l"
2416 BEGIN(CCL); return '^';
2417 YY_BREAK
2418 case 119:
2419 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2420 yy_c_buf_p = yy_cp = yy_bp + 1;
2421 YY_DO_BEFORE_ACTION; /* set up yytext again */
2422 YY_RULE_SETUP
2423 #line 502 "scan.l"
2424 return '^';
2425 YY_BREAK
2426 case 120:
2427 YY_RULE_SETUP
2428 #line 503 "scan.l"
2429 BEGIN(CCL); RETURNCHAR;
2430 YY_BREAK
2433 case 121:
2434 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2435 yy_c_buf_p = yy_cp = yy_bp + 1;
2436 YY_DO_BEFORE_ACTION; /* set up yytext again */
2437 YY_RULE_SETUP
2438 #line 507 "scan.l"
2439 return '-';
2440 YY_BREAK
2441 case 122:
2442 YY_RULE_SETUP
2443 #line 508 "scan.l"
2444 RETURNCHAR;
2445 YY_BREAK
2446 case 123:
2447 YY_RULE_SETUP
2448 #line 509 "scan.l"
2449 BEGIN(SECT2); return ']';
2450 YY_BREAK
2451 case 124:
2452 YY_RULE_SETUP
2453 #line 510 "scan.l"
2455 synerr( _( "bad character class" ) );
2456 BEGIN(SECT2);
2457 return ']';
2459 YY_BREAK
2462 case 125:
2463 YY_RULE_SETUP
2464 #line 518 "scan.l"
2465 BEGIN(CCL); return CCE_ALNUM;
2466 YY_BREAK
2467 case 126:
2468 YY_RULE_SETUP
2469 #line 519 "scan.l"
2470 BEGIN(CCL); return CCE_ALPHA;
2471 YY_BREAK
2472 case 127:
2473 YY_RULE_SETUP
2474 #line 520 "scan.l"
2475 BEGIN(CCL); return CCE_BLANK;
2476 YY_BREAK
2477 case 128:
2478 YY_RULE_SETUP
2479 #line 521 "scan.l"
2480 BEGIN(CCL); return CCE_CNTRL;
2481 YY_BREAK
2482 case 129:
2483 YY_RULE_SETUP
2484 #line 522 "scan.l"
2485 BEGIN(CCL); return CCE_DIGIT;
2486 YY_BREAK
2487 case 130:
2488 YY_RULE_SETUP
2489 #line 523 "scan.l"
2490 BEGIN(CCL); return CCE_GRAPH;
2491 YY_BREAK
2492 case 131:
2493 YY_RULE_SETUP
2494 #line 524 "scan.l"
2495 BEGIN(CCL); return CCE_LOWER;
2496 YY_BREAK
2497 case 132:
2498 YY_RULE_SETUP
2499 #line 525 "scan.l"
2500 BEGIN(CCL); return CCE_PRINT;
2501 YY_BREAK
2502 case 133:
2503 YY_RULE_SETUP
2504 #line 526 "scan.l"
2505 BEGIN(CCL); return CCE_PUNCT;
2506 YY_BREAK
2507 case 134:
2508 YY_RULE_SETUP
2509 #line 527 "scan.l"
2510 BEGIN(CCL); return CCE_SPACE;
2511 YY_BREAK
2512 case 135:
2513 YY_RULE_SETUP
2514 #line 528 "scan.l"
2515 BEGIN(CCL); return CCE_UPPER;
2516 YY_BREAK
2517 case 136:
2518 YY_RULE_SETUP
2519 #line 529 "scan.l"
2520 BEGIN(CCL); return CCE_XDIGIT;
2521 YY_BREAK
2522 case 137:
2523 YY_RULE_SETUP
2524 #line 530 "scan.l"
2526 format_synerr(
2527 _( "bad character class expression: %s" ),
2528 yytext );
2529 BEGIN(CCL); return CCE_ALNUM;
2531 YY_BREAK
2534 case 138:
2535 YY_RULE_SETUP
2536 #line 539 "scan.l"
2538 yylval = myctoi( yytext );
2539 return NUMBER;
2541 YY_BREAK
2542 case 139:
2543 YY_RULE_SETUP
2544 #line 544 "scan.l"
2545 return ',';
2546 YY_BREAK
2547 case 140:
2548 YY_RULE_SETUP
2549 #line 545 "scan.l"
2550 BEGIN(SECT2); return '}';
2551 YY_BREAK
2552 case 141:
2553 YY_RULE_SETUP
2554 #line 547 "scan.l"
2556 synerr( _( "bad character inside {}'s" ) );
2557 BEGIN(SECT2);
2558 return '}';
2560 YY_BREAK
2561 case 142:
2562 YY_RULE_SETUP
2563 #line 553 "scan.l"
2565 synerr( _( "missing }" ) );
2566 BEGIN(SECT2);
2567 ++linenum;
2568 return '}';
2570 YY_BREAK
2573 case 143:
2574 YY_RULE_SETUP
2575 #line 563 "scan.l"
2576 bracelevel = 0;
2577 YY_BREAK
2578 case 144:
2579 YY_RULE_SETUP
2580 #line 565 "scan.l"
2581 ACTION_ECHO; yy_push_state( COMMENT );
2582 YY_BREAK
2584 case 145:
2585 YY_RULE_SETUP
2586 #line 568 "scan.l"
2588 ACTION_ECHO;
2589 CHECK_REJECT(yytext);
2591 YY_BREAK
2592 case 146:
2593 YY_RULE_SETUP
2594 #line 572 "scan.l"
2596 ACTION_ECHO;
2597 CHECK_YYMORE(yytext);
2599 YY_BREAK
2601 case 147:
2602 YY_RULE_SETUP
2603 #line 578 "scan.l"
2604 ACTION_ECHO;
2605 YY_BREAK
2606 case 148:
2607 YY_RULE_SETUP
2608 #line 579 "scan.l"
2610 ++linenum;
2611 ACTION_ECHO;
2612 if ( bracelevel == 0 ||
2613 (doing_codeblock && indented_code) )
2615 if ( doing_rule_action )
2616 add_action( "\tYY_BREAK\n" );
2618 doing_rule_action = doing_codeblock = false;
2619 BEGIN(SECT2);
2622 YY_BREAK
2624 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2626 case 149:
2627 YY_RULE_SETUP
2628 #line 597 "scan.l"
2629 ACTION_ECHO; ++bracelevel;
2630 YY_BREAK
2631 case 150:
2632 YY_RULE_SETUP
2633 #line 598 "scan.l"
2634 ACTION_ECHO; --bracelevel;
2635 YY_BREAK
2636 case 151:
2637 YY_RULE_SETUP
2638 #line 599 "scan.l"
2639 ACTION_ECHO;
2640 YY_BREAK
2641 case 152:
2642 YY_RULE_SETUP
2643 #line 600 "scan.l"
2644 ACTION_ECHO;
2645 YY_BREAK
2646 case 153:
2647 YY_RULE_SETUP
2648 #line 601 "scan.l"
2649 ACTION_ECHO; /* character constant */
2650 YY_BREAK
2651 case 154:
2652 YY_RULE_SETUP
2653 #line 602 "scan.l"
2654 ACTION_ECHO; BEGIN(ACTION_STRING);
2655 YY_BREAK
2656 case 155:
2657 YY_RULE_SETUP
2658 #line 603 "scan.l"
2660 ++linenum;
2661 ACTION_ECHO;
2662 if ( bracelevel == 0 )
2664 if ( doing_rule_action )
2665 add_action( "\tYY_BREAK\n" );
2667 doing_rule_action = false;
2668 BEGIN(SECT2);
2671 YY_BREAK
2672 case 156:
2673 YY_RULE_SETUP
2674 #line 615 "scan.l"
2675 ACTION_ECHO;
2676 YY_BREAK
2679 case 157:
2680 YY_RULE_SETUP
2681 #line 619 "scan.l"
2682 ACTION_ECHO;
2683 YY_BREAK
2684 case 158:
2685 YY_RULE_SETUP
2686 #line 620 "scan.l"
2687 ACTION_ECHO;
2688 YY_BREAK
2689 case 159:
2690 YY_RULE_SETUP
2691 #line 621 "scan.l"
2692 ++linenum; ACTION_ECHO;
2693 YY_BREAK
2694 case 160:
2695 YY_RULE_SETUP
2696 #line 622 "scan.l"
2697 ACTION_ECHO; BEGIN(ACTION);
2698 YY_BREAK
2699 case 161:
2700 YY_RULE_SETUP
2701 #line 623 "scan.l"
2702 ACTION_ECHO;
2703 YY_BREAK
2705 case YY_STATE_EOF(COMMENT):
2706 case YY_STATE_EOF(ACTION):
2707 case YY_STATE_EOF(ACTION_STRING):
2708 #line 626 "scan.l"
2710 synerr( _( "EOF encountered inside an action" ) );
2711 yyterminate();
2713 YY_BREAK
2714 case 162:
2715 YY_RULE_SETUP
2716 #line 632 "scan.l"
2718 yylval = myesc( (Char *) yytext );
2720 if ( YY_START == FIRSTCCL )
2721 BEGIN(CCL);
2723 return CHAR;
2725 YY_BREAK
2727 case 163:
2728 YY_RULE_SETUP
2729 #line 643 "scan.l"
2730 ECHO;
2731 YY_BREAK
2732 case YY_STATE_EOF(SECT3):
2733 #line 644 "scan.l"
2734 sectnum = 0; yyterminate();
2735 YY_BREAK
2737 case 164:
2738 YY_RULE_SETUP
2739 #line 647 "scan.l"
2740 format_synerr( _( "bad character: %s" ), yytext );
2741 YY_BREAK
2742 case 165:
2743 YY_RULE_SETUP
2744 #line 649 "scan.l"
2745 YY_FATAL_ERROR( "flex scanner jammed" );
2746 YY_BREAK
2747 #line 2746 "scan.c"
2748 case YY_STATE_EOF(INITIAL):
2749 case YY_STATE_EOF(SECT2):
2750 case YY_STATE_EOF(CODEBLOCK):
2751 case YY_STATE_EOF(PICKUPDEF):
2752 case YY_STATE_EOF(SC):
2753 case YY_STATE_EOF(CARETISBOL):
2754 case YY_STATE_EOF(NUM):
2755 case YY_STATE_EOF(QUOTE):
2756 case YY_STATE_EOF(FIRSTCCL):
2757 case YY_STATE_EOF(CCL):
2758 case YY_STATE_EOF(RECOVER):
2759 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2760 case YY_STATE_EOF(OPTION):
2761 case YY_STATE_EOF(LINEDIR):
2762 yyterminate();
2764 case YY_END_OF_BUFFER:
2766 /* Amount of text matched not including the EOB char. */
2767 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2769 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2770 *yy_cp = yy_hold_char;
2771 YY_RESTORE_YY_MORE_OFFSET
2773 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2775 /* We're scanning a new file or input source. It's
2776 * possible that this happened because the user
2777 * just pointed yyin at a new source and called
2778 * yylex(). If so, then we have to assure
2779 * consistency between yy_current_buffer and our
2780 * globals. Here is the right place to do so, because
2781 * this is the first action (other than possibly a
2782 * back-up) that will match for the new input source.
2784 yy_n_chars = yy_current_buffer->yy_n_chars;
2785 yy_current_buffer->yy_input_file = yyin;
2786 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2789 /* Note that here we test for yy_c_buf_p "<=" to the position
2790 * of the first EOB in the buffer, since yy_c_buf_p will
2791 * already have been incremented past the NUL character
2792 * (since all states make transitions on EOB to the
2793 * end-of-buffer state). Contrast this with the test
2794 * in input().
2796 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2797 { /* This was really a NUL. */
2798 yy_state_type yy_next_state;
2800 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2802 yy_current_state = yy_get_previous_state();
2804 /* Okay, we're now positioned to make the NUL
2805 * transition. We couldn't have
2806 * yy_get_previous_state() go ahead and do it
2807 * for us because it doesn't know how to deal
2808 * with the possibility of jamming (and we don't
2809 * want to build jamming into it because then it
2810 * will run more slowly).
2813 yy_next_state = yy_try_NUL_trans( yy_current_state );
2815 yy_bp = yytext_ptr + YY_MORE_ADJ;
2817 if ( yy_next_state )
2819 /* Consume the NUL. */
2820 yy_cp = ++yy_c_buf_p;
2821 yy_current_state = yy_next_state;
2822 goto yy_match;
2825 else
2827 yy_cp = yy_c_buf_p;
2828 goto yy_find_action;
2832 else switch ( yy_get_next_buffer() )
2834 case EOB_ACT_END_OF_FILE:
2836 yy_did_buffer_switch_on_eof = 0;
2838 if ( yywrap() )
2840 /* Note: because we've taken care in
2841 * yy_get_next_buffer() to have set up
2842 * yytext, we can now set up
2843 * yy_c_buf_p so that if some total
2844 * hoser (like flex itself) wants to
2845 * call the scanner after we return the
2846 * YY_NULL, it'll still work - another
2847 * YY_NULL will get returned.
2849 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2851 yy_act = YY_STATE_EOF(YY_START);
2852 goto do_action;
2855 else
2857 if ( ! yy_did_buffer_switch_on_eof )
2858 YY_NEW_FILE;
2860 break;
2863 case EOB_ACT_CONTINUE_SCAN:
2864 yy_c_buf_p =
2865 yytext_ptr + yy_amount_of_matched_text;
2867 yy_current_state = yy_get_previous_state();
2869 yy_cp = yy_c_buf_p;
2870 yy_bp = yytext_ptr + YY_MORE_ADJ;
2871 goto yy_match;
2873 case EOB_ACT_LAST_MATCH:
2874 yy_c_buf_p =
2875 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2877 yy_current_state = yy_get_previous_state();
2879 yy_cp = yy_c_buf_p;
2880 yy_bp = yytext_ptr + YY_MORE_ADJ;
2881 goto yy_find_action;
2883 break;
2886 default:
2887 YY_FATAL_ERROR(
2888 "fatal flex scanner internal error--no action found" );
2889 } /* end of action switch */
2890 } /* end of scanning one token */
2891 } /* end of yylex */
2894 /* yy_get_next_buffer - try to read in a new buffer
2896 * Returns a code representing an action:
2897 * EOB_ACT_LAST_MATCH -
2898 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2899 * EOB_ACT_END_OF_FILE - end of file
2902 static int yy_get_next_buffer()
2904 register char *dest = yy_current_buffer->yy_ch_buf;
2905 register char *source = yytext_ptr;
2906 register int number_to_move, i;
2907 int ret_val;
2909 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2910 YY_FATAL_ERROR(
2911 "fatal flex scanner internal error--end of buffer missed" );
2913 if ( yy_current_buffer->yy_fill_buffer == 0 )
2914 { /* Don't try to fill the buffer, so this is an EOF. */
2915 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2917 /* We matched a single character, the EOB, so
2918 * treat this as a final EOF.
2920 return EOB_ACT_END_OF_FILE;
2923 else
2925 /* We matched some text prior to the EOB, first
2926 * process it.
2928 return EOB_ACT_LAST_MATCH;
2932 /* Try to read more data. */
2934 /* First move last chars to start of buffer. */
2935 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2937 for ( i = 0; i < number_to_move; ++i )
2938 *(dest++) = *(source++);
2940 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2941 /* don't do the read, it's not guaranteed to return an EOF,
2942 * just force an EOF
2944 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2946 else
2948 int num_to_read =
2949 yy_current_buffer->yy_buf_size - number_to_move - 1;
2951 while ( num_to_read <= 0 )
2952 { /* Not enough room in the buffer - grow it. */
2953 #ifdef YY_USES_REJECT
2954 YY_FATAL_ERROR(
2955 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2956 #else
2958 /* just a shorter name for the current buffer */
2959 YY_BUFFER_STATE b = yy_current_buffer;
2961 int yy_c_buf_p_offset =
2962 (int) (yy_c_buf_p - b->yy_ch_buf);
2964 if ( b->yy_is_our_buffer )
2966 int new_size = b->yy_buf_size * 2;
2968 if ( new_size <= 0 )
2969 b->yy_buf_size += b->yy_buf_size / 8;
2970 else
2971 b->yy_buf_size *= 2;
2973 b->yy_ch_buf = (char *)
2974 /* Include room in for 2 EOB chars. */
2975 yy_flex_realloc( (void *) b->yy_ch_buf,
2976 b->yy_buf_size + 2 );
2978 else
2979 /* Can't grow it, we don't own it. */
2980 b->yy_ch_buf = 0;
2982 if ( ! b->yy_ch_buf )
2983 YY_FATAL_ERROR(
2984 "fatal error - scanner input buffer overflow" );
2986 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2988 num_to_read = yy_current_buffer->yy_buf_size -
2989 number_to_move - 1;
2990 #endif
2993 if ( num_to_read > YY_READ_BUF_SIZE )
2994 num_to_read = YY_READ_BUF_SIZE;
2996 /* Read in more data. */
2997 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2998 yy_n_chars, num_to_read );
3000 yy_current_buffer->yy_n_chars = yy_n_chars;
3003 if ( yy_n_chars == 0 )
3005 if ( number_to_move == YY_MORE_ADJ )
3007 ret_val = EOB_ACT_END_OF_FILE;
3008 yyrestart( yyin );
3011 else
3013 ret_val = EOB_ACT_LAST_MATCH;
3014 yy_current_buffer->yy_buffer_status =
3015 YY_BUFFER_EOF_PENDING;
3019 else
3020 ret_val = EOB_ACT_CONTINUE_SCAN;
3022 yy_n_chars += number_to_move;
3023 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3024 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3026 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3028 return ret_val;
3032 /* yy_get_previous_state - get the state just before the EOB char was reached */
3034 static yy_state_type yy_get_previous_state()
3036 register yy_state_type yy_current_state;
3037 register char *yy_cp;
3039 yy_current_state = yy_start;
3040 yy_current_state += YY_AT_BOL();
3042 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3044 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3045 if ( yy_accept[yy_current_state] )
3047 yy_last_accepting_state = yy_current_state;
3048 yy_last_accepting_cpos = yy_cp;
3050 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3052 yy_current_state = (int) yy_def[yy_current_state];
3053 if ( yy_current_state >= 769 )
3054 yy_c = yy_meta[(unsigned int) yy_c];
3056 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3059 return yy_current_state;
3063 /* yy_try_NUL_trans - try to make a transition on the NUL character
3065 * synopsis
3066 * next_state = yy_try_NUL_trans( current_state );
3069 #ifdef YY_USE_PROTOS
3070 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3071 #else
3072 static yy_state_type yy_try_NUL_trans( yy_current_state )
3073 yy_state_type yy_current_state;
3074 #endif
3076 register int yy_is_jam;
3077 register char *yy_cp = yy_c_buf_p;
3079 register YY_CHAR yy_c = 1;
3080 if ( yy_accept[yy_current_state] )
3082 yy_last_accepting_state = yy_current_state;
3083 yy_last_accepting_cpos = yy_cp;
3085 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3087 yy_current_state = (int) yy_def[yy_current_state];
3088 if ( yy_current_state >= 769 )
3089 yy_c = yy_meta[(unsigned int) yy_c];
3091 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3092 yy_is_jam = (yy_current_state == 768);
3094 return yy_is_jam ? 0 : yy_current_state;
3098 #ifndef YY_NO_UNPUT
3099 #ifdef YY_USE_PROTOS
3100 static void yyunput( int c, register char *yy_bp )
3101 #else
3102 static void yyunput( c, yy_bp )
3103 int c;
3104 register char *yy_bp;
3105 #endif
3107 register char *yy_cp = yy_c_buf_p;
3109 /* undo effects of setting up yytext */
3110 *yy_cp = yy_hold_char;
3112 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3113 { /* need to shift things up to make room */
3114 /* +2 for EOB chars. */
3115 register int number_to_move = yy_n_chars + 2;
3116 register char *dest = &yy_current_buffer->yy_ch_buf[
3117 yy_current_buffer->yy_buf_size + 2];
3118 register char *source =
3119 &yy_current_buffer->yy_ch_buf[number_to_move];
3121 while ( source > yy_current_buffer->yy_ch_buf )
3122 *--dest = *--source;
3124 yy_cp += (int) (dest - source);
3125 yy_bp += (int) (dest - source);
3126 yy_current_buffer->yy_n_chars =
3127 yy_n_chars = yy_current_buffer->yy_buf_size;
3129 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3130 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3133 *--yy_cp = (char) c;
3136 yytext_ptr = yy_bp;
3137 yy_hold_char = *yy_cp;
3138 yy_c_buf_p = yy_cp;
3140 #endif /* ifndef YY_NO_UNPUT */
3143 #ifdef __cplusplus
3144 static int yyinput(void)
3145 #else
3146 static int input(void)
3147 #endif
3149 int c;
3151 *yy_c_buf_p = yy_hold_char;
3153 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3155 /* yy_c_buf_p now points to the character we want to return.
3156 * If this occurs *before* the EOB characters, then it's a
3157 * valid NUL; if not, then we've hit the end of the buffer.
3159 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3160 /* This was really a NUL. */
3161 *yy_c_buf_p = '\0';
3163 else
3164 { /* need more input */
3165 int offset = yy_c_buf_p - yytext_ptr;
3166 ++yy_c_buf_p;
3168 switch ( yy_get_next_buffer() )
3170 case EOB_ACT_LAST_MATCH:
3171 /* This happens because yy_g_n_b()
3172 * sees that we've accumulated a
3173 * token and flags that we need to
3174 * try matching the token before
3175 * proceeding. But for input(),
3176 * there's no matching to consider.
3177 * So convert the EOB_ACT_LAST_MATCH
3178 * to EOB_ACT_END_OF_FILE.
3181 /* Reset buffer status. */
3182 yyrestart( yyin );
3184 /*FALLTHROUGH*/
3186 case EOB_ACT_END_OF_FILE:
3188 if ( yywrap() )
3189 return EOF;
3191 if ( ! yy_did_buffer_switch_on_eof )
3192 YY_NEW_FILE;
3193 #ifdef __cplusplus
3194 return yyinput();
3195 #else
3196 return input();
3197 #endif
3200 case EOB_ACT_CONTINUE_SCAN:
3201 yy_c_buf_p = yytext_ptr + offset;
3202 break;
3207 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3208 *yy_c_buf_p = '\0'; /* preserve yytext */
3209 yy_hold_char = *++yy_c_buf_p;
3211 yy_current_buffer->yy_at_bol = (c == '\n');
3213 return c;
3217 #ifdef YY_USE_PROTOS
3218 void yyrestart( FILE *input_file )
3219 #else
3220 void yyrestart( input_file )
3221 FILE *input_file;
3222 #endif
3224 if ( ! yy_current_buffer )
3225 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3227 yy_init_buffer( yy_current_buffer, input_file );
3228 yy_load_buffer_state();
3232 #ifdef YY_USE_PROTOS
3233 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3234 #else
3235 void yy_switch_to_buffer( new_buffer )
3236 YY_BUFFER_STATE new_buffer;
3237 #endif
3239 if ( yy_current_buffer == new_buffer )
3240 return;
3242 if ( yy_current_buffer )
3244 /* Flush out information for old buffer. */
3245 *yy_c_buf_p = yy_hold_char;
3246 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3247 yy_current_buffer->yy_n_chars = yy_n_chars;
3250 yy_current_buffer = new_buffer;
3251 yy_load_buffer_state();
3253 /* We don't actually know whether we did this switch during
3254 * EOF (yywrap()) processing, but the only time this flag
3255 * is looked at is after yywrap() is called, so it's safe
3256 * to go ahead and always set it.
3258 yy_did_buffer_switch_on_eof = 1;
3262 #ifdef YY_USE_PROTOS
3263 void yy_load_buffer_state( void )
3264 #else
3265 void yy_load_buffer_state()
3266 #endif
3268 yy_n_chars = yy_current_buffer->yy_n_chars;
3269 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3270 yyin = yy_current_buffer->yy_input_file;
3271 yy_hold_char = *yy_c_buf_p;
3275 #ifdef YY_USE_PROTOS
3276 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3277 #else
3278 YY_BUFFER_STATE yy_create_buffer( file, size )
3279 FILE *file;
3280 int size;
3281 #endif
3283 YY_BUFFER_STATE b;
3285 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3286 if ( ! b )
3287 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3289 b->yy_buf_size = size;
3291 /* yy_ch_buf has to be 2 characters longer than the size given because
3292 * we need to put in 2 end-of-buffer characters.
3294 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3295 if ( ! b->yy_ch_buf )
3296 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3298 b->yy_is_our_buffer = 1;
3300 yy_init_buffer( b, file );
3302 return b;
3306 #ifdef YY_USE_PROTOS
3307 void yy_delete_buffer( YY_BUFFER_STATE b )
3308 #else
3309 void yy_delete_buffer( b )
3310 YY_BUFFER_STATE b;
3311 #endif
3313 if ( ! b )
3314 return;
3316 if ( b == yy_current_buffer )
3317 yy_current_buffer = (YY_BUFFER_STATE) 0;
3319 if ( b->yy_is_our_buffer )
3320 yy_flex_free( (void *) b->yy_ch_buf );
3322 yy_flex_free( (void *) b );
3326 #ifndef YY_ALWAYS_INTERACTIVE
3327 #ifndef YY_NEVER_INTERACTIVE
3328 #include <unistd.h>
3329 #endif
3330 #endif
3332 #ifdef YY_USE_PROTOS
3333 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3334 #else
3335 void yy_init_buffer( b, file )
3336 YY_BUFFER_STATE b;
3337 FILE *file;
3338 #endif
3342 yy_flush_buffer( b );
3344 b->yy_input_file = file;
3345 b->yy_fill_buffer = 1;
3347 #if YY_ALWAYS_INTERACTIVE
3348 b->yy_is_interactive = 1;
3349 #else
3350 #if YY_NEVER_INTERACTIVE
3351 b->yy_is_interactive = 0;
3352 #else
3353 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3354 #endif
3355 #endif
3359 #ifdef YY_USE_PROTOS
3360 void yy_flush_buffer( YY_BUFFER_STATE b )
3361 #else
3362 void yy_flush_buffer( b )
3363 YY_BUFFER_STATE b;
3364 #endif
3367 if ( ! b )
3368 return;
3370 b->yy_n_chars = 0;
3372 /* We always need two end-of-buffer characters. The first causes
3373 * a transition to the end-of-buffer state. The second causes
3374 * a jam in that state.
3376 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3377 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3379 b->yy_buf_pos = &b->yy_ch_buf[0];
3381 b->yy_at_bol = 1;
3382 b->yy_buffer_status = YY_BUFFER_NEW;
3384 if ( b == yy_current_buffer )
3385 yy_load_buffer_state();
3389 #ifndef YY_NO_SCAN_BUFFER
3390 #ifdef YY_USE_PROTOS
3391 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3392 #else
3393 YY_BUFFER_STATE yy_scan_buffer( base, size )
3394 char *base;
3395 yy_size_t size;
3396 #endif
3398 YY_BUFFER_STATE b;
3400 if ( size < 2 ||
3401 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3402 base[size-1] != YY_END_OF_BUFFER_CHAR )
3403 /* They forgot to leave room for the EOB's. */
3404 return 0;
3406 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3407 if ( ! b )
3408 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3410 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3411 b->yy_buf_pos = b->yy_ch_buf = base;
3412 b->yy_is_our_buffer = 0;
3413 b->yy_input_file = 0;
3414 b->yy_n_chars = b->yy_buf_size;
3415 b->yy_is_interactive = 0;
3416 b->yy_at_bol = 1;
3417 b->yy_fill_buffer = 0;
3418 b->yy_buffer_status = YY_BUFFER_NEW;
3420 yy_switch_to_buffer( b );
3422 return b;
3424 #endif
3427 #ifndef YY_NO_SCAN_STRING
3428 #ifdef YY_USE_PROTOS
3429 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3430 #else
3431 YY_BUFFER_STATE yy_scan_string( yy_str )
3432 yyconst char *yy_str;
3433 #endif
3435 yy_size_t len;
3436 for ( len = 0; yy_str[len]; ++len )
3439 return yy_scan_bytes( yy_str, len );
3441 #endif
3444 #ifndef YY_NO_SCAN_BYTES
3445 #ifdef YY_USE_PROTOS
3446 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, yy_size_t len )
3447 #else
3448 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3449 yyconst char *bytes;
3450 yy_size_t len;
3451 #endif
3453 YY_BUFFER_STATE b;
3454 char *buf;
3455 yy_size_t n, i;
3457 /* Get memory for full buffer, including space for trailing EOB's. */
3458 n = len + 2;
3459 buf = (char *) yy_flex_alloc( n );
3460 if ( ! buf )
3461 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3463 for ( i = 0; i < len; ++i )
3464 buf[i] = bytes[i];
3466 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3468 b = yy_scan_buffer( buf, n );
3469 if ( ! b )
3470 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3472 /* It's okay to grow etc. this buffer, and we should throw it
3473 * away when we're done.
3475 b->yy_is_our_buffer = 1;
3477 return b;
3479 #endif
3482 #ifndef YY_NO_PUSH_STATE
3483 #ifdef YY_USE_PROTOS
3484 static void yy_push_state( int new_state )
3485 #else
3486 static void yy_push_state( new_state )
3487 int new_state;
3488 #endif
3490 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3492 yy_size_t new_size;
3494 yy_start_stack_depth += YY_START_STACK_INCR;
3495 new_size = yy_start_stack_depth * sizeof( int );
3497 if ( ! yy_start_stack )
3498 yy_start_stack = (int *) yy_flex_alloc( new_size );
3500 else
3501 yy_start_stack = (int *) yy_flex_realloc(
3502 (void *) yy_start_stack, new_size );
3504 if ( ! yy_start_stack )
3505 YY_FATAL_ERROR(
3506 "out of memory expanding start-condition stack" );
3509 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3511 BEGIN(new_state);
3513 #endif
3516 #ifndef YY_NO_POP_STATE
3517 static void yy_pop_state()
3519 if ( --yy_start_stack_ptr < 0 )
3520 YY_FATAL_ERROR( "start-condition stack underflow" );
3522 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3524 #endif
3527 #ifndef YY_NO_TOP_STATE
3528 static int yy_top_state()
3530 return yy_start_stack[yy_start_stack_ptr - 1];
3532 #endif
3534 #ifndef YY_EXIT_FAILURE
3535 #define YY_EXIT_FAILURE 2
3536 #endif
3538 #ifdef YY_USE_PROTOS
3539 static void yy_fatal_error( yyconst char msg[] )
3540 #else
3541 static void yy_fatal_error( msg )
3542 char msg[];
3543 #endif
3545 (void) fprintf( stderr, "%s\n", msg );
3546 exit( YY_EXIT_FAILURE );
3551 /* Redefine yyless() so it works in section 3 code. */
3553 #undef yyless
3554 #define yyless(n) \
3555 do \
3557 /* Undo effects of setting up yytext. */ \
3558 yytext[yyleng] = yy_hold_char; \
3559 yy_c_buf_p = yytext + n; \
3560 yy_hold_char = *yy_c_buf_p; \
3561 *yy_c_buf_p = '\0'; \
3562 yyleng = n; \
3564 while ( 0 )
3567 /* Internal utility routines. */
3569 #ifndef yytext_ptr
3570 #ifdef YY_USE_PROTOS
3571 static void yy_flex_strncpy( char *s1, yyconst char *s2, yy_size_t n )
3572 #else
3573 static void yy_flex_strncpy( s1, s2, n )
3574 char *s1;
3575 yyconst char *s2;
3576 yy_size_t n;
3577 #endif
3579 register yy_size_t i;
3580 for ( i = 0; i < n; ++i )
3581 s1[i] = s2[i];
3583 #endif
3585 #ifdef YY_NEED_STRLEN
3586 #ifdef YY_USE_PROTOS
3587 static yy_size_t yy_flex_strlen( yyconst char *s )
3588 #else
3589 static yy_size_t yy_flex_strlen( s )
3590 yyconst char *s;
3591 #endif
3593 register yy_size_t n;
3594 for ( n = 0; s[n]; ++n )
3597 return n;
3599 #endif
3602 #ifdef YY_USE_PROTOS
3603 static void *yy_flex_alloc( yy_size_t size )
3604 #else
3605 static void *yy_flex_alloc( size )
3606 yy_size_t size;
3607 #endif
3609 return (void *) malloc( size );
3612 #ifdef YY_USE_PROTOS
3613 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3614 #else
3615 static void *yy_flex_realloc( ptr, size )
3616 void *ptr;
3617 yy_size_t size;
3618 #endif
3620 /* The cast to (char *) in the following accommodates both
3621 * implementations that use char* generic pointers, and those
3622 * that use void* generic pointers. It works with the latter
3623 * because both ANSI C and C++ allow castless assignment from
3624 * any pointer type to void*, and deal with argument conversions
3625 * as though doing an assignment.
3627 return (void *) realloc( (char *) ptr, size );
3630 #ifdef YY_USE_PROTOS
3631 static void yy_flex_free( void *ptr )
3632 #else
3633 static void yy_flex_free( ptr )
3634 void *ptr;
3635 #endif
3637 free( ptr );
3640 #if YY_MAIN
3641 int main()
3643 yylex();
3644 return 0;
3646 #endif
3647 #line 649 "scan.l"
3651 int yywrap()
3653 if ( --num_input_files > 0 )
3655 set_input_file( *++input_files );
3656 return 0;
3659 else
3660 return 1;
3664 /* set_input_file - open the given file (if NULL, stdin) for scanning */
3666 void set_input_file( file )
3667 char *file;
3669 if ( file && strcmp( file, "-" ) )
3671 infilename = copy_string( file );
3672 yyin = fopen( infilename, "r" );
3674 if ( yyin == NULL )
3675 lerrsf( _( "can't open %s" ), file );
3678 else
3680 yyin = stdin;
3681 infilename = copy_string( "<stdin>" );
3684 linenum = 1;
3688 /* Wrapper routines for accessing the scanner's malloc routines. */
3690 void *flex_alloc( size )
3691 size_t size;
3693 return (void *) malloc( size );
3696 void *flex_realloc( ptr, size )
3697 void *ptr;
3698 size_t size;
3700 return (void *) realloc( ptr, size );
3703 void flex_free( ptr )
3704 void *ptr;
3706 if ( ptr )
3707 free( ptr );