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