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