Get rid off conditionals for hpux, AIX, THINKC, TURBOC, MS_DOS, VMS.
[dragonfly.git] / usr.bin / lex / initscan.c
CommitLineData
984263bc
MD
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 $
6e8149e3 7 * $DragonFly: src/usr.bin/lex/initscan.c,v 1.4 2005/02/20 17:34:11 asmodai Exp $
984263bc
MD
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
984263bc
MD
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
93typedef struct yy_buffer_state *YY_BUFFER_STATE;
94
95extern int yyleng;
96extern 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 */
135typedef unsigned int yy_size_t;
136
137
138struct 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
195static 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. */
205static char yy_hold_char;
206
207static int yy_n_chars; /* number of characters read into yy_ch_buf */
208
209
210int yyleng;
211
212/* Points to current character in buffer. */
213static char *yy_c_buf_p = (char *) 0;
214static int yy_init = 1; /* whether we need to initialize */
215static 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 */
220static int yy_did_buffer_switch_on_eof;
221
222void yyrestart YY_PROTO(( FILE *input_file ));
223
224void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
225void yy_load_buffer_state YY_PROTO(( void ));
226YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
227void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
228void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
229void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
230#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
231
232YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
233YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
234YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
235
236static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
237static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
238static 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
258typedef unsigned char YY_CHAR;
259FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
260typedef int yy_state_type;
261extern char *yytext;
262#define yytext_ptr yytext
263
264static yy_state_type yy_get_previous_state YY_PROTO(( void ));
265static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
266static int yy_get_next_buffer YY_PROTO(( void ));
267static 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
281static 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
369static 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
401static 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
411static 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
509static 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
607static 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
916static 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
1225static yy_state_type yy_last_accepting_state;
1226static 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
1235char *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
1333extern "C" int yywrap YY_PROTO(( void ));
1334#else
1335extern int yywrap YY_PROTO(( void ));
1336#endif
1337#endif
1338
1339#ifndef YY_NO_UNPUT
1340static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1341#endif
1342
1343#ifndef yytext_ptr
1344static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1345#endif
1346
1347#ifdef YY_NEED_STRLEN
1348static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1349#endif
1350
1351#ifndef YY_NO_INPUT
1352#ifdef __cplusplus
1353static int yyinput YY_PROTO(( void ));
1354#else
1355static int input YY_PROTO(( void ));
1356#endif
1357#endif
1358
1359#if YY_STACK_USED
1360static int yy_start_stack_ptr = 0;
1361static int yy_start_stack_depth = 0;
1362static int *yy_start_stack = 0;
1363#ifndef YY_NO_PUSH_STATE
1364static void yy_push_state YY_PROTO(( int new_state ));
1365#endif
1366#ifndef YY_NO_POP_STATE
1367static void yy_pop_state YY_PROTO(( void ));
1368#endif
1369#ifndef YY_NO_TOP_STATE
1370static 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
1380YY_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
1473YY_DECL
1474 {
1475 register yy_state_type yy_current_state;
1476 register char *yy_cp, *yy_bp;
1477 register 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();
1530yy_match:
1531 do
1532 {
1533 register 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
1550yy_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
1562do_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
1575case 1:
1576YY_RULE_SETUP
1577#line 105 "scan.l"
1578indented_code = true; BEGIN(CODEBLOCK);
1579 YY_BREAK
1580case 2:
1581YY_RULE_SETUP
1582#line 106 "scan.l"
1583ACTION_ECHO; yy_push_state( COMMENT );
1584 YY_BREAK
1585case 3:
1586YY_RULE_SETUP
1587#line 107 "scan.l"
1588yy_push_state( LINEDIR );
1589 YY_BREAK
1590case 4:
1591YY_RULE_SETUP
1592#line 108 "scan.l"
1593return SCDECL;
1594 YY_BREAK
1595case 5:
1596YY_RULE_SETUP
1597#line 109 "scan.l"
1598return XSCDECL;
1599 YY_BREAK
1600case 6:
1601YY_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
1610case 7:
1611YY_RULE_SETUP
1612#line 117 "scan.l"
1613/* discard */
1614 YY_BREAK
1615case 8:
1616YY_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
1627case 9:
1628YY_RULE_SETUP
1629#line 128 "scan.l"
1630yytext_is_array = false; ++linenum;
1631 YY_BREAK
1632case 10:
1633YY_RULE_SETUP
1634#line 129 "scan.l"
1635yytext_is_array = true; ++linenum;
1636 YY_BREAK
1637case 11:
1638YY_RULE_SETUP
1639#line 131 "scan.l"
1640BEGIN(OPTION); return OPTION_OP;
1641 YY_BREAK
1642case 12:
1643YY_RULE_SETUP
1644#line 133 "scan.l"
1645++linenum; /* ignore */
1646 YY_BREAK
1647case 13:
1648YY_RULE_SETUP
1649#line 134 "scan.l"
1650++linenum; /* ignore */
1651 YY_BREAK
1652case 14:
1653YY_RULE_SETUP
1654#line 136 "scan.l"
1655synerr( _( "unrecognized '%' directive" ) );
1656 YY_BREAK
1657case 15:
1658YY_RULE_SETUP
1659#line 138 "scan.l"
1660{
1661 strcpy( nmstr, yytext );
1662 didadef = false;
1663 BEGIN(PICKUPDEF);
1664 }
1665 YY_BREAK
1666case 16:
1667YY_RULE_SETUP
1668#line 144 "scan.l"
1669RETURNNAME;
1670 YY_BREAK
1671case 17:
1672YY_RULE_SETUP
1673#line 145 "scan.l"
1674++linenum; /* allows blank lines in section 1 */
1675 YY_BREAK
1676case 18:
1677YY_RULE_SETUP
1678#line 146 "scan.l"
1679ACTION_ECHO; ++linenum; /* maybe end of comment line */
1680 YY_BREAK
1681
1682
1683case 19:
1684YY_RULE_SETUP
1685#line 151 "scan.l"
1686ACTION_ECHO; yy_pop_state();
1687 YY_BREAK
1688case 20:
1689YY_RULE_SETUP
1690#line 152 "scan.l"
1691ACTION_ECHO;
1692 YY_BREAK
1693case 21:
1694YY_RULE_SETUP
1695#line 153 "scan.l"
1696ACTION_ECHO;
1697 YY_BREAK
1698case 22:
1699YY_RULE_SETUP
1700#line 154 "scan.l"
1701++linenum; ACTION_ECHO;
1702 YY_BREAK
1703
1704
1705case 23:
1706YY_RULE_SETUP
1707#line 158 "scan.l"
1708yy_pop_state();
1709 YY_BREAK
1710case 24:
1711YY_RULE_SETUP
1712#line 159 "scan.l"
1713linenum = myctoi( yytext );
1714 YY_BREAK
1715case 25:
1716YY_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
1724case 26:
1725YY_RULE_SETUP
1726#line 166 "scan.l"
1727/* ignore spurious characters */
1728 YY_BREAK
1729
1730
1731case 27:
1732YY_RULE_SETUP
1733#line 170 "scan.l"
1734++linenum; BEGIN(INITIAL);
1735 YY_BREAK
1736case 28:
1737YY_RULE_SETUP
1738#line 172 "scan.l"
1739ACTION_ECHO;
1740 YY_BREAK
1741case 29:
1742YY_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
1753case 30:
1754YY_RULE_SETUP
1755#line 184 "scan.l"
1756/* separates name and definition */
1757 YY_BREAK
1758case 31:
1759YY_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
1776case 32:
1777YY_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
1788case 33:
1789YY_RULE_SETUP
1790#line 211 "scan.l"
1791++linenum; BEGIN(INITIAL);
1792 YY_BREAK
1793case 34:
1794YY_RULE_SETUP
1795#line 212 "scan.l"
1796option_sense = true;
1797 YY_BREAK
1798case 35:
1799YY_RULE_SETUP
1800#line 214 "scan.l"
1801return '=';
1802 YY_BREAK
1803case 36:
1804YY_RULE_SETUP
1805#line 216 "scan.l"
1806option_sense = ! option_sense;
1807 YY_BREAK
1808case 37:
1809YY_RULE_SETUP
1810#line 218 "scan.l"
1811csize = option_sense ? 128 : 256;
1812 YY_BREAK
1813case 38:
1814YY_RULE_SETUP
1815#line 219 "scan.l"
1816csize = option_sense ? 256 : 128;
1817 YY_BREAK
1818case 39:
1819YY_RULE_SETUP
1820#line 221 "scan.l"
1821long_align = option_sense;
1822 YY_BREAK
1823case 40:
1824YY_RULE_SETUP
1825#line 222 "scan.l"
1826{
1827 action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
1828 }
1829 YY_BREAK
1830case 41:
1831YY_RULE_SETUP
1832#line 225 "scan.l"
1833yytext_is_array = option_sense;
1834 YY_BREAK
1835case 42:
1836YY_RULE_SETUP
1837#line 226 "scan.l"
1838backing_up_report = option_sense;
1839 YY_BREAK
1840case 43:
1841YY_RULE_SETUP
1842#line 227 "scan.l"
1843interactive = ! option_sense;
1844 YY_BREAK
1845case 44:
1846YY_RULE_SETUP
1847#line 228 "scan.l"
1848C_plus_plus = option_sense;
1849 YY_BREAK
1850case 45:
1851YY_RULE_SETUP
1852#line 229 "scan.l"
1853caseins = ! option_sense;
1854 YY_BREAK
1855case 46:
1856YY_RULE_SETUP
1857#line 230 "scan.l"
1858caseins = option_sense;
1859 YY_BREAK
1860case 47:
1861YY_RULE_SETUP
1862#line 231 "scan.l"
1863ddebug = option_sense;
1864 YY_BREAK
1865case 48:
1866YY_RULE_SETUP
1867#line 232 "scan.l"
1868spprdflt = ! option_sense;
1869 YY_BREAK
1870case 49:
1871YY_RULE_SETUP
1872#line 233 "scan.l"
1873useecs = option_sense;
1874 YY_BREAK
1875case 50:
1876YY_RULE_SETUP
1877#line 234 "scan.l"
1878{
1879 useecs = usemecs = false;
1880 use_read = fullspd = true;
1881 }
1882 YY_BREAK
1883case 51:
1884YY_RULE_SETUP
1885#line 238 "scan.l"
1886{
1887 useecs = usemecs = false;
1888 use_read = fulltbl = true;
1889 }
1890 YY_BREAK
1891case 52:
1892YY_RULE_SETUP
1893#line 242 "scan.l"
1894ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
1895 YY_BREAK
1896case 53:
1897YY_RULE_SETUP
1898#line 243 "scan.l"
1899interactive = option_sense;
1900 YY_BREAK
1901case 54:
1902YY_RULE_SETUP
1903#line 244 "scan.l"
1904lex_compat = option_sense;
1905 YY_BREAK
1906case 55:
1907YY_RULE_SETUP
1908#line 245 "scan.l"
1909{
1910 action_define( "YY_MAIN", option_sense );
1911 do_yywrap = ! option_sense;
1912 }
1913 YY_BREAK
1914case 56:
1915YY_RULE_SETUP
1916#line 249 "scan.l"
1917usemecs = option_sense;
1918 YY_BREAK
1919case 57:
1920YY_RULE_SETUP
1921#line 250 "scan.l"
1922{
1923 action_define( "YY_NEVER_INTERACTIVE", option_sense );
1924 }
1925 YY_BREAK
1926case 58:
1927YY_RULE_SETUP
1928#line 253 "scan.l"
1929performance_report += option_sense ? 1 : -1;
1930 YY_BREAK
1931case 59:
1932YY_RULE_SETUP
1933#line 254 "scan.l"
1934yytext_is_array = ! option_sense;
1935 YY_BREAK
1936case 60:
1937YY_RULE_SETUP
1938#line 255 "scan.l"
1939use_read = option_sense;
1940 YY_BREAK
1941case 61:
1942YY_RULE_SETUP
1943#line 256 "scan.l"
1944reject_really_used = option_sense;
1945 YY_BREAK
1946case 62:
1947YY_RULE_SETUP
1948#line 257 "scan.l"
1949action_define( "YY_STACK_USED", option_sense );
1950 YY_BREAK
1951case 63:
1952YY_RULE_SETUP
1953#line 258 "scan.l"
1954do_stdinit = option_sense;
1955 YY_BREAK
1956case 64:
1957YY_RULE_SETUP
1958#line 259 "scan.l"
1959use_stdout = option_sense;
1960 YY_BREAK
1961case 65:
1962YY_RULE_SETUP
1963#line 260 "scan.l"
1964ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
1965 YY_BREAK
1966case 66:
1967YY_RULE_SETUP
1968#line 261 "scan.l"
1969printstats = option_sense;
1970 YY_BREAK
1971case 67:
1972YY_RULE_SETUP
1973#line 262 "scan.l"
1974nowarn = ! option_sense;
1975 YY_BREAK
1976case 68:
1977YY_RULE_SETUP
1978#line 263 "scan.l"
1979do_yylineno = option_sense;
1980 YY_BREAK
1981case 69:
1982YY_RULE_SETUP
1983#line 264 "scan.l"
1984yymore_really_used = option_sense;
1985 YY_BREAK
1986case 70:
1987YY_RULE_SETUP
1988#line 265 "scan.l"
1989do_yywrap = option_sense;
1990 YY_BREAK
1991case 71:
1992YY_RULE_SETUP
1993#line 267 "scan.l"
1994ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
1995 YY_BREAK
1996case 72:
1997YY_RULE_SETUP
1998#line 268 "scan.l"
1999ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
2000 YY_BREAK
2001case 73:
2002YY_RULE_SETUP
2003#line 269 "scan.l"
2004ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);
2005 YY_BREAK
2006case 74:
2007YY_RULE_SETUP
2008#line 271 "scan.l"
2009ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
2010 YY_BREAK
2011case 75:
2012YY_RULE_SETUP
2013#line 272 "scan.l"
2014ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
2015 YY_BREAK
2016case 76:
2017YY_RULE_SETUP
2018#line 273 "scan.l"
2019ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);
2020 YY_BREAK
2021case 77:
2022YY_RULE_SETUP
2023#line 275 "scan.l"
2024return OPT_OUTFILE;
2025 YY_BREAK
2026case 78:
2027YY_RULE_SETUP
2028#line 276 "scan.l"
2029return OPT_PREFIX;
2030 YY_BREAK
2031case 79:
2032YY_RULE_SETUP
2033#line 277 "scan.l"
2034return OPT_YYCLASS;
2035 YY_BREAK
2036case 80:
2037YY_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
2045case 81:
2046YY_RULE_SETUP
2047#line 285 "scan.l"
2048{
2049 format_synerr( _( "unrecognized %%option: %s" ),
2050 yytext );
2051 BEGIN(RECOVER);
2052 }
2053 YY_BREAK
2054
2055case 82:
2056YY_RULE_SETUP
2057#line 292 "scan.l"
2058++linenum; BEGIN(INITIAL);
2059 YY_BREAK
2060
2061case 83:
2062YY_RULE_SETUP
2063#line 296 "scan.l"
2064++bracelevel; yyless( 2 ); /* eat only %{ */
2065 YY_BREAK
2066case 84:
2067YY_RULE_SETUP
2068#line 297 "scan.l"
2069--bracelevel; yyless( 2 ); /* eat only %} */
2070 YY_BREAK
2071case 85:
2072YY_RULE_SETUP
2073#line 299 "scan.l"
2074ACTION_ECHO; /* indented code in prolog */
2075 YY_BREAK
2076case 86:
2077YY_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
2091case 87:
2092YY_RULE_SETUP
2093#line 313 "scan.l"
2094ACTION_ECHO;
2095 YY_BREAK
2096case 88:
2097YY_RULE_SETUP
2098#line 314 "scan.l"
2099++linenum; ACTION_ECHO;
2100 YY_BREAK
2101case 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
2111case 89:
2112YY_RULE_SETUP
2113#line 324 "scan.l"
2114++linenum; /* allow blank lines in section 2 */
2115 YY_BREAK
2116case 90:
2117YY_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
2126case 91:
2127YY_RULE_SETUP
2128#line 333 "scan.l"
2129BEGIN(SC); return '<';
2130 YY_BREAK
2131case 92:
2132YY_RULE_SETUP
2133#line 334 "scan.l"
2134return '^';
2135 YY_BREAK
2136case 93:
2137YY_RULE_SETUP
2138#line 335 "scan.l"
2139BEGIN(QUOTE); return '"';
2140 YY_BREAK
2141case 94:
2142*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2143yy_c_buf_p = yy_cp = yy_bp + 1;
2144YY_DO_BEFORE_ACTION; /* set up yytext again */
2145YY_RULE_SETUP
2146#line 336 "scan.l"
2147BEGIN(NUM); return '{';
2148 YY_BREAK
2149case 95:
2150*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2151yy_c_buf_p = yy_cp = yy_bp + 1;
2152YY_DO_BEFORE_ACTION; /* set up yytext again */
2153YY_RULE_SETUP
2154#line 337 "scan.l"
2155return '$';
2156 YY_BREAK
2157case 96:
2158YY_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
2172case 97:
2173YY_RULE_SETUP
2174#line 350 "scan.l"
2175continued_action = true; ++linenum; return '\n';
2176 YY_BREAK
2177case 98:
2178YY_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
2187case 99:
2188YY_RULE_SETUP
2189#line 359 "scan.l"
2190/* allow indented rules */
2191 YY_BREAK
2192case 100:
2193YY_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
2212case 101:
2213YY_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
2229case 102:
2230#line 393 "scan.l"
2231case 103:
2232YY_RULE_SETUP
2233#line 393 "scan.l"
2234return EOF_OP;
2235 YY_BREAK
2236case 104:
2237YY_RULE_SETUP
2238#line 395 "scan.l"
2239{
2240 sectnum = 3;
2241 BEGIN(SECT3);
2242 yyterminate(); /* to stop the parser */
2243 }
2244 YY_BREAK
2245case 105:
2246YY_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
2282case 106:
2283YY_RULE_SETUP
2284#line 435 "scan.l"
2285{
2286 register 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
2319case 107:
2320YY_RULE_SETUP
2321#line 469 "scan.l"
2322return (unsigned char) yytext[0];
2323 YY_BREAK
2324case 108:
2325YY_RULE_SETUP
2326#line 470 "scan.l"
2327RETURNCHAR;
2328 YY_BREAK
2329
2330
2331case 109:
2332YY_RULE_SETUP
2333#line 475 "scan.l"
2334return (unsigned char) yytext[0];
2335 YY_BREAK
2336case 110:
2337YY_RULE_SETUP
2338#line 476 "scan.l"
2339BEGIN(SECT2); return '>';
2340 YY_BREAK
2341case 111:
2342*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2343yy_c_buf_p = yy_cp = yy_bp + 1;
2344YY_DO_BEFORE_ACTION; /* set up yytext again */
2345YY_RULE_SETUP
2346#line 477 "scan.l"
2347BEGIN(CARETISBOL); return '>';
2348 YY_BREAK
2349case 112:
2350YY_RULE_SETUP
2351#line 478 "scan.l"
2352RETURNNAME;
2353 YY_BREAK
2354case 113:
2355YY_RULE_SETUP
2356#line 479 "scan.l"
2357{
2358 format_synerr( _( "bad <start condition>: %s" ),
2359 yytext );
2360 }
2361 YY_BREAK
2362
2363case 114:
2364YY_RULE_SETUP
2365#line 485 "scan.l"
2366BEGIN(SECT2); return '^';
2367 YY_BREAK
2368
2369case 115:
2370YY_RULE_SETUP
2371#line 489 "scan.l"
2372RETURNCHAR;
2373 YY_BREAK
2374case 116:
2375YY_RULE_SETUP
2376#line 490 "scan.l"
2377BEGIN(SECT2); return '"';
2378 YY_BREAK
2379case 117:
2380YY_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
2391case 118:
2392*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2393yy_c_buf_p = yy_cp = yy_bp + 1;
2394YY_DO_BEFORE_ACTION; /* set up yytext again */
2395YY_RULE_SETUP
2396#line 502 "scan.l"
2397BEGIN(CCL); return '^';
2398 YY_BREAK
2399case 119:
2400*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2401yy_c_buf_p = yy_cp = yy_bp + 1;
2402YY_DO_BEFORE_ACTION; /* set up yytext again */
2403YY_RULE_SETUP
2404#line 503 "scan.l"
2405return '^';
2406 YY_BREAK
2407case 120:
2408YY_RULE_SETUP
2409#line 504 "scan.l"
2410BEGIN(CCL); RETURNCHAR;
2411 YY_BREAK
2412
2413
2414case 121:
2415*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2416yy_c_buf_p = yy_cp = yy_bp + 1;
2417YY_DO_BEFORE_ACTION; /* set up yytext again */
2418YY_RULE_SETUP
2419#line 508 "scan.l"
2420return '-';
2421 YY_BREAK
2422case 122:
2423YY_RULE_SETUP
2424#line 509 "scan.l"
2425RETURNCHAR;
2426 YY_BREAK
2427case 123:
2428YY_RULE_SETUP
2429#line 510 "scan.l"
2430BEGIN(SECT2); return ']';
2431 YY_BREAK
2432case 124:
2433YY_RULE_SETUP
2434#line 511 "scan.l"
2435{
2436 synerr( _( "bad character class" ) );
2437 BEGIN(SECT2);
2438 return ']';
2439 }
2440 YY_BREAK
2441
2442
2443case 125:
2444YY_RULE_SETUP
2445#line 519 "scan.l"
2446BEGIN(CCL); return CCE_ALNUM;
2447 YY_BREAK
2448case 126:
2449YY_RULE_SETUP
2450#line 520 "scan.l"
2451BEGIN(CCL); return CCE_ALPHA;
2452 YY_BREAK
2453case 127:
2454YY_RULE_SETUP
2455#line 521 "scan.l"
2456BEGIN(CCL); return CCE_BLANK;
2457 YY_BREAK
2458case 128:
2459YY_RULE_SETUP
2460#line 522 "scan.l"
2461BEGIN(CCL); return CCE_CNTRL;
2462 YY_BREAK
2463case 129:
2464YY_RULE_SETUP
2465#line 523 "scan.l"
2466BEGIN(CCL); return CCE_DIGIT;
2467 YY_BREAK
2468case 130:
2469YY_RULE_SETUP
2470#line 524 "scan.l"
2471BEGIN(CCL); return CCE_GRAPH;
2472 YY_BREAK
2473case 131:
2474YY_RULE_SETUP
2475#line 525 "scan.l"
2476BEGIN(CCL); return CCE_LOWER;
2477 YY_BREAK
2478case 132:
2479YY_RULE_SETUP
2480#line 526 "scan.l"
2481BEGIN(CCL); return CCE_PRINT;
2482 YY_BREAK
2483case 133:
2484YY_RULE_SETUP
2485#line 527 "scan.l"
2486BEGIN(CCL); return CCE_PUNCT;
2487 YY_BREAK
2488case 134:
2489YY_RULE_SETUP
2490#line 528 "scan.l"
2491BEGIN(CCL); return CCE_SPACE;
2492 YY_BREAK
2493case 135:
2494YY_RULE_SETUP
2495#line 529 "scan.l"
2496BEGIN(CCL); return CCE_UPPER;
2497 YY_BREAK
2498case 136:
2499YY_RULE_SETUP
2500#line 530 "scan.l"
2501BEGIN(CCL); return CCE_XDIGIT;
2502 YY_BREAK
2503case 137:
2504YY_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
2515case 138:
2516YY_RULE_SETUP
2517#line 540 "scan.l"
2518{
2519 yylval = myctoi( yytext );
2520 return NUMBER;
2521 }
2522 YY_BREAK
2523case 139:
2524YY_RULE_SETUP
2525#line 545 "scan.l"
2526return ',';
2527 YY_BREAK
2528case 140:
2529YY_RULE_SETUP
2530#line 546 "scan.l"
2531BEGIN(SECT2); return '}';
2532 YY_BREAK
2533case 141:
2534YY_RULE_SETUP
2535#line 548 "scan.l"
2536{
2537 synerr( _( "bad character inside {}'s" ) );
2538 BEGIN(SECT2);
2539 return '}';
2540 }
2541 YY_BREAK
2542case 142:
2543YY_RULE_SETUP
2544#line 554 "scan.l"
2545{
2546 synerr( _( "missing }" ) );
2547 BEGIN(SECT2);
2548 ++linenum;
2549 return '}';
2550 }
2551 YY_BREAK
2552
2553
2554case 143:
2555YY_RULE_SETUP
2556#line 564 "scan.l"
2557bracelevel = 0;
2558 YY_BREAK
2559case 144:
2560YY_RULE_SETUP
2561#line 566 "scan.l"
2562ACTION_ECHO; yy_push_state( COMMENT );
2563 YY_BREAK
2564
2565case 145:
2566YY_RULE_SETUP
2567#line 569 "scan.l"
2568{
2569 ACTION_ECHO;
2570 CHECK_REJECT(yytext);
2571 }
2572 YY_BREAK
2573case 146:
2574YY_RULE_SETUP
2575#line 573 "scan.l"
2576{
2577 ACTION_ECHO;
2578 CHECK_YYMORE(yytext);
2579 }
2580 YY_BREAK
2581
2582case 147:
2583YY_RULE_SETUP
2584#line 579 "scan.l"
2585ACTION_ECHO;
2586 YY_BREAK
2587case 148:
2588YY_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
2607case 149:
2608YY_RULE_SETUP
2609#line 598 "scan.l"
2610ACTION_ECHO; ++bracelevel;
2611 YY_BREAK
2612case 150:
2613YY_RULE_SETUP
2614#line 599 "scan.l"
2615ACTION_ECHO; --bracelevel;
2616 YY_BREAK
2617case 151:
2618YY_RULE_SETUP
2619#line 600 "scan.l"
2620ACTION_ECHO;
2621 YY_BREAK
2622case 152:
2623YY_RULE_SETUP
2624#line 601 "scan.l"
2625ACTION_ECHO;
2626 YY_BREAK
2627case 153:
2628YY_RULE_SETUP
2629#line 602 "scan.l"
2630ACTION_ECHO; /* character constant */
2631 YY_BREAK
2632case 154:
2633YY_RULE_SETUP
2634#line 603 "scan.l"
2635ACTION_ECHO; BEGIN(ACTION_STRING);
2636 YY_BREAK
2637case 155:
2638YY_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
2653case 156:
2654YY_RULE_SETUP
2655#line 616 "scan.l"
2656ACTION_ECHO;
2657 YY_BREAK
2658
2659
2660case 157:
2661YY_RULE_SETUP
2662#line 620 "scan.l"
2663ACTION_ECHO;
2664 YY_BREAK
2665case 158:
2666YY_RULE_SETUP
2667#line 621 "scan.l"
2668ACTION_ECHO;
2669 YY_BREAK
2670case 159:
2671YY_RULE_SETUP
2672#line 622 "scan.l"
2673++linenum; ACTION_ECHO;
2674 YY_BREAK
2675case 160:
2676YY_RULE_SETUP
2677#line 623 "scan.l"
2678ACTION_ECHO; BEGIN(ACTION);
2679 YY_BREAK
2680case 161:
2681YY_RULE_SETUP
2682#line 624 "scan.l"
2683ACTION_ECHO;
2684 YY_BREAK
2685
2686case YY_STATE_EOF(COMMENT):
2687case YY_STATE_EOF(ACTION):
2688case YY_STATE_EOF(ACTION_STRING):
2689#line 627 "scan.l"
2690{
2691 synerr( _( "EOF encountered inside an action" ) );
2692 yyterminate();
2693 }
2694 YY_BREAK
2695case 162:
2696YY_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
2708case 163:
2709YY_RULE_SETUP
2710#line 644 "scan.l"
2711ECHO;
2712 YY_BREAK
2713case YY_STATE_EOF(SECT3):
2714#line 645 "scan.l"
2715sectnum = 0; yyterminate();
2716 YY_BREAK
2717
2718case 164:
2719YY_RULE_SETUP
2720#line 648 "scan.l"
2721format_synerr( _( "bad character: %s" ), yytext );
2722 YY_BREAK
2723case 165:
2724YY_RULE_SETUP
2725#line 650 "scan.l"
2726YY_FATAL_ERROR( "flex scanner jammed" );
2727 YY_BREAK
2728#line 2736 "scan.c"
2729case YY_STATE_EOF(INITIAL):
2730case YY_STATE_EOF(SECT2):
2731case YY_STATE_EOF(CODEBLOCK):
2732case YY_STATE_EOF(PICKUPDEF):
2733case YY_STATE_EOF(SC):
2734case YY_STATE_EOF(CARETISBOL):
2735case YY_STATE_EOF(NUM):
2736case YY_STATE_EOF(QUOTE):
2737case YY_STATE_EOF(FIRSTCCL):
2738case YY_STATE_EOF(CCL):
2739case YY_STATE_EOF(RECOVER):
2740case YY_STATE_EOF(PERCENT_BRACE_ACTION):
2741case YY_STATE_EOF(OPTION):
2742case 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
2883static int yy_get_next_buffer()
2884 {
2885 register char *dest = yy_current_buffer->yy_ch_buf;
2886 register char *source = yytext_ptr;
2887 register 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
3015static yy_state_type yy_get_previous_state()
3016 {
3017 register yy_state_type yy_current_state;
3018 register 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 register 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
3051static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3052#else
3053static yy_state_type yy_try_NUL_trans( yy_current_state )
3054yy_state_type yy_current_state;
3055#endif
3056 {
3057 register int yy_is_jam;
3058 register char *yy_cp = yy_c_buf_p;
3059
3060 register 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
3081static void yyunput( int c, register char *yy_bp )
3082#else
3083static void yyunput( c, yy_bp )
3084int c;
3085register char *yy_bp;
3086#endif
3087 {
3088 register 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 register int number_to_move = yy_n_chars + 2;
3097 register char *dest = &yy_current_buffer->yy_ch_buf[
3098 yy_current_buffer->yy_buf_size + 2];
3099 register 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
3125static int yyinput()
3126#else
3127static 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
3199void yyrestart( FILE *input_file )
3200#else
3201void yyrestart( input_file )
3202FILE *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
3214void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3215#else
3216void yy_switch_to_buffer( new_buffer )
3217YY_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
3244void yy_load_buffer_state( void )
3245#else
3246void 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
3257YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3258#else
3259YY_BUFFER_STATE yy_create_buffer( file, size )
3260FILE *file;
3261int 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
3288void yy_delete_buffer( YY_BUFFER_STATE b )
3289#else
3290void yy_delete_buffer( b )
3291YY_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
3309extern int isatty YY_PROTO(( int ));
3310#endif
3311#endif
3312
3313#ifdef YY_USE_PROTOS
3314void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3315#else
3316void yy_init_buffer( b, file )
3317YY_BUFFER_STATE b;
3318FILE *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
3341void yy_flush_buffer( YY_BUFFER_STATE b )
3342#else
3343void yy_flush_buffer( b )
3344YY_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
3372YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3373#else
3374YY_BUFFER_STATE yy_scan_buffer( base, size )
3375char *base;
3376yy_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
3410YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3411#else
3412YY_BUFFER_STATE yy_scan_string( yy_str )
3413yyconst 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
3427YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3428#else
3429YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3430yyconst char *bytes;
3431int 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
3466static void yy_push_state( int new_state )
3467#else
3468static void yy_push_state( new_state )
3469int 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
3499static 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
3510static 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
3521static void yy_fatal_error( yyconst char msg[] )
3522#else
3523static void yy_fatal_error( msg )
3524char 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
3553static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3554#else
3555static void yy_flex_strncpy( s1, s2, n )
3556char *s1;
3557yyconst char *s2;
3558int n;
3559#endif
3560 {
3561 register 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
3569static int yy_flex_strlen( yyconst char *s )
3570#else
3571static int yy_flex_strlen( s )
3572yyconst char *s;
3573#endif
3574 {
3575 register int n;
3576 for ( n = 0; s[n]; ++n )
3577 ;
3578
3579 return n;
3580 }
3581#endif
3582
3583
3584#ifdef YY_USE_PROTOS
3585static void *yy_flex_alloc( yy_size_t size )
3586#else
3587static void *yy_flex_alloc( size )
3588yy_size_t size;
3589#endif
3590 {
3591 return (void *) malloc( size );
3592 }
3593
3594#ifdef YY_USE_PROTOS
3595static void *yy_flex_realloc( void *ptr, yy_size_t size )
3596#else
3597static void *yy_flex_realloc( ptr, size )
3598void *ptr;
3599yy_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
3613static void yy_flex_free( void *ptr )
3614#else
3615static void yy_flex_free( ptr )
3616void *ptr;
3617#endif
3618 {
3619 free( ptr );
3620 }
3621
3622#if YY_MAIN
3623int main()
3624 {
3625 yylex();
3626 return 0;
3627 }
3628#endif
3629#line 650 "scan.l"
3630
3631
3632
1d1731fa 3633int yywrap(void)
984263bc
MD
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
1d1731fa 3648void set_input_file(char *file)
984263bc
MD
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
1d1731fa 3671void *flex_alloc(size_t size)
984263bc
MD
3672 {
3673 return (void *) malloc( size );
3674 }
3675
1d1731fa 3676void *flex_realloc(void *ptr, size_t size)
984263bc
MD
3677 {
3678 return (void *) realloc( ptr, size );
3679 }
3680
1d1731fa 3681void flex_free(void *ptr)
984263bc
MD
3682 {
3683 if ( ptr )
3684 free( ptr );
3685 }