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