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