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