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