Yet another major rework of the BusyBox config system, using the considerably
[oweals/busybox.git] / scripts / config / lex.zconf.c_shipped
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
17
18 /* A lexical scanner generated by flex */
19
20 /* Scanner skeleton version:
21  * $Header: /var/cvs/busybox/scripts/config/lex.zconf.c_shipped,v 1.1 2002/12/05 08:41:07 andersen Exp $
22  */
23
24 #define FLEX_SCANNER
25 #define YY_FLEX_MAJOR_VERSION 2
26 #define YY_FLEX_MINOR_VERSION 5
27
28 #include <stdio.h>
29 #include <errno.h>
30
31 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
32 #ifdef c_plusplus
33 #ifndef __cplusplus
34 #define __cplusplus
35 #endif
36 #endif
37
38
39 #ifdef __cplusplus
40
41 #include <stdlib.h>
42 #ifndef _WIN32
43 #include <unistd.h>
44 #endif
45
46 /* Use prototypes in function declarations. */
47 #define YY_USE_PROTOS
48
49 /* The "const" storage-class-modifier is valid. */
50 #define YY_USE_CONST
51
52 #else   /* ! __cplusplus */
53
54 #if __STDC__
55
56 #define YY_USE_PROTOS
57 #define YY_USE_CONST
58
59 #endif  /* __STDC__ */
60 #endif  /* ! __cplusplus */
61
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
70
71 #ifdef YY_USE_CONST
72 #define yyconst const
73 #else
74 #define yyconst
75 #endif
76
77
78 #ifdef YY_USE_PROTOS
79 #define YY_PROTO(proto) proto
80 #else
81 #define YY_PROTO(proto) ()
82 #endif
83
84 /* Returned upon end-of-file. */
85 #define YY_NULL 0
86
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)
93
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 *
99
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
106
107 /* Action number for EOF rule of a given start state. */
108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110 /* Special action meaning "start processing a new file". */
111 #define YY_NEW_FILE yyrestart( yyin )
112
113 #define YY_END_OF_BUFFER_CHAR 0
114
115 /* Size of default input buffer. */
116 #define YY_BUF_SIZE 16384
117
118 typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120 extern int yyleng;
121 extern FILE *yyin, *yyout;
122
123 #define EOB_ACT_CONTINUE_SCAN 0
124 #define EOB_ACT_END_OF_FILE 1
125 #define EOB_ACT_LAST_MATCH 2
126
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:
130  *
131  *      if ( condition_holds )
132  *              yyless( 5 );
133  *      else
134  *              do_something_else();
135  *
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  */
140
141 /* Return all but the first 'n' matched characters back to the input stream. */
142
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 )
153
154 #define unput(c) yyunput( c, yytext_ptr )
155
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;
161
162
163 struct yy_buffer_state
164         {
165         FILE *yy_input_file;
166
167         char *yy_ch_buf;                /* input buffer */
168         char *yy_buf_pos;               /* current position in input buffer */
169
170         /* Size of input buffer in bytes, not including room for EOB
171          * characters.
172          */
173         yy_size_t yy_buf_size;
174
175         /* Number of characters read into yy_ch_buf, not including EOB
176          * characters.
177          */
178         int yy_n_chars;
179
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;
185
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;
192
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;
198
199         /* Whether to try to fill the input buffer when we reach the
200          * end of it.
201          */
202         int yy_fill_buffer;
203
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         };
219
220 static YY_BUFFER_STATE yy_current_buffer = 0;
221
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
227
228
229 /* yy_hold_char holds the character lost when yytext is formed. */
230 static char yy_hold_char;
231
232 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
233
234
235 int yyleng;
236
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 */
241
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;
246
247 void yyrestart YY_PROTO(( FILE *input_file ));
248
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 )
256
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 ));
260
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 * ));
264
265 #define yy_new_buffer yy_create_buffer
266
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         }
273
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         }
280
281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
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     },
299
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     },
306
307     {
308        11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
309        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
310
311        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
312        12,   12,   12,   12,   12,   12,   12
313     },
314
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     },
321
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
327
328     },
329
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     },
336
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     },
343
344     {
345        11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
346        34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
347
348        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
349        34,   34,   34,   34,   34,   34,   34
350     },
351
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     },
358
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
364
365     },
366
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     },
373
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     },
380
381     {
382        11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
383       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
384
385       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
386       -12,  -12,  -12,  -12,  -12,  -12,  -12
387     },
388
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     },
395
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
401
402     },
403
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     },
410
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     },
417
418     {
419        11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
420       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
421
422       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
423       -17,  -17,  -17,  -17,  -17,  -17,  -17
424     },
425
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     },
432
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
438
439     },
440
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     },
447
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     },
454
455     {
456        11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
457       -22,  -22,  -22,   56,  -22,  -22,   56,   56,   56,   56,
458
459        56,   56,   56,   56,   56,   56,   56,   61,   56,   56,
460        56,   56,   56,   56,   56,   56,  -22
461     },
462
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     },
469
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
475
476     },
477
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     },
484
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     },
491
492     {
493        11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
494       -27,  -27,  -27,   56,  -27,  -27,   56,   56,   56,   56,
495
496        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
497        56,   68,   56,   56,   56,   56,  -27
498     },
499
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     },
506
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
512
513     },
514
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     },
521
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     },
528
529     {
530        11,  -32,   74,   75,  -32,  -32,  -32,  -32,  -32,  -32,
531       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
532
533       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
534       -32,  -32,  -32,  -32,  -32,  -32,  -32
535     },
536
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     },
543
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
549
550     },
551
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     },
558
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     },
565
566     {
567        11,   79,   79,   80,   79,   79,   79,   79,   79,   79,
568        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
569
570        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
571        79,   79,   79,   79,   79,   79,   79
572     },
573
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     },
580
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
586
587     },
588
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     },
595
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     },
602
603     {
604        11,  -42,  -42,  -42,  -42,  -42,  -42,   82,  -42,  -42,
605       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
606
607       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
608       -42,  -42,  -42,  -42,  -42,  -42,  -42
609     },
610
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     },
617
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
623
624     },
625
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     },
632
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     },
639
640     {
641        11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
642       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
643
644       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
645       -47,  -47,  -47,  -47,  -47,  -47,  -47
646     },
647
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     },
654
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
660
661     },
662
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     },
669
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     },
676
677     {
678        11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
679       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
680
681       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
682       -52,  -52,  -52,  -52,  -52,  -52,  -52
683     },
684
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     },
691
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
697
698     },
699
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     },
706
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     },
713
714     {
715        11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
716       -57,  -57,  -57,   56,  -57,  -57,   56,   56,   56,   56,
717
718        56,   56,   56,   56,   56,   56,   56,   56,   88,   56,
719        56,   56,   56,   56,   56,   56,  -57
720     },
721
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     },
728
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
734
735     },
736
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     },
743
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     },
750
751     {
752        11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
753       -62,  -62,  -62,   56,  -62,  -62,   56,   56,   56,   56,
754
755        56,   56,   56,   56,   56,   95,   56,   56,   56,   56,
756        56,   56,   56,   56,   56,   96,  -62
757     },
758
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     },
765
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
771
772     },
773
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     },
780
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     },
787
788     {
789        11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
790       -67,  -67,  -67,   56,  -67,  -67,   56,   56,   56,   56,
791
792        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
793        56,   56,   56,  100,   56,   56,  -67
794     },
795
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     },
802
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
808
809     },
810
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     },
817
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     },
824
825     {
826        11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
827       -72,  -72,  -72,   56,  -72,  -72,   56,   56,   56,   56,
828
829        56,   56,   56,   56,  105,   56,   56,   56,   56,   56,
830        56,   56,   56,   56,   56,   56,  -72
831     },
832
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     },
839
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
845
846     },
847
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     },
854
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     },
861
862     {
863        11,   77,   77,   78,   77,  -77,   77,   77,  -77,   77,
864        77,   77,   77,   77,   77,  -77,   77,   77,   77,   77,
865
866        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
867        77,   77,   77,   77,   77,   77,   77
868     },
869
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     },
876
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
882
883     },
884
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     },
891
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     },
898
899     {
900        11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
901       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
902
903       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
904       -82,  -82,  -82,  -82,  -82,  -82,  -82
905     },
906
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     },
913
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
919
920     },
921
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     },
928
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     },
935
936     {
937        11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
938       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
939
940       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
941       -87,  -87,  -87,  -87,  -87,  -87,  -87
942     },
943
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     },
950
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
956
957     },
958
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     },
965
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     },
972
973     {
974        11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
975       -92,  -92,  -92,   56,  -92,  -92,  111,   56,   56,   56,
976
977        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
978        56,   56,   56,   56,   56,   56,  -92
979     },
980
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     },
987
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
993
994     },
995
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     },
1002
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     },
1009
1010     {
1011        11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
1012       -97,  -97,  -97,   56,  -97,  -97,   56,   56,   56,   56,
1013
1014        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1015        56,   56,   56,   56,   56,   56,  -97
1016     },
1017
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     },
1024
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
1030
1031     },
1032
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     },
1039
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     },
1046
1047     {
1048        11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
1049      -102, -102, -102,   56, -102, -102,   56,   56,   56,   56,
1050
1051        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1052        56,   56,   56,   56,  121,   56, -102
1053     },
1054
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     },
1061
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
1067
1068     },
1069
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     },
1076
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     },
1083
1084     {
1085        11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
1086      -107, -107, -107,   56, -107, -107,   56,   56,   56,   56,
1087
1088       125,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1089        56,   56,   56,   56,   56,   56, -107
1090     },
1091
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     },
1098
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
1104
1105     },
1106
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     },
1113
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     },
1120
1121     {
1122        11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
1123      -112, -112, -112,   56, -112, -112,   56,   56,   56,   56,
1124
1125        56,   56,   56,   56,   56,   56,   56,  130,   56,   56,
1126        56,   56,   56,   56,   56,   56, -112
1127     },
1128
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     },
1135
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
1141
1142     },
1143
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     },
1150
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     },
1157
1158     {
1159        11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
1160      -117, -117, -117,   56, -117, -117,   56,   56,   56,   56,
1161
1162        56,   56,   56,   56,   56,   56,  134,   56,   56,   56,
1163        56,   56,   56,   56,   56,   56, -117
1164     },
1165
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     },
1172
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
1178
1179     },
1180
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     },
1187
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     },
1194
1195     {
1196        11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
1197      -122, -122, -122,   56, -122, -122,   56,   56,  138,   56,
1198
1199        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1200        56,   56,   56,   56,   56,   56, -122
1201     },
1202
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     },
1209
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
1215
1216     },
1217
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     },
1224
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     },
1231
1232     {
1233        11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
1234      -127, -127, -127,   56, -127, -127,   56,   56,   56,   56,
1235
1236        56,   56,   56,   56,   56,   56,   56,  143,   56,   56,
1237        56,   56,   56,   56,   56,   56, -127
1238     },
1239
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     },
1246
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
1252
1253     },
1254
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     },
1261
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     },
1268
1269     {
1270        11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
1271      -132, -132, -132,   56, -132, -132,   56,   56,   56,   56,
1272
1273        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1274        56,   56,   56,   56,   56,   56, -132
1275     },
1276
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     },
1283
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
1289
1290     },
1291
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     },
1298
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     },
1305
1306     {
1307        11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1308      -137, -137, -137,   56, -137, -137,   56,   56,   56,   56,
1309
1310        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1311        56,  152,   56,   56,   56,   56, -137
1312     },
1313
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     },
1320
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
1326
1327     },
1328
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     },
1335
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     },
1342
1343     {
1344        11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1345      -142, -142, -142,   56, -142, -142,   56,   56,   56,   56,
1346
1347        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1348        56,   56,   56,   56,   56,   56, -142
1349     },
1350
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     },
1357
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
1363
1364     },
1365
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     },
1372
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     },
1379
1380     {
1381        11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1382      -147, -147, -147,   56, -147, -147,   56,   56,   56,   56,
1383
1384        56,   56,   56,   56,  160,   56,   56,   56,   56,   56,
1385        56,   56,   56,   56,   56,   56, -147
1386     },
1387
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     },
1394
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
1400
1401     },
1402
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     },
1409
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     },
1416
1417     {
1418        11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1419      -152, -152, -152,   56, -152, -152,   56,   56,   56,   56,
1420
1421       164,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1422        56,   56,   56,   56,   56,   56, -152
1423     },
1424
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     },
1431
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
1437
1438     },
1439
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     },
1446
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     },
1453
1454     {
1455        11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
1456      -157, -157, -157,   56, -157, -157,   56,   56,   56,   56,
1457
1458        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1459        56,   56,   56,   56,   56,   56, -157
1460     },
1461
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     },
1468
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
1474
1475     },
1476
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     },
1483
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     },
1490
1491     {
1492        11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
1493      -162, -162, -162,   56, -162, -162,   56,   56,   56,   56,
1494
1495        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1496        56,   56,   56,   56,  167,   56, -162
1497     },
1498
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     },
1505
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
1511
1512     },
1513
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     },
1520
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     },
1527
1528     {
1529        11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
1530      -167, -167, -167,   56, -167, -167,   56,   56,   56,   56,
1531
1532        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1533        56,   56,   56,   56,   56,   56, -167
1534     },
1535
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     },
1542
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
1548
1549     },
1550
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     },
1557
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     },
1564
1565     } ;
1566
1567
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[] ));
1572
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;
1582
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,
1597
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     } ;
1607
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,
1620
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,
1631
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     } ;
1639
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
1655
1656 #line 5 "zconf.l"
1657 /*
1658  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
1659  * Released under the terms of the GNU GPL v2.0.
1660  */
1661
1662 #include <stdio.h>
1663 #include <stdlib.h>
1664 #include <string.h>
1665 #include <unistd.h>
1666
1667 #define LKC_DIRECT_LINK
1668 #include "lkc.h"
1669 #include "zconf.tab.h"
1670
1671 #define START_STRSIZE   16
1672
1673 char *text;
1674 static char *text_ptr;
1675 static int text_size, text_asize;
1676
1677 struct buffer {
1678         struct buffer *parent;
1679         YY_BUFFER_STATE state;
1680 };
1681
1682 struct buffer *current_buf;
1683
1684 static int last_ts, first_ts;
1685
1686 static void zconf_endhelp(void);
1687 static struct buffer *zconf_endfile(void);
1688
1689 void new_string(void)
1690 {
1691         text = malloc(START_STRSIZE);
1692         text_asize = START_STRSIZE;
1693         text_ptr = text;
1694         text_size = 0;
1695         *text_ptr = 0;
1696 }
1697
1698 void append_string(const char *str, int size)
1699 {
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;
1710 }
1711
1712 void alloc_string(const char *str, int size)
1713 {
1714         text = malloc(size + 1);
1715         memcpy(text, str, size);
1716         text[size] = 0;
1717 }
1718 #line 1719 "lex.zconf.c"
1719
1720 /* Macros after this point can all be overridden by user definitions in
1721  * section 1.
1722  */
1723
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
1731
1732 #ifndef YY_NO_UNPUT
1733 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1734 #endif
1735
1736 #ifndef yytext_ptr
1737 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1738 #endif
1739
1740 #ifdef YY_NEED_STRLEN
1741 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1742 #endif
1743
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
1751
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
1765
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
1771
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
1786
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
1791
1792 /* Copy whatever the last rule matched to the standard output. */
1793
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
1800
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
1818
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
1826
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
1831
1832 /* Report a fatal error. */
1833 #ifndef YY_FATAL_ERROR
1834 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1835 #endif
1836
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
1843
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
1850
1851 /* Code executed at the end of each rule. */
1852 #ifndef YY_BREAK
1853 #define YY_BREAK break;
1854 #endif
1855
1856 #define YY_RULE_SETUP \
1857         YY_USER_ACTION
1858
1859 YY_DECL
1860         {
1861         register yy_state_type yy_current_state;
1862         register char *yy_cp, *yy_bp;
1863         register int yy_act;
1864
1865 #line 71 "zconf.l"
1866
1867         int str = 0;
1868         int ts, i;
1869
1870 #line 1871 "lex.zconf.c"
1871
1872         if ( yy_init )
1873                 {
1874                 yy_init = 0;
1875
1876 #ifdef YY_USER_INIT
1877                 YY_USER_INIT;
1878 #endif
1879
1880                 if ( ! yy_start )
1881                         yy_start = 1;   /* first start state */
1882
1883                 if ( ! yyin )
1884                         yyin = stdin;
1885
1886                 if ( ! yyout )
1887                         yyout = stdout;
1888
1889                 if ( ! yy_current_buffer )
1890                         yy_current_buffer =
1891                                 yy_create_buffer( yyin, YY_BUF_SIZE );
1892
1893                 yy_load_buffer_state();
1894                 }
1895
1896         while ( 1 )             /* loops until end-of-file is reached */
1897                 {
1898                 yy_cp = yy_c_buf_p;
1899
1900                 /* Support of yytext. */
1901                 *yy_cp = yy_hold_char;
1902
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;
1907
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;
1912
1913                 yy_current_state = -yy_current_state;
1914
1915 yy_find_action:
1916                 yy_act = yy_accept[yy_current_state];
1917
1918                 YY_DO_BEFORE_ACTION;
1919
1920
1921 do_action:      /* This label is used only to access EOF actions. */
1922
1923
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"
1934
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"
1944 {
1945         BEGIN(COMMAND);
1946 }
1947         YY_BREAK
1948 case 5:
1949 YY_RULE_SETUP
1950 #line 84 "zconf.l"
1951 {
1952         unput(yytext[0]);
1953         BEGIN(COMMAND);
1954 }
1955         YY_BREAK
1956
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"
2070 {
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"
2079
2080         YY_BREAK
2081 case 30:
2082 YY_RULE_SETUP
2083 #line 119 "zconf.l"
2084 current_file->lineno++; BEGIN(INITIAL);
2085         YY_BREAK
2086
2087
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"
2136 {
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"
2155 {
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"
2164
2165         YY_BREAK
2166 case YY_STATE_EOF(PARAM):
2167 #line 145 "zconf.l"
2168 {
2169                 BEGIN(INITIAL);
2170         }
2171         YY_BREAK
2172
2173
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"
2180 {
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"
2189 {
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"
2199 {
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"
2208 {
2209                 append_string(yytext+1, yyleng - 1);
2210         }
2211         YY_BREAK
2212 case 49:
2213 YY_RULE_SETUP
2214 #line 167 "zconf.l"
2215 {
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"
2227 {
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"
2235 {
2236                 BEGIN(INITIAL);
2237         }
2238         YY_BREAK
2239
2240
2241 case 51:
2242 YY_RULE_SETUP
2243 #line 186 "zconf.l"
2244 {
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"
2274 {
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"
2283 {
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"
2291 {
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"
2299 {
2300                 zconf_endhelp();
2301                 return T_HELPTEXT;
2302         }
2303         YY_BREAK
2304
2305 case YY_STATE_EOF(INITIAL):
2306 case YY_STATE_EOF(COMMAND):
2307 #line 229 "zconf.l"
2308 {
2309         if (current_buf) {
2310                 zconf_endfile();
2311                 return T_EOF;
2312         }
2313         fclose(yyin);
2314         yyterminate();
2315 }
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"
2323
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;
2328
2329                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2330                 *yy_cp = yy_hold_char;
2331                 YY_RESTORE_YY_MORE_OFFSET
2332
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                         }
2348
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;
2359
2360                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2361
2362                         yy_current_state = yy_get_previous_state();
2363
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                          */
2372
2373                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2374
2375                         yy_bp = yytext_ptr + YY_MORE_ADJ;
2376
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                                 }
2384
2385                         else
2386                                 {
2387                                 yy_cp = yy_c_buf_p;
2388                                 goto yy_find_action;
2389                                 }
2390                         }
2391
2392                 else switch ( yy_get_next_buffer() )
2393                         {
2394                         case EOB_ACT_END_OF_FILE:
2395                                 {
2396                                 yy_did_buffer_switch_on_eof = 0;
2397
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;
2410
2411                                         yy_act = YY_STATE_EOF(YY_START);
2412                                         goto do_action;
2413                                         }
2414
2415                                 else
2416                                         {
2417                                         if ( ! yy_did_buffer_switch_on_eof )
2418                                                 YY_NEW_FILE;
2419                                         }
2420                                 break;
2421                                 }
2422
2423                         case EOB_ACT_CONTINUE_SCAN:
2424                                 yy_c_buf_p =
2425                                         yytext_ptr + yy_amount_of_matched_text;
2426
2427                                 yy_current_state = yy_get_previous_state();
2428
2429                                 yy_cp = yy_c_buf_p;
2430                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2431                                 goto yy_match;
2432
2433                         case EOB_ACT_LAST_MATCH:
2434                                 yy_c_buf_p =
2435                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2436
2437                                 yy_current_state = yy_get_previous_state();
2438
2439                                 yy_cp = yy_c_buf_p;
2440                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2441                                 goto yy_find_action;
2442                         }
2443                 break;
2444                 }
2445
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 */
2452
2453
2454 /* yy_get_next_buffer - try to read in a new buffer
2455  *
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  */
2461
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;
2468
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" );
2472
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                         }
2482
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                 }
2491
2492         /* Try to read more data. */
2493
2494         /* First move last chars to start of buffer. */
2495         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2496
2497         for ( i = 0; i < number_to_move; ++i )
2498                 *(dest++) = *(source++);
2499
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;
2505
2506         else
2507                 {
2508                 int num_to_read =
2509                         yy_current_buffer->yy_buf_size - number_to_move - 1;
2510
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
2517
2518                         /* just a shorter name for the current buffer */
2519                         YY_BUFFER_STATE b = yy_current_buffer;
2520
2521                         int yy_c_buf_p_offset =
2522                                 (int) (yy_c_buf_p - b->yy_ch_buf);
2523
2524                         if ( b->yy_is_our_buffer )
2525                                 {
2526                                 int new_size = b->yy_buf_size * 2;
2527
2528                                 if ( new_size <= 0 )
2529                                         b->yy_buf_size += b->yy_buf_size / 8;
2530                                 else
2531                                         b->yy_buf_size *= 2;
2532
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;
2541
2542                         if ( ! b->yy_ch_buf )
2543                                 YY_FATAL_ERROR(
2544                                 "fatal error - scanner input buffer overflow" );
2545
2546                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2547
2548                         num_to_read = yy_current_buffer->yy_buf_size -
2549                                                 number_to_move - 1;
2550 #endif
2551                         }
2552
2553                 if ( num_to_read > YY_READ_BUF_SIZE )
2554                         num_to_read = YY_READ_BUF_SIZE;
2555
2556                 /* Read in more data. */
2557                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2558                         yy_n_chars, num_to_read );
2559
2560                 yy_current_buffer->yy_n_chars = yy_n_chars;
2561                 }
2562
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                         }
2570
2571                 else
2572                         {
2573                         ret_val = EOB_ACT_LAST_MATCH;
2574                         yy_current_buffer->yy_buffer_status =
2575                                 YY_BUFFER_EOF_PENDING;
2576                         }
2577                 }
2578
2579         else
2580                 ret_val = EOB_ACT_CONTINUE_SCAN;
2581
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;
2585
2586         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2587
2588         return ret_val;
2589         }
2590
2591
2592 /* yy_get_previous_state - get the state just before the EOB char was reached */
2593
2594 static yy_state_type yy_get_previous_state()
2595         {
2596         register yy_state_type yy_current_state;
2597         register char *yy_cp;
2598
2599         yy_current_state = yy_start;
2600
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                 }
2605
2606         return yy_current_state;
2607         }
2608
2609
2610 /* yy_try_NUL_trans - try to make a transition on the NUL character
2611  *
2612  * synopsis
2613  *      next_state = yy_try_NUL_trans( current_state );
2614  */
2615
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;
2624
2625         yy_current_state = yy_nxt[yy_current_state][1];
2626         yy_is_jam = (yy_current_state <= 0);
2627
2628         return yy_is_jam ? 0 : yy_current_state;
2629         }
2630
2631
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;
2642
2643         /* undo effects of setting up yytext */
2644         *yy_cp = yy_hold_char;
2645
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];
2654
2655                 while ( source > yy_current_buffer->yy_ch_buf )
2656                         *--dest = *--source;
2657
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;
2662
2663                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2664                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
2665                 }
2666
2667         *--yy_cp = (char) c;
2668
2669
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 */
2675
2676
2677 #ifdef __cplusplus
2678 static int yyinput()
2679 #else
2680 static int input()
2681 #endif
2682         {
2683         int c;
2684
2685         *yy_c_buf_p = yy_hold_char;
2686
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';
2696
2697                 else
2698                         { /* need more input */
2699                         int offset = yy_c_buf_p - yytext_ptr;
2700                         ++yy_c_buf_p;
2701
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                                          */
2714
2715                                         /* Reset buffer status. */
2716                                         yyrestart( yyin );
2717
2718                                         /* fall through */
2719
2720                                 case EOB_ACT_END_OF_FILE:
2721                                         {
2722                                         if ( yywrap() )
2723                                                 return EOF;
2724
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                                         }
2733
2734                                 case EOB_ACT_CONTINUE_SCAN:
2735                                         yy_c_buf_p = yytext_ptr + offset;
2736                                         break;
2737                                 }
2738                         }
2739                 }
2740
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;
2744
2745
2746         return c;
2747         }
2748
2749
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 );
2759
2760         yy_init_buffer( yy_current_buffer, input_file );
2761         yy_load_buffer_state();
2762         }
2763
2764
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;
2774
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                 }
2782
2783         yy_current_buffer = new_buffer;
2784         yy_load_buffer_state();
2785
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         }
2793
2794
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         }
2806
2807
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;
2817
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()" );
2821
2822         b->yy_buf_size = size;
2823
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()" );
2830
2831         b->yy_is_our_buffer = 1;
2832
2833         yy_init_buffer( b, file );
2834
2835         return b;
2836         }
2837
2838
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;
2848
2849         if ( b == yy_current_buffer )
2850                 yy_current_buffer = (YY_BUFFER_STATE) 0;
2851
2852         if ( b->yy_is_our_buffer )
2853                 yy_flex_free( (void *) b->yy_ch_buf );
2854
2855         yy_flex_free( (void *) b );
2856         }
2857
2858
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
2868
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
2876
2877
2878         {
2879         yy_flush_buffer( b );
2880
2881         b->yy_input_file = file;
2882         b->yy_fill_buffer = 1;
2883
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         }
2894
2895
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
2902
2903         {
2904         if ( ! b )
2905                 return;
2906
2907         b->yy_n_chars = 0;
2908
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;
2915
2916         b->yy_buf_pos = &b->yy_ch_buf[0];
2917
2918         b->yy_at_bol = 1;
2919         b->yy_buffer_status = YY_BUFFER_NEW;
2920
2921         if ( b == yy_current_buffer )
2922                 yy_load_buffer_state();
2923         }
2924
2925
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;
2936
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;
2942
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()" );
2946
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;
2956
2957         yy_switch_to_buffer( b );
2958
2959         return b;
2960         }
2961 #endif
2962
2963
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                 ;
2975
2976         return yy_scan_bytes( yy_str, len );
2977         }
2978 #endif
2979
2980
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;
2994
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()" );
3000
3001         for ( i = 0; i < len; ++i )
3002                 buf[i] = bytes[i];
3003
3004         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3005
3006         b = yy_scan_buffer( buf, n );
3007         if ( ! b )
3008                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3009
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;
3014
3015         return b;
3016         }
3017 #endif
3018
3019
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;
3031
3032                 yy_start_stack_depth += YY_START_STACK_INCR;
3033                 new_size = yy_start_stack_depth * sizeof( int );
3034
3035                 if ( ! yy_start_stack )
3036                         yy_start_stack = (int *) yy_flex_alloc( new_size );
3037
3038                 else
3039                         yy_start_stack = (int *) yy_flex_realloc(
3040                                         (void *) yy_start_stack, new_size );
3041
3042                 if ( ! yy_start_stack )
3043                         YY_FATAL_ERROR(
3044                         "out of memory expanding start-condition stack" );
3045                 }
3046
3047         yy_start_stack[yy_start_stack_ptr++] = YY_START;
3048
3049         BEGIN(new_state);
3050         }
3051 #endif
3052
3053
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" );
3059
3060         BEGIN(yy_start_stack[yy_start_stack_ptr]);
3061         }
3062 #endif
3063
3064
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
3071
3072 #ifndef YY_EXIT_FAILURE
3073 #define YY_EXIT_FAILURE 2
3074 #endif
3075
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         }
3086
3087
3088
3089 /* Redefine yyless() so it works in section 3 code. */
3090
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 )
3103
3104
3105 /* Internal utility routines. */
3106
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
3122
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                 ;
3134
3135         return n;
3136         }
3137 #endif
3138
3139
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         }
3149
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         }
3167
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         }
3177
3178 #if YY_MAIN
3179 int main()
3180         {
3181         yylex();
3182         return 0;
3183         }
3184 #endif
3185 #line 238 "zconf.l"
3186
3187 void zconf_starthelp(void)
3188 {
3189         new_string();
3190         last_ts = first_ts = 0;
3191         BEGIN(HELP);
3192 }
3193
3194 static void zconf_endhelp(void)
3195 {
3196         zconflval.string = text;
3197         BEGIN(INITIAL); 
3198 }
3199
3200 void zconf_initscan(const char *name)
3201 {
3202         yyin = fopen(name, "r");
3203         if (!yyin) {
3204                 printf("can't find file %s\n", name);
3205                 exit(1);
3206         }
3207
3208         current_buf = malloc(sizeof(*current_buf));
3209         memset(current_buf, 0, sizeof(*current_buf));
3210
3211         current_file = file_lookup(name);
3212         current_file->lineno = 1;
3213         current_file->flags = FILE_BUSY;
3214 }
3215
3216 void zconf_nextfile(const char *name)
3217 {
3218         struct file *file = file_lookup(name);
3219         struct buffer *buf = malloc(sizeof(*buf));
3220         memset(buf, 0, sizeof(*buf));
3221
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;
3231
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;
3244 }
3245
3246 static struct buffer *zconf_endfile(void)
3247 {
3248         struct buffer *parent;
3249
3250         current_file->flags |= FILE_SCANNED;
3251         current_file->flags &= ~FILE_BUSY;
3252         current_file = current_file->parent;
3253
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;
3262
3263         return parent;
3264 }
3265
3266 int zconf_lineno(void)
3267 {
3268         if (current_buf)
3269                 return current_file->lineno;
3270         else
3271                 return 0;
3272 }
3273
3274 char *zconf_curname(void)
3275 {
3276         if (current_buf)
3277                 return current_file->name;
3278         else
3279                 return "<none>";
3280 }