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