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