initscan.c revision 16519
1#line 2 "scan.c"
2/* A lexical scanner generated by flex */
3
4/* Scanner skeleton version:
5 * $Header: /home/ncvs/src/usr.bin/lex/initscan.c,v 1.1.1.2 1996/06/19 20:26:12 nate 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 *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/ncvs/src/usr.bin/lex/initscan.c,v 1.1.1.2 1996/06/19 20:26:12 nate Exp $ */
1274
1275#include "flexdef.h"
1276#include "parse.h"
1277
1278#define ACTION_ECHO add_action( yytext )
1279#define ACTION_IFDEF(def, should_define) \
1280	{ \
1281	if ( should_define ) \
1282		action_define( def, 1 ); \
1283	}
1284
1285#define MARK_END_OF_PROLOG mark_prolog();
1286
1287#define YY_DECL \
1288	int flexscan()
1289
1290#define RETURNCHAR \
1291	yylval = (unsigned char) yytext[0]; \
1292	return CHAR;
1293
1294#define RETURNNAME \
1295	strcpy( nmstr, yytext ); \
1296	return NAME;
1297
1298#define PUT_BACK_STRING(str, start) \
1299	for ( i = strlen( str ) - 1; i >= start; --i ) \
1300		unput((str)[i])
1301
1302#define CHECK_REJECT(str) \
1303	if ( all_upper( str ) ) \
1304		reject = true;
1305
1306#define CHECK_YYMORE(str) \
1307	if ( all_lower( str ) ) \
1308		yymore_used = true;
1309#define YY_STACK_USED 1
1310#define YY_NO_TOP_STATE 1
1311#define SECT2 1
1312#define SECT2PROLOG 2
1313#define SECT3 3
1314#define CODEBLOCK 4
1315#define PICKUPDEF 5
1316#define SC 6
1317#define CARETISBOL 7
1318#define NUM 8
1319#define QUOTE 9
1320
1321#define FIRSTCCL 10
1322#define CCL 11
1323#define ACTION 12
1324#define RECOVER 13
1325#define COMMENT 14
1326#define ACTION_STRING 15
1327#define PERCENT_BRACE_ACTION 16
1328
1329#define OPTION 17
1330#define LINEDIR 18
1331
1332#line 1333 "scan.c"
1333
1334/* Macros after this point can all be overridden by user definitions in
1335 * section 1.
1336 */
1337
1338#ifndef YY_SKIP_YYWRAP
1339#ifdef __cplusplus
1340extern "C" int yywrap YY_PROTO(( void ));
1341#else
1342extern int yywrap YY_PROTO(( void ));
1343#endif
1344#endif
1345
1346#ifndef YY_NO_UNPUT
1347static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1348#endif
1349
1350#ifndef yytext_ptr
1351static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1352#endif
1353
1354#ifdef YY_NEED_STRLEN
1355static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1356#endif
1357
1358#ifndef YY_NO_INPUT
1359#ifdef __cplusplus
1360static int yyinput YY_PROTO(( void ));
1361#else
1362static int input YY_PROTO(( void ));
1363#endif
1364#endif
1365
1366#if YY_STACK_USED
1367static int yy_start_stack_ptr = 0;
1368static int yy_start_stack_depth = 0;
1369static int *yy_start_stack = 0;
1370#ifndef YY_NO_PUSH_STATE
1371static void yy_push_state YY_PROTO(( int new_state ));
1372#endif
1373#ifndef YY_NO_POP_STATE
1374static void yy_pop_state YY_PROTO(( void ));
1375#endif
1376#ifndef YY_NO_TOP_STATE
1377static int yy_top_state YY_PROTO(( void ));
1378#endif
1379
1380#else
1381#define YY_NO_PUSH_STATE 1
1382#define YY_NO_POP_STATE 1
1383#define YY_NO_TOP_STATE 1
1384#endif
1385
1386#ifdef YY_MALLOC_DECL
1387YY_MALLOC_DECL
1388#else
1389#if __STDC__
1390#ifndef __cplusplus
1391#include <stdlib.h>
1392#endif
1393#else
1394/* Just try to get by without declaring the routines.  This will fail
1395 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1396 * or sizeof(void*) != sizeof(int).
1397 */
1398#endif
1399#endif
1400
1401/* Amount of stuff to slurp up with each read. */
1402#ifndef YY_READ_BUF_SIZE
1403#define YY_READ_BUF_SIZE 8192
1404#endif
1405
1406/* Copy whatever the last rule matched to the standard output. */
1407
1408#ifndef ECHO
1409/* This used to be an fputs(), but since the string might contain NUL's,
1410 * we now use fwrite().
1411 */
1412#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1413#endif
1414
1415/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1416 * is returned in "result".
1417 */
1418#ifndef YY_INPUT
1419#define YY_INPUT(buf,result,max_size) \
1420	if ( yy_current_buffer->yy_is_interactive ) \
1421		{ \
1422		int c = '*', n; \
1423		for ( n = 0; n < max_size && \
1424			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1425			buf[n] = (char) c; \
1426		if ( c == '\n' ) \
1427			buf[n++] = (char) c; \
1428		if ( c == EOF && ferror( yyin ) ) \
1429			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1430		result = n; \
1431		} \
1432	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1433		  && ferror( yyin ) ) \
1434		YY_FATAL_ERROR( "input in flex scanner failed" );
1435#endif
1436
1437/* No semi-colon after return; correct usage is to write "yyterminate();" -
1438 * we don't want an extra ';' after the "return" because that will cause
1439 * some compilers to complain about unreachable statements.
1440 */
1441#ifndef yyterminate
1442#define yyterminate() return YY_NULL
1443#endif
1444
1445/* Number of entries by which start-condition stack grows. */
1446#ifndef YY_START_STACK_INCR
1447#define YY_START_STACK_INCR 25
1448#endif
1449
1450/* Report a fatal error. */
1451#ifndef YY_FATAL_ERROR
1452#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1453#endif
1454
1455/* Default declaration of generated scanner - a define so the user can
1456 * easily add parameters.
1457 */
1458#ifndef YY_DECL
1459#define YY_DECL int yylex YY_PROTO(( void ))
1460#endif
1461
1462/* Code executed at the beginning of each rule, after yytext and yyleng
1463 * have been set up.
1464 */
1465#ifndef YY_USER_ACTION
1466#define YY_USER_ACTION
1467#endif
1468
1469/* Code executed at the end of each rule. */
1470#ifndef YY_BREAK
1471#define YY_BREAK break;
1472#endif
1473
1474#define YY_RULE_SETUP \
1475	if ( yyleng > 0 ) \
1476		yy_current_buffer->yy_at_bol = \
1477				(yytext[yyleng - 1] == '\n'); \
1478	YY_USER_ACTION
1479
1480YY_DECL
1481	{
1482	register yy_state_type yy_current_state;
1483	register char *yy_cp, *yy_bp;
1484	register int yy_act;
1485
1486#line 94 "scan.l"
1487
1488	static int bracelevel, didadef, indented_code;
1489	static int doing_rule_action = false;
1490	static int option_sense;
1491
1492	int doing_codeblock = false;
1493	int i;
1494	Char nmdef[MAXLINE], myesc();
1495
1496
1497#line 1498 "scan.c"
1498
1499	if ( yy_init )
1500		{
1501		yy_init = 0;
1502
1503#ifdef YY_USER_INIT
1504		YY_USER_INIT;
1505#endif
1506
1507		if ( ! yy_start )
1508			yy_start = 1;	/* first start state */
1509
1510		if ( ! yyin )
1511			yyin = stdin;
1512
1513		if ( ! yyout )
1514			yyout = stdout;
1515
1516		if ( ! yy_current_buffer )
1517			yy_current_buffer =
1518				yy_create_buffer( yyin, YY_BUF_SIZE );
1519
1520		yy_load_buffer_state();
1521		}
1522
1523	while ( 1 )		/* loops until end-of-file is reached */
1524		{
1525		yy_cp = yy_c_buf_p;
1526
1527		/* Support of yytext. */
1528		*yy_cp = yy_hold_char;
1529
1530		/* yy_bp points to the position in yy_ch_buf of the start of
1531		 * the current run.
1532		 */
1533		yy_bp = yy_cp;
1534
1535		yy_current_state = yy_start;
1536		yy_current_state += YY_AT_BOL();
1537yy_match:
1538		do
1539			{
1540			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1541			if ( yy_accept[yy_current_state] )
1542				{
1543				yy_last_accepting_state = yy_current_state;
1544				yy_last_accepting_cpos = yy_cp;
1545				}
1546			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1547				{
1548				yy_current_state = (int) yy_def[yy_current_state];
1549				if ( yy_current_state >= 769 )
1550					yy_c = yy_meta[(unsigned int) yy_c];
1551				}
1552			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1553			++yy_cp;
1554			}
1555		while ( yy_base[yy_current_state] != 2716 );
1556
1557yy_find_action:
1558		yy_act = yy_accept[yy_current_state];
1559		if ( yy_act == 0 )
1560			{ /* have to back up */
1561			yy_cp = yy_last_accepting_cpos;
1562			yy_current_state = yy_last_accepting_state;
1563			yy_act = yy_accept[yy_current_state];
1564			}
1565
1566		YY_DO_BEFORE_ACTION;
1567
1568
1569do_action:	/* This label is used only to access EOF actions. */
1570
1571
1572		switch ( yy_act )
1573	{ /* beginning of action switch */
1574			case 0: /* must back up */
1575			/* undo the effects of YY_DO_BEFORE_ACTION */
1576			*yy_cp = yy_hold_char;
1577			yy_cp = yy_last_accepting_cpos;
1578			yy_current_state = yy_last_accepting_state;
1579			goto yy_find_action;
1580
1581
1582case 1:
1583YY_RULE_SETUP
1584#line 105 "scan.l"
1585indented_code = true; BEGIN(CODEBLOCK);
1586	YY_BREAK
1587case 2:
1588YY_RULE_SETUP
1589#line 106 "scan.l"
1590ACTION_ECHO; yy_push_state( COMMENT );
1591	YY_BREAK
1592case 3:
1593YY_RULE_SETUP
1594#line 107 "scan.l"
1595yy_push_state( LINEDIR );
1596	YY_BREAK
1597case 4:
1598YY_RULE_SETUP
1599#line 108 "scan.l"
1600return SCDECL;
1601	YY_BREAK
1602case 5:
1603YY_RULE_SETUP
1604#line 109 "scan.l"
1605return XSCDECL;
1606	YY_BREAK
1607case 6:
1608YY_RULE_SETUP
1609#line 110 "scan.l"
1610{
1611			++linenum;
1612			line_directive_out( (FILE *) 0, 1 );
1613			indented_code = false;
1614			BEGIN(CODEBLOCK);
1615			}
1616	YY_BREAK
1617case 7:
1618YY_RULE_SETUP
1619#line 117 "scan.l"
1620/* discard */
1621	YY_BREAK
1622case 8:
1623YY_RULE_SETUP
1624#line 119 "scan.l"
1625{
1626			sectnum = 2;
1627			bracelevel = 0;
1628			mark_defs1();
1629			line_directive_out( (FILE *) 0, 1 );
1630			BEGIN(SECT2PROLOG);
1631			return SECTEND;
1632			}
1633	YY_BREAK
1634case 9:
1635YY_RULE_SETUP
1636#line 128 "scan.l"
1637yytext_is_array = false; ++linenum;
1638	YY_BREAK
1639case 10:
1640YY_RULE_SETUP
1641#line 129 "scan.l"
1642yytext_is_array = true; ++linenum;
1643	YY_BREAK
1644case 11:
1645YY_RULE_SETUP
1646#line 131 "scan.l"
1647BEGIN(OPTION); return OPTION_OP;
1648	YY_BREAK
1649case 12:
1650YY_RULE_SETUP
1651#line 133 "scan.l"
1652++linenum; /* ignore */
1653	YY_BREAK
1654case 13:
1655YY_RULE_SETUP
1656#line 134 "scan.l"
1657++linenum;	/* ignore */
1658	YY_BREAK
1659case 14:
1660YY_RULE_SETUP
1661#line 136 "scan.l"
1662synerr( _( "unrecognized '%' directive" ) );
1663	YY_BREAK
1664case 15:
1665YY_RULE_SETUP
1666#line 138 "scan.l"
1667{
1668			strcpy( nmstr, yytext );
1669			didadef = false;
1670			BEGIN(PICKUPDEF);
1671			}
1672	YY_BREAK
1673case 16:
1674YY_RULE_SETUP
1675#line 144 "scan.l"
1676RETURNNAME;
1677	YY_BREAK
1678case 17:
1679YY_RULE_SETUP
1680#line 145 "scan.l"
1681++linenum; /* allows blank lines in section 1 */
1682	YY_BREAK
1683case 18:
1684YY_RULE_SETUP
1685#line 146 "scan.l"
1686ACTION_ECHO; ++linenum; /* maybe end of comment line */
1687	YY_BREAK
1688
1689
1690case 19:
1691YY_RULE_SETUP
1692#line 151 "scan.l"
1693ACTION_ECHO; yy_pop_state();
1694	YY_BREAK
1695case 20:
1696YY_RULE_SETUP
1697#line 152 "scan.l"
1698ACTION_ECHO;
1699	YY_BREAK
1700case 21:
1701YY_RULE_SETUP
1702#line 153 "scan.l"
1703ACTION_ECHO;
1704	YY_BREAK
1705case 22:
1706YY_RULE_SETUP
1707#line 154 "scan.l"
1708++linenum; ACTION_ECHO;
1709	YY_BREAK
1710
1711
1712case 23:
1713YY_RULE_SETUP
1714#line 158 "scan.l"
1715yy_pop_state();
1716	YY_BREAK
1717case 24:
1718YY_RULE_SETUP
1719#line 159 "scan.l"
1720linenum = myctoi( yytext );
1721	YY_BREAK
1722case 25:
1723YY_RULE_SETUP
1724#line 161 "scan.l"
1725{
1726			flex_free( (void *) infilename );
1727			infilename = copy_string( yytext + 1 );
1728			infilename[strlen( infilename ) - 1] = '\0';
1729			}
1730	YY_BREAK
1731case 26:
1732YY_RULE_SETUP
1733#line 166 "scan.l"
1734/* ignore spurious characters */
1735	YY_BREAK
1736
1737
1738case 27:
1739YY_RULE_SETUP
1740#line 170 "scan.l"
1741++linenum; BEGIN(INITIAL);
1742	YY_BREAK
1743case 28:
1744YY_RULE_SETUP
1745#line 172 "scan.l"
1746ACTION_ECHO;
1747	YY_BREAK
1748case 29:
1749YY_RULE_SETUP
1750#line 174 "scan.l"
1751{
1752			++linenum;
1753			ACTION_ECHO;
1754			if ( indented_code )
1755				BEGIN(INITIAL);
1756			}
1757	YY_BREAK
1758
1759
1760case 30:
1761YY_RULE_SETUP
1762#line 184 "scan.l"
1763/* separates name and definition */
1764	YY_BREAK
1765case 31:
1766YY_RULE_SETUP
1767#line 186 "scan.l"
1768{
1769			strcpy( (char *) nmdef, yytext );
1770
1771			/* Skip trailing whitespace. */
1772			for ( i = strlen( (char *) nmdef ) - 1;
1773			      i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
1774			      --i )
1775				;
1776
1777			nmdef[i + 1] = '\0';
1778
1779			ndinstal( nmstr, nmdef );
1780			didadef = true;
1781			}
1782	YY_BREAK
1783case 32:
1784YY_RULE_SETUP
1785#line 201 "scan.l"
1786{
1787			if ( ! didadef )
1788				synerr( _( "incomplete name definition" ) );
1789			BEGIN(INITIAL);
1790			++linenum;
1791			}
1792	YY_BREAK
1793
1794
1795case 33:
1796YY_RULE_SETUP
1797#line 211 "scan.l"
1798++linenum; BEGIN(INITIAL);
1799	YY_BREAK
1800case 34:
1801YY_RULE_SETUP
1802#line 212 "scan.l"
1803option_sense = true;
1804	YY_BREAK
1805case 35:
1806YY_RULE_SETUP
1807#line 214 "scan.l"
1808return '=';
1809	YY_BREAK
1810case 36:
1811YY_RULE_SETUP
1812#line 216 "scan.l"
1813option_sense = ! option_sense;
1814	YY_BREAK
1815case 37:
1816YY_RULE_SETUP
1817#line 218 "scan.l"
1818csize = option_sense ? 128 : 256;
1819	YY_BREAK
1820case 38:
1821YY_RULE_SETUP
1822#line 219 "scan.l"
1823csize = option_sense ? 256 : 128;
1824	YY_BREAK
1825case 39:
1826YY_RULE_SETUP
1827#line 221 "scan.l"
1828long_align = option_sense;
1829	YY_BREAK
1830case 40:
1831YY_RULE_SETUP
1832#line 222 "scan.l"
1833{
1834			action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1835			}
1836	YY_BREAK
1837case 41:
1838YY_RULE_SETUP
1839#line 225 "scan.l"
1840yytext_is_array = option_sense;
1841	YY_BREAK
1842case 42:
1843YY_RULE_SETUP
1844#line 226 "scan.l"
1845backing_up_report = option_sense;
1846	YY_BREAK
1847case 43:
1848YY_RULE_SETUP
1849#line 227 "scan.l"
1850interactive = ! option_sense;
1851	YY_BREAK
1852case 44:
1853YY_RULE_SETUP
1854#line 228 "scan.l"
1855C_plus_plus = option_sense;
1856	YY_BREAK
1857case 45:
1858YY_RULE_SETUP
1859#line 229 "scan.l"
1860caseins = ! option_sense;
1861	YY_BREAK
1862case 46:
1863YY_RULE_SETUP
1864#line 230 "scan.l"
1865caseins = option_sense;
1866	YY_BREAK
1867case 47:
1868YY_RULE_SETUP
1869#line 231 "scan.l"
1870ddebug = option_sense;
1871	YY_BREAK
1872case 48:
1873YY_RULE_SETUP
1874#line 232 "scan.l"
1875spprdflt = ! option_sense;
1876	YY_BREAK
1877case 49:
1878YY_RULE_SETUP
1879#line 233 "scan.l"
1880useecs = option_sense;
1881	YY_BREAK
1882case 50:
1883YY_RULE_SETUP
1884#line 234 "scan.l"
1885{
1886			useecs = usemecs = false;
1887			use_read = fullspd = true;
1888			}
1889	YY_BREAK
1890case 51:
1891YY_RULE_SETUP
1892#line 238 "scan.l"
1893{
1894			useecs = usemecs = false;
1895			use_read = fulltbl = true;
1896			}
1897	YY_BREAK
1898case 52:
1899YY_RULE_SETUP
1900#line 242 "scan.l"
1901ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1902	YY_BREAK
1903case 53:
1904YY_RULE_SETUP
1905#line 243 "scan.l"
1906interactive = option_sense;
1907	YY_BREAK
1908case 54:
1909YY_RULE_SETUP
1910#line 244 "scan.l"
1911lex_compat = option_sense;
1912	YY_BREAK
1913case 55:
1914YY_RULE_SETUP
1915#line 245 "scan.l"
1916{
1917			action_define( "YY_MAIN", option_sense );
1918			do_yywrap = ! option_sense;
1919			}
1920	YY_BREAK
1921case 56:
1922YY_RULE_SETUP
1923#line 249 "scan.l"
1924usemecs = option_sense;
1925	YY_BREAK
1926case 57:
1927YY_RULE_SETUP
1928#line 250 "scan.l"
1929{
1930			action_define( "YY_NEVER_INTERACTIVE", option_sense );
1931			}
1932	YY_BREAK
1933case 58:
1934YY_RULE_SETUP
1935#line 253 "scan.l"
1936performance_report += option_sense ? 1 : -1;
1937	YY_BREAK
1938case 59:
1939YY_RULE_SETUP
1940#line 254 "scan.l"
1941yytext_is_array = ! option_sense;
1942	YY_BREAK
1943case 60:
1944YY_RULE_SETUP
1945#line 255 "scan.l"
1946use_read = option_sense;
1947	YY_BREAK
1948case 61:
1949YY_RULE_SETUP
1950#line 256 "scan.l"
1951reject_really_used = option_sense;
1952	YY_BREAK
1953case 62:
1954YY_RULE_SETUP
1955#line 257 "scan.l"
1956action_define( "YY_STACK_USED", option_sense );
1957	YY_BREAK
1958case 63:
1959YY_RULE_SETUP
1960#line 258 "scan.l"
1961do_stdinit = option_sense;
1962	YY_BREAK
1963case 64:
1964YY_RULE_SETUP
1965#line 259 "scan.l"
1966use_stdout = option_sense;
1967	YY_BREAK
1968case 65:
1969YY_RULE_SETUP
1970#line 260 "scan.l"
1971ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1972	YY_BREAK
1973case 66:
1974YY_RULE_SETUP
1975#line 261 "scan.l"
1976printstats = option_sense;
1977	YY_BREAK
1978case 67:
1979YY_RULE_SETUP
1980#line 262 "scan.l"
1981nowarn = ! option_sense;
1982	YY_BREAK
1983case 68:
1984YY_RULE_SETUP
1985#line 263 "scan.l"
1986do_yylineno = option_sense;
1987	YY_BREAK
1988case 69:
1989YY_RULE_SETUP
1990#line 264 "scan.l"
1991yymore_really_used = option_sense;
1992	YY_BREAK
1993case 70:
1994YY_RULE_SETUP
1995#line 265 "scan.l"
1996do_yywrap = option_sense;
1997	YY_BREAK
1998case 71:
1999YY_RULE_SETUP
2000#line 267 "scan.l"
2001ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
2002	YY_BREAK
2003case 72:
2004YY_RULE_SETUP
2005#line 268 "scan.l"
2006ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2007	YY_BREAK
2008case 73:
2009YY_RULE_SETUP
2010#line 269 "scan.l"
2011ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2012	YY_BREAK
2013case 74:
2014YY_RULE_SETUP
2015#line 271 "scan.l"
2016ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2017	YY_BREAK
2018case 75:
2019YY_RULE_SETUP
2020#line 272 "scan.l"
2021ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2022	YY_BREAK
2023case 76:
2024YY_RULE_SETUP
2025#line 273 "scan.l"
2026ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2027	YY_BREAK
2028case 77:
2029YY_RULE_SETUP
2030#line 275 "scan.l"
2031return OPT_OUTFILE;
2032	YY_BREAK
2033case 78:
2034YY_RULE_SETUP
2035#line 276 "scan.l"
2036return OPT_PREFIX;
2037	YY_BREAK
2038case 79:
2039YY_RULE_SETUP
2040#line 277 "scan.l"
2041return OPT_YYCLASS;
2042	YY_BREAK
2043case 80:
2044YY_RULE_SETUP
2045#line 279 "scan.l"
2046{
2047			strcpy( nmstr, yytext + 1 );
2048			nmstr[strlen( nmstr ) - 1] = '\0';
2049			return NAME;
2050			}
2051	YY_BREAK
2052case 81:
2053YY_RULE_SETUP
2054#line 285 "scan.l"
2055{
2056			format_synerr( _( "unrecognized %%option: %s" ),
2057				yytext );
2058			BEGIN(RECOVER);
2059			}
2060	YY_BREAK
2061
2062case 82:
2063YY_RULE_SETUP
2064#line 292 "scan.l"
2065++linenum; BEGIN(INITIAL);
2066	YY_BREAK
2067
2068case 83:
2069YY_RULE_SETUP
2070#line 296 "scan.l"
2071++bracelevel; yyless( 2 );	/* eat only %{ */
2072	YY_BREAK
2073case 84:
2074YY_RULE_SETUP
2075#line 297 "scan.l"
2076--bracelevel; yyless( 2 );	/* eat only %} */
2077	YY_BREAK
2078case 85:
2079YY_RULE_SETUP
2080#line 299 "scan.l"
2081ACTION_ECHO;	/* indented code in prolog */
2082	YY_BREAK
2083case 86:
2084YY_RULE_SETUP
2085#line 301 "scan.l"
2086{	/* non-indented code */
2087			if ( bracelevel <= 0 )
2088				{ /* not in %{ ... %} */
2089				yyless( 0 );	/* put it all back */
2090				yy_set_bol( 1 );
2091				mark_prolog();
2092				BEGIN(SECT2);
2093				}
2094			else
2095				ACTION_ECHO;
2096			}
2097	YY_BREAK
2098case 87:
2099YY_RULE_SETUP
2100#line 313 "scan.l"
2101ACTION_ECHO;
2102	YY_BREAK
2103case 88:
2104YY_RULE_SETUP
2105#line 314 "scan.l"
2106++linenum; ACTION_ECHO;
2107	YY_BREAK
2108case YY_STATE_EOF(SECT2PROLOG):
2109#line 316 "scan.l"
2110{
2111			mark_prolog();
2112			sectnum = 0;
2113			yyterminate(); /* to stop the parser */
2114			}
2115	YY_BREAK
2116
2117
2118case 89:
2119YY_RULE_SETUP
2120#line 324 "scan.l"
2121++linenum; /* allow blank lines in section 2 */
2122	YY_BREAK
2123case 90:
2124YY_RULE_SETUP
2125#line 326 "scan.l"
2126{
2127			indented_code = false;
2128			doing_codeblock = true;
2129			bracelevel = 1;
2130			BEGIN(PERCENT_BRACE_ACTION);
2131			}
2132	YY_BREAK
2133case 91:
2134YY_RULE_SETUP
2135#line 333 "scan.l"
2136BEGIN(SC); return '<';
2137	YY_BREAK
2138case 92:
2139YY_RULE_SETUP
2140#line 334 "scan.l"
2141return '^';
2142	YY_BREAK
2143case 93:
2144YY_RULE_SETUP
2145#line 335 "scan.l"
2146BEGIN(QUOTE); return '"';
2147	YY_BREAK
2148case 94:
2149*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2150yy_c_buf_p = yy_cp = yy_bp + 1;
2151YY_DO_BEFORE_ACTION; /* set up yytext again */
2152YY_RULE_SETUP
2153#line 336 "scan.l"
2154BEGIN(NUM); return '{';
2155	YY_BREAK
2156case 95:
2157*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2158yy_c_buf_p = yy_cp = yy_bp + 1;
2159YY_DO_BEFORE_ACTION; /* set up yytext again */
2160YY_RULE_SETUP
2161#line 337 "scan.l"
2162return '$';
2163	YY_BREAK
2164case 96:
2165YY_RULE_SETUP
2166#line 339 "scan.l"
2167{
2168			bracelevel = 1;
2169			BEGIN(PERCENT_BRACE_ACTION);
2170
2171			if ( in_rule )
2172				{
2173				doing_rule_action = true;
2174				in_rule = false;
2175				return '\n';
2176				}
2177			}
2178	YY_BREAK
2179case 97:
2180YY_RULE_SETUP
2181#line 350 "scan.l"
2182continued_action = true; ++linenum; return '\n';
2183	YY_BREAK
2184case 98:
2185YY_RULE_SETUP
2186#line 352 "scan.l"
2187{
2188			yyless( yyleng - 2 );	/* put back '/', '*' */
2189			bracelevel = 0;
2190			continued_action = false;
2191			BEGIN(ACTION);
2192			}
2193	YY_BREAK
2194case 99:
2195YY_RULE_SETUP
2196#line 359 "scan.l"
2197/* allow indented rules */
2198	YY_BREAK
2199case 100:
2200YY_RULE_SETUP
2201#line 361 "scan.l"
2202{
2203			/* This rule is separate from the one below because
2204			 * otherwise we get variable trailing context, so
2205			 * we can't build the scanner using -{f,F}.
2206			 */
2207			bracelevel = 0;
2208			continued_action = false;
2209			BEGIN(ACTION);
2210
2211			if ( in_rule )
2212				{
2213				doing_rule_action = true;
2214				in_rule = false;
2215				return '\n';
2216				}
2217			}
2218	YY_BREAK
2219case 101:
2220YY_RULE_SETUP
2221#line 378 "scan.l"
2222{
2223			bracelevel = 0;
2224			continued_action = false;
2225			BEGIN(ACTION);
2226			unput( '\n' );	/* so <ACTION> sees it */
2227
2228			if ( in_rule )
2229				{
2230				doing_rule_action = true;
2231				in_rule = false;
2232				return '\n';
2233				}
2234			}
2235	YY_BREAK
2236case 102:
2237#line 393 "scan.l"
2238case 103:
2239YY_RULE_SETUP
2240#line 393 "scan.l"
2241return EOF_OP;
2242	YY_BREAK
2243case 104:
2244YY_RULE_SETUP
2245#line 395 "scan.l"
2246{
2247			sectnum = 3;
2248			BEGIN(SECT3);
2249			yyterminate(); /* to stop the parser */
2250			}
2251	YY_BREAK
2252case 105:
2253YY_RULE_SETUP
2254#line 401 "scan.l"
2255{
2256			int cclval;
2257
2258			strcpy( nmstr, yytext );
2259
2260			/* Check to see if we've already encountered this
2261			 * ccl.
2262			 */
2263			if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
2264				{
2265				if ( input() != ']' )
2266					synerr( _( "bad character class" ) );
2267
2268				yylval = cclval;
2269				++cclreuse;
2270				return PREVCCL;
2271				}
2272			else
2273				{
2274				/* We fudge a bit.  We know that this ccl will
2275				 * soon be numbered as lastccl + 1 by cclinit.
2276				 */
2277				cclinstal( (Char *) nmstr, lastccl + 1 );
2278
2279				/* Push back everything but the leading bracket
2280				 * so the ccl can be rescanned.
2281				 */
2282				yyless( 1 );
2283
2284				BEGIN(FIRSTCCL);
2285				return '[';
2286				}
2287			}
2288	YY_BREAK
2289case 106:
2290YY_RULE_SETUP
2291#line 435 "scan.l"
2292{
2293			register Char *nmdefptr;
2294			Char *ndlookup();
2295
2296			strcpy( nmstr, yytext + 1 );
2297			nmstr[yyleng - 2] = '\0';  /* chop trailing brace */
2298
2299			if ( (nmdefptr = ndlookup( nmstr )) == 0 )
2300				format_synerr(
2301					_( "undefined definition {%s}" ),
2302						nmstr );
2303
2304			else
2305				{ /* push back name surrounded by ()'s */
2306				int len = strlen( (char *) nmdefptr );
2307
2308				if ( lex_compat || nmdefptr[0] == '^' ||
2309				     (len > 0 && nmdefptr[len - 1] == '$') )
2310					{ /* don't use ()'s after all */
2311					PUT_BACK_STRING((char *) nmdefptr, 0);
2312
2313					if ( nmdefptr[0] == '^' )
2314						BEGIN(CARETISBOL);
2315					}
2316
2317				else
2318					{
2319					unput(')');
2320					PUT_BACK_STRING((char *) nmdefptr, 0);
2321					unput('(');
2322					}
2323				}
2324			}
2325	YY_BREAK
2326case 107:
2327YY_RULE_SETUP
2328#line 469 "scan.l"
2329return (unsigned char) yytext[0];
2330	YY_BREAK
2331case 108:
2332YY_RULE_SETUP
2333#line 470 "scan.l"
2334RETURNCHAR;
2335	YY_BREAK
2336
2337
2338case 109:
2339YY_RULE_SETUP
2340#line 475 "scan.l"
2341return (unsigned char) yytext[0];
2342	YY_BREAK
2343case 110:
2344YY_RULE_SETUP
2345#line 476 "scan.l"
2346BEGIN(SECT2); return '>';
2347	YY_BREAK
2348case 111:
2349*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2350yy_c_buf_p = yy_cp = yy_bp + 1;
2351YY_DO_BEFORE_ACTION; /* set up yytext again */
2352YY_RULE_SETUP
2353#line 477 "scan.l"
2354BEGIN(CARETISBOL); return '>';
2355	YY_BREAK
2356case 112:
2357YY_RULE_SETUP
2358#line 478 "scan.l"
2359RETURNNAME;
2360	YY_BREAK
2361case 113:
2362YY_RULE_SETUP
2363#line 479 "scan.l"
2364{
2365			format_synerr( _( "bad <start condition>: %s" ),
2366				yytext );
2367			}
2368	YY_BREAK
2369
2370case 114:
2371YY_RULE_SETUP
2372#line 485 "scan.l"
2373BEGIN(SECT2); return '^';
2374	YY_BREAK
2375
2376case 115:
2377YY_RULE_SETUP
2378#line 489 "scan.l"
2379RETURNCHAR;
2380	YY_BREAK
2381case 116:
2382YY_RULE_SETUP
2383#line 490 "scan.l"
2384BEGIN(SECT2); return '"';
2385	YY_BREAK
2386case 117:
2387YY_RULE_SETUP
2388#line 492 "scan.l"
2389{
2390			synerr( _( "missing quote" ) );
2391			BEGIN(SECT2);
2392			++linenum;
2393			return '"';
2394			}
2395	YY_BREAK
2396
2397
2398case 118:
2399*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2400yy_c_buf_p = yy_cp = yy_bp + 1;
2401YY_DO_BEFORE_ACTION; /* set up yytext again */
2402YY_RULE_SETUP
2403#line 502 "scan.l"
2404BEGIN(CCL); return '^';
2405	YY_BREAK
2406case 119:
2407*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2408yy_c_buf_p = yy_cp = yy_bp + 1;
2409YY_DO_BEFORE_ACTION; /* set up yytext again */
2410YY_RULE_SETUP
2411#line 503 "scan.l"
2412return '^';
2413	YY_BREAK
2414case 120:
2415YY_RULE_SETUP
2416#line 504 "scan.l"
2417BEGIN(CCL); RETURNCHAR;
2418	YY_BREAK
2419
2420
2421case 121:
2422*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2423yy_c_buf_p = yy_cp = yy_bp + 1;
2424YY_DO_BEFORE_ACTION; /* set up yytext again */
2425YY_RULE_SETUP
2426#line 508 "scan.l"
2427return '-';
2428	YY_BREAK
2429case 122:
2430YY_RULE_SETUP
2431#line 509 "scan.l"
2432RETURNCHAR;
2433	YY_BREAK
2434case 123:
2435YY_RULE_SETUP
2436#line 510 "scan.l"
2437BEGIN(SECT2); return ']';
2438	YY_BREAK
2439case 124:
2440YY_RULE_SETUP
2441#line 511 "scan.l"
2442{
2443			synerr( _( "bad character class" ) );
2444			BEGIN(SECT2);
2445			return ']';
2446			}
2447	YY_BREAK
2448
2449
2450case 125:
2451YY_RULE_SETUP
2452#line 519 "scan.l"
2453BEGIN(CCL); return CCE_ALNUM;
2454	YY_BREAK
2455case 126:
2456YY_RULE_SETUP
2457#line 520 "scan.l"
2458BEGIN(CCL); return CCE_ALPHA;
2459	YY_BREAK
2460case 127:
2461YY_RULE_SETUP
2462#line 521 "scan.l"
2463BEGIN(CCL); return CCE_BLANK;
2464	YY_BREAK
2465case 128:
2466YY_RULE_SETUP
2467#line 522 "scan.l"
2468BEGIN(CCL); return CCE_CNTRL;
2469	YY_BREAK
2470case 129:
2471YY_RULE_SETUP
2472#line 523 "scan.l"
2473BEGIN(CCL); return CCE_DIGIT;
2474	YY_BREAK
2475case 130:
2476YY_RULE_SETUP
2477#line 524 "scan.l"
2478BEGIN(CCL); return CCE_GRAPH;
2479	YY_BREAK
2480case 131:
2481YY_RULE_SETUP
2482#line 525 "scan.l"
2483BEGIN(CCL); return CCE_LOWER;
2484	YY_BREAK
2485case 132:
2486YY_RULE_SETUP
2487#line 526 "scan.l"
2488BEGIN(CCL); return CCE_PRINT;
2489	YY_BREAK
2490case 133:
2491YY_RULE_SETUP
2492#line 527 "scan.l"
2493BEGIN(CCL); return CCE_PUNCT;
2494	YY_BREAK
2495case 134:
2496YY_RULE_SETUP
2497#line 528 "scan.l"
2498BEGIN(CCL); return CCE_SPACE;
2499	YY_BREAK
2500case 135:
2501YY_RULE_SETUP
2502#line 529 "scan.l"
2503BEGIN(CCL); return CCE_UPPER;
2504	YY_BREAK
2505case 136:
2506YY_RULE_SETUP
2507#line 530 "scan.l"
2508BEGIN(CCL); return CCE_XDIGIT;
2509	YY_BREAK
2510case 137:
2511YY_RULE_SETUP
2512#line 531 "scan.l"
2513{
2514			format_synerr(
2515				_( "bad character class expression: %s" ),
2516					yytext );
2517			BEGIN(CCL); return CCE_ALNUM;
2518			}
2519	YY_BREAK
2520
2521
2522case 138:
2523YY_RULE_SETUP
2524#line 540 "scan.l"
2525{
2526			yylval = myctoi( yytext );
2527			return NUMBER;
2528			}
2529	YY_BREAK
2530case 139:
2531YY_RULE_SETUP
2532#line 545 "scan.l"
2533return ',';
2534	YY_BREAK
2535case 140:
2536YY_RULE_SETUP
2537#line 546 "scan.l"
2538BEGIN(SECT2); return '}';
2539	YY_BREAK
2540case 141:
2541YY_RULE_SETUP
2542#line 548 "scan.l"
2543{
2544			synerr( _( "bad character inside {}'s" ) );
2545			BEGIN(SECT2);
2546			return '}';
2547			}
2548	YY_BREAK
2549case 142:
2550YY_RULE_SETUP
2551#line 554 "scan.l"
2552{
2553			synerr( _( "missing }" ) );
2554			BEGIN(SECT2);
2555			++linenum;
2556			return '}';
2557			}
2558	YY_BREAK
2559
2560
2561case 143:
2562YY_RULE_SETUP
2563#line 564 "scan.l"
2564bracelevel = 0;
2565	YY_BREAK
2566case 144:
2567YY_RULE_SETUP
2568#line 566 "scan.l"
2569ACTION_ECHO; yy_push_state( COMMENT );
2570	YY_BREAK
2571
2572case 145:
2573YY_RULE_SETUP
2574#line 569 "scan.l"
2575{
2576			ACTION_ECHO;
2577			CHECK_REJECT(yytext);
2578			}
2579	YY_BREAK
2580case 146:
2581YY_RULE_SETUP
2582#line 573 "scan.l"
2583{
2584			ACTION_ECHO;
2585			CHECK_YYMORE(yytext);
2586			}
2587	YY_BREAK
2588
2589case 147:
2590YY_RULE_SETUP
2591#line 579 "scan.l"
2592ACTION_ECHO;
2593	YY_BREAK
2594case 148:
2595YY_RULE_SETUP
2596#line 580 "scan.l"
2597{
2598			++linenum;
2599			ACTION_ECHO;
2600			if ( bracelevel == 0 ||
2601			     (doing_codeblock && indented_code) )
2602				{
2603				if ( doing_rule_action )
2604					add_action( "\tYY_BREAK\n" );
2605
2606				doing_rule_action = doing_codeblock = false;
2607				BEGIN(SECT2);
2608				}
2609			}
2610	YY_BREAK
2611
2612/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
2613
2614case 149:
2615YY_RULE_SETUP
2616#line 598 "scan.l"
2617ACTION_ECHO; ++bracelevel;
2618	YY_BREAK
2619case 150:
2620YY_RULE_SETUP
2621#line 599 "scan.l"
2622ACTION_ECHO; --bracelevel;
2623	YY_BREAK
2624case 151:
2625YY_RULE_SETUP
2626#line 600 "scan.l"
2627ACTION_ECHO;
2628	YY_BREAK
2629case 152:
2630YY_RULE_SETUP
2631#line 601 "scan.l"
2632ACTION_ECHO;
2633	YY_BREAK
2634case 153:
2635YY_RULE_SETUP
2636#line 602 "scan.l"
2637ACTION_ECHO; /* character constant */
2638	YY_BREAK
2639case 154:
2640YY_RULE_SETUP
2641#line 603 "scan.l"
2642ACTION_ECHO; BEGIN(ACTION_STRING);
2643	YY_BREAK
2644case 155:
2645YY_RULE_SETUP
2646#line 604 "scan.l"
2647{
2648			++linenum;
2649			ACTION_ECHO;
2650			if ( bracelevel == 0 )
2651				{
2652				if ( doing_rule_action )
2653					add_action( "\tYY_BREAK\n" );
2654
2655				doing_rule_action = false;
2656				BEGIN(SECT2);
2657				}
2658			}
2659	YY_BREAK
2660case 156:
2661YY_RULE_SETUP
2662#line 616 "scan.l"
2663ACTION_ECHO;
2664	YY_BREAK
2665
2666
2667case 157:
2668YY_RULE_SETUP
2669#line 620 "scan.l"
2670ACTION_ECHO;
2671	YY_BREAK
2672case 158:
2673YY_RULE_SETUP
2674#line 621 "scan.l"
2675ACTION_ECHO;
2676	YY_BREAK
2677case 159:
2678YY_RULE_SETUP
2679#line 622 "scan.l"
2680++linenum; ACTION_ECHO;
2681	YY_BREAK
2682case 160:
2683YY_RULE_SETUP
2684#line 623 "scan.l"
2685ACTION_ECHO; BEGIN(ACTION);
2686	YY_BREAK
2687case 161:
2688YY_RULE_SETUP
2689#line 624 "scan.l"
2690ACTION_ECHO;
2691	YY_BREAK
2692
2693case YY_STATE_EOF(COMMENT):
2694case YY_STATE_EOF(ACTION):
2695case YY_STATE_EOF(ACTION_STRING):
2696#line 627 "scan.l"
2697{
2698			synerr( _( "EOF encountered inside an action" ) );
2699			yyterminate();
2700			}
2701	YY_BREAK
2702case 162:
2703YY_RULE_SETUP
2704#line 633 "scan.l"
2705{
2706			yylval = myesc( (Char *) yytext );
2707
2708			if ( YY_START == FIRSTCCL )
2709				BEGIN(CCL);
2710
2711			return CHAR;
2712			}
2713	YY_BREAK
2714
2715case 163:
2716YY_RULE_SETUP
2717#line 644 "scan.l"
2718ECHO;
2719	YY_BREAK
2720case YY_STATE_EOF(SECT3):
2721#line 645 "scan.l"
2722sectnum = 0; yyterminate();
2723	YY_BREAK
2724
2725case 164:
2726YY_RULE_SETUP
2727#line 648 "scan.l"
2728format_synerr( _( "bad character: %s" ), yytext );
2729	YY_BREAK
2730case 165:
2731YY_RULE_SETUP
2732#line 650 "scan.l"
2733YY_FATAL_ERROR( "flex scanner jammed" );
2734	YY_BREAK
2735#line 2736 "scan.c"
2736case YY_STATE_EOF(INITIAL):
2737case YY_STATE_EOF(SECT2):
2738case YY_STATE_EOF(CODEBLOCK):
2739case YY_STATE_EOF(PICKUPDEF):
2740case YY_STATE_EOF(SC):
2741case YY_STATE_EOF(CARETISBOL):
2742case YY_STATE_EOF(NUM):
2743case YY_STATE_EOF(QUOTE):
2744case YY_STATE_EOF(FIRSTCCL):
2745case YY_STATE_EOF(CCL):
2746case YY_STATE_EOF(RECOVER):
2747case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2748case YY_STATE_EOF(OPTION):
2749case YY_STATE_EOF(LINEDIR):
2750	yyterminate();
2751
2752	case YY_END_OF_BUFFER:
2753		{
2754		/* Amount of text matched not including the EOB char. */
2755		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2756
2757		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2758		*yy_cp = yy_hold_char;
2759		YY_RESTORE_YY_MORE_OFFSET
2760
2761		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2762			{
2763			/* We're scanning a new file or input source.  It's
2764			 * possible that this happened because the user
2765			 * just pointed yyin at a new source and called
2766			 * yylex().  If so, then we have to assure
2767			 * consistency between yy_current_buffer and our
2768			 * globals.  Here is the right place to do so, because
2769			 * this is the first action (other than possibly a
2770			 * back-up) that will match for the new input source.
2771			 */
2772			yy_n_chars = yy_current_buffer->yy_n_chars;
2773			yy_current_buffer->yy_input_file = yyin;
2774			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2775			}
2776
2777		/* Note that here we test for yy_c_buf_p "<=" to the position
2778		 * of the first EOB in the buffer, since yy_c_buf_p will
2779		 * already have been incremented past the NUL character
2780		 * (since all states make transitions on EOB to the
2781		 * end-of-buffer state).  Contrast this with the test
2782		 * in input().
2783		 */
2784		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2785			{ /* This was really a NUL. */
2786			yy_state_type yy_next_state;
2787
2788			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2789
2790			yy_current_state = yy_get_previous_state();
2791
2792			/* Okay, we're now positioned to make the NUL
2793			 * transition.  We couldn't have
2794			 * yy_get_previous_state() go ahead and do it
2795			 * for us because it doesn't know how to deal
2796			 * with the possibility of jamming (and we don't
2797			 * want to build jamming into it because then it
2798			 * will run more slowly).
2799			 */
2800
2801			yy_next_state = yy_try_NUL_trans( yy_current_state );
2802
2803			yy_bp = yytext_ptr + YY_MORE_ADJ;
2804
2805			if ( yy_next_state )
2806				{
2807				/* Consume the NUL. */
2808				yy_cp = ++yy_c_buf_p;
2809				yy_current_state = yy_next_state;
2810				goto yy_match;
2811				}
2812
2813			else
2814				{
2815				yy_cp = yy_c_buf_p;
2816				goto yy_find_action;
2817				}
2818			}
2819
2820		else switch ( yy_get_next_buffer() )
2821			{
2822			case EOB_ACT_END_OF_FILE:
2823				{
2824				yy_did_buffer_switch_on_eof = 0;
2825
2826				if ( yywrap() )
2827					{
2828					/* Note: because we've taken care in
2829					 * yy_get_next_buffer() to have set up
2830					 * yytext, we can now set up
2831					 * yy_c_buf_p so that if some total
2832					 * hoser (like flex itself) wants to
2833					 * call the scanner after we return the
2834					 * YY_NULL, it'll still work - another
2835					 * YY_NULL will get returned.
2836					 */
2837					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2838
2839					yy_act = YY_STATE_EOF(YY_START);
2840					goto do_action;
2841					}
2842
2843				else
2844					{
2845					if ( ! yy_did_buffer_switch_on_eof )
2846						YY_NEW_FILE;
2847					}
2848				break;
2849				}
2850
2851			case EOB_ACT_CONTINUE_SCAN:
2852				yy_c_buf_p =
2853					yytext_ptr + yy_amount_of_matched_text;
2854
2855				yy_current_state = yy_get_previous_state();
2856
2857				yy_cp = yy_c_buf_p;
2858				yy_bp = yytext_ptr + YY_MORE_ADJ;
2859				goto yy_match;
2860
2861			case EOB_ACT_LAST_MATCH:
2862				yy_c_buf_p =
2863				&yy_current_buffer->yy_ch_buf[yy_n_chars];
2864
2865				yy_current_state = yy_get_previous_state();
2866
2867				yy_cp = yy_c_buf_p;
2868				yy_bp = yytext_ptr + YY_MORE_ADJ;
2869				goto yy_find_action;
2870			}
2871		break;
2872		}
2873
2874	default:
2875		YY_FATAL_ERROR(
2876			"fatal flex scanner internal error--no action found" );
2877	} /* end of action switch */
2878		} /* end of scanning one token */
2879	} /* end of yylex */
2880
2881
2882/* yy_get_next_buffer - try to read in a new buffer
2883 *
2884 * Returns a code representing an action:
2885 *	EOB_ACT_LAST_MATCH -
2886 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2887 *	EOB_ACT_END_OF_FILE - end of file
2888 */
2889
2890static int yy_get_next_buffer()
2891	{
2892	register char *dest = yy_current_buffer->yy_ch_buf;
2893	register char *source = yytext_ptr;
2894	register int number_to_move, i;
2895	int ret_val;
2896
2897	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2898		YY_FATAL_ERROR(
2899		"fatal flex scanner internal error--end of buffer missed" );
2900
2901	if ( yy_current_buffer->yy_fill_buffer == 0 )
2902		{ /* Don't try to fill the buffer, so this is an EOF. */
2903		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2904			{
2905			/* We matched a single character, the EOB, so
2906			 * treat this as a final EOF.
2907			 */
2908			return EOB_ACT_END_OF_FILE;
2909			}
2910
2911		else
2912			{
2913			/* We matched some text prior to the EOB, first
2914			 * process it.
2915			 */
2916			return EOB_ACT_LAST_MATCH;
2917			}
2918		}
2919
2920	/* Try to read more data. */
2921
2922	/* First move last chars to start of buffer. */
2923	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2924
2925	for ( i = 0; i < number_to_move; ++i )
2926		*(dest++) = *(source++);
2927
2928	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2929		/* don't do the read, it's not guaranteed to return an EOF,
2930		 * just force an EOF
2931		 */
2932		yy_n_chars = 0;
2933
2934	else
2935		{
2936		int num_to_read =
2937			yy_current_buffer->yy_buf_size - number_to_move - 1;
2938
2939		while ( num_to_read <= 0 )
2940			{ /* Not enough room in the buffer - grow it. */
2941#ifdef YY_USES_REJECT
2942			YY_FATAL_ERROR(
2943"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2944#else
2945
2946			/* just a shorter name for the current buffer */
2947			YY_BUFFER_STATE b = yy_current_buffer;
2948
2949			int yy_c_buf_p_offset =
2950				(int) (yy_c_buf_p - b->yy_ch_buf);
2951
2952			if ( b->yy_is_our_buffer )
2953				{
2954				int new_size = b->yy_buf_size * 2;
2955
2956				if ( new_size <= 0 )
2957					b->yy_buf_size += b->yy_buf_size / 8;
2958				else
2959					b->yy_buf_size *= 2;
2960
2961				b->yy_ch_buf = (char *)
2962					/* Include room in for 2 EOB chars. */
2963					yy_flex_realloc( (void *) b->yy_ch_buf,
2964							 b->yy_buf_size + 2 );
2965				}
2966			else
2967				/* Can't grow it, we don't own it. */
2968				b->yy_ch_buf = 0;
2969
2970			if ( ! b->yy_ch_buf )
2971				YY_FATAL_ERROR(
2972				"fatal error - scanner input buffer overflow" );
2973
2974			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2975
2976			num_to_read = yy_current_buffer->yy_buf_size -
2977						number_to_move - 1;
2978#endif
2979			}
2980
2981		if ( num_to_read > YY_READ_BUF_SIZE )
2982			num_to_read = YY_READ_BUF_SIZE;
2983
2984		/* Read in more data. */
2985		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2986			yy_n_chars, num_to_read );
2987		}
2988
2989	if ( yy_n_chars == 0 )
2990		{
2991		if ( number_to_move == YY_MORE_ADJ )
2992			{
2993			ret_val = EOB_ACT_END_OF_FILE;
2994			yyrestart( yyin );
2995			}
2996
2997		else
2998			{
2999			ret_val = EOB_ACT_LAST_MATCH;
3000			yy_current_buffer->yy_buffer_status =
3001				YY_BUFFER_EOF_PENDING;
3002			}
3003		}
3004
3005	else
3006		ret_val = EOB_ACT_CONTINUE_SCAN;
3007
3008	yy_n_chars += number_to_move;
3009	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3010	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3011
3012	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3013
3014	return ret_val;
3015	}
3016
3017
3018/* yy_get_previous_state - get the state just before the EOB char was reached */
3019
3020static yy_state_type yy_get_previous_state()
3021	{
3022	register yy_state_type yy_current_state;
3023	register char *yy_cp;
3024
3025	yy_current_state = yy_start;
3026	yy_current_state += YY_AT_BOL();
3027
3028	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3029		{
3030		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3031		if ( yy_accept[yy_current_state] )
3032			{
3033			yy_last_accepting_state = yy_current_state;
3034			yy_last_accepting_cpos = yy_cp;
3035			}
3036		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3037			{
3038			yy_current_state = (int) yy_def[yy_current_state];
3039			if ( yy_current_state >= 769 )
3040				yy_c = yy_meta[(unsigned int) yy_c];
3041			}
3042		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3043		}
3044
3045	return yy_current_state;
3046	}
3047
3048
3049/* yy_try_NUL_trans - try to make a transition on the NUL character
3050 *
3051 * synopsis
3052 *	next_state = yy_try_NUL_trans( current_state );
3053 */
3054
3055#ifdef YY_USE_PROTOS
3056static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3057#else
3058static yy_state_type yy_try_NUL_trans( yy_current_state )
3059yy_state_type yy_current_state;
3060#endif
3061	{
3062	register int yy_is_jam;
3063	register char *yy_cp = yy_c_buf_p;
3064
3065	register YY_CHAR yy_c = 1;
3066	if ( yy_accept[yy_current_state] )
3067		{
3068		yy_last_accepting_state = yy_current_state;
3069		yy_last_accepting_cpos = yy_cp;
3070		}
3071	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3072		{
3073		yy_current_state = (int) yy_def[yy_current_state];
3074		if ( yy_current_state >= 769 )
3075			yy_c = yy_meta[(unsigned int) yy_c];
3076		}
3077	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3078	yy_is_jam = (yy_current_state == 768);
3079
3080	return yy_is_jam ? 0 : yy_current_state;
3081	}
3082
3083
3084#ifndef YY_NO_UNPUT
3085#ifdef YY_USE_PROTOS
3086static void yyunput( int c, register char *yy_bp )
3087#else
3088static void yyunput( c, yy_bp )
3089int c;
3090register char *yy_bp;
3091#endif
3092	{
3093	register char *yy_cp = yy_c_buf_p;
3094
3095	/* undo effects of setting up yytext */
3096	*yy_cp = yy_hold_char;
3097
3098	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3099		{ /* need to shift things up to make room */
3100		/* +2 for EOB chars. */
3101		register int number_to_move = yy_n_chars + 2;
3102		register char *dest = &yy_current_buffer->yy_ch_buf[
3103					yy_current_buffer->yy_buf_size + 2];
3104		register char *source =
3105				&yy_current_buffer->yy_ch_buf[number_to_move];
3106
3107		while ( source > yy_current_buffer->yy_ch_buf )
3108			*--dest = *--source;
3109
3110		yy_cp += (int) (dest - source);
3111		yy_bp += (int) (dest - source);
3112		yy_n_chars = yy_current_buffer->yy_buf_size;
3113
3114		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3115			YY_FATAL_ERROR( "flex scanner push-back overflow" );
3116		}
3117
3118	*--yy_cp = (char) c;
3119
3120
3121	yytext_ptr = yy_bp;
3122	yy_hold_char = *yy_cp;
3123	yy_c_buf_p = yy_cp;
3124	}
3125#endif	/* ifndef YY_NO_UNPUT */
3126
3127
3128#ifdef __cplusplus
3129static int yyinput()
3130#else
3131static int input()
3132#endif
3133	{
3134	int c;
3135
3136	*yy_c_buf_p = yy_hold_char;
3137
3138	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3139		{
3140		/* yy_c_buf_p now points to the character we want to return.
3141		 * If this occurs *before* the EOB characters, then it's a
3142		 * valid NUL; if not, then we've hit the end of the buffer.
3143		 */
3144		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3145			/* This was really a NUL. */
3146			*yy_c_buf_p = '\0';
3147
3148		else
3149			{ /* need more input */
3150			int offset = yy_c_buf_p - yytext_ptr;
3151			++yy_c_buf_p;
3152
3153			switch ( yy_get_next_buffer() )
3154				{
3155				case EOB_ACT_END_OF_FILE:
3156					{
3157					if ( yywrap() )
3158						{
3159						yy_c_buf_p = yytext_ptr + offset;
3160						return EOF;
3161						}
3162
3163					if ( ! yy_did_buffer_switch_on_eof )
3164						YY_NEW_FILE;
3165#ifdef __cplusplus
3166					return yyinput();
3167#else
3168					return input();
3169#endif
3170					}
3171
3172				case EOB_ACT_CONTINUE_SCAN:
3173					yy_c_buf_p = yytext_ptr + offset;
3174					break;
3175
3176				case EOB_ACT_LAST_MATCH:
3177#ifdef __cplusplus
3178					YY_FATAL_ERROR(
3179					"unexpected last match in yyinput()" );
3180#else
3181					YY_FATAL_ERROR(
3182					"unexpected last match in input()" );
3183#endif
3184				}
3185			}
3186		}
3187
3188	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
3189	*yy_c_buf_p = '\0';	/* preserve yytext */
3190	yy_hold_char = *++yy_c_buf_p;
3191
3192	yy_current_buffer->yy_at_bol = (c == '\n');
3193
3194	return c;
3195	}
3196
3197
3198#ifdef YY_USE_PROTOS
3199void yyrestart( FILE *input_file )
3200#else
3201void yyrestart( input_file )
3202FILE *input_file;
3203#endif
3204	{
3205	if ( ! yy_current_buffer )
3206		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3207
3208	yy_init_buffer( yy_current_buffer, input_file );
3209	yy_load_buffer_state();
3210	}
3211
3212
3213#ifdef YY_USE_PROTOS
3214void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3215#else
3216void yy_switch_to_buffer( new_buffer )
3217YY_BUFFER_STATE new_buffer;
3218#endif
3219	{
3220	if ( yy_current_buffer == new_buffer )
3221		return;
3222
3223	if ( yy_current_buffer )
3224		{
3225		/* Flush out information for old buffer. */
3226		*yy_c_buf_p = yy_hold_char;
3227		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3228		yy_current_buffer->yy_n_chars = yy_n_chars;
3229		}
3230
3231	yy_current_buffer = new_buffer;
3232	yy_load_buffer_state();
3233
3234	/* We don't actually know whether we did this switch during
3235	 * EOF (yywrap()) processing, but the only time this flag
3236	 * is looked at is after yywrap() is called, so it's safe
3237	 * to go ahead and always set it.
3238	 */
3239	yy_did_buffer_switch_on_eof = 1;
3240	}
3241
3242
3243#ifdef YY_USE_PROTOS
3244void yy_load_buffer_state( void )
3245#else
3246void yy_load_buffer_state()
3247#endif
3248	{
3249	yy_n_chars = yy_current_buffer->yy_n_chars;
3250	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3251	yyin = yy_current_buffer->yy_input_file;
3252	yy_hold_char = *yy_c_buf_p;
3253	}
3254
3255
3256#ifdef YY_USE_PROTOS
3257YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3258#else
3259YY_BUFFER_STATE yy_create_buffer( file, size )
3260FILE *file;
3261int size;
3262#endif
3263	{
3264	YY_BUFFER_STATE b;
3265
3266	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3267	if ( ! b )
3268		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3269
3270	b->yy_buf_size = size;
3271
3272	/* yy_ch_buf has to be 2 characters longer than the size given because
3273	 * we need to put in 2 end-of-buffer characters.
3274	 */
3275	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3276	if ( ! b->yy_ch_buf )
3277		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3278
3279	b->yy_is_our_buffer = 1;
3280
3281	yy_init_buffer( b, file );
3282
3283	return b;
3284	}
3285
3286
3287#ifdef YY_USE_PROTOS
3288void yy_delete_buffer( YY_BUFFER_STATE b )
3289#else
3290void yy_delete_buffer( b )
3291YY_BUFFER_STATE b;
3292#endif
3293	{
3294	if ( ! b )
3295		return;
3296
3297	if ( b == yy_current_buffer )
3298		yy_current_buffer = (YY_BUFFER_STATE) 0;
3299
3300	if ( b->yy_is_our_buffer )
3301		yy_flex_free( (void *) b->yy_ch_buf );
3302
3303	yy_flex_free( (void *) b );
3304	}
3305
3306
3307#ifndef YY_ALWAYS_INTERACTIVE
3308#ifndef YY_NEVER_INTERACTIVE
3309extern int isatty YY_PROTO(( int ));
3310#endif
3311#endif
3312
3313#ifdef YY_USE_PROTOS
3314void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3315#else
3316void yy_init_buffer( b, file )
3317YY_BUFFER_STATE b;
3318FILE *file;
3319#endif
3320
3321
3322	{
3323	yy_flush_buffer( b );
3324
3325	b->yy_input_file = file;
3326	b->yy_fill_buffer = 1;
3327
3328#if YY_ALWAYS_INTERACTIVE
3329	b->yy_is_interactive = 1;
3330#else
3331#if YY_NEVER_INTERACTIVE
3332	b->yy_is_interactive = 0;
3333#else
3334	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3335#endif
3336#endif
3337	}
3338
3339
3340#ifdef YY_USE_PROTOS
3341void yy_flush_buffer( YY_BUFFER_STATE b )
3342#else
3343void yy_flush_buffer( b )
3344YY_BUFFER_STATE b;
3345#endif
3346
3347	{
3348	b->yy_n_chars = 0;
3349
3350	/* We always need two end-of-buffer characters.  The first causes
3351	 * a transition to the end-of-buffer state.  The second causes
3352	 * a jam in that state.
3353	 */
3354	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3355	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3356
3357	b->yy_buf_pos = &b->yy_ch_buf[0];
3358
3359	b->yy_at_bol = 1;
3360	b->yy_buffer_status = YY_BUFFER_NEW;
3361
3362	if ( b == yy_current_buffer )
3363		yy_load_buffer_state();
3364	}
3365
3366
3367#ifndef YY_NO_SCAN_BUFFER
3368#ifdef YY_USE_PROTOS
3369YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3370#else
3371YY_BUFFER_STATE yy_scan_buffer( base, size )
3372char *base;
3373yy_size_t size;
3374#endif
3375	{
3376	YY_BUFFER_STATE b;
3377
3378	if ( size < 2 ||
3379	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3380	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3381		/* They forgot to leave room for the EOB's. */
3382		return 0;
3383
3384	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3385	if ( ! b )
3386		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3387
3388	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
3389	b->yy_buf_pos = b->yy_ch_buf = base;
3390	b->yy_is_our_buffer = 0;
3391	b->yy_input_file = 0;
3392	b->yy_n_chars = b->yy_buf_size;
3393	b->yy_is_interactive = 0;
3394	b->yy_at_bol = 1;
3395	b->yy_fill_buffer = 0;
3396	b->yy_buffer_status = YY_BUFFER_NEW;
3397
3398	yy_switch_to_buffer( b );
3399
3400	return b;
3401	}
3402#endif
3403
3404
3405#ifndef YY_NO_SCAN_STRING
3406#ifdef YY_USE_PROTOS
3407YY_BUFFER_STATE yy_scan_string( yyconst char *str )
3408#else
3409YY_BUFFER_STATE yy_scan_string( str )
3410yyconst char *str;
3411#endif
3412	{
3413	int len;
3414	for ( len = 0; str[len]; ++len )
3415		;
3416
3417	return yy_scan_bytes( str, len );
3418	}
3419#endif
3420
3421
3422#ifndef YY_NO_SCAN_BYTES
3423#ifdef YY_USE_PROTOS
3424YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3425#else
3426YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3427yyconst char *bytes;
3428int len;
3429#endif
3430	{
3431	YY_BUFFER_STATE b;
3432	char *buf;
3433	yy_size_t n;
3434	int i;
3435
3436	/* Get memory for full buffer, including space for trailing EOB's. */
3437	n = len + 2;
3438	buf = (char *) yy_flex_alloc( n );
3439	if ( ! buf )
3440		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3441
3442	for ( i = 0; i < len; ++i )
3443		buf[i] = bytes[i];
3444
3445	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3446
3447	b = yy_scan_buffer( buf, n );
3448	if ( ! b )
3449		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3450
3451	/* It's okay to grow etc. this buffer, and we should throw it
3452	 * away when we're done.
3453	 */
3454	b->yy_is_our_buffer = 1;
3455
3456	return b;
3457	}
3458#endif
3459
3460
3461#ifndef YY_NO_PUSH_STATE
3462#ifdef YY_USE_PROTOS
3463static void yy_push_state( int new_state )
3464#else
3465static void yy_push_state( new_state )
3466int new_state;
3467#endif
3468	{
3469	if ( yy_start_stack_ptr >= yy_start_stack_depth )
3470		{
3471		yy_size_t new_size;
3472
3473		yy_start_stack_depth += YY_START_STACK_INCR;
3474		new_size = yy_start_stack_depth * sizeof( int );
3475
3476		if ( ! yy_start_stack )
3477			yy_start_stack = (int *) yy_flex_alloc( new_size );
3478
3479		else
3480			yy_start_stack = (int *) yy_flex_realloc(
3481					(void *) yy_start_stack, new_size );
3482
3483		if ( ! yy_start_stack )
3484			YY_FATAL_ERROR(
3485			"out of memory expanding start-condition stack" );
3486		}
3487
3488	yy_start_stack[yy_start_stack_ptr++] = YY_START;
3489
3490	BEGIN(new_state);
3491	}
3492#endif
3493
3494
3495#ifndef YY_NO_POP_STATE
3496static void yy_pop_state()
3497	{
3498	if ( --yy_start_stack_ptr < 0 )
3499		YY_FATAL_ERROR( "start-condition stack underflow" );
3500
3501	BEGIN(yy_start_stack[yy_start_stack_ptr]);
3502	}
3503#endif
3504
3505
3506#ifndef YY_NO_TOP_STATE
3507static int yy_top_state()
3508	{
3509	return yy_start_stack[yy_start_stack_ptr - 1];
3510	}
3511#endif
3512
3513#ifndef YY_EXIT_FAILURE
3514#define YY_EXIT_FAILURE 2
3515#endif
3516
3517#ifdef YY_USE_PROTOS
3518static void yy_fatal_error( yyconst char msg[] )
3519#else
3520static void yy_fatal_error( msg )
3521char msg[];
3522#endif
3523	{
3524	(void) fprintf( stderr, "%s\n", msg );
3525	exit( YY_EXIT_FAILURE );
3526	}
3527
3528
3529
3530/* Redefine yyless() so it works in section 3 code. */
3531
3532#undef yyless
3533#define yyless(n) \
3534	do \
3535		{ \
3536		/* Undo effects of setting up yytext. */ \
3537		yytext[yyleng] = yy_hold_char; \
3538		yy_c_buf_p = yytext + n; \
3539		yy_hold_char = *yy_c_buf_p; \
3540		*yy_c_buf_p = '\0'; \
3541		yyleng = n; \
3542		} \
3543	while ( 0 )
3544
3545
3546/* Internal utility routines. */
3547
3548#ifndef yytext_ptr
3549#ifdef YY_USE_PROTOS
3550static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3551#else
3552static void yy_flex_strncpy( s1, s2, n )
3553char *s1;
3554yyconst char *s2;
3555int n;
3556#endif
3557	{
3558	register int i;
3559	for ( i = 0; i < n; ++i )
3560		s1[i] = s2[i];
3561	}
3562#endif
3563
3564#ifdef YY_NEED_STRLEN
3565#ifdef YY_USE_PROTOS
3566static int yy_flex_strlen( yyconst char *s )
3567#else
3568static int yy_flex_strlen( s )
3569yyconst char *s;
3570#endif
3571	{
3572	register int n;
3573	for ( n = 0; s[n]; ++n )
3574		;
3575
3576	return n;
3577	}
3578#endif
3579
3580
3581#ifdef YY_USE_PROTOS
3582static void *yy_flex_alloc( yy_size_t size )
3583#else
3584static void *yy_flex_alloc( size )
3585yy_size_t size;
3586#endif
3587	{
3588	return (void *) malloc( size );
3589	}
3590
3591#ifdef YY_USE_PROTOS
3592static void *yy_flex_realloc( void *ptr, yy_size_t size )
3593#else
3594static void *yy_flex_realloc( ptr, size )
3595void *ptr;
3596yy_size_t size;
3597#endif
3598	{
3599	/* The cast to (char *) in the following accommodates both
3600	 * implementations that use char* generic pointers, and those
3601	 * that use void* generic pointers.  It works with the latter
3602	 * because both ANSI C and C++ allow castless assignment from
3603	 * any pointer type to void*, and deal with argument conversions
3604	 * as though doing an assignment.
3605	 */
3606	return (void *) realloc( (char *) ptr, size );
3607	}
3608
3609#ifdef YY_USE_PROTOS
3610static void yy_flex_free( void *ptr )
3611#else
3612static void yy_flex_free( ptr )
3613void *ptr;
3614#endif
3615	{
3616	free( ptr );
3617	}
3618
3619#if YY_MAIN
3620int main()
3621	{
3622	yylex();
3623	return 0;
3624	}
3625#endif
3626#line 650 "scan.l"
3627
3628
3629
3630int yywrap()
3631	{
3632	if ( --num_input_files > 0 )
3633		{
3634		set_input_file( *++input_files );
3635		return 0;
3636		}
3637
3638	else
3639		return 1;
3640	}
3641
3642
3643/* set_input_file - open the given file (if NULL, stdin) for scanning */
3644
3645void set_input_file( file )
3646char *file;
3647	{
3648	if ( file && strcmp( file, "-" ) )
3649		{
3650		infilename = copy_string( file );
3651		yyin = fopen( infilename, "r" );
3652
3653		if ( yyin == NULL )
3654			lerrsf( _( "can't open %s" ), file );
3655		}
3656
3657	else
3658		{
3659		yyin = stdin;
3660		infilename = copy_string( "<stdin>" );
3661		}
3662
3663	linenum = 1;
3664	}
3665
3666
3667/* Wrapper routines for accessing the scanner's malloc routines. */
3668
3669void *flex_alloc( size )
3670size_t size;
3671	{
3672	return (void *) malloc( size );
3673	}
3674
3675void *flex_realloc( ptr, size )
3676void *ptr;
3677size_t size;
3678	{
3679	return (void *) realloc( ptr, size );
3680	}
3681
3682void flex_free( ptr )
3683void *ptr;
3684	{
3685	if ( ptr )
3686		free( ptr );
3687	}
3688