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