libsodium: Needed for Dnscrypto-proxy Release 1.3.0
[tomato.git] / release / src / router / config / lex.zconf.c_shipped
blob9550f1179305d1d4a583a373455c8bb1fe8bd3a0
1 #define yy_create_buffer zconf_create_buffer
2 #define yy_delete_buffer zconf_delete_buffer
3 #define yy_scan_buffer zconf_scan_buffer
4 #define yy_scan_string zconf_scan_string
5 #define yy_scan_bytes zconf_scan_bytes
6 #define yy_flex_debug zconf_flex_debug
7 #define yy_init_buffer zconf_init_buffer
8 #define yy_flush_buffer zconf_flush_buffer
9 #define yy_load_buffer_state zconf_load_buffer_state
10 #define yy_switch_to_buffer zconf_switch_to_buffer
11 #define yyin zconfin
12 #define yyleng zconfleng
13 #define yylex zconflex
14 #define yyout zconfout
15 #define yyrestart zconfrestart
16 #define yytext zconftext
18 /* A lexical scanner generated by flex */
20 /* Scanner skeleton version:
21  * $Header: /home/cvsroot/wrt54g/src/router/config/lex.zconf.c_shipped,v 1.1.1.2 2003/10/14 08:09:40 sparq Exp $
22  */
24 #define FLEX_SCANNER
25 #define YY_FLEX_MAJOR_VERSION 2
26 #define YY_FLEX_MINOR_VERSION 5
28 #include <stdio.h>
29 #include <errno.h>
31 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
32 #ifdef c_plusplus
33 #ifndef __cplusplus
34 #define __cplusplus
35 #endif
36 #endif
39 #ifdef __cplusplus
41 #include <stdlib.h>
42 #ifndef _WIN32
43 #include <unistd.h>
44 #endif
46 /* Use prototypes in function declarations. */
47 #define YY_USE_PROTOS
49 /* The "const" storage-class-modifier is valid. */
50 #define YY_USE_CONST
52 #else   /* ! __cplusplus */
54 #if __STDC__
56 #define YY_USE_PROTOS
57 #define YY_USE_CONST
59 #endif  /* __STDC__ */
60 #endif  /* ! __cplusplus */
62 #ifdef __TURBOC__
63  #pragma warn -rch
64  #pragma warn -use
65 #include <io.h>
66 #include <stdlib.h>
67 #define YY_USE_CONST
68 #define YY_USE_PROTOS
69 #endif
71 #ifdef YY_USE_CONST
72 #define yyconst const
73 #else
74 #define yyconst
75 #endif
78 #ifdef YY_USE_PROTOS
79 #define YY_PROTO(proto) proto
80 #else
81 #define YY_PROTO(proto) ()
82 #endif
84 /* Returned upon end-of-file. */
85 #define YY_NULL 0
87 /* Promotes a possibly negative, possibly signed char to an unsigned
88  * integer for use as an array index.  If the signed char is negative,
89  * we want to instead treat it as an 8-bit unsigned char, hence the
90  * double cast.
91  */
92 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
94 /* Enter a start condition.  This macro really ought to take a parameter,
95  * but we do it the disgusting crufty way forced on us by the ()-less
96  * definition of BEGIN.
97  */
98 #define BEGIN yy_start = 1 + 2 *
100 /* Translate the current start state into a value that can be later handed
101  * to BEGIN to return to the state.  The YYSTATE alias is for lex
102  * compatibility.
103  */
104 #define YY_START ((yy_start - 1) / 2)
105 #define YYSTATE YY_START
107 /* Action number for EOF rule of a given start state. */
108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
110 /* Special action meaning "start processing a new file". */
111 #define YY_NEW_FILE yyrestart( yyin )
113 #define YY_END_OF_BUFFER_CHAR 0
115 /* Size of default input buffer. */
116 #define YY_BUF_SIZE 16384
118 typedef struct yy_buffer_state *YY_BUFFER_STATE;
120 extern int yyleng;
121 extern FILE *yyin, *yyout;
123 #define EOB_ACT_CONTINUE_SCAN 0
124 #define EOB_ACT_END_OF_FILE 1
125 #define EOB_ACT_LAST_MATCH 2
127 /* The funky do-while in the following #define is used to turn the definition
128  * int a single C statement (which needs a semi-colon terminator).  This
129  * avoids problems with code like:
131  *      if ( condition_holds )
132  *              yyless( 5 );
133  *      else
134  *              do_something_else();
136  * Prior to using the do-while the compiler would get upset at the
137  * "else" because it interpreted the "if" statement as being all
138  * done when it reached the ';' after the yyless() call.
139  */
141 /* Return all but the first 'n' matched characters back to the input stream. */
143 #define yyless(n) \
144         do \
145                 { \
146                 /* Undo effects of setting up yytext. */ \
147                 *yy_cp = yy_hold_char; \
148                 YY_RESTORE_YY_MORE_OFFSET \
149                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151                 } \
152         while ( 0 )
154 #define unput(c) yyunput( c, yytext_ptr )
156 /* The following is because we cannot portably get our hands on size_t
157  * (without autoconf's help, which isn't available because we want
158  * flex-generated scanners to compile on their own).
159  */
160 typedef unsigned int yy_size_t;
163 struct yy_buffer_state
164         {
165         FILE *yy_input_file;
167         char *yy_ch_buf;                /* input buffer */
168         char *yy_buf_pos;               /* current position in input buffer */
170         /* Size of input buffer in bytes, not including room for EOB
171          * characters.
172          */
173         yy_size_t yy_buf_size;
175         /* Number of characters read into yy_ch_buf, not including EOB
176          * characters.
177          */
178         int yy_n_chars;
180         /* Whether we "own" the buffer - i.e., we know we created it,
181          * and can realloc() it to grow it, and should free() it to
182          * delete it.
183          */
184         int yy_is_our_buffer;
186         /* Whether this is an "interactive" input source; if so, and
187          * if we're using stdio for input, then we want to use getc()
188          * instead of fread(), to make sure we stop fetching input after
189          * each newline.
190          */
191         int yy_is_interactive;
193         /* Whether we're considered to be at the beginning of a line.
194          * If so, '^' rules will be active on the next match, otherwise
195          * not.
196          */
197         int yy_at_bol;
199         /* Whether to try to fill the input buffer when we reach the
200          * end of it.
201          */
202         int yy_fill_buffer;
204         int yy_buffer_status;
205 #define YY_BUFFER_NEW 0
206 #define YY_BUFFER_NORMAL 1
207         /* When an EOF's been seen but there's still some text to process
208          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209          * shouldn't try reading from the input source any more.  We might
210          * still have a bunch of tokens to match, though, because of
211          * possible backing-up.
212          *
213          * When we actually see the EOF, we change the status to "new"
214          * (via yyrestart()), so that the user can continue scanning by
215          * just pointing yyin at a new input file.
216          */
217 #define YY_BUFFER_EOF_PENDING 2
218         };
220 static YY_BUFFER_STATE yy_current_buffer = 0;
222 /* We provide macros for accessing buffer states in case in the
223  * future we want to put the buffer states in a more general
224  * "scanner state".
225  */
226 #define YY_CURRENT_BUFFER yy_current_buffer
229 /* yy_hold_char holds the character lost when yytext is formed. */
230 static char yy_hold_char;
232 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
235 int yyleng;
237 /* Points to current character in buffer. */
238 static char *yy_c_buf_p = (char *) 0;
239 static int yy_init = 1;         /* whether we need to initialize */
240 static int yy_start = 0;        /* start state number */
242 /* Flag which is used to allow yywrap()'s to do buffer switches
243  * instead of setting up a fresh yyin.  A bit of a hack ...
244  */
245 static int yy_did_buffer_switch_on_eof;
247 void yyrestart YY_PROTO(( FILE *input_file ));
249 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250 void yy_load_buffer_state YY_PROTO(( void ));
251 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
257 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
261 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263 static void yy_flex_free YY_PROTO(( void * ));
265 #define yy_new_buffer yy_create_buffer
267 #define yy_set_interactive(is_interactive) \
268         { \
269         if ( ! yy_current_buffer ) \
270                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271         yy_current_buffer->yy_is_interactive = is_interactive; \
272         }
274 #define yy_set_bol(at_bol) \
275         { \
276         if ( ! yy_current_buffer ) \
277                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278         yy_current_buffer->yy_at_bol = at_bol; \
279         }
281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
284 #define yywrap() 1
285 #define YY_SKIP_YYWRAP
286 typedef unsigned char YY_CHAR;
287 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
288 typedef int yy_state_type;
289 extern char *yytext;
290 #define yytext_ptr yytext
291 static yyconst short yy_nxt[][37] =
292     {
293     {
294         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
295         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
296         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
297         0,    0,    0,    0,    0,    0,    0
298     },
300     {
301        11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
302        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
303        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
304        12,   12,   12,   12,   12,   12,   12
305     },
307     {
308        11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
309        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
311        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
312        12,   12,   12,   12,   12,   12,   12
313     },
315     {
316        11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
317        16,   16,   16,   18,   16,   16,   18,   19,   20,   21,
318        22,   18,   18,   23,   24,   18,   25,   18,   26,   27,
319        18,   28,   29,   30,   18,   18,   16
320     },
322     {
323        11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
324        16,   16,   16,   18,   16,   16,   18,   19,   20,   21,
325        22,   18,   18,   23,   24,   18,   25,   18,   26,   27,
326        18,   28,   29,   30,   18,   18,   16
328     },
330     {
331        11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
332        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
333        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
334        31,   31,   31,   31,   31,   31,   31
335     },
337     {
338        11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
339        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
340        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
341        31,   31,   31,   31,   31,   31,   31
342     },
344     {
345        11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
346        34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
348        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
349        34,   34,   34,   34,   34,   34,   34
350     },
352     {
353        11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
354        34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
355        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
356        34,   34,   34,   34,   34,   34,   34
357     },
359     {
360        11,   38,   38,   39,   40,   41,   38,   42,   41,   43,
361        44,   45,   46,   46,   47,   38,   46,   46,   46,   46,
362        46,   46,   46,   46,   48,   46,   46,   46,   49,   46,
363        46,   46,   46,   46,   46,   46,   50
365     },
367     {
368        11,   38,   38,   39,   40,   41,   38,   42,   41,   43,
369        44,   45,   46,   46,   47,   38,   46,   46,   46,   46,
370        46,   46,   46,   46,   48,   46,   46,   46,   49,   46,
371        46,   46,   46,   46,   46,   46,   50
372     },
374     {
375       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
376       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
377       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
378       -11,  -11,  -11,  -11,  -11,  -11,  -11
379     },
381     {
382        11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
383       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
385       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
386       -12,  -12,  -12,  -12,  -12,  -12,  -12
387     },
389     {
390        11,  -13,   51,   52,  -13,  -13,   53,  -13,  -13,  -13,
391       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
392       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
393       -13,  -13,  -13,  -13,  -13,  -13,  -13
394     },
396     {
397        11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
398       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
399       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
400       -14,  -14,  -14,  -14,  -14,  -14,  -14
402     },
404     {
405        11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
406        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
407        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
408        54,   54,   54,   54,   54,   54,   54
409     },
411     {
412        11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
413       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
414       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
415       -16,  -16,  -16,  -16,  -16,  -16,  -16
416     },
418     {
419        11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
420       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
422       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
423       -17,  -17,  -17,  -17,  -17,  -17,  -17
424     },
426     {
427        11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
428       -18,  -18,  -18,   56,  -18,  -18,   56,   56,   56,   56,
429        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
430        56,   56,   56,   56,   56,   56,  -18
431     },
433     {
434        11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
435       -19,  -19,  -19,   56,  -19,  -19,   56,   56,   56,   56,
436        56,   56,   56,   56,   56,   56,   56,   56,   57,   56,
437        56,   56,   56,   56,   56,   56,  -19
439     },
441     {
442        11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
443       -20,  -20,  -20,   56,  -20,  -20,   56,   56,   56,   56,
444        56,   56,   56,   58,   56,   56,   56,   56,   59,   56,
445        56,   56,   56,   56,   56,   56,  -20
446     },
448     {
449        11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
450       -21,  -21,  -21,   56,  -21,  -21,   56,   56,   56,   56,
451        60,   56,   56,   56,   56,   56,   56,   56,   56,   56,
452        56,   56,   56,   56,   56,   56,  -21
453     },
455     {
456        11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
457       -22,  -22,  -22,   56,  -22,  -22,   56,   56,   56,   56,
459        56,   56,   56,   56,   56,   56,   56,   61,   56,   56,
460        56,   56,   56,   56,   56,   56,  -22
461     },
463     {
464        11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
465       -23,  -23,  -23,   56,  -23,  -23,   56,   56,   56,   56,
466        62,   56,   56,   56,   56,   56,   56,   56,   56,   56,
467        56,   56,   56,   56,   56,   56,  -23
468     },
470     {
471        11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
472       -24,  -24,  -24,   56,  -24,  -24,   56,   56,   56,   56,
473        56,   63,   56,   56,   56,   56,   56,   64,   56,   56,
474        56,   56,   56,   56,   56,   56,  -24
476     },
478     {
479        11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
480       -25,  -25,  -25,   56,  -25,  -25,   65,   56,   56,   56,
481        66,   56,   56,   56,   56,   56,   56,   56,   56,   56,
482        56,   56,   56,   56,   56,   56,  -25
483     },
485     {
486        11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
487       -26,  -26,  -26,   56,  -26,  -26,   56,   56,   56,   56,
488        56,   56,   56,   56,   56,   56,   56,   56,   56,   67,
489        56,   56,   56,   56,   56,   56,  -26
490     },
492     {
493        11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
494       -27,  -27,  -27,   56,  -27,  -27,   56,   56,   56,   56,
496        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
497        56,   68,   56,   56,   56,   56,  -27
498     },
500     {
501        11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
502       -28,  -28,  -28,   56,  -28,  -28,   56,   56,   56,   56,
503        69,   56,   56,   56,   56,   56,   56,   56,   56,   56,
504        56,   56,   56,   56,   56,   56,  -28
505     },
507     {
508        11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
509       -29,  -29,  -29,   56,  -29,  -29,   56,   56,   56,   56,
510        56,   56,   56,   56,   56,   56,   56,   56,   70,   56,
511        56,   56,   56,   71,   56,   56,  -29
513     },
515     {
516        11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
517       -30,  -30,  -30,   56,  -30,  -30,   56,   56,   56,   56,
518        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
519        56,   72,   56,   56,   56,   56,  -30
520     },
522     {
523        11,   73,   73,  -31,   73,   73,   73,   73,   73,   73,
524        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
525        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
526        73,   73,   73,   73,   73,   73,   73
527     },
529     {
530        11,  -32,   74,   75,  -32,  -32,  -32,  -32,  -32,  -32,
531       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
533       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
534       -32,  -32,  -32,  -32,  -32,  -32,  -32
535     },
537     {
538        11,   76,  -33,  -33,   76,   76,   76,   76,   76,   76,
539        76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
540        76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
541        76,   76,   76,   76,   76,   76,   76
542     },
544     {
545        11,   77,   77,   78,   77,  -34,   77,   77,  -34,   77,
546        77,   77,   77,   77,   77,  -34,   77,   77,   77,   77,
547        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
548        77,   77,   77,   77,   77,   77,   77
550     },
552     {
553        11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
554       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
555       -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
556       -35,  -35,  -35,  -35,  -35,  -35,  -35
557     },
559     {
560        11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
561       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
562       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
563       -36,  -36,  -36,  -36,  -36,  -36,  -36
564     },
566     {
567        11,   79,   79,   80,   79,   79,   79,   79,   79,   79,
568        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
570        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
571        79,   79,   79,   79,   79,   79,   79
572     },
574     {
575        11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
576       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
577       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
578       -38,  -38,  -38,  -38,  -38,  -38,  -38
579     },
581     {
582        11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
583       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
584       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
585       -39,  -39,  -39,  -39,  -39,  -39,  -39
587     },
589     {
590        11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
591       -40,  -40,  -40,  -40,   81,  -40,  -40,  -40,  -40,  -40,
592       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
593       -40,  -40,  -40,  -40,  -40,  -40,  -40
594     },
596     {
597        11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
598       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
599       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
600       -41,  -41,  -41,  -41,  -41,  -41,  -41
601     },
603     {
604        11,  -42,  -42,  -42,  -42,  -42,  -42,   82,  -42,  -42,
605       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
607       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
608       -42,  -42,  -42,  -42,  -42,  -42,  -42
609     },
611     {
612        11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
613       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
614       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
615       -43,  -43,  -43,  -43,  -43,  -43,  -43
616     },
618     {
619        11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
620       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
621       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
622       -44,  -44,  -44,  -44,  -44,  -44,  -44
624     },
626     {
627        11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
628       -45,   83,   84,   84,  -45,  -45,   84,   84,   84,   84,
629        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
630        84,   84,   84,   84,   84,   84,  -45
631     },
633     {
634        11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
635       -46,   84,   84,   84,  -46,  -46,   84,   84,   84,   84,
636        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
637        84,   84,   84,   84,   84,   84,  -46
638     },
640     {
641        11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
642       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
644       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
645       -47,  -47,  -47,  -47,  -47,  -47,  -47
646     },
648     {
649        11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
650       -48,   84,   84,   84,  -48,  -48,   84,   84,   84,   84,
651        84,   85,   84,   84,   84,   84,   84,   84,   84,   84,
652        84,   84,   84,   84,   84,   84,  -48
653     },
655     {
656        11,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
657       -49,   84,   84,   84,  -49,  -49,   84,   84,   84,   84,
658        84,   84,   84,   84,   84,   84,   84,   86,   84,   84,
659        84,   84,   84,   84,   84,   84,  -49
661     },
663     {
664        11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
665       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
666       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
667       -50,  -50,  -50,  -50,  -50,  -50,   87
668     },
670     {
671        11,  -51,   51,   52,  -51,  -51,   53,  -51,  -51,  -51,
672       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
673       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
674       -51,  -51,  -51,  -51,  -51,  -51,  -51
675     },
677     {
678        11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
679       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
681       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
682       -52,  -52,  -52,  -52,  -52,  -52,  -52
683     },
685     {
686        11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
687        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
688        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
689        54,   54,   54,   54,   54,   54,   54
690     },
692     {
693        11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
694        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
695        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
696        54,   54,   54,   54,   54,   54,   54
698     },
700     {
701        11,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
702       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
703       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
704       -55,  -55,  -55,  -55,  -55,  -55,  -55
705     },
707     {
708        11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
709       -56,  -56,  -56,   56,  -56,  -56,   56,   56,   56,   56,
710        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
711        56,   56,   56,   56,   56,   56,  -56
712     },
714     {
715        11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
716       -57,  -57,  -57,   56,  -57,  -57,   56,   56,   56,   56,
718        56,   56,   56,   56,   56,   56,   56,   56,   88,   56,
719        56,   56,   56,   56,   56,   56,  -57
720     },
722     {
723        11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
724       -58,  -58,  -58,   56,  -58,  -58,   56,   56,   56,   56,
725        56,   56,   56,   56,   56,   56,   56,   56,   89,   56,
726        56,   56,   56,   56,   56,   56,  -58
727     },
729     {
730        11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
731       -59,  -59,  -59,   56,  -59,  -59,   56,   56,   56,   56,
732        56,   56,   56,   56,   56,   56,   90,   91,   56,   56,
733        56,   56,   56,   56,   56,   56,  -59
735     },
737     {
738        11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
739       -60,  -60,  -60,   56,  -60,  -60,   56,   56,   56,   56,
740        56,   92,   56,   56,   56,   56,   56,   56,   56,   93,
741        56,   56,   56,   56,   56,   56,  -60
742     },
744     {
745        11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
746       -61,  -61,  -61,   56,  -61,  -61,   56,   56,   56,   94,
747        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
748        56,   56,   56,   56,   56,   56,  -61
749     },
751     {
752        11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
753       -62,  -62,  -62,   56,  -62,  -62,   56,   56,   56,   56,
755        56,   56,   56,   56,   56,   95,   56,   56,   56,   56,
756        56,   56,   56,   56,   56,   96,  -62
757     },
759     {
760        11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
761       -63,  -63,  -63,   56,  -63,  -63,   56,   56,   56,   56,
762        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
763        56,   56,   56,   56,   56,   56,  -63
764     },
766     {
767        11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
768       -64,  -64,  -64,   56,  -64,  -64,   56,   56,   56,   56,
769        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
770        56,   56,   56,   97,   56,   56,  -64
772     },
774     {
775        11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
776       -65,  -65,  -65,   56,  -65,  -65,   56,   56,   56,   56,
777        56,   56,   56,   56,   98,   56,   56,   56,   56,   56,
778        56,   56,   56,   56,   56,   56,  -65
779     },
781     {
782        11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
783       -66,  -66,  -66,   56,  -66,  -66,   56,   56,   56,   56,
784        56,   56,   56,   56,   56,   56,   56,   99,   56,   56,
785        56,   56,   56,   56,   56,   56,  -66
786     },
788     {
789        11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
790       -67,  -67,  -67,   56,  -67,  -67,   56,   56,   56,   56,
792        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
793        56,   56,   56,  100,   56,   56,  -67
794     },
796     {
797        11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
798       -68,  -68,  -68,   56,  -68,  -68,   56,   56,   56,   56,
799        56,   56,   56,   56,   56,   56,   56,   56,  101,   56,
800        56,   56,   56,   56,   56,   56,  -68
801     },
803     {
804        11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
805       -69,  -69,  -69,   56,  -69,  -69,   56,   56,   56,   56,
806        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
807       102,   56,   56,   56,   56,   56,  -69
809     },
811     {
812        11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
813       -70,  -70,  -70,   56,  -70,  -70,   56,   56,   56,   56,
814        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
815        56,   56,   56,   56,  103,   56,  -70
816     },
818     {
819        11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
820       -71,  -71,  -71,   56,  -71,  -71,   56,   56,   56,   56,
821        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
822        56,  104,   56,   56,   56,   56,  -71
823     },
825     {
826        11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
827       -72,  -72,  -72,   56,  -72,  -72,   56,   56,   56,   56,
829        56,   56,   56,   56,  105,   56,   56,   56,   56,   56,
830        56,   56,   56,   56,   56,   56,  -72
831     },
833     {
834        11,   73,   73,  -73,   73,   73,   73,   73,   73,   73,
835        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
836        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
837        73,   73,   73,   73,   73,   73,   73
838     },
840     {
841        11,  -74,   74,   75,  -74,  -74,  -74,  -74,  -74,  -74,
842       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
843       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
844       -74,  -74,  -74,  -74,  -74,  -74,  -74
846     },
848     {
849        11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
850       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
851       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
852       -75,  -75,  -75,  -75,  -75,  -75,  -75
853     },
855     {
856        11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
857       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
858       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
859       -76,  -76,  -76,  -76,  -76,  -76,  -76
860     },
862     {
863        11,   77,   77,   78,   77,  -77,   77,   77,  -77,   77,
864        77,   77,   77,   77,   77,  -77,   77,   77,   77,   77,
866        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
867        77,   77,   77,   77,   77,   77,   77
868     },
870     {
871        11,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
872       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
873       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
874       -78,  -78,  -78,  -78,  -78,  -78,  -78
875     },
877     {
878        11,  -79,  -79,   80,  -79,  -79,  -79,  -79,  -79,  -79,
879       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
880       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
881       -79,  -79,  -79,  -79,  -79,  -79,  -79
883     },
885     {
886        11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
887       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
888       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
889       -80,  -80,  -80,  -80,  -80,  -80,  -80
890     },
892     {
893        11,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
894       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
895       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
896       -81,  -81,  -81,  -81,  -81,  -81,  -81
897     },
899     {
900        11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
901       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
903       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
904       -82,  -82,  -82,  -82,  -82,  -82,  -82
905     },
907     {
908        11,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
909       -83,  106,   84,   84,  -83,  -83,   84,   84,   84,   84,
910        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
911        84,   84,   84,   84,   84,   84,  -83
912     },
914     {
915        11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
916       -84,   84,   84,   84,  -84,  -84,   84,   84,   84,   84,
917        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
918        84,   84,   84,   84,   84,   84,  -84
920     },
922     {
923        11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
924       -85,   84,   84,   84,  -85,  -85,   84,   84,   84,   84,
925        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
926        84,   84,   84,   84,   84,   84,  -85
927     },
929     {
930        11,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
931       -86,   84,   84,   84,  -86,  -86,   84,   84,   84,   84,
932        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
933        84,   84,   84,   84,   84,   84,  -86
934     },
936     {
937        11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
938       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
940       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
941       -87,  -87,  -87,  -87,  -87,  -87,  -87
942     },
944     {
945        11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
946       -88,  -88,  -88,   56,  -88,  -88,   56,   56,   56,   56,
947        56,   56,   56,   56,   56,  107,   56,   56,   56,   56,
948        56,   56,   56,   56,   56,   56,  -88
949     },
951     {
952        11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
953       -89,  -89,  -89,   56,  -89,  -89,   56,   56,   56,   56,
954        56,   56,   56,   56,  108,   56,   56,   56,   56,   56,
955        56,   56,   56,   56,   56,   56,  -89
957     },
959     {
960        11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
961       -90,  -90,  -90,   56,  -90,  -90,   56,   56,   56,   56,
962        56,   56,   56,   56,   56,   56,  109,   56,   56,   56,
963        56,   56,   56,   56,   56,   56,  -90
964     },
966     {
967        11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
968       -91,  -91,  -91,   56,  -91,  -91,   56,   56,   56,   56,
969        56,  110,   56,   56,   56,   56,   56,   56,   56,   56,
970        56,   56,   56,   56,   56,   56,  -91
971     },
973     {
974        11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
975       -92,  -92,  -92,   56,  -92,  -92,  111,   56,   56,   56,
977        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
978        56,   56,   56,   56,   56,   56,  -92
979     },
981     {
982        11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
983       -93,  -93,  -93,   56,  -93,  -93,   56,   56,   56,   56,
984       112,   56,   56,   56,   56,   56,   56,   56,   56,   56,
985        56,   56,   56,   56,   56,   56,  -93
986     },
988     {
989        11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
990       -94,  -94,  -94,   56,  -94,  -94,   56,   56,  113,   56,
991        56,   56,   56,   56,  114,   56,  115,   56,   56,   56,
992        56,   56,   56,   56,   56,   56,  -94
994     },
996     {
997        11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
998       -95,  -95,  -95,   56,  -95,  -95,   56,   56,   56,   56,
999        56,   56,   56,   56,   56,   56,   56,   56,   56,  116,
1000        56,   56,   56,   56,   56,   56,  -95
1001     },
1003     {
1004        11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
1005       -96,  -96,  -96,   56,  -96,  -96,   56,   56,   56,   56,
1006        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1007        56,   56,   56,   56,   56,   56,  -96
1008     },
1010     {
1011        11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
1012       -97,  -97,  -97,   56,  -97,  -97,   56,   56,   56,   56,
1014        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1015        56,   56,   56,   56,   56,   56,  -97
1016     },
1018     {
1019        11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1020       -98,  -98,  -98,   56,  -98,  -98,   56,   56,   56,   56,
1021        56,   56,   56,   56,   56,   56,   56,  117,   56,   56,
1022        56,   56,   56,   56,   56,   56,  -98
1023     },
1025     {
1026        11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
1027       -99,  -99,  -99,   56,  -99,  -99,   56,   56,   56,   56,
1028        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1029        56,   56,   56,   56,  118,   56,  -99
1031     },
1033     {
1034        11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
1035      -100, -100, -100,   56, -100, -100,   56,   56,   56,   56,
1036        56,   56,   56,   56,  119,   56,   56,   56,   56,   56,
1037        56,   56,   56,   56,   56,   56, -100
1038     },
1040     {
1041        11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
1042      -101, -101, -101,   56, -101, -101,   56,   56,   56,   56,
1043        56,   56,   56,   56,   56,   56,  120,   56,   56,   56,
1044        56,   56,   56,   56,   56,   56, -101
1045     },
1047     {
1048        11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
1049      -102, -102, -102,   56, -102, -102,   56,   56,   56,   56,
1051        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1052        56,   56,   56,   56,  121,   56, -102
1053     },
1055     {
1056        11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
1057      -103, -103, -103,   56, -103, -103,   56,   56,   56,   56,
1058        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1059        56,  122,   56,   56,   56,   56, -103
1060     },
1062     {
1063        11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
1064      -104, -104, -104,   56, -104, -104,   56,   56,   56,   56,
1065        56,   56,   56,   56,  123,   56,   56,   56,   56,   56,
1066        56,   56,   56,   56,   56,   56, -104
1068     },
1070     {
1071        11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
1072      -105, -105, -105,   56, -105, -105,   56,   56,   56,   56,
1073        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1074        56,   56,  124,   56,   56,   56, -105
1075     },
1077     {
1078        11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
1079      -106,   84,   84,   84, -106, -106,   84,   84,   84,   84,
1080        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1081        84,   84,   84,   84,   84,   84, -106
1082     },
1084     {
1085        11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
1086      -107, -107, -107,   56, -107, -107,   56,   56,   56,   56,
1088       125,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1089        56,   56,   56,   56,   56,   56, -107
1090     },
1092     {
1093        11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
1094      -108, -108, -108,   56, -108, -108,   56,   56,  126,   56,
1095        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1096        56,   56,   56,   56,   56,   56, -108
1097     },
1099     {
1100        11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
1101      -109, -109, -109,   56, -109, -109,   56,   56,   56,   56,
1102       127,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1103        56,   56,   56,   56,   56,   56, -109
1105     },
1107     {
1108        11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
1109      -110, -110, -110,   56, -110, -110,   56,   56,   56,   56,
1110        56,   56,   56,   56,  128,   56,   56,   56,   56,   56,
1111        56,   56,   56,   56,   56,   56, -110
1112     },
1114     {
1115        11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
1116      -111, -111, -111,   56, -111, -111,   56,   56,   56,   56,
1117        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1118        56,   56,   56,   56,  129,   56, -111
1119     },
1121     {
1122        11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
1123      -112, -112, -112,   56, -112, -112,   56,   56,   56,   56,
1125        56,   56,   56,   56,   56,   56,   56,  130,   56,   56,
1126        56,   56,   56,   56,   56,   56, -112
1127     },
1129     {
1130        11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
1131      -113, -113, -113,   56, -113, -113,   56,   56,   56,   56,
1132        56,   56,   56,  131,   56,   56,   56,   56,   56,   56,
1133        56,   56,   56,   56,   56,   56, -113
1134     },
1136     {
1137        11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
1138      -114, -114, -114,   56, -114, -114,   56,   56,   56,   56,
1139        56,  132,   56,   56,   56,   56,   56,   56,   56,   56,
1140        56,   56,   56,   56,   56,   56, -114
1142     },
1144     {
1145        11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
1146      -115, -115, -115,   56, -115, -115,   56,   56,   56,   56,
1147       133,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1148        56,   56,   56,   56,   56,   56, -115
1149     },
1151     {
1152        11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
1153      -116, -116, -116,   56, -116, -116,   56,   56,   56,   56,
1154        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1155        56,   56,   56,   56,   56,   56, -116
1156     },
1158     {
1159        11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
1160      -117, -117, -117,   56, -117, -117,   56,   56,   56,   56,
1162        56,   56,   56,   56,   56,   56,  134,   56,   56,   56,
1163        56,   56,   56,   56,   56,   56, -117
1164     },
1166     {
1167        11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
1168      -118, -118, -118,   56, -118, -118,   56,   56,   56,   56,
1169        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1170        56,   56,   56,   56,   56,   56, -118
1171     },
1173     {
1174        11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
1175      -119, -119, -119,   56, -119, -119,   56,   56,   56,   56,
1176        56,   56,   56,   56,   56,   56,   56,   56,  135,   56,
1177        56,   56,   56,   56,   56,   56, -119
1179     },
1181     {
1182        11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
1183      -120, -120, -120,   56, -120, -120,   56,   56,   56,   56,
1184        56,   56,   56,   56,   56,   56,   56,   56,   56,  136,
1185        56,   56,   56,   56,   56,   56, -120
1186     },
1188     {
1189        11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
1190      -121, -121, -121,   56, -121, -121,   56,   56,   56,   56,
1191        56,   56,   56,   56,  137,   56,   56,   56,   56,   56,
1192        56,   56,   56,   56,   56,   56, -121
1193     },
1195     {
1196        11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
1197      -122, -122, -122,   56, -122, -122,   56,   56,  138,   56,
1199        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1200        56,   56,   56,   56,   56,   56, -122
1201     },
1203     {
1204        11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1205      -123, -123, -123,   56, -123, -123,   56,   56,   56,   56,
1206        56,   56,   56,   56,   56,   56,   56,  139,   56,   56,
1207        56,   56,   56,   56,   56,   56, -123
1208     },
1210     {
1211        11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1212      -124, -124, -124,   56, -124, -124,   56,   56,   56,   56,
1213        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1214        56,   56,   56,  140,   56,   56, -124
1216     },
1218     {
1219        11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1220      -125, -125, -125,   56, -125, -125,  141,   56,   56,   56,
1221        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1222        56,   56,   56,   56,   56,   56, -125
1223     },
1225     {
1226        11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
1227      -126, -126, -126,   56, -126, -126,   56,   56,   56,   56,
1228       142,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1229        56,   56,   56,   56,   56,   56, -126
1230     },
1232     {
1233        11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
1234      -127, -127, -127,   56, -127, -127,   56,   56,   56,   56,
1236        56,   56,   56,   56,   56,   56,   56,  143,   56,   56,
1237        56,   56,   56,   56,   56,   56, -127
1238     },
1240     {
1241        11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
1242      -128, -128, -128,   56, -128, -128,   56,   56,   56,   56,
1243        56,   56,  144,   56,   56,   56,   56,   56,   56,   56,
1244        56,   56,   56,   56,   56,   56, -128
1245     },
1247     {
1248        11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
1249      -129, -129, -129,   56, -129, -129,   56,   56,   56,   56,
1250        56,   56,   56,   56,   56,  145,   56,   56,   56,   56,
1251        56,   56,   56,   56,   56,   56, -129
1253     },
1255     {
1256        11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
1257      -130, -130, -130,   56, -130, -130,   56,   56,   56,  146,
1258        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1259        56,   56,   56,   56,   56,   56, -130
1260     },
1262     {
1263        11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
1264      -131, -131, -131,   56, -131, -131,   56,   56,   56,   56,
1265        56,   56,   56,   56,   56,   56,   56,   56,  147,   56,
1266        56,   56,   56,   56,   56,   56, -131
1267     },
1269     {
1270        11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
1271      -132, -132, -132,   56, -132, -132,   56,   56,   56,   56,
1273        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1274        56,   56,   56,   56,   56,   56, -132
1275     },
1277     {
1278        11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
1279      -133, -133, -133,   56, -133, -133,   56,   56,   56,   56,
1280        56,   56,   56,   56,   56,   56,   56,  148,   56,   56,
1281        56,   56,   56,   56,   56,   56, -133
1282     },
1284     {
1285        11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
1286      -134, -134, -134,   56, -134, -134,   56,   56,   56,   56,
1287       149,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1288        56,   56,   56,   56,   56,   56, -134
1290     },
1292     {
1293        11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
1294      -135, -135, -135,   56, -135, -135,   56,   56,   56,   56,
1295        56,   56,   56,   56,   56,   56,   56,  150,   56,   56,
1296        56,   56,   56,   56,   56,   56, -135
1297     },
1299     {
1300        11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1301      -136, -136, -136,   56, -136, -136,   56,   56,   56,   56,
1302        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1303        56,   56,   56,  151,   56,   56, -136
1304     },
1306     {
1307        11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1308      -137, -137, -137,   56, -137, -137,   56,   56,   56,   56,
1310        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1311        56,  152,   56,   56,   56,   56, -137
1312     },
1314     {
1315        11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1316      -138, -138, -138,   56, -138, -138,   56,   56,   56,   56,
1317       153,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1318        56,   56,   56,   56,   56,   56, -138
1319     },
1321     {
1322        11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1323      -139, -139, -139,   56, -139, -139,   56,   56,   56,   56,
1324        56,   56,  154,   56,   56,   56,   56,   56,   56,   56,
1325        56,   56,   56,   56,   56,   56, -139
1327     },
1329     {
1330        11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1331      -140, -140, -140,   56, -140, -140,  155,   56,   56,   56,
1332        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1333        56,   56,   56,   56,   56,   56, -140
1334     },
1336     {
1337        11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1338      -141, -141, -141,   56, -141, -141,   56,   56,   56,   56,
1339        56,   56,   56,   56,   56,   56,   56,  156,   56,   56,
1340        56,   56,   56,   56,   56,   56, -141
1341     },
1343     {
1344        11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1345      -142, -142, -142,   56, -142, -142,   56,   56,   56,   56,
1347        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1348        56,   56,   56,   56,   56,   56, -142
1349     },
1351     {
1352        11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1353      -143, -143, -143,   56, -143, -143,   56,   56,   56,   56,
1354        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1355        56,   56,   56,  157,   56,   56, -143
1356     },
1358     {
1359        11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1360      -144, -144, -144,   56, -144, -144,   56,   56,   56,   56,
1361        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1362        56,   56,   56,   56,   56,   56, -144
1364     },
1366     {
1367        11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1368      -145, -145, -145,   56, -145, -145,   56,   56,   56,   56,
1369        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1370        56,   56,   56,  158,   56,   56, -145
1371     },
1373     {
1374        11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1375      -146, -146, -146,   56, -146, -146,   56,   56,   56,   56,
1376        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1377        56,   56,  159,   56,   56,   56, -146
1378     },
1380     {
1381        11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1382      -147, -147, -147,   56, -147, -147,   56,   56,   56,   56,
1384        56,   56,   56,   56,  160,   56,   56,   56,   56,   56,
1385        56,   56,   56,   56,   56,   56, -147
1386     },
1388     {
1389        11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1390      -148, -148, -148,   56, -148, -148,   56,   56,   56,   56,
1391        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1392        56,   56,   56,   56,  161,   56, -148
1393     },
1395     {
1396        11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1397      -149, -149, -149,   56, -149, -149,   56,   56,   56,   56,
1398        56,   56,   56,   56,   56,   56,   56,  162,   56,   56,
1399        56,   56,   56,   56,   56,   56, -149
1401     },
1403     {
1404        11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1405      -150, -150, -150,   56, -150, -150,  163,   56,   56,   56,
1406        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1407        56,   56,   56,   56,   56,   56, -150
1408     },
1410     {
1411        11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1412      -151, -151, -151,   56, -151, -151,   56,   56,   56,   56,
1413        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1414        56,   56,   56,   56,   56,   56, -151
1415     },
1417     {
1418        11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1419      -152, -152, -152,   56, -152, -152,   56,   56,   56,   56,
1421       164,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1422        56,   56,   56,   56,   56,   56, -152
1423     },
1425     {
1426        11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1427      -153, -153, -153,   56, -153, -153,   56,   56,   56,   56,
1428        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1429        56,   56,   56,   56,   56,   56, -153
1430     },
1432     {
1433        11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
1434      -154, -154, -154,   56, -154, -154,   56,   56,   56,   56,
1435        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1436        56,   56,   56,   56,   56,   56, -154
1438     },
1440     {
1441        11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
1442      -155, -155, -155,   56, -155, -155,   56,   56,   56,   56,
1443        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1444        56,   56,   56,  165,   56,   56, -155
1445     },
1447     {
1448        11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
1449      -156, -156, -156,   56, -156, -156,   56,   56,   56,   56,
1450        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1451        56,   56,   56,   56,   56,   56, -156
1452     },
1454     {
1455        11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
1456      -157, -157, -157,   56, -157, -157,   56,   56,   56,   56,
1458        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1459        56,   56,   56,   56,   56,   56, -157
1460     },
1462     {
1463        11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
1464      -158, -158, -158,   56, -158, -158,   56,   56,   56,   56,
1465        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1466        56,   56,   56,   56,   56,   56, -158
1467     },
1469     {
1470        11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
1471      -159, -159, -159,   56, -159, -159,   56,   56,   56,   56,
1472        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1473        56,   56,   56,   56,   56,   56, -159
1475     },
1477     {
1478        11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
1479      -160, -160, -160,   56, -160, -160,   56,   56,  166,   56,
1480        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1481        56,   56,   56,   56,   56,   56, -160
1482     },
1484     {
1485        11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
1486      -161, -161, -161,   56, -161, -161,   56,   56,   56,   56,
1487        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1488        56,   56,   56,   56,   56,   56, -161
1489     },
1491     {
1492        11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
1493      -162, -162, -162,   56, -162, -162,   56,   56,   56,   56,
1495        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1496        56,   56,   56,   56,  167,   56, -162
1497     },
1499     {
1500        11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
1501      -163, -163, -163,   56, -163, -163,   56,   56,   56,   56,
1502        56,   56,   56,   56,   56,  168,   56,   56,   56,   56,
1503        56,   56,   56,   56,   56,   56, -163
1504     },
1506     {
1507        11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
1508      -164, -164, -164,   56, -164, -164,   56,   56,   56,   56,
1509        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1510        56,   56,  169,   56,   56,   56, -164
1512     },
1514     {
1515        11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
1516      -165, -165, -165,   56, -165, -165,   56,   56,   56,   56,
1517       170,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1518        56,   56,   56,   56,   56,   56, -165
1519     },
1521     {
1522        11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
1523      -166, -166, -166,   56, -166, -166,   56,   56,   56,   56,
1524       171,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1525        56,   56,   56,   56,   56,   56, -166
1526     },
1528     {
1529        11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
1530      -167, -167, -167,   56, -167, -167,   56,   56,   56,   56,
1532        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1533        56,   56,   56,   56,   56,   56, -167
1534     },
1536     {
1537        11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1538      -168, -168, -168,   56, -168, -168,   56,   56,   56,   56,
1539        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1540        56,   56,   56,   56,   56,   56, -168
1541     },
1543     {
1544        11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1545      -169, -169, -169,   56, -169, -169,   56,   56,   56,   56,
1546        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1547        56,   56,   56,   56,   56,   56, -169
1549     },
1551     {
1552        11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
1553      -170, -170, -170,   56, -170, -170,   56,   56,   56,   56,
1554        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1555        56,   56,   56,   56,   56,   56, -170
1556     },
1558     {
1559        11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
1560      -171, -171, -171,   56, -171, -171,   56,   56,   56,   56,
1561        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1562        56,   56,   56,   56,   56,   56, -171
1563     },
1565     } ;
1568 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
1569 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
1570 static int yy_get_next_buffer YY_PROTO(( void ));
1571 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
1573 /* Done after the current pattern has been matched and before the
1574  * corresponding action - sets up yytext.
1575  */
1576 #define YY_DO_BEFORE_ACTION \
1577         yytext_ptr = yy_bp; \
1578         yyleng = (int) (yy_cp - yy_bp); \
1579         yy_hold_char = *yy_cp; \
1580         *yy_cp = '\0'; \
1581         yy_c_buf_p = yy_cp;
1583 #define YY_NUM_RULES 55
1584 #define YY_END_OF_BUFFER 56
1585 static yyconst short int yy_accept[172] =
1586     {   0,
1587         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1588        56,    5,    4,    3,    2,   29,   30,   28,   28,   28,
1589        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
1590        54,   51,   53,   46,   50,   49,   48,   44,   41,   35,
1591        40,   44,   33,   34,   43,   43,   36,   43,   43,   44,
1592         4,    3,    2,    2,    1,   28,   28,   28,   28,   28,
1593        28,   28,   15,   28,   28,   28,   28,   28,   28,   28,
1594        28,   28,   54,   51,   53,   52,   46,   45,   48,   47,
1595        37,   31,   43,   43,   38,   39,   32,   28,   28,   28,
1596        28,   28,   28,   28,   28,   26,   25,   28,   28,   28,
1598        28,   28,   28,   28,   28,   42,   23,   28,   28,   28,
1599        28,   28,   28,   28,   28,   14,   28,    7,   28,   28,
1600        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
1601        28,   16,   28,   28,   28,   28,   28,   28,   28,   28,
1602        28,   10,   28,   13,   28,   28,   28,   28,   28,   28,
1603        21,   28,    9,   27,   28,   24,   12,   20,   17,   28,
1604         8,   28,   28,   28,   28,   28,    6,   19,   18,   22,
1605        11
1606     } ;
1608 static yyconst int yy_ec[256] =
1609     {   0,
1610         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1611         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1612         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1613         1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
1614        10,    1,    1,    1,   11,   12,   12,   13,   13,   13,
1615        13,   13,   13,   13,   13,   13,   13,    1,    1,    1,
1616        14,    1,    1,    1,   13,   13,   13,   13,   13,   13,
1617        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1618        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1619         1,   15,    1,    1,   13,    1,   16,   17,   18,   19,
1621        20,   21,   22,   23,   24,   13,   13,   25,   26,   27,
1622        28,   29,   30,   31,   32,   33,   34,   13,   13,   35,
1623        13,   13,    1,   36,    1,    1,    1,    1,    1,    1,
1624         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1625         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1626         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1627         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1628         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1629         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1630         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1632         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1633         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1634         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1635         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1636         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1637         1,    1,    1,    1,    1
1638     } ;
1640 /* The intent behind this definition is that it'll catch
1641  * any uses of REJECT which flex missed.
1642  */
1643 #define REJECT reject_used_but_not_detected
1644 #define yymore() yymore_used_but_not_detected
1645 #define YY_MORE_ADJ 0
1646 #define YY_RESTORE_YY_MORE_OFFSET
1647 char *yytext;
1648 #line 1 "zconf.l"
1649 #define INITIAL 0
1650 #define YY_NEVER_INTERACTIVE 1
1651 #define COMMAND 1
1652 #define HELP 2
1653 #define STRING 3
1654 #define PARAM 4
1656 #line 5 "zconf.l"
1658  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
1659  * Released under the terms of the GNU GPL v2.0.
1660  */
1662 #include <stdio.h>
1663 #include <stdlib.h>
1664 #include <string.h>
1665 #include <unistd.h>
1667 #define LKC_DIRECT_LINK
1668 #include "lkc.h"
1669 #include "zconf.tab.h"
1671 #define START_STRSIZE   16
1673 char *text;
1674 static char *text_ptr;
1675 static int text_size, text_asize;
1677 struct buffer {
1678         struct buffer *parent;
1679         YY_BUFFER_STATE state;
1682 struct buffer *current_buf;
1684 static int last_ts, first_ts;
1686 static void zconf_endhelp(void);
1687 static struct buffer *zconf_endfile(void);
1689 void new_string(void)
1691         text = malloc(START_STRSIZE);
1692         text_asize = START_STRSIZE;
1693         text_ptr = text;
1694         text_size = 0;
1695         *text_ptr = 0;
1698 void append_string(const char *str, int size)
1700         int new_size = text_size + size + 1;
1701         if (new_size > text_asize) {
1702                 text = realloc(text, new_size);
1703                 text_asize = new_size;
1704                 text_ptr = text + text_size;
1705         }
1706         memcpy(text_ptr, str, size);
1707         text_ptr += size;
1708         text_size += size;
1709         *text_ptr = 0;
1712 void alloc_string(const char *str, int size)
1714         text = malloc(size + 1);
1715         memcpy(text, str, size);
1716         text[size] = 0;
1718 #line 1719 "lex.zconf.c"
1720 /* Macros after this point can all be overridden by user definitions in
1721  * section 1.
1722  */
1724 #ifndef YY_SKIP_YYWRAP
1725 #ifdef __cplusplus
1726 extern "C" int yywrap YY_PROTO(( void ));
1727 #else
1728 extern int yywrap YY_PROTO(( void ));
1729 #endif
1730 #endif
1732 #ifndef YY_NO_UNPUT
1733 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1734 #endif
1736 #ifndef yytext_ptr
1737 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1738 #endif
1740 #ifdef YY_NEED_STRLEN
1741 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1742 #endif
1744 #ifndef YY_NO_INPUT
1745 #ifdef __cplusplus
1746 static int yyinput YY_PROTO(( void ));
1747 #else
1748 static int input YY_PROTO(( void ));
1749 #endif
1750 #endif
1752 #if YY_STACK_USED
1753 static int yy_start_stack_ptr = 0;
1754 static int yy_start_stack_depth = 0;
1755 static int *yy_start_stack = 0;
1756 #ifndef YY_NO_PUSH_STATE
1757 static void yy_push_state YY_PROTO(( int new_state ));
1758 #endif
1759 #ifndef YY_NO_POP_STATE
1760 static void yy_pop_state YY_PROTO(( void ));
1761 #endif
1762 #ifndef YY_NO_TOP_STATE
1763 static int yy_top_state YY_PROTO(( void ));
1764 #endif
1766 #else
1767 #define YY_NO_PUSH_STATE 1
1768 #define YY_NO_POP_STATE 1
1769 #define YY_NO_TOP_STATE 1
1770 #endif
1772 #ifdef YY_MALLOC_DECL
1773 YY_MALLOC_DECL
1774 #else
1775 #if __STDC__
1776 #ifndef __cplusplus
1777 #include <stdlib.h>
1778 #endif
1779 #else
1780 /* Just try to get by without declaring the routines.  This will fail
1781  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1782  * or sizeof(void*) != sizeof(int).
1783  */
1784 #endif
1785 #endif
1787 /* Amount of stuff to slurp up with each read. */
1788 #ifndef YY_READ_BUF_SIZE
1789 #define YY_READ_BUF_SIZE 8192
1790 #endif
1792 /* Copy whatever the last rule matched to the standard output. */
1794 #ifndef ECHO
1795 /* This used to be an fputs(), but since the string might contain NUL's,
1796  * we now use fwrite().
1797  */
1798 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1799 #endif
1801 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1802  * is returned in "result".
1803  */
1804 #ifndef YY_INPUT
1805 #define YY_INPUT(buf,result,max_size) \
1806         errno=0; \
1807         while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
1808         { \
1809                 if( errno != EINTR) \
1810                 { \
1811                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1812                         break; \
1813                 } \
1814                 errno=0; \
1815                 clearerr(yyin); \
1816         }
1817 #endif
1819 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1820  * we don't want an extra ';' after the "return" because that will cause
1821  * some compilers to complain about unreachable statements.
1822  */
1823 #ifndef yyterminate
1824 #define yyterminate() return YY_NULL
1825 #endif
1827 /* Number of entries by which start-condition stack grows. */
1828 #ifndef YY_START_STACK_INCR
1829 #define YY_START_STACK_INCR 25
1830 #endif
1832 /* Report a fatal error. */
1833 #ifndef YY_FATAL_ERROR
1834 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1835 #endif
1837 /* Default declaration of generated scanner - a define so the user can
1838  * easily add parameters.
1839  */
1840 #ifndef YY_DECL
1841 #define YY_DECL int yylex YY_PROTO(( void ))
1842 #endif
1844 /* Code executed at the beginning of each rule, after yytext and yyleng
1845  * have been set up.
1846  */
1847 #ifndef YY_USER_ACTION
1848 #define YY_USER_ACTION
1849 #endif
1851 /* Code executed at the end of each rule. */
1852 #ifndef YY_BREAK
1853 #define YY_BREAK break;
1854 #endif
1856 #define YY_RULE_SETUP \
1857         YY_USER_ACTION
1859 YY_DECL
1860         {
1861         register yy_state_type yy_current_state;
1862         register char *yy_cp, *yy_bp;
1863         register int yy_act;
1865 #line 71 "zconf.l"
1867         int str = 0;
1868         int ts, i;
1870 #line 1871 "lex.zconf.c"
1872         if ( yy_init )
1873                 {
1874                 yy_init = 0;
1876 #ifdef YY_USER_INIT
1877                 YY_USER_INIT;
1878 #endif
1880                 if ( ! yy_start )
1881                         yy_start = 1;   /* first start state */
1883                 if ( ! yyin )
1884                         yyin = stdin;
1886                 if ( ! yyout )
1887                         yyout = stdout;
1889                 if ( ! yy_current_buffer )
1890                         yy_current_buffer =
1891                                 yy_create_buffer( yyin, YY_BUF_SIZE );
1893                 yy_load_buffer_state();
1894                 }
1896         while ( 1 )             /* loops until end-of-file is reached */
1897                 {
1898                 yy_cp = yy_c_buf_p;
1900                 /* Support of yytext. */
1901                 *yy_cp = yy_hold_char;
1903                 /* yy_bp points to the position in yy_ch_buf of the start of
1904                  * the current run.
1905                  */
1906                 yy_bp = yy_cp;
1908                 yy_current_state = yy_start;
1909 yy_match:
1910                 while ( (yy_current_state = yy_nxt[yy_current_state][yy_ec[YY_SC_TO_UI(*yy_cp)]]) > 0 )
1911                         ++yy_cp;
1913                 yy_current_state = -yy_current_state;
1915 yy_find_action:
1916                 yy_act = yy_accept[yy_current_state];
1918                 YY_DO_BEFORE_ACTION;
1921 do_action:      /* This label is used only to access EOF actions. */
1924                 switch ( yy_act )
1925         { /* beginning of action switch */
1926 case 1:
1927 YY_RULE_SETUP
1928 #line 75 "zconf.l"
1929 current_file->lineno++;
1930         YY_BREAK
1931 case 2:
1932 YY_RULE_SETUP
1933 #line 76 "zconf.l"
1935         YY_BREAK
1936 case 3:
1937 YY_RULE_SETUP
1938 #line 78 "zconf.l"
1939 current_file->lineno++; return T_EOL;
1940         YY_BREAK
1941 case 4:
1942 YY_RULE_SETUP
1943 #line 80 "zconf.l"
1945         BEGIN(COMMAND);
1947         YY_BREAK
1948 case 5:
1949 YY_RULE_SETUP
1950 #line 84 "zconf.l"
1952         unput(yytext[0]);
1953         BEGIN(COMMAND);
1955         YY_BREAK
1957 case 6:
1958 YY_RULE_SETUP
1959 #line 91 "zconf.l"
1960 BEGIN(PARAM); return T_MAINMENU;
1961         YY_BREAK
1962 case 7:
1963 YY_RULE_SETUP
1964 #line 92 "zconf.l"
1965 BEGIN(PARAM); return T_MENU;
1966         YY_BREAK
1967 case 8:
1968 YY_RULE_SETUP
1969 #line 93 "zconf.l"
1970 BEGIN(PARAM); return T_ENDMENU;
1971         YY_BREAK
1972 case 9:
1973 YY_RULE_SETUP
1974 #line 94 "zconf.l"
1975 BEGIN(PARAM); return T_SOURCE;
1976         YY_BREAK
1977 case 10:
1978 YY_RULE_SETUP
1979 #line 95 "zconf.l"
1980 BEGIN(PARAM); return T_CHOICE;
1981         YY_BREAK
1982 case 11:
1983 YY_RULE_SETUP
1984 #line 96 "zconf.l"
1985 BEGIN(PARAM); return T_ENDCHOICE;
1986         YY_BREAK
1987 case 12:
1988 YY_RULE_SETUP
1989 #line 97 "zconf.l"
1990 BEGIN(PARAM); return T_COMMENT;
1991         YY_BREAK
1992 case 13:
1993 YY_RULE_SETUP
1994 #line 98 "zconf.l"
1995 BEGIN(PARAM); return T_CONFIG;
1996         YY_BREAK
1997 case 14:
1998 YY_RULE_SETUP
1999 #line 99 "zconf.l"
2000 BEGIN(PARAM); return T_HELP;
2001         YY_BREAK
2002 case 15:
2003 YY_RULE_SETUP
2004 #line 100 "zconf.l"
2005 BEGIN(PARAM); return T_IF;
2006         YY_BREAK
2007 case 16:
2008 YY_RULE_SETUP
2009 #line 101 "zconf.l"
2010 BEGIN(PARAM); return T_ENDIF;
2011         YY_BREAK
2012 case 17:
2013 YY_RULE_SETUP
2014 #line 102 "zconf.l"
2015 BEGIN(PARAM); return T_DEPENDS;
2016         YY_BREAK
2017 case 18:
2018 YY_RULE_SETUP
2019 #line 103 "zconf.l"
2020 BEGIN(PARAM); return T_REQUIRES;
2021         YY_BREAK
2022 case 19:
2023 YY_RULE_SETUP
2024 #line 104 "zconf.l"
2025 BEGIN(PARAM); return T_OPTIONAL;
2026         YY_BREAK
2027 case 20:
2028 YY_RULE_SETUP
2029 #line 105 "zconf.l"
2030 BEGIN(PARAM); return T_DEFAULT;
2031         YY_BREAK
2032 case 21:
2033 YY_RULE_SETUP
2034 #line 106 "zconf.l"
2035 BEGIN(PARAM); return T_PROMPT;
2036         YY_BREAK
2037 case 22:
2038 YY_RULE_SETUP
2039 #line 107 "zconf.l"
2040 BEGIN(PARAM); return T_TRISTATE;
2041         YY_BREAK
2042 case 23:
2043 YY_RULE_SETUP
2044 #line 108 "zconf.l"
2045 BEGIN(PARAM); return T_BOOLEAN;
2046         YY_BREAK
2047 case 24:
2048 YY_RULE_SETUP
2049 #line 109 "zconf.l"
2050 BEGIN(PARAM); return T_BOOLEAN;
2051         YY_BREAK
2052 case 25:
2053 YY_RULE_SETUP
2054 #line 110 "zconf.l"
2055 BEGIN(PARAM); return T_INT;
2056         YY_BREAK
2057 case 26:
2058 YY_RULE_SETUP
2059 #line 111 "zconf.l"
2060 BEGIN(PARAM); return T_HEX;
2061         YY_BREAK
2062 case 27:
2063 YY_RULE_SETUP
2064 #line 112 "zconf.l"
2065 BEGIN(PARAM); return T_STRING;
2066         YY_BREAK
2067 case 28:
2068 YY_RULE_SETUP
2069 #line 113 "zconf.l"
2071                 alloc_string(yytext, yyleng);
2072                 zconflval.string = text;
2073                 return T_WORD;
2074         }
2075         YY_BREAK
2076 case 29:
2077 YY_RULE_SETUP
2078 #line 118 "zconf.l"
2080         YY_BREAK
2081 case 30:
2082 YY_RULE_SETUP
2083 #line 119 "zconf.l"
2084 current_file->lineno++; BEGIN(INITIAL);
2085         YY_BREAK
2088 case 31:
2089 YY_RULE_SETUP
2090 #line 123 "zconf.l"
2091 return T_AND;
2092         YY_BREAK
2093 case 32:
2094 YY_RULE_SETUP
2095 #line 124 "zconf.l"
2096 return T_OR;
2097         YY_BREAK
2098 case 33:
2099 YY_RULE_SETUP
2100 #line 125 "zconf.l"
2101 return T_OPEN_PAREN;
2102         YY_BREAK
2103 case 34:
2104 YY_RULE_SETUP
2105 #line 126 "zconf.l"
2106 return T_CLOSE_PAREN;
2107         YY_BREAK
2108 case 35:
2109 YY_RULE_SETUP
2110 #line 127 "zconf.l"
2111 return T_NOT;
2112         YY_BREAK
2113 case 36:
2114 YY_RULE_SETUP
2115 #line 128 "zconf.l"
2116 return T_EQUAL;
2117         YY_BREAK
2118 case 37:
2119 YY_RULE_SETUP
2120 #line 129 "zconf.l"
2121 return T_UNEQUAL;
2122         YY_BREAK
2123 case 38:
2124 YY_RULE_SETUP
2125 #line 130 "zconf.l"
2126 return T_IF;
2127         YY_BREAK
2128 case 39:
2129 YY_RULE_SETUP
2130 #line 131 "zconf.l"
2131 return T_ON;
2132         YY_BREAK
2133 case 40:
2134 YY_RULE_SETUP
2135 #line 132 "zconf.l"
2137                 str = yytext[0];
2138                 new_string();
2139                 BEGIN(STRING);
2140         }
2141         YY_BREAK
2142 case 41:
2143 YY_RULE_SETUP
2144 #line 137 "zconf.l"
2145 BEGIN(INITIAL); current_file->lineno++; return T_EOL;
2146         YY_BREAK
2147 case 42:
2148 YY_RULE_SETUP
2149 #line 138 "zconf.l"
2150 /* ignore */
2151         YY_BREAK
2152 case 43:
2153 YY_RULE_SETUP
2154 #line 139 "zconf.l"
2156                 alloc_string(yytext, yyleng);
2157                 zconflval.string = text;
2158                 return T_WORD;
2159         }
2160         YY_BREAK
2161 case 44:
2162 YY_RULE_SETUP
2163 #line 144 "zconf.l"
2165         YY_BREAK
2166 case YY_STATE_EOF(PARAM):
2167 #line 145 "zconf.l"
2169                 BEGIN(INITIAL);
2170         }
2171         YY_BREAK
2174 case 45:
2175 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2176 yy_c_buf_p = yy_cp -= 1;
2177 YY_DO_BEFORE_ACTION; /* set up yytext again */
2178 YY_RULE_SETUP
2179 #line 151 "zconf.l"
2181                 append_string(yytext, yyleng);
2182                 zconflval.string = text;
2183                 return T_STRING;
2184         }
2185         YY_BREAK
2186 case 46:
2187 YY_RULE_SETUP
2188 #line 156 "zconf.l"
2190                 append_string(yytext, yyleng);
2191         }
2192         YY_BREAK
2193 case 47:
2194 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2195 yy_c_buf_p = yy_cp -= 1;
2196 YY_DO_BEFORE_ACTION; /* set up yytext again */
2197 YY_RULE_SETUP
2198 #line 159 "zconf.l"
2200                 append_string(yytext+1, yyleng);
2201                 zconflval.string = text;
2202                 return T_STRING;
2203         }
2204         YY_BREAK
2205 case 48:
2206 YY_RULE_SETUP
2207 #line 164 "zconf.l"
2209                 append_string(yytext+1, yyleng);
2210         }
2211         YY_BREAK
2212 case 49:
2213 YY_RULE_SETUP
2214 #line 167 "zconf.l"
2216                 if (str == yytext[0]) {
2217                         BEGIN(PARAM);
2218                         zconflval.string = text;
2219                         return T_STRING;
2220                 } else
2221                         append_string(yytext, 1);
2222         }
2223         YY_BREAK
2224 case 50:
2225 YY_RULE_SETUP
2226 #line 175 "zconf.l"
2228                 printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
2229                 BEGIN(INITIAL);
2230                 return T_EOL;
2231         }
2232         YY_BREAK
2233 case YY_STATE_EOF(STRING):
2234 #line 180 "zconf.l"
2236                 BEGIN(INITIAL);
2237         }
2238         YY_BREAK
2241 case 51:
2242 YY_RULE_SETUP
2243 #line 186 "zconf.l"
2245                 ts = 0;
2246                 for (i = 0; i < yyleng; i++) {
2247                         if (yytext[i] == '\t')
2248                                 ts = (ts & ~7) + 8;
2249                         else
2250                                 ts++;
2251                 }
2252                 last_ts = ts;
2253                 if (first_ts) {
2254                         if (ts < first_ts) {
2255                                 zconf_endhelp();
2256                                 return T_HELPTEXT;
2257                         }
2258                         ts -= first_ts;
2259                         while (ts > 8) {
2260                                 append_string("        ", 8);
2261                                 ts -= 8;
2262                         }
2263                         append_string("        ", ts);
2264                 }
2265                 
2266         }
2267         YY_BREAK
2268 case 52:
2269 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2270 yy_c_buf_p = yy_cp = yy_bp + 1;
2271 YY_DO_BEFORE_ACTION; /* set up yytext again */
2272 YY_RULE_SETUP
2273 #line 209 "zconf.l"
2275                 current_file->lineno++;
2276                 zconf_endhelp();
2277                 return T_HELPTEXT;
2278         }
2279         YY_BREAK
2280 case 53:
2281 YY_RULE_SETUP
2282 #line 214 "zconf.l"
2284                 current_file->lineno++;
2285                 append_string("\n", 1);
2286         }
2287         YY_BREAK
2288 case 54:
2289 YY_RULE_SETUP
2290 #line 218 "zconf.l"
2292                 append_string(yytext, yyleng);
2293                 if (!first_ts)
2294                         first_ts = last_ts;
2295         }
2296         YY_BREAK
2297 case YY_STATE_EOF(HELP):
2298 #line 223 "zconf.l"
2300                 zconf_endhelp();
2301                 return T_HELPTEXT;
2302         }
2303         YY_BREAK
2305 case YY_STATE_EOF(INITIAL):
2306 case YY_STATE_EOF(COMMAND):
2307 #line 229 "zconf.l"
2309         if (current_buf) {
2310                 zconf_endfile();
2311                 return T_EOF;
2312         }
2313         fclose(yyin);
2314         yyterminate();
2316         YY_BREAK
2317 case 55:
2318 YY_RULE_SETUP
2319 #line 238 "zconf.l"
2320 YY_FATAL_ERROR( "flex scanner jammed" );
2321         YY_BREAK
2322 #line 2323 "lex.zconf.c"
2324         case YY_END_OF_BUFFER:
2325                 {
2326                 /* Amount of text matched not including the EOB char. */
2327                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2329                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2330                 *yy_cp = yy_hold_char;
2331                 YY_RESTORE_YY_MORE_OFFSET
2333                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2334                         {
2335                         /* We're scanning a new file or input source.  It's
2336                          * possible that this happened because the user
2337                          * just pointed yyin at a new source and called
2338                          * yylex().  If so, then we have to assure
2339                          * consistency between yy_current_buffer and our
2340                          * globals.  Here is the right place to do so, because
2341                          * this is the first action (other than possibly a
2342                          * back-up) that will match for the new input source.
2343                          */
2344                         yy_n_chars = yy_current_buffer->yy_n_chars;
2345                         yy_current_buffer->yy_input_file = yyin;
2346                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2347                         }
2349                 /* Note that here we test for yy_c_buf_p "<=" to the position
2350                  * of the first EOB in the buffer, since yy_c_buf_p will
2351                  * already have been incremented past the NUL character
2352                  * (since all states make transitions on EOB to the
2353                  * end-of-buffer state).  Contrast this with the test
2354                  * in input().
2355                  */
2356                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2357                         { /* This was really a NUL. */
2358                         yy_state_type yy_next_state;
2360                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2362                         yy_current_state = yy_get_previous_state();
2364                         /* Okay, we're now positioned to make the NUL
2365                          * transition.  We couldn't have
2366                          * yy_get_previous_state() go ahead and do it
2367                          * for us because it doesn't know how to deal
2368                          * with the possibility of jamming (and we don't
2369                          * want to build jamming into it because then it
2370                          * will run more slowly).
2371                          */
2373                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2375                         yy_bp = yytext_ptr + YY_MORE_ADJ;
2377                         if ( yy_next_state )
2378                                 {
2379                                 /* Consume the NUL. */
2380                                 yy_cp = ++yy_c_buf_p;
2381                                 yy_current_state = yy_next_state;
2382                                 goto yy_match;
2383                                 }
2385                         else
2386                                 {
2387                                 yy_cp = yy_c_buf_p;
2388                                 goto yy_find_action;
2389                                 }
2390                         }
2392                 else switch ( yy_get_next_buffer() )
2393                         {
2394                         case EOB_ACT_END_OF_FILE:
2395                                 {
2396                                 yy_did_buffer_switch_on_eof = 0;
2398                                 if ( yywrap() )
2399                                         {
2400                                         /* Note: because we've taken care in
2401                                          * yy_get_next_buffer() to have set up
2402                                          * yytext, we can now set up
2403                                          * yy_c_buf_p so that if some total
2404                                          * hoser (like flex itself) wants to
2405                                          * call the scanner after we return the
2406                                          * YY_NULL, it'll still work - another
2407                                          * YY_NULL will get returned.
2408                                          */
2409                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2411                                         yy_act = YY_STATE_EOF(YY_START);
2412                                         goto do_action;
2413                                         }
2415                                 else
2416                                         {
2417                                         if ( ! yy_did_buffer_switch_on_eof )
2418                                                 YY_NEW_FILE;
2419                                         }
2420                                 break;
2421                                 }
2423                         case EOB_ACT_CONTINUE_SCAN:
2424                                 yy_c_buf_p =
2425                                         yytext_ptr + yy_amount_of_matched_text;
2427                                 yy_current_state = yy_get_previous_state();
2429                                 yy_cp = yy_c_buf_p;
2430                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2431                                 goto yy_match;
2433                         case EOB_ACT_LAST_MATCH:
2434                                 yy_c_buf_p =
2435                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2437                                 yy_current_state = yy_get_previous_state();
2439                                 yy_cp = yy_c_buf_p;
2440                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2441                                 goto yy_find_action;
2442                         }
2443                 break;
2444                 }
2446         default:
2447                 YY_FATAL_ERROR(
2448                         "fatal flex scanner internal error--no action found" );
2449         } /* end of action switch */
2450                 } /* end of scanning one token */
2451         } /* end of yylex */
2454 /* yy_get_next_buffer - try to read in a new buffer
2456  * Returns a code representing an action:
2457  *      EOB_ACT_LAST_MATCH -
2458  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2459  *      EOB_ACT_END_OF_FILE - end of file
2460  */
2462 static int yy_get_next_buffer()
2463         {
2464         register char *dest = yy_current_buffer->yy_ch_buf;
2465         register char *source = yytext_ptr;
2466         register int number_to_move, i;
2467         int ret_val;
2469         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2470                 YY_FATAL_ERROR(
2471                 "fatal flex scanner internal error--end of buffer missed" );
2473         if ( yy_current_buffer->yy_fill_buffer == 0 )
2474                 { /* Don't try to fill the buffer, so this is an EOF. */
2475                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2476                         {
2477                         /* We matched a single character, the EOB, so
2478                          * treat this as a final EOF.
2479                          */
2480                         return EOB_ACT_END_OF_FILE;
2481                         }
2483                 else
2484                         {
2485                         /* We matched some text prior to the EOB, first
2486                          * process it.
2487                          */
2488                         return EOB_ACT_LAST_MATCH;
2489                         }
2490                 }
2492         /* Try to read more data. */
2494         /* First move last chars to start of buffer. */
2495         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2497         for ( i = 0; i < number_to_move; ++i )
2498                 *(dest++) = *(source++);
2500         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2501                 /* don't do the read, it's not guaranteed to return an EOF,
2502                  * just force an EOF
2503                  */
2504                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2506         else
2507                 {
2508                 int num_to_read =
2509                         yy_current_buffer->yy_buf_size - number_to_move - 1;
2511                 while ( num_to_read <= 0 )
2512                         { /* Not enough room in the buffer - grow it. */
2513 #ifdef YY_USES_REJECT
2514                         YY_FATAL_ERROR(
2515 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2516 #else
2518                         /* just a shorter name for the current buffer */
2519                         YY_BUFFER_STATE b = yy_current_buffer;
2521                         int yy_c_buf_p_offset =
2522                                 (int) (yy_c_buf_p - b->yy_ch_buf);
2524                         if ( b->yy_is_our_buffer )
2525                                 {
2526                                 int new_size = b->yy_buf_size * 2;
2528                                 if ( new_size <= 0 )
2529                                         b->yy_buf_size += b->yy_buf_size / 8;
2530                                 else
2531                                         b->yy_buf_size *= 2;
2533                                 b->yy_ch_buf = (char *)
2534                                         /* Include room in for 2 EOB chars. */
2535                                         yy_flex_realloc( (void *) b->yy_ch_buf,
2536                                                          b->yy_buf_size + 2 );
2537                                 }
2538                         else
2539                                 /* Can't grow it, we don't own it. */
2540                                 b->yy_ch_buf = 0;
2542                         if ( ! b->yy_ch_buf )
2543                                 YY_FATAL_ERROR(
2544                                 "fatal error - scanner input buffer overflow" );
2546                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2548                         num_to_read = yy_current_buffer->yy_buf_size -
2549                                                 number_to_move - 1;
2550 #endif
2551                         }
2553                 if ( num_to_read > YY_READ_BUF_SIZE )
2554                         num_to_read = YY_READ_BUF_SIZE;
2556                 /* Read in more data. */
2557                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2558                         yy_n_chars, num_to_read );
2560                 yy_current_buffer->yy_n_chars = yy_n_chars;
2561                 }
2563         if ( yy_n_chars == 0 )
2564                 {
2565                 if ( number_to_move == YY_MORE_ADJ )
2566                         {
2567                         ret_val = EOB_ACT_END_OF_FILE;
2568                         yyrestart( yyin );
2569                         }
2571                 else
2572                         {
2573                         ret_val = EOB_ACT_LAST_MATCH;
2574                         yy_current_buffer->yy_buffer_status =
2575                                 YY_BUFFER_EOF_PENDING;
2576                         }
2577                 }
2579         else
2580                 ret_val = EOB_ACT_CONTINUE_SCAN;
2582         yy_n_chars += number_to_move;
2583         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2584         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2586         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2588         return ret_val;
2589         }
2592 /* yy_get_previous_state - get the state just before the EOB char was reached */
2594 static yy_state_type yy_get_previous_state()
2595         {
2596         register yy_state_type yy_current_state;
2597         register char *yy_cp;
2599         yy_current_state = yy_start;
2601         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2602                 {
2603                 yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
2604                 }
2606         return yy_current_state;
2607         }
2610 /* yy_try_NUL_trans - try to make a transition on the NUL character
2612  * synopsis
2613  *      next_state = yy_try_NUL_trans( current_state );
2614  */
2616 #ifdef YY_USE_PROTOS
2617 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2618 #else
2619 static yy_state_type yy_try_NUL_trans( yy_current_state )
2620 yy_state_type yy_current_state;
2621 #endif
2622         {
2623         register int yy_is_jam;
2625         yy_current_state = yy_nxt[yy_current_state][1];
2626         yy_is_jam = (yy_current_state <= 0);
2628         return yy_is_jam ? 0 : yy_current_state;
2629         }
2632 #ifndef YY_NO_UNPUT
2633 #ifdef YY_USE_PROTOS
2634 static void yyunput( int c, register char *yy_bp )
2635 #else
2636 static void yyunput( c, yy_bp )
2637 int c;
2638 register char *yy_bp;
2639 #endif
2640         {
2641         register char *yy_cp = yy_c_buf_p;
2643         /* undo effects of setting up yytext */
2644         *yy_cp = yy_hold_char;
2646         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2647                 { /* need to shift things up to make room */
2648                 /* +2 for EOB chars. */
2649                 register int number_to_move = yy_n_chars + 2;
2650                 register char *dest = &yy_current_buffer->yy_ch_buf[
2651                                         yy_current_buffer->yy_buf_size + 2];
2652                 register char *source =
2653                                 &yy_current_buffer->yy_ch_buf[number_to_move];
2655                 while ( source > yy_current_buffer->yy_ch_buf )
2656                         *--dest = *--source;
2658                 yy_cp += (int) (dest - source);
2659                 yy_bp += (int) (dest - source);
2660                 yy_current_buffer->yy_n_chars =
2661                         yy_n_chars = yy_current_buffer->yy_buf_size;
2663                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2664                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
2665                 }
2667         *--yy_cp = (char) c;
2670         yytext_ptr = yy_bp;
2671         yy_hold_char = *yy_cp;
2672         yy_c_buf_p = yy_cp;
2673         }
2674 #endif  /* ifndef YY_NO_UNPUT */
2677 #ifdef __cplusplus
2678 static int yyinput()
2679 #else
2680 static int input()
2681 #endif
2682         {
2683         int c;
2685         *yy_c_buf_p = yy_hold_char;
2687         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2688                 {
2689                 /* yy_c_buf_p now points to the character we want to return.
2690                  * If this occurs *before* the EOB characters, then it's a
2691                  * valid NUL; if not, then we've hit the end of the buffer.
2692                  */
2693                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2694                         /* This was really a NUL. */
2695                         *yy_c_buf_p = '\0';
2697                 else
2698                         { /* need more input */
2699                         int offset = yy_c_buf_p - yytext_ptr;
2700                         ++yy_c_buf_p;
2702                         switch ( yy_get_next_buffer() )
2703                                 {
2704                                 case EOB_ACT_LAST_MATCH:
2705                                         /* This happens because yy_g_n_b()
2706                                          * sees that we've accumulated a
2707                                          * token and flags that we need to
2708                                          * try matching the token before
2709                                          * proceeding.  But for input(),
2710                                          * there's no matching to consider.
2711                                          * So convert the EOB_ACT_LAST_MATCH
2712                                          * to EOB_ACT_END_OF_FILE.
2713                                          */
2715                                         /* Reset buffer status. */
2716                                         yyrestart( yyin );
2718                                         /* fall through */
2720                                 case EOB_ACT_END_OF_FILE:
2721                                         {
2722                                         if ( yywrap() )
2723                                                 return EOF;
2725                                         if ( ! yy_did_buffer_switch_on_eof )
2726                                                 YY_NEW_FILE;
2727 #ifdef __cplusplus
2728                                         return yyinput();
2729 #else
2730                                         return input();
2731 #endif
2732                                         }
2734                                 case EOB_ACT_CONTINUE_SCAN:
2735                                         yy_c_buf_p = yytext_ptr + offset;
2736                                         break;
2737                                 }
2738                         }
2739                 }
2741         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
2742         *yy_c_buf_p = '\0';     /* preserve yytext */
2743         yy_hold_char = *++yy_c_buf_p;
2746         return c;
2747         }
2750 #ifdef YY_USE_PROTOS
2751 void yyrestart( FILE *input_file )
2752 #else
2753 void yyrestart( input_file )
2754 FILE *input_file;
2755 #endif
2756         {
2757         if ( ! yy_current_buffer )
2758                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2760         yy_init_buffer( yy_current_buffer, input_file );
2761         yy_load_buffer_state();
2762         }
2765 #ifdef YY_USE_PROTOS
2766 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2767 #else
2768 void yy_switch_to_buffer( new_buffer )
2769 YY_BUFFER_STATE new_buffer;
2770 #endif
2771         {
2772         if ( yy_current_buffer == new_buffer )
2773                 return;
2775         if ( yy_current_buffer )
2776                 {
2777                 /* Flush out information for old buffer. */
2778                 *yy_c_buf_p = yy_hold_char;
2779                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2780                 yy_current_buffer->yy_n_chars = yy_n_chars;
2781                 }
2783         yy_current_buffer = new_buffer;
2784         yy_load_buffer_state();
2786         /* We don't actually know whether we did this switch during
2787          * EOF (yywrap()) processing, but the only time this flag
2788          * is looked at is after yywrap() is called, so it's safe
2789          * to go ahead and always set it.
2790          */
2791         yy_did_buffer_switch_on_eof = 1;
2792         }
2795 #ifdef YY_USE_PROTOS
2796 void yy_load_buffer_state( void )
2797 #else
2798 void yy_load_buffer_state()
2799 #endif
2800         {
2801         yy_n_chars = yy_current_buffer->yy_n_chars;
2802         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2803         yyin = yy_current_buffer->yy_input_file;
2804         yy_hold_char = *yy_c_buf_p;
2805         }
2808 #ifdef YY_USE_PROTOS
2809 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2810 #else
2811 YY_BUFFER_STATE yy_create_buffer( file, size )
2812 FILE *file;
2813 int size;
2814 #endif
2815         {
2816         YY_BUFFER_STATE b;
2818         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2819         if ( ! b )
2820                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2822         b->yy_buf_size = size;
2824         /* yy_ch_buf has to be 2 characters longer than the size given because
2825          * we need to put in 2 end-of-buffer characters.
2826          */
2827         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2828         if ( ! b->yy_ch_buf )
2829                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2831         b->yy_is_our_buffer = 1;
2833         yy_init_buffer( b, file );
2835         return b;
2836         }
2839 #ifdef YY_USE_PROTOS
2840 void yy_delete_buffer( YY_BUFFER_STATE b )
2841 #else
2842 void yy_delete_buffer( b )
2843 YY_BUFFER_STATE b;
2844 #endif
2845         {
2846         if ( ! b )
2847                 return;
2849         if ( b == yy_current_buffer )
2850                 yy_current_buffer = (YY_BUFFER_STATE) 0;
2852         if ( b->yy_is_our_buffer )
2853                 yy_flex_free( (void *) b->yy_ch_buf );
2855         yy_flex_free( (void *) b );
2856         }
2859 #ifndef _WIN32
2860 #include <unistd.h>
2861 #else
2862 #ifndef YY_ALWAYS_INTERACTIVE
2863 #ifndef YY_NEVER_INTERACTIVE
2864 extern int isatty YY_PROTO(( int ));
2865 #endif
2866 #endif
2867 #endif
2869 #ifdef YY_USE_PROTOS
2870 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2871 #else
2872 void yy_init_buffer( b, file )
2873 YY_BUFFER_STATE b;
2874 FILE *file;
2875 #endif
2878         {
2879         yy_flush_buffer( b );
2881         b->yy_input_file = file;
2882         b->yy_fill_buffer = 1;
2884 #if YY_ALWAYS_INTERACTIVE
2885         b->yy_is_interactive = 1;
2886 #else
2887 #if YY_NEVER_INTERACTIVE
2888         b->yy_is_interactive = 0;
2889 #else
2890         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2891 #endif
2892 #endif
2893         }
2896 #ifdef YY_USE_PROTOS
2897 void yy_flush_buffer( YY_BUFFER_STATE b )
2898 #else
2899 void yy_flush_buffer( b )
2900 YY_BUFFER_STATE b;
2901 #endif
2903         {
2904         if ( ! b )
2905                 return;
2907         b->yy_n_chars = 0;
2909         /* We always need two end-of-buffer characters.  The first causes
2910          * a transition to the end-of-buffer state.  The second causes
2911          * a jam in that state.
2912          */
2913         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2914         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2916         b->yy_buf_pos = &b->yy_ch_buf[0];
2918         b->yy_at_bol = 1;
2919         b->yy_buffer_status = YY_BUFFER_NEW;
2921         if ( b == yy_current_buffer )
2922                 yy_load_buffer_state();
2923         }
2926 #ifndef YY_NO_SCAN_BUFFER
2927 #ifdef YY_USE_PROTOS
2928 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2929 #else
2930 YY_BUFFER_STATE yy_scan_buffer( base, size )
2931 char *base;
2932 yy_size_t size;
2933 #endif
2934         {
2935         YY_BUFFER_STATE b;
2937         if ( size < 2 ||
2938              base[size-2] != YY_END_OF_BUFFER_CHAR ||
2939              base[size-1] != YY_END_OF_BUFFER_CHAR )
2940                 /* They forgot to leave room for the EOB's. */
2941                 return 0;
2943         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2944         if ( ! b )
2945                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2947         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
2948         b->yy_buf_pos = b->yy_ch_buf = base;
2949         b->yy_is_our_buffer = 0;
2950         b->yy_input_file = 0;
2951         b->yy_n_chars = b->yy_buf_size;
2952         b->yy_is_interactive = 0;
2953         b->yy_at_bol = 1;
2954         b->yy_fill_buffer = 0;
2955         b->yy_buffer_status = YY_BUFFER_NEW;
2957         yy_switch_to_buffer( b );
2959         return b;
2960         }
2961 #endif
2964 #ifndef YY_NO_SCAN_STRING
2965 #ifdef YY_USE_PROTOS
2966 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2967 #else
2968 YY_BUFFER_STATE yy_scan_string( yy_str )
2969 yyconst char *yy_str;
2970 #endif
2971         {
2972         int len;
2973         for ( len = 0; yy_str[len]; ++len )
2974                 ;
2976         return yy_scan_bytes( yy_str, len );
2977         }
2978 #endif
2981 #ifndef YY_NO_SCAN_BYTES
2982 #ifdef YY_USE_PROTOS
2983 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2984 #else
2985 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2986 yyconst char *bytes;
2987 int len;
2988 #endif
2989         {
2990         YY_BUFFER_STATE b;
2991         char *buf;
2992         yy_size_t n;
2993         int i;
2995         /* Get memory for full buffer, including space for trailing EOB's. */
2996         n = len + 2;
2997         buf = (char *) yy_flex_alloc( n );
2998         if ( ! buf )
2999                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3001         for ( i = 0; i < len; ++i )
3002                 buf[i] = bytes[i];
3004         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3006         b = yy_scan_buffer( buf, n );
3007         if ( ! b )
3008                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3010         /* It's okay to grow etc. this buffer, and we should throw it
3011          * away when we're done.
3012          */
3013         b->yy_is_our_buffer = 1;
3015         return b;
3016         }
3017 #endif
3020 #ifndef YY_NO_PUSH_STATE
3021 #ifdef YY_USE_PROTOS
3022 static void yy_push_state( int new_state )
3023 #else
3024 static void yy_push_state( new_state )
3025 int new_state;
3026 #endif
3027         {
3028         if ( yy_start_stack_ptr >= yy_start_stack_depth )
3029                 {
3030                 yy_size_t new_size;
3032                 yy_start_stack_depth += YY_START_STACK_INCR;
3033                 new_size = yy_start_stack_depth * sizeof( int );
3035                 if ( ! yy_start_stack )
3036                         yy_start_stack = (int *) yy_flex_alloc( new_size );
3038                 else
3039                         yy_start_stack = (int *) yy_flex_realloc(
3040                                         (void *) yy_start_stack, new_size );
3042                 if ( ! yy_start_stack )
3043                         YY_FATAL_ERROR(
3044                         "out of memory expanding start-condition stack" );
3045                 }
3047         yy_start_stack[yy_start_stack_ptr++] = YY_START;
3049         BEGIN(new_state);
3050         }
3051 #endif
3054 #ifndef YY_NO_POP_STATE
3055 static void yy_pop_state()
3056         {
3057         if ( --yy_start_stack_ptr < 0 )
3058                 YY_FATAL_ERROR( "start-condition stack underflow" );
3060         BEGIN(yy_start_stack[yy_start_stack_ptr]);
3061         }
3062 #endif
3065 #ifndef YY_NO_TOP_STATE
3066 static int yy_top_state()
3067         {
3068         return yy_start_stack[yy_start_stack_ptr - 1];
3069         }
3070 #endif
3072 #ifndef YY_EXIT_FAILURE
3073 #define YY_EXIT_FAILURE 2
3074 #endif
3076 #ifdef YY_USE_PROTOS
3077 static void yy_fatal_error( yyconst char msg[] )
3078 #else
3079 static void yy_fatal_error( msg )
3080 char msg[];
3081 #endif
3082         {
3083         (void) fprintf( stderr, "%s\n", msg );
3084         exit( YY_EXIT_FAILURE );
3085         }
3089 /* Redefine yyless() so it works in section 3 code. */
3091 #undef yyless
3092 #define yyless(n) \
3093         do \
3094                 { \
3095                 /* Undo effects of setting up yytext. */ \
3096                 yytext[yyleng] = yy_hold_char; \
3097                 yy_c_buf_p = yytext + n; \
3098                 yy_hold_char = *yy_c_buf_p; \
3099                 *yy_c_buf_p = '\0'; \
3100                 yyleng = n; \
3101                 } \
3102         while ( 0 )
3105 /* Internal utility routines. */
3107 #ifndef yytext_ptr
3108 #ifdef YY_USE_PROTOS
3109 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3110 #else
3111 static void yy_flex_strncpy( s1, s2, n )
3112 char *s1;
3113 yyconst char *s2;
3114 int n;
3115 #endif
3116         {
3117         register int i;
3118         for ( i = 0; i < n; ++i )
3119                 s1[i] = s2[i];
3120         }
3121 #endif
3123 #ifdef YY_NEED_STRLEN
3124 #ifdef YY_USE_PROTOS
3125 static int yy_flex_strlen( yyconst char *s )
3126 #else
3127 static int yy_flex_strlen( s )
3128 yyconst char *s;
3129 #endif
3130         {
3131         register int n;
3132         for ( n = 0; s[n]; ++n )
3133                 ;
3135         return n;
3136         }
3137 #endif
3140 #ifdef YY_USE_PROTOS
3141 static void *yy_flex_alloc( yy_size_t size )
3142 #else
3143 static void *yy_flex_alloc( size )
3144 yy_size_t size;
3145 #endif
3146         {
3147         return (void *) malloc( size );
3148         }
3150 #ifdef YY_USE_PROTOS
3151 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3152 #else
3153 static void *yy_flex_realloc( ptr, size )
3154 void *ptr;
3155 yy_size_t size;
3156 #endif
3157         {
3158         /* The cast to (char *) in the following accommodates both
3159          * implementations that use char* generic pointers, and those
3160          * that use void* generic pointers.  It works with the latter
3161          * because both ANSI C and C++ allow castless assignment from
3162          * any pointer type to void*, and deal with argument conversions
3163          * as though doing an assignment.
3164          */
3165         return (void *) realloc( (char *) ptr, size );
3166         }
3168 #ifdef YY_USE_PROTOS
3169 static void yy_flex_free( void *ptr )
3170 #else
3171 static void yy_flex_free( ptr )
3172 void *ptr;
3173 #endif
3174         {
3175         free( ptr );
3176         }
3178 #if YY_MAIN
3179 int main()
3180         {
3181         yylex();
3182         return 0;
3183         }
3184 #endif
3185 #line 238 "zconf.l"
3187 void zconf_starthelp(void)
3189         new_string();
3190         last_ts = first_ts = 0;
3191         BEGIN(HELP);
3194 static void zconf_endhelp(void)
3196         zconflval.string = text;
3197         BEGIN(INITIAL); 
3200 void zconf_initscan(const char *name)
3202         yyin = fopen(name, "r");
3203         if (!yyin) {
3204                 printf("can't find file %s\n", name);
3205                 exit(1);
3206         }
3208         current_buf = malloc(sizeof(*current_buf));
3209         memset(current_buf, 0, sizeof(*current_buf));
3211         current_file = file_lookup(name);
3212         current_file->lineno = 1;
3213         current_file->flags = FILE_BUSY;
3216 void zconf_nextfile(const char *name)
3218         struct file *file = file_lookup(name);
3219         struct buffer *buf = malloc(sizeof(*buf));
3220         memset(buf, 0, sizeof(*buf));
3222         current_buf->state = YY_CURRENT_BUFFER;
3223         yyin = fopen(name, "r");
3224         if (!yyin) {
3225                 printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
3226                 exit(1);
3227         }
3228         yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
3229         buf->parent = current_buf;
3230         current_buf = buf;
3232         if (file->flags & FILE_BUSY) {
3233                 printf("recursive scan (%s)?\n", name);
3234                 exit(1);
3235         }
3236         if (file->flags & FILE_SCANNED) {
3237                 printf("file %s already scanned?\n", name);
3238                 exit(1);
3239         }
3240         file->flags |= FILE_BUSY;
3241         file->lineno = 1;
3242         file->parent = current_file;
3243         current_file = file;
3246 static struct buffer *zconf_endfile(void)
3248         struct buffer *parent;
3250         current_file->flags |= FILE_SCANNED;
3251         current_file->flags &= ~FILE_BUSY;
3252         current_file = current_file->parent;
3254         parent = current_buf->parent;
3255         if (parent) {
3256                 fclose(yyin);
3257                 yy_delete_buffer(YY_CURRENT_BUFFER);
3258                 yy_switch_to_buffer(parent->state);
3259         }
3260         free(current_buf);
3261         current_buf = parent;
3263         return parent;
3266 int zconf_lineno(void)
3268         if (current_buf)
3269                 return current_file->lineno;
3270         else
3271                 return 0;
3274 char *zconf_curname(void)
3276         if (current_buf)
3277                 return current_file->name;
3278         else
3279                 return "<none>";