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