xref: /netbsd-src/external/bsd/nsd/dist/configlexer.c (revision c38e7cc395b1472a774ff828e46123de44c628e9)
1 #include "configyyrename.h"
2 
3 #line 3 "<stdout>"
4 
5 #define  YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 6
12 #define YY_FLEX_SUBMINOR_VERSION 1
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16 
17 /* First, we deal with  platform-specific or compiler-specific issues. */
18 
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 
25 /* end standard C headers. */
26 
27 /* flex integer type definitions */
28 
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31 
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37  * if you want the limit (max/min) macros for int types.
38  */
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
41 #endif
42 
43 #include <inttypes.h>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 /* TODO: this is always defined, so inline it */
92 #define yyconst const
93 
94 #if defined(__GNUC__) && __GNUC__ >= 3
95 #define yynoreturn __attribute__((__noreturn__))
96 #else
97 #define yynoreturn
98 #endif
99 
100 /* Returned upon end-of-file. */
101 #define YY_NULL 0
102 
103 /* Promotes a possibly negative, possibly signed char to an unsigned
104  * integer for use as an array index.  If the signed char is negative,
105  * we want to instead treat it as an 8-bit unsigned char, hence the
106  * double cast.
107  */
108 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
109 
110 /* Enter a start condition.  This macro really ought to take a parameter,
111  * but we do it the disgusting crufty way forced on us by the ()-less
112  * definition of BEGIN.
113  */
114 #define BEGIN (yy_start) = 1 + 2 *
115 
116 /* Translate the current start state into a value that can be later handed
117  * to BEGIN to return to the state.  The YYSTATE alias is for lex
118  * compatibility.
119  */
120 #define YY_START (((yy_start) - 1) / 2)
121 #define YYSTATE YY_START
122 
123 /* Action number for EOF rule of a given start state. */
124 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
125 
126 /* Special action meaning "start processing a new file". */
127 #define YY_NEW_FILE yyrestart(yyin  )
128 
129 #define YY_END_OF_BUFFER_CHAR 0
130 
131 /* Size of default input buffer. */
132 #ifndef YY_BUF_SIZE
133 #ifdef __ia64__
134 /* On IA-64, the buffer size is 16k, not 8k.
135  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
136  * Ditto for the __ia64__ case accordingly.
137  */
138 #define YY_BUF_SIZE 32768
139 #else
140 #define YY_BUF_SIZE 16384
141 #endif /* __ia64__ */
142 #endif
143 
144 /* The state buf must be large enough to hold one state per character in the main buffer.
145  */
146 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
147 
148 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
149 #define YY_TYPEDEF_YY_BUFFER_STATE
150 typedef struct yy_buffer_state *YY_BUFFER_STATE;
151 #endif
152 
153 #ifndef YY_TYPEDEF_YY_SIZE_T
154 #define YY_TYPEDEF_YY_SIZE_T
155 typedef size_t yy_size_t;
156 #endif
157 
158 extern int yyleng;
159 
160 extern FILE *yyin, *yyout;
161 
162 #define EOB_ACT_CONTINUE_SCAN 0
163 #define EOB_ACT_END_OF_FILE 1
164 #define EOB_ACT_LAST_MATCH 2
165 
166     #define YY_LESS_LINENO(n)
167     #define YY_LINENO_REWIND_TO(ptr)
168 
169 /* Return all but the first "n" matched characters back to the input stream. */
170 #define yyless(n) \
171 	do \
172 		{ \
173 		/* Undo effects of setting up yytext. */ \
174         yy_size_t yyless_macro_arg = (n); \
175         YY_LESS_LINENO(yyless_macro_arg);\
176 		*yy_cp = (yy_hold_char); \
177 		YY_RESTORE_YY_MORE_OFFSET \
178 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
179 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
180 		} \
181 	while ( 0 )
182 
183 #define unput(c) yyunput( c, (yytext_ptr)  )
184 
185 #ifndef YY_STRUCT_YY_BUFFER_STATE
186 #define YY_STRUCT_YY_BUFFER_STATE
187 struct yy_buffer_state
188 	{
189 	FILE *yy_input_file;
190 
191 	char *yy_ch_buf;		/* input buffer */
192 	char *yy_buf_pos;		/* current position in input buffer */
193 
194 	/* Size of input buffer in bytes, not including room for EOB
195 	 * characters.
196 	 */
197 	int yy_buf_size;
198 
199 	/* Number of characters read into yy_ch_buf, not including EOB
200 	 * characters.
201 	 */
202 	int yy_n_chars;
203 
204 	/* Whether we "own" the buffer - i.e., we know we created it,
205 	 * and can realloc() it to grow it, and should free() it to
206 	 * delete it.
207 	 */
208 	int yy_is_our_buffer;
209 
210 	/* Whether this is an "interactive" input source; if so, and
211 	 * if we're using stdio for input, then we want to use getc()
212 	 * instead of fread(), to make sure we stop fetching input after
213 	 * each newline.
214 	 */
215 	int yy_is_interactive;
216 
217 	/* Whether we're considered to be at the beginning of a line.
218 	 * If so, '^' rules will be active on the next match, otherwise
219 	 * not.
220 	 */
221 	int yy_at_bol;
222 
223     int yy_bs_lineno; /**< The line count. */
224     int yy_bs_column; /**< The column count. */
225 
226 	/* Whether to try to fill the input buffer when we reach the
227 	 * end of it.
228 	 */
229 	int yy_fill_buffer;
230 
231 	int yy_buffer_status;
232 
233 #define YY_BUFFER_NEW 0
234 #define YY_BUFFER_NORMAL 1
235 	/* When an EOF's been seen but there's still some text to process
236 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
237 	 * shouldn't try reading from the input source any more.  We might
238 	 * still have a bunch of tokens to match, though, because of
239 	 * possible backing-up.
240 	 *
241 	 * When we actually see the EOF, we change the status to "new"
242 	 * (via yyrestart()), so that the user can continue scanning by
243 	 * just pointing yyin at a new input file.
244 	 */
245 #define YY_BUFFER_EOF_PENDING 2
246 
247 	};
248 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
249 
250 /* Stack of input buffers. */
251 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
252 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
253 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
254 
255 /* We provide macros for accessing buffer states in case in the
256  * future we want to put the buffer states in a more general
257  * "scanner state".
258  *
259  * Returns the top of the stack, or NULL.
260  */
261 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
262                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
263                           : NULL)
264 
265 /* Same as previous macro, but useful when we know that the buffer stack is not
266  * NULL or when we need an lvalue. For internal use only.
267  */
268 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
269 
270 /* yy_hold_char holds the character lost when yytext is formed. */
271 static char yy_hold_char;
272 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
273 int yyleng;
274 
275 /* Points to current character in buffer. */
276 static char *yy_c_buf_p = NULL;
277 static int yy_init = 0;		/* whether we need to initialize */
278 static int yy_start = 0;	/* start state number */
279 
280 /* Flag which is used to allow yywrap()'s to do buffer switches
281  * instead of setting up a fresh yyin.  A bit of a hack ...
282  */
283 static int yy_did_buffer_switch_on_eof;
284 
285 void yyrestart (FILE *input_file  );
286 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
287 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
288 void yy_delete_buffer (YY_BUFFER_STATE b  );
289 void yy_flush_buffer (YY_BUFFER_STATE b  );
290 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
291 void yypop_buffer_state (void );
292 
293 static void yyensure_buffer_stack (void );
294 static void yy_load_buffer_state (void );
295 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
296 
297 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
298 
299 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
300 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
301 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
302 
303 void *yyalloc (yy_size_t  );
304 void *yyrealloc (void *,yy_size_t  );
305 void yyfree (void *  );
306 
307 #define yy_new_buffer yy_create_buffer
308 
309 #define yy_set_interactive(is_interactive) \
310 	{ \
311 	if ( ! YY_CURRENT_BUFFER ){ \
312         yyensure_buffer_stack (); \
313 		YY_CURRENT_BUFFER_LVALUE =    \
314             yy_create_buffer(yyin,YY_BUF_SIZE ); \
315 	} \
316 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
317 	}
318 
319 #define yy_set_bol(at_bol) \
320 	{ \
321 	if ( ! YY_CURRENT_BUFFER ){\
322         yyensure_buffer_stack (); \
323 		YY_CURRENT_BUFFER_LVALUE =    \
324             yy_create_buffer(yyin,YY_BUF_SIZE ); \
325 	} \
326 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
327 	}
328 
329 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
330 
331 /* Begin user sect3 */
332 
333 typedef unsigned char YY_CHAR;
334 
335 FILE *yyin = NULL, *yyout = NULL;
336 
337 typedef int yy_state_type;
338 
339 extern int yylineno;
340 
341 int yylineno = 1;
342 
343 extern char *yytext;
344 #ifdef yytext_ptr
345 #undef yytext_ptr
346 #endif
347 #define yytext_ptr yytext
348 
349 static yy_state_type yy_get_previous_state (void );
350 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
351 static int yy_get_next_buffer (void );
352 static void yynoreturn yy_fatal_error (yyconst char* msg  );
353 
354 /* Done after the current pattern has been matched and before the
355  * corresponding action - sets up yytext.
356  */
357 #define YY_DO_BEFORE_ACTION \
358 	(yytext_ptr) = yy_bp; \
359 	(yytext_ptr) -= (yy_more_len); \
360 	yyleng = (int) (yy_cp - (yytext_ptr)); \
361 	(yy_hold_char) = *yy_cp; \
362 	*yy_cp = '\0'; \
363 	(yy_c_buf_p) = yy_cp;
364 
365 #define YY_NUM_RULES 98
366 #define YY_END_OF_BUFFER 99
367 /* This struct is not used in this scanner,
368    but its presence is necessary. */
369 struct yy_trans_info
370 	{
371 	flex_int32_t yy_verify;
372 	flex_int32_t yy_nxt;
373 	};
374 static yyconst flex_int16_t yy_accept[790] =
375     {   0,
376         1,    1,   86,   86,   90,   90,   94,   94,   99,   97,
377         1,   84,   85,    2,   97,   97,   97,   97,   97,   97,
378        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
379        97,   97,   98,   86,   87,   98,   88,   98,   93,   90,
380        91,   92,   98,   94,   95,   96,   98,   97,    0,    1,
381         2,    2,    2,    2,   97,   97,   97,   97,   97,   97,
382        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
383        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
384        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
385        97,   86,    0,   93,    0,   90,   94,    0,   97,   97,
386 
387        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
388        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
389        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
390        97,   97,   97,   97,   97,   97,   97,   97,   66,   97,
391        97,   97,   97,   97,   97,   65,   97,   97,   97,   97,
392        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
393        97,   97,   97,   52,   97,   97,   97,   97,   97,   97,
394        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
395        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
396        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
397 
398        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
399        97,   97,   97,   97,   97,   97,   97,   97,    4,   97,
400        18,   97,   97,   97,   29,   97,   97,   97,   97,   97,
401        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
402        97,   97,   97,   97,   97,   97,   97,   97,   41,   97,
403        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
404        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
405        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
406        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
407        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
408 
409        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
410        97,   97,   97,   32,   97,   97,   97,   97,   13,   14,
411        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
412        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
413        47,   97,   97,   97,   97,   97,   97,   97,   97,   97,
414        97,   97,   97,   97,   54,   97,    3,   97,   97,   97,
415        97,   97,   97,   97,   97,   97,   97,   97,   38,   97,
416        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
417        97,   97,   97,   89,   97,   97,   97,   97,   97,   97,
418        97,   97,   97,   19,   97,   97,   97,   97,   97,   97,
419 
420        97,   97,   55,   28,   97,   97,   97,   97,   97,   97,
421        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
422        24,   97,   97,   97,   97,   17,   97,   97,   97,   97,
423        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
424        15,   97,   36,   97,   16,   97,   97,   97,   97,   97,
425        11,   12,   97,   97,   97,   97,   97,   97,   97,   97,
426        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
427        97,   67,   69,   97,   97,   97,   97,   97,   97,   97,
428        97,   97,   33,   97,   97,   37,   42,   97,   97,   34,
429        97,   53,   97,   97,   97,   97,   97,   97,   97,   97,
430 
431        97,   97,    6,   97,   97,   97,   97,   97,   97,   97,
432        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
433        97,   30,   97,   97,   97,   97,   97,   97,   97,   97,
434        97,   97,   21,   97,   97,   40,   97,   97,   97,   43,
435        97,   97,   97,   97,   97,   97,   97,    9,   97,   97,
436         5,   97,   97,   97,   97,   97,   97,   97,   97,   97,
437        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
438        97,   97,   97,   97,   97,   97,   97,   31,   97,   97,
439        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
440        97,   97,   97,    8,   97,   97,   97,   97,   97,   97,
441 
442        97,   97,   97,   97,   97,   97,   97,   49,   97,   46,
443        77,   97,   97,   97,   97,   97,   97,   97,   97,   97,
444        23,   97,   97,   97,   97,   97,   44,   97,   97,   97,
445        97,   60,   10,   97,   97,   97,   97,   97,   97,   97,
446        97,   97,   97,   97,   48,   97,   97,   97,   97,   97,
447        97,   97,   97,   20,   97,   97,   97,   97,   97,   97,
448        35,   97,   97,   97,   97,   97,   97,   97,   97,   97,
449        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
450        97,   97,   68,   97,   73,   97,   97,   97,   97,   97,
451        97,   97,   97,   97,   58,   97,   97,   97,    7,   26,
452 
453        27,   76,   97,   81,   97,   82,   97,   97,   97,   97,
454        57,   97,   97,   97,   97,   97,   45,   97,   97,   97,
455        97,   97,   97,   97,   97,   56,   97,   97,   97,   97,
456        97,   97,   97,   97,   97,   97,   61,   22,   97,   74,
457        75,   97,   97,   97,   63,   79,   80,   97,   97,   97,
458        25,   97,   97,   97,   62,   97,   97,   64,   59,   78,
459        97,   97,   97,   97,   97,   97,   97,   83,   50,   97,
460        97,   97,   97,   51,   97,   97,   97,   39,   97,   97,
461        97,   97,   97,   97,   70,   71,   97,   72,    0
462     } ;
463 
464 static yyconst YY_CHAR yy_ec[256] =
465     {   0,
466         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
467         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
469         1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
470         1,    1,    1,    1,    7,    1,    1,    1,    1,    1,
471         1,    8,    1,    9,    1,    1,    1,   10,    1,    1,
472         1,    1,    1,    1,   11,   12,   13,   14,   15,   16,
473        17,   18,   19,    1,   20,   21,   22,   23,   24,   25,
474        26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
475         1,   36,    1,    1,    1,    1,   37,   38,   39,   40,
476 
477        41,   42,   43,   44,   45,    1,   46,   47,   48,   49,
478        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
479        60,   61,    1,    1,    1,    1,    1,    1,    1,    1,
480         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
481         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
482         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
483         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
484         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
487 
488         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
489         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
490         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
491         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
492         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
493         1,    1,    1,    1,    1
494     } ;
495 
496 static yyconst YY_CHAR yy_meta[62] =
497     {   0,
498         1,    2,    3,    4,    4,    1,    1,    1,    1,    1,
499         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
500         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
501         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
502         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
503         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
504         1
505     } ;
506 
507 static yyconst flex_uint16_t yy_base[799] =
508     {   0,
509         0,    0,   59,   62,   66,   70,   73,   76, 2187, 2147,
510        80, 2229, 2229,   83,   63,   79,   89,   71,  110,   96,
511        81,  117,  127,   84,  133,  152,  153,  135,  171,  151,
512        85,  160,   87, 2146, 2229, 2229, 2229,   89, 2145, 2097,
513      2229, 2229,  199, 2012, 2229, 2229,  137, 2011,  210,  143,
514         0,  214,    0,    0,  192,  164,  190,  197,  193,  185,
515       211,  188,  216,  219,  225,  250,  206,  227,  229,  246,
516       247,  249,  238,  253,  248,  263,  264,  260,  255,  280,
517       278,  254,  299,  284,  154,  286,  304,  306,  288,  303,
518       308, 1956,  227, 1923,  344, 1955, 1871,  232,  326,  327,
519 
520       331,  329,  325,  332,  330,  354,  352,  357,  351,  368,
521       358,  390,  371,  374,  394,  323,  375,  376,  401,  380,
522       377,  386,  400,  406,  392,  408,  405,  402,  415,  418,
523       425,  420,  422,  428,  421,  447,  434,  459, 1831,  440,
524       456,  461,  462,  446,  454, 1797,  472,  464,  468,  485,
525       469,  482,  480,  484,  479,  487,  505,  498,  500,  502,
526       506,  522,  524, 1795,  508,  528,  519,  521,  532,  530,
527       514,  543,  533,  541,  546,  548,  552,  559,  547,  556,
528       571,  575,  581,  583,  584,  574,  582,  615,  567,  597,
529       586,  629,  622,  604,  623,  617,  632,  641,  648,  643,
530 
531       672,  630,  654,  661,  667,  671,  674,  680,  669,  670,
532       685,  687,  677,  691,  689,  699,  709,  650, 1786,  695,
533      1753,  705,  706,  711, 1744,  720,  721,  715,  712,  732,
534       728,  738,  746,  734,  725,  745,  750,  748,  749,  759,
535       747,  769,  779,  764,  770,  774,  785,  781, 1704,  788,
536       790,  808,  783,  817,  560,  810,  811,  807,  815,  813,
537       822,  835,  823,  841,  831,  833,  849,  838,  852,  858,
538       856,  861,  859,  857,  873,  875,  882,  878,  903,  883,
539       885,  897,  901,  789,  891,  899,  895,  905,  911,  889,
540       924,  925,  935,  944,  936,  923,  927,  928,  938,  951,
541 
542       953,  948,  954,  950,  964,  958,  971,  960,  976,  986,
543       980,  969,  984, 1697,  997,  991,  989,  994, 1691, 1617,
544       983,  981, 1019, 1018, 1022, 1026, 1012, 1008, 1009, 1023,
545      1024, 1034, 1040, 1025, 1029, 1044, 1047, 1060, 1066, 1052,
546      1616, 1068, 1071, 1074, 1079, 1077, 1082, 1072, 1070, 1083,
547      1086, 1094, 1087, 1085, 1608, 1111, 1495, 1106, 1098, 1103,
548      1119, 1105, 1129, 1130, 1117, 1123, 1115, 1133, 1485, 1141,
549      1131, 1137, 1132, 1127, 1160, 1149, 1192, 1170, 1174, 1173,
550      1161, 1182, 1183, 1472, 1180, 1194, 1184, 1188, 1189, 1190,
551      1199, 1204, 1187, 1440, 1221, 1208, 1230, 1213, 1214, 1218,
552 
553      1240, 1244, 1437, 1359, 1223, 1228, 1227, 1241, 1249, 1258,
554      1262, 1253, 1265, 1269, 1268, 1275, 1276, 1274, 1279, 1259,
555      1350, 1272, 1297, 1287, 1286, 1343, 1300, 1292, 1303, 1313,
556      1316, 1299, 1320, 1307, 1318, 1323, 1322, 1325, 1326, 1341,
557      1306, 1351, 1304, 1349, 1271, 1333, 1362, 1345, 1352, 1367,
558      1267, 1248, 1344, 1369, 1371, 1361, 1376, 1374, 1377, 1375,
559      1364, 1385, 1398, 1390, 1373, 1402, 1410, 1405, 1400, 1406,
560      1411, 1165, 1162, 1412, 1418, 1393, 1401, 1426, 1424, 1429,
561      1451, 1433, 1157, 1454, 1455, 1155, 1148, 1460, 1449, 1145,
562      1462, 1143, 1463, 1459, 1447, 1466, 1450, 1446, 1457, 1478,
563 
564      1473, 1475, 1101, 1497, 1498, 1486, 1488, 1489, 1490, 1501,
565      1491, 1511, 1499, 1504, 1500, 1521, 1526, 1537, 1524, 1523,
566      1529, 1062, 1530, 1534, 1536, 1545, 1549, 1535, 1560, 1562,
567      1577, 1570, 1059, 1575, 1563, 1057, 1572, 1584, 1574, 1051,
568      1586, 1567, 1571, 1579, 1589, 1598, 1595, 1017, 1596, 1600,
569      1015, 1623, 1620, 1618, 1621, 1626, 1631, 1624, 1634, 1628,
570      1643, 1622, 1612, 1642, 1649, 1641, 1653, 1666, 1671, 1667,
571      1668, 1665, 1659, 1679, 1662, 1676, 1657,  940, 1675, 1678,
572      1698, 1701, 1693, 1706, 1712, 1686, 1717, 1705, 1703, 1715,
573      1718, 1722, 1723,  922, 1727, 1700, 1708, 1736, 1731, 1743,
574 
575      1737, 1746, 1738, 1763, 1761, 1760, 1770,  848, 1754,  847,
576       844, 1767, 1769, 1764, 1766, 1771, 1774, 1779, 1792, 1782,
577       809, 1787, 1799, 1801, 1807, 1805,  805, 1809, 1812, 1813,
578      1811,  775,  753, 1823, 1803, 1821, 1829, 1835, 1841, 1846,
579      1845, 1848, 1843, 1855,  730, 1842, 1852, 1862, 1866, 1874,
580      1863, 1865, 1877,  708, 1876, 1878, 1880, 1885, 1902, 1888,
581       662, 1897, 1889, 1896, 1909, 1906, 1903, 1918, 1925, 1926,
582      1927, 1928, 1930, 1929, 1937, 1920, 1931, 1942, 1932, 1945,
583      1936, 1946,  659, 1944,  658, 1949, 1968, 1977, 1962, 1966,
584      1970, 1974, 1982, 1972,  624, 1986, 1985, 1991,  606,  593,
585 
586       578,  570, 1988,  558, 1992,  496, 1996, 2008, 2019, 2003,
587       436, 2005, 2027, 2024, 2023, 2026,  435, 2030, 2031, 2032,
588      2033, 2034, 2037, 2038, 2040,  389, 2041, 2044, 2047, 2045,
589      2052, 2072, 2064, 2066, 2057, 2079,  359,  349, 2068,  339,
590       328, 2081, 2080, 2085,  291,  289,  287, 2086, 2078, 2090,
591       281, 2091, 2092, 2094,  273, 2067, 2105,  240,  237,  215,
592      2100, 2109, 2106, 2111, 2116, 2110, 2128,  213,  209, 2123,
593      2126, 2125, 2138,  205, 2120, 2121, 2131,  139, 2136, 2150,
594      2152, 2148, 2163, 2149,  122,  120, 2167,  107, 2229, 2204,
595      2208, 2212,  117, 2216, 2220,   82, 2222, 2224
596 
597     } ;
598 
599 static yyconst flex_int16_t yy_def[799] =
600     {   0,
601       789,    1,  790,  790,  791,  791,  792,  792,  789,  793,
602       789,  789,  789,  794,  793,  793,  793,  793,  793,  793,
603       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
604       793,  793,  793,  795,  789,  789,  789,  795,  796,  789,
605       789,  789,  796,  797,  789,  789,  797,  793,  793,  789,
606       798,  794,  798,  794,  793,  793,  793,  793,  793,  793,
607       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
608       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
609       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
610       793,  795,  795,  796,  796,  789,  797,  797,  793,  793,
611 
612       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
613       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
614       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
615       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
616       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
617       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
618       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
619       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
620       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
621       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
622 
623       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
624       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
625       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
626       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
627       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
628       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
629       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
630       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
631       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
632       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
633 
634       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
635       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
636       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
637       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
638       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
639       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
640       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
641       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
642       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
643       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
644 
645       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
646       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
647       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
648       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
649       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
650       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
651       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
652       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
653       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
654       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
655 
656       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
657       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
658       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
659       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
660       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
661       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
662       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
663       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
664       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
665       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
666 
667       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
668       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
669       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
670       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
671       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
672       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
673       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
674       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
675       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
676       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
677 
678       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
679       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
680       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
681       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
682       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
683       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
684       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
685       793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
686       793,  793,  793,  793,  793,  793,  793,  793,    0,  789,
687       789,  789,  789,  789,  789,  789,  789,  789
688 
689     } ;
690 
691 static yyconst flex_uint16_t yy_nxt[2291] =
692     {   0,
693        10,   11,   12,   12,   13,   14,   10,   10,   10,   10,
694        15,   10,   16,   17,   10,   10,   10,   18,   19,   20,
695        21,   22,   23,   24,   25,   10,   26,   27,   28,   29,
696        30,   10,   31,   10,   32,   33,   15,   10,   16,   17,
697        10,   10,   10,   18,   19,   20,   21,   22,   23,   24,
698        25,   10,   26,   27,   28,   29,   30,   10,   31,   10,
699        32,   35,   36,   37,   35,   36,   37,   40,   41,   41,
700        42,   40,   41,   41,   42,   45,   45,   46,   45,   45,
701        46,   50,   94,   55,   53,   51,   53,   53,   48,   63,
702        48,   48,   92,   92,   38,   56,   57,   38,   49,   59,
703 
704        90,   43,   58,   60,   68,   43,   49,   61,   47,   55,
705        67,   47,   62,   75,   49,   63,   49,   48,   54,   49,
706        49,   56,   57,   64,   49,   59,   90,   69,   58,   60,
707        68,   49,   65,   61,   66,   70,   67,   72,   62,   75,
708        97,   97,   49,   76,   50,   49,   71,   86,   51,   64,
709        73,   77,   49,   69,   74,   49,   78,   49,   65,   79,
710        66,   70,   49,   72,  137,   89,   80,   83,   49,   76,
711        49,   84,   71,   86,   49,   81,   73,   77,   82,  101,
712        74,   85,   78,   91,   87,   79,   49,   49,   49,   49,
713       137,   89,   80,   83,  107,   49,  105,   84,   88,   49,
714 
715        94,   81,   94,   94,   82,  101,   49,   85,   99,   91,
716        87,   48,  100,   48,   48,   53,  102,   53,   53,  103,
717        49,  104,  105,   49,   88,   49,  106,   49,   49,  108,
718        92,   92,   49,  109,   99,   97,   97,  110,  100,  116,
719        49,   49,  102,  117,   49,  103,   49,  104,   49,   54,
720        49,   49,  106,  111,   49,  108,  112,  113,  114,  109,
721        49,  118,   49,  110,   49,  116,  122,  120,  119,  117,
722       121,  123,   49,   49,  133,   49,  124,  126,  128,  111,
723       115,   49,   49,   49,   49,   49,  127,  118,   49,   49,
724        49,  125,  122,  120,  119,   49,  121,  123,   49,   49,
725 
726       133,  129,  124,  126,  128,  130,  115,  132,   49,  131,
727       138,  134,  127,   49,  141,   49,   49,  125,  136,   49,
728       140,   49,   49,   49,   49,  135,   49,  129,  139,  142,
729       143,  130,  164,  132,   49,  131,  138,  134,   49,   49,
730       141,   49,  149,   49,  136,   94,  140,   94,   94,  144,
731       145,  135,  147,  148,  139,  142,  143,  146,   49,  150,
732        49,   49,   49,   49,   49,   49,   49,   49,  149,  151,
733       152,  153,  156,  154,   49,  144,  145,  160,  147,  148,
734       161,  165,  167,  146,   49,  150,   49,   49,  155,   49,
735       166,  171,   49,   49,   49,  151,  152,  153,  156,  154,
736 
737       157,  162,  163,   49,  172,  158,   49,  168,  170,   49,
738        49,   49,   49,  173,  155,   49,  166,  171,  159,  169,
739       175,   49,  174,  176,   49,   49,  157,   49,  183,   49,
740       172,  158,  178,  177,  170,   49,   49,   49,  179,  173,
741        49,   49,  182,   49,  159,  169,  175,  180,  174,  176,
742        49,  185,  181,   49,  184,   49,   49,   49,  178,  177,
743        49,  186,  187,   49,  179,  188,  189,  190,  182,   49,
744        49,   49,  194,  180,  192,   49,  193,  185,  181,  198,
745       184,   49,   49,  191,  200,  195,  202,  186,  187,   49,
746       197,   49,  189,  190,   49,  196,   49,   49,  194,   49,
747 
748       192,  199,  193,   49,   49,  198,  201,   49,  204,  191,
749       200,  195,  203,  205,   49,   49,  197,   49,  206,   49,
750        49,  196,   49,  219,  207,  209,  208,  199,  211,  210,
751       212,   49,  201,   49,  204,   49,  213,   49,  203,  205,
752        49,   49,  221,   49,  206,  215,  214,  216,  218,   49,
753       207,  209,  208,  217,   49,  210,   49,   49,  220,   49,
754       223,  225,  213,   49,  222,   49,  224,   49,   49,  314,
755       228,  215,  214,  216,  218,  227,   49,  226,   49,  217,
756       237,   49,   49,   49,  220,  229,  223,   49,  230,  243,
757       222,   49,  224,   49,   49,   49,  228,  235,  236,  231,
758 
759       238,  227,   49,  226,  245,   49,   49,  232,  233,   49,
760        49,  229,  234,   49,  230,  243,   49,   49,   49,   49,
761       244,   49,  253,  235,  236,  231,  238,  239,   49,  254,
762       245,  249,   49,  232,  233,  246,  240,  250,  234,   49,
763       241,   49,  251,  242,  247,  255,  244,  248,  253,  252,
764        49,  257,   49,  239,  258,  256,  278,   49,   49,   49,
765       262,  259,  240,  250,   49,   49,  241,   49,  251,  242,
766       247,  255,  263,  248,  264,  252,   49,  257,   49,  260,
767       261,  256,  265,   49,  266,   49,  262,  259,  267,   49,
768       268,  269,  270,   49,   49,  273,   49,   49,  263,  271,
769 
770       264,  272,   49,  275,   49,   49,   49,   49,  265,   49,
771       266,  274,   49,  276,  267,   49,  268,  269,  270,  277,
772        49,  273,   49,  280,   49,  271,   49,  272,  279,  275,
773        49,  282,  281,  283,   49,  284,  286,  274,  287,  276,
774        49,   49,  285,   49,   49,  277,   49,   49,  289,  280,
775        49,  292,  288,  293,  279,   49,   49,  282,  281,  283,
776        49,  284,  286,   49,  290,   49,  291,   49,  285,   49,
777       295,  294,  297,   49,  289,  296,  299,  292,  288,  293,
778        49,   49,   49,   49,   49,   49,  298,  300,   49,  301,
779       290,  302,  291,  303,   49,  346,  295,  294,  297,   49,
780 
781       304,  296,  299,  305,   49,   49,  307,  306,  308,   49,
782        49,  311,  298,  300,   49,  301,   49,  302,   49,  303,
783        49,  309,  319,   49,   49,   49,  304,  312,  317,  305,
784       315,  320,  307,  306,  308,  318,  310,  311,  316,  313,
785        49,  324,   49,   49,   49,   49,   49,  309,   49,  321,
786        49,  322,   49,  312,  317,  323,  315,   49,   49,  325,
787       327,  318,  310,  326,  316,  313,   49,  324,   49,  330,
788        49,  333,  328,   49,  331,  321,   49,  322,  329,   49,
789       332,  323,   49,   49,   49,  325,  327,   49,  334,  326,
790       336,   49,   49,   49,   49,  330,   49,  333,  328,  339,
791 
792       331,  335,  338,  337,  329,  342,  332,  343,   49,  340,
793        49,  344,  341,   49,  334,  345,  336,   49,   49,  347,
794        49,  349,  348,  352,   49,  339,   49,  335,  338,  337,
795        49,  342,   49,  343,   49,  350,   49,  344,   49,  351,
796        49,  345,  353,  354,  355,  347,   49,  349,  348,  352,
797       356,  359,  362,  357,  358,  361,  360,   49,   49,   49,
798        49,  350,   49,   49,  367,  351,  365,  369,  353,  354,
799        49,   49,  363,   49,  364,   49,  366,  359,  362,   49,
800       358,  361,  360,   49,  368,   49,   49,  371,   49,   49,
801       367,  370,  365,   49,  372,   49,  373,  374,  363,   49,
802 
803       364,  375,  366,  377,   49,  378,   49,  376,  380,  381,
804       368,   49,  379,  371,  382,   49,   49,  370,   49,   49,
805       372,   49,  373,  374,   49,  383,   49,  375,  384,   49,
806       385,  378,   49,  376,  380,  381,  386,  387,  379,  388,
807       382,  389,  390,   49,   49,  391,  392,   49,  393,  394,
808        49,  395,   49,   49,   49,  396,  385,   49,   49,   49,
809        49,   49,  386,  387,   49,  388,  399,  389,  390,   49,
810       397,  391,  392,  398,  393,   49,  400,  395,  401,   49,
811       403,  396,   49,  404,  402,  405,   49,   49,  407,  406,
812       410,  411,   49,  409,   49,   49,  397,   49,  408,  398,
813 
814       412,   49,  400,   49,  401,   49,   49,   49,  413,   49,
815       402,  414,   49,  415,   49,  406,  419,   49,   49,  409,
816        49,   49,   49,  416,  408,  420,  412,  418,  421,   49,
817       417,  422,  426,   49,  413,  427,   49,  414,   49,  415,
818        49,   49,  419,  423,  424,  425,   49,  428,  433,  416,
819        49,  420,   49,  418,   49,  429,  417,  422,   49,  430,
820       432,  427,   49,  431,   49,   49,   49,   49,   49,  423,
821       424,  425,   49,  428,  433,  434,   49,  435,   49,  441,
822        49,  429,  443,   49,   49,  430,  432,  442,  444,  431,
823        49,  445,   49,  455,  447,   49,   49,   49,  451,  452,
824 
825        49,  434,  449,  435,  436,   49,  437,  446,   49,   49,
826       438,  439,  450,  442,  444,   49,  440,   49,   49,   49,
827       447,  448,   49,   49,   49,   49,  453,   49,  449,   49,
828       436,  454,  437,  446,   49,  456,  438,  439,  450,   49,
829       460,  457,  440,   49,  458,  461,  459,  448,   49,   49,
830       463,  465,  453,   49,  462,  464,   49,  454,   49,  466,
831       468,  456,   49,   49,  469,   49,  460,  457,  470,  467,
832       458,  461,  459,  471,  472,   49,   49,  465,  473,   49,
833       462,  464,  474,   49,   49,  466,  468,  480,   49,  475,
834       477,  479,  478,   49,   49,  467,  483,   49,  476,  471,
835 
836        49,  486,   49,   49,   49,  481,   49,   49,  474,   49,
837        49,   49,  487,  480,   49,  475,  477,  479,  478,  484,
838       482,   49,   49,  485,  476,  490,  491,   49,  489,  492,
839       488,  481,   49,  493,   49,   49,  494,  495,   49,   49,
840       498,   49,   49,  502,  496,  484,  482,  497,   49,  485,
841       507,   49,  491,   49,  489,   49,  488,   49,   49,  493,
842        49,   49,  494,  495,  499,  500,  498,  501,   49,  502,
843       496,  503,  504,  497,  505,  508,   49,  506,   49,   49,
844        49,  509,  511,  513,   49,   49,   49,   49,  510,  514,
845       499,  500,  515,  501,   49,  520,   49,   49,  504,   49,
846 
847       505,  512,   49,  506,   49,  519,   49,  509,   49,   49,
848        49,   49,   49,  516,  510,  514,  517,  521,  515,  522,
849        49,  520,  529,  523,  524,   49,  518,  512,   49,  526,
850       525,  519,  527,   49,  530,   49,   49,   49,  533,  516,
851        49,   49,  517,  521,  528,   49,   49,   49,  529,  523,
852       524,  532,  518,   49,  531,  526,  525,  534,  527,   49,
853       530,   49,  535,  536,   49,  537,  538,  539,   49,  541,
854       528,  540,   49,  543,  542,   49,  544,  532,  545,  546,
855       531,   49,   49,  547,   49,   49,   49,  548,  535,   49,
856        49,  537,   49,  539,   49,   49,  549,   49,   49,  543,
857 
858       542,   49,  544,  550,  545,  546,  551,   49,   49,  547,
859        49,  552,  553,   49,  562,  554,  555,  556,  557,  558,
860        49,   49,  549,   49,   49,   49,   49,  560,  559,  550,
861        49,  561,   49,   49,   49,   49,   49,  552,  553,   49,
862       562,  554,  555,  556,  557,  558,   49,  563,  564,  565,
863       566,  567,  569,  560,  559,  568,   49,  561,   49,   49,
864       570,   49,  571,  574,   49,   49,  572,  573,  576,   49,
865        49,   49,   49,  563,  564,  565,  566,  567,  569,  578,
866        49,  568,  575,  577,   49,  581,  570,  579,  571,  574,
867       588,  580,  572,  573,  584,   49,  582,   49,   49,  587,
868 
869       586,  585,   49,  589,  590,   49,   49,   49,  575,   49,
870        49,  581,   49,  579,   49,  583,  588,  580,  592,   49,
871       584,   49,  582,  591,   49,  587,  586,  585,  593,  589,
872        49,   49,  594,   49,  595,   49,  596,  599,  598,  597,
873       601,  583,  600,   49,  592,  605,  602,   49,  604,  591,
874       608,   49,   49,   49,  593,   49,   49,   49,   49,   49,
875       595,   49,  596,   49,  598,  597,   49,  603,  600,   49,
876       606,  605,  602,  607,  604,  610,   49,   49,   49,  609,
877       611,  612,  613,  614,   49,  616,  615,  621,   49,  619,
878       617,  618,   49,  603,   49,  627,  606,   49,  620,  607,
879 
880        49,   49,   49,   49,  622,  609,   49,  612,  613,  614,
881        49,   49,  615,   49,   49,  619,  617,  618,  623,  624,
882       625,   49,  626,  628,  620,  629,   49,  632,   49,  630,
883       631,  633,   49,   49,  636,   49,   49,  634,   49,   49,
884        49,   49,  637,   49,  623,  624,  625,   49,  626,  635,
885        49,  629,   49,   49,  638,  630,  631,   49,   49,  639,
886       636,  643,   49,  634,  640,  641,   49,  642,  637,  644,
887       645,   49,   49,   49,  646,  635,  647,  648,   49,   49,
888       638,   49,  649,  654,  650,  639,  653,  643,   49,   49,
889       640,  641,  651,  642,  652,   49,   49,  655,   49,   49,
890 
891       646,   49,   49,  648,   49,   49,   49,  656,  649,   49,
892       650,  657,  653,  659,   49,  658,  661,   49,  651,  660,
893       652,   49,   49,  655,  663,  662,  664,   49,  665,  666,
894        49,  668,   49,  656,   49,  669,   49,  657,   49,  659,
895        49,  658,   49,  670,   49,  660,   49,   49,   49,  667,
896       663,  662,  664,  671,  665,  666,   49,  668,   49,  672,
897       673,  669,  675,  674,   49,  676,   49,  677,  678,  670,
898        49,  684,  683,  679,  685,  667,   49,   49,   49,  671,
899        49,   49,  680,   49,  681,  672,  673,   49,  675,  674,
900        49,  676,  682,  677,  678,  686,  687,   49,   49,  679,
901 
902        49,   49,  689,  690,  688,  695,   98,  694,  680,   49,
903       681,   49,   49,   49,  691,   49,  692,  693,  682,  696,
904        49,  686,  687,   49,   49,  698,  697,  699,  689,  690,
905       688,   49,   49,  694,  700,  701,  702,   49,   49,  704,
906       691,   49,  692,  693,   49,  696,  706,  707,  708,  703,
907       705,  698,  697,   49,  711,   49,   96,  709,   95,  710,
908        49,   49,   49,   49,   49,   49,   49,   49,  712,  715,
909       714,   49,   49,  707,  708,  703,  705,   49,  713,   49,
910        49,   49,  716,  709,   49,  710,  717,  719,  721,  720,
911       718,   93,  723,  722,  712,  715,  714,   49,  724,  725,
912 
913       726,   49,  727,   49,  713,   49,  728,   49,  716,   49,
914       729,  733,   49,  719,  721,  720,  718,   49,  723,  722,
915        49,   49,  730,   49,  724,  725,   49,   49,  727,  731,
916       732,   49,  728,  734,  735,  737,  729,  736,   49,  738,
917        49,  740,  741,   49,  742,  739,   49,   98,  730,  745,
918       746,  743,  744,  747,   49,  731,  732,  749,   49,   49,
919       735,   49,   49,  736,  750,   49,   49,   49,   49,   49,
920       742,  739,   49,   49,  748,   49,   49,  743,  744,   49,
921        49,  751,   49,  749,  752,  754,  753,   49,  755,  758,
922       750,  756,   49,  757,  759,  760,  766,  761,   96,   49,
923 
924       748,   49,   49,   49,  762,  763,  764,   49,  765,  768,
925       752,  754,  753,   49,   49,   49,   49,  756,  769,  757,
926        49,   49,  766,  761,  767,   49,   49,   49,  770,   49,
927       762,  763,  764,  771,  765,   49,  772,  774,  773,  775,
928        49,   49,  776,  777,   49,   49,   49,  778,  779,  780,
929       767,   49,  781,  782,  770,   49,   49,  785,   49,  771,
930        49,   49,  772,   49,  773,  775,   49,  783,  776,  777,
931       784,   49,  786,   49,  779,  780,  788,  787,  781,  782,
932        95,   93,   49,   49,   49,   49,  789,   49,  789,  789,
933       789,  789,  789,  783,  789,  789,  784,  789,   49,  789,
934 
935       789,  789,   49,  787,   34,   34,   34,   34,   39,   39,
936        39,   39,   44,   44,   44,   44,   52,   52,  789,   52,
937        92,   92,   97,   97,   53,   53,  789,   53,    9,  789,
938       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
939       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
940       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
941       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
942       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
943       789,  789,  789,  789,  789,  789,  789,  789,  789,  789
944     } ;
945 
946 static yyconst flex_int16_t yy_chk[2291] =
947     {   0,
948         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
949         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
950         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
951         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
952         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
953         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
954         1,    3,    3,    3,    4,    4,    4,    5,    5,    5,
955         5,    6,    6,    6,    6,    7,    7,    7,    8,    8,
956         8,   11,  796,   15,   14,   11,   14,   14,   33,   18,
957        33,   33,   38,   38,    3,   15,   16,    4,   15,   17,
958 
959        31,    5,   16,   17,   21,    6,   18,   17,    7,   15,
960        20,    8,   17,   24,   16,   18,   21,  793,   14,   24,
961        31,   15,   16,   19,   17,   17,   31,   22,   16,   17,
962        21,   20,   19,   17,   19,   22,   20,   23,   17,   24,
963        47,   47,  788,   25,   50,   19,   22,   28,   50,   19,
964        23,   25,   22,   22,   23,  786,   25,  785,   19,   25,
965        19,   22,   23,   23,   85,   30,   26,   27,   25,   25,
966        28,   27,   22,   28,  778,   26,   23,   25,   26,   56,
967        23,   27,   25,   32,   29,   25,   30,   26,   27,   85,
968        85,   30,   26,   27,   62,   32,   60,   27,   29,   56,
969 
970        43,   26,   43,   43,   26,   56,   29,   27,   55,   32,
971        29,   49,   55,   49,   49,   52,   57,   52,   52,   58,
972        60,   59,   60,   62,   29,   57,   61,   55,   59,   63,
973        93,   93,   58,   64,   55,   98,   98,   65,   55,   67,
974       774,   67,   57,   68,  769,   58,   61,   59,  768,   52,
975       760,   63,   61,   65,   64,   63,   66,   66,   66,   64,
976        65,   69,   68,   65,   69,   67,   73,   71,   70,   68,
977        72,   74,  759,   73,   82,  758,   75,   77,   79,   65,
978        66,   70,   71,   75,   72,   66,   78,   69,   74,   82,
979        79,   76,   73,   71,   70,   78,   72,   74,   76,   77,
980 
981        82,   80,   75,   77,   79,   80,   66,   81,  755,   80,
982        86,   83,   78,   81,   89,   80,  751,   76,   84,   84,
983        88,   86,  747,   89,  746,   83,  745,   80,   87,   90,
984        91,   80,  116,   81,   83,   80,   86,   83,   90,   87,
985        89,   88,  104,   91,   84,   95,   88,   95,   95,   99,
986       100,   83,  102,  103,   87,   90,   91,  101,  116,  105,
987       103,   99,  100,  741,  102,  105,  101,  104,  104,  106,
988       107,  108,  111,  109,  740,   99,  100,  113,  102,  103,
989       114,  117,  118,  101,  738,  105,  109,  107,  110,  106,
990       117,  121,  108,  111,  737,  106,  107,  108,  111,  109,
991 
992       112,  115,  115,  110,  122,  112,  113,  119,  120,  114,
993       117,  118,  121,  123,  110,  120,  117,  121,  112,  119,
994       125,  122,  124,  126,  726,  112,  112,  125,  133,  115,
995       122,  112,  128,  127,  120,  123,  119,  128,  129,  123,
996       127,  124,  132,  126,  112,  119,  125,  130,  124,  126,
997       129,  135,  131,  130,  134,  132,  135,  133,  128,  127,
998       131,  136,  137,  134,  129,  138,  140,  141,  132,  137,
999       717,  711,  144,  130,  142,  140,  143,  135,  131,  149,
1000       134,  144,  136,  141,  151,  145,  153,  136,  137,  145,
1001       148,  141,  140,  141,  138,  147,  142,  143,  144,  148,
1002 
1003       142,  150,  143,  149,  151,  149,  152,  147,  155,  141,
1004       151,  145,  154,  156,  155,  153,  148,  152,  157,  154,
1005       150,  147,  156,  171,  158,  160,  159,  150,  162,  161,
1006       163,  706,  152,  158,  155,  159,  165,  160,  154,  156,
1007       157,  161,  173,  165,  157,  167,  166,  168,  170,  171,
1008       158,  160,  159,  169,  167,  161,  168,  162,  172,  163,
1009       175,  177,  165,  166,  174,  170,  176,  169,  173,  255,
1010       180,  167,  166,  168,  170,  179,  174,  178,  172,  169,
1011       186,  175,  179,  176,  172,  181,  175,  177,  182,  189,
1012       174,  180,  176,  704,  178,  255,  180,  184,  185,  183,
1013 
1014       187,  179,  189,  178,  191,  702,  181,  183,  183,  186,
1015       182,  181,  183,  701,  182,  189,  183,  187,  184,  185,
1016       190,  191,  194,  184,  185,  183,  187,  188,  700,  195,
1017       191,  193,  190,  183,  183,  192,  188,  193,  183,  194,
1018       188,  699,  193,  188,  192,  196,  190,  192,  194,  193,
1019       188,  198,  196,  188,  199,  197,  218,  193,  195,  695,
1020       202,  200,  188,  193,  192,  202,  188,  197,  193,  188,
1021       192,  196,  203,  192,  204,  193,  198,  198,  200,  201,
1022       201,  197,  205,  199,  206,  218,  202,  200,  207,  203,
1023       208,  209,  210,  685,  683,  213,  204,  661,  203,  211,
1024 
1025       204,  212,  205,  215,  209,  210,  206,  201,  205,  207,
1026       206,  214,  213,  216,  207,  208,  208,  209,  210,  217,
1027       211,  213,  212,  222,  215,  211,  214,  212,  220,  215,
1028       220,  224,  223,  226,  216,  227,  229,  214,  230,  216,
1029       222,  223,  228,  654,  217,  217,  224,  229,  232,  222,
1030       228,  234,  231,  235,  220,  226,  227,  224,  223,  226,
1031       235,  227,  229,  231,  233,  645,  233,  230,  228,  234,
1032       237,  236,  239,  232,  232,  238,  241,  234,  231,  235,
1033       236,  233,  241,  238,  239,  237,  240,  242,  633,  243,
1034       233,  244,  233,  245,  240,  284,  237,  236,  239,  244,
1035 
1036       246,  238,  241,  247,  242,  245,  250,  248,  251,  246,
1037       632,  253,  240,  242,  243,  243,  248,  244,  253,  245,
1038       247,  252,  260,  250,  284,  251,  246,  254,  258,  247,
1039       256,  261,  250,  248,  251,  259,  252,  253,  257,  254,
1040       627,  265,  258,  252,  621,  256,  257,  252,  260,  262,
1041       259,  263,  254,  254,  258,  264,  256,  261,  263,  266,
1042       268,  259,  252,  267,  257,  254,  265,  265,  266,  271,
1043       262,  274,  269,  268,  272,  262,  264,  263,  270,  611,
1044       273,  264,  610,  608,  267,  266,  268,  269,  275,  267,
1045       276,  271,  274,  270,  273,  271,  272,  274,  269,  278,
1046 
1047       272,  275,  277,  276,  270,  280,  273,  281,  275,  279,
1048       276,  282,  279,  278,  275,  283,  276,  277,  280,  285,
1049       281,  287,  286,  290,  290,  278,  285,  275,  277,  276,
1050       287,  280,  282,  281,  286,  288,  283,  282,  279,  289,
1051       288,  283,  291,  292,  293,  285,  289,  287,  286,  290,
1052       294,  296,  299,  294,  295,  298,  297,  594,  296,  291,
1053       292,  288,  297,  298,  304,  289,  302,  306,  291,  292,
1054       293,  295,  300,  299,  301,  578,  303,  296,  299,  294,
1055       295,  298,  297,  302,  305,  304,  300,  308,  301,  303,
1056       304,  307,  302,  306,  309,  308,  310,  311,  300,  305,
1057 
1058       301,  312,  303,  315,  312,  316,  307,  313,  318,  321,
1059       305,  309,  317,  308,  322,  311,  322,  307,  321,  313,
1060       309,  310,  310,  311,  317,  323,  316,  312,  323,  318,
1061       324,  316,  315,  313,  318,  321,  325,  326,  317,  327,
1062       322,  328,  329,  328,  329,  330,  331,  327,  332,  333,
1063       551,  334,  548,  324,  323,  335,  324,  325,  330,  331,
1064       334,  326,  325,  326,  335,  327,  338,  328,  329,  332,
1065       336,  330,  331,  337,  332,  333,  339,  334,  340,  336,
1066       343,  335,  337,  344,  342,  345,  540,  340,  347,  346,
1067       350,  350,  536,  349,  533,  338,  336,  522,  348,  337,
1068 
1069       351,  339,  339,  342,  340,  349,  343,  348,  352,  344,
1070       342,  353,  346,  354,  345,  346,  359,  347,  350,  349,
1071       354,  351,  353,  356,  348,  360,  351,  358,  361,  352,
1072       356,  362,  366,  359,  352,  367,  503,  353,  360,  354,
1073       362,  358,  359,  363,  364,  365,  356,  368,  374,  356,
1074       367,  360,  365,  358,  361,  370,  356,  362,  366,  371,
1075       373,  367,  374,  372,  363,  364,  371,  373,  368,  363,
1076       364,  365,  372,  368,  374,  375,  370,  376,  492,  378,
1077       490,  370,  380,  487,  376,  371,  373,  379,  381,  372,
1078       486,  382,  483,  393,  385,  375,  381,  473,  389,  390,
1079 
1080       472,  375,  387,  376,  377,  378,  377,  383,  380,  379,
1081       377,  377,  388,  379,  381,  385,  377,  382,  383,  387,
1082       385,  386,  393,  388,  389,  390,  391,  377,  387,  386,
1083       377,  392,  377,  383,  391,  395,  377,  377,  388,  392,
1084       399,  396,  377,  396,  397,  400,  398,  386,  398,  399,
1085       402,  406,  391,  400,  401,  405,  395,  392,  405,  407,
1086       409,  395,  407,  406,  410,  397,  399,  396,  411,  408,
1087       397,  400,  398,  412,  413,  401,  408,  406,  414,  402,
1088       401,  405,  415,  452,  409,  407,  409,  420,  412,  416,
1089       417,  419,  418,  410,  420,  408,  424,  411,  416,  412,
1090 
1091       413,  428,  451,  415,  414,  422,  445,  422,  415,  418,
1092       416,  417,  429,  420,  419,  416,  417,  419,  418,  425,
1093       423,  425,  424,  427,  416,  431,  432,  428,  430,  433,
1094       429,  422,  423,  434,  432,  427,  435,  436,  429,  443,
1095       439,  441,  434,  446,  437,  425,  423,  438,  430,  427,
1096       453,  431,  432,  435,  430,  433,  429,  437,  436,  434,
1097       438,  439,  435,  436,  440,  442,  439,  444,  446,  446,
1098       437,  447,  448,  438,  449,  454,  440,  450,  426,  453,
1099       448,  455,  457,  459,  444,  421,  442,  449,  456,  460,
1100       440,  442,  461,  444,  404,  465,  456,  447,  448,  461,
1101 
1102       449,  458,  450,  450,  454,  464,  455,  455,  465,  458,
1103       460,  457,  459,  462,  456,  460,  463,  466,  461,  467,
1104       462,  465,  476,  468,  469,  464,  463,  458,  476,  471,
1105       470,  464,  474,  463,  477,  469,  477,  466,  480,  462,
1106       468,  470,  463,  466,  475,  467,  471,  474,  476,  468,
1107       469,  479,  463,  475,  478,  471,  470,  481,  474,  479,
1108       477,  478,  482,  484,  480,  485,  488,  489,  482,  493,
1109       475,  491,  403,  495,  494,  394,  496,  479,  497,  498,
1110       478,  498,  495,  499,  489,  497,  481,  500,  482,  484,
1111       485,  485,  499,  489,  494,  488,  501,  491,  493,  495,
1112 
1113       494,  496,  496,  502,  497,  498,  504,  384,  501,  499,
1114       502,  505,  506,  500,  515,  507,  508,  509,  510,  511,
1115       369,  506,  501,  507,  508,  509,  511,  513,  512,  502,
1116       357,  514,  504,  505,  513,  515,  510,  505,  506,  514,
1117       515,  507,  508,  509,  510,  511,  512,  516,  517,  518,
1118       519,  520,  523,  513,  512,  521,  516,  514,  520,  519,
1119       524,  517,  525,  528,  521,  523,  526,  527,  530,  524,
1120       528,  525,  518,  516,  517,  518,  519,  520,  523,  532,
1121       526,  521,  529,  531,  527,  537,  524,  534,  525,  528,
1122       544,  535,  526,  527,  539,  529,  538,  530,  535,  543,
1123 
1124       542,  541,  542,  545,  546,  532,  543,  537,  529,  539,
1125       534,  537,  531,  534,  544,  538,  544,  535,  549,  538,
1126       539,  541,  538,  547,  545,  543,  542,  541,  550,  545,
1127       547,  549,  552,  546,  553,  550,  554,  557,  556,  555,
1128       559,  538,  558,  355,  549,  563,  560,  563,  562,  547,
1129       566,  341,  320,  554,  550,  553,  555,  562,  552,  558,
1130       553,  556,  554,  560,  556,  555,  557,  561,  558,  559,
1131       564,  563,  560,  565,  562,  568,  566,  564,  561,  567,
1132       569,  570,  571,  572,  565,  574,  573,  580,  567,  577,
1133       575,  576,  577,  561,  573,  586,  564,  575,  579,  565,
1134 
1135       572,  568,  570,  571,  581,  567,  569,  570,  571,  572,
1136       579,  576,  573,  580,  574,  577,  575,  576,  582,  583,
1137       584,  586,  585,  587,  579,  588,  319,  591,  583,  589,
1138       590,  592,  314,  581,  596,  596,  582,  593,  589,  249,
1139       588,  584,  597,  597,  582,  583,  584,  585,  585,  595,
1140       590,  588,  587,  591,  598,  589,  590,  592,  593,  599,
1141       596,  603,  595,  593,  600,  601,  599,  602,  597,  604,
1142       605,  598,  601,  603,  606,  595,  607,  609,  600,  225,
1143       598,  602,  612,  617,  613,  599,  616,  603,  221,  609,
1144       600,  601,  614,  602,  615,  606,  605,  618,  604,  614,
1145 
1146       606,  615,  612,  609,  613,  607,  616,  619,  612,  617,
1147       613,  620,  616,  623,  618,  622,  625,  620,  614,  624,
1148       615,  219,  622,  618,  628,  626,  629,  619,  630,  631,
1149       164,  635,  146,  619,  623,  636,  624,  620,  635,  623,
1150       626,  622,  625,  637,  628,  624,  631,  629,  630,  634,
1151       628,  626,  629,  638,  630,  631,  636,  635,  634,  639,
1152       640,  636,  642,  641,  637,  643,  139,  644,  646,  637,
1153       638,  652,  651,  647,  652,  634,  639,  646,  643,  638,
1154       641,  640,  648,  642,  649,  639,  640,  647,  642,  641,
1155       644,  643,  650,  644,  646,  653,  655,  648,  651,  647,
1156 
1157       652,  649,  657,  658,  656,  664,   97,  663,  648,  650,
1158       649,  655,  653,  656,  659,  657,  660,  662,  650,  665,
1159       658,  653,  655,  660,  663,  667,  666,  668,  657,  658,
1160       656,  664,  662,  663,  669,  670,  671,  659,  667,  673,
1161       659,  666,  660,  662,  665,  665,  675,  676,  677,  672,
1162       674,  667,  666,  668,  680,  676,   96,  678,   94,  679,
1163       669,  670,  671,  672,  674,  673,  677,  679,  681,  686,
1164       684,  681,  675,  676,  677,  672,  674,  678,  682,  684,
1165       680,  682,  687,  678,  686,  679,  688,  690,  692,  691,
1166       689,   92,  694,  693,  681,  686,  684,  689,  696,  697,
1167 
1168       698,  690,  703,  687,  682,  691,  705,  694,  687,  692,
1169       707,  712,  688,  690,  692,  691,  689,  693,  694,  693,
1170       697,  696,  708,  703,  696,  697,  698,  705,  703,  709,
1171       710,  707,  705,  713,  714,  716,  707,  715,  710,  718,
1172       712,  720,  721,  708,  722,  719,   48,   44,  708,  725,
1173       727,  723,  724,  728,  709,  709,  710,  730,  715,  714,
1174       714,  716,  713,  715,  731,  718,  719,  720,  721,  722,
1175       722,  719,  723,  724,  729,  725,  727,  723,  724,  728,
1176       730,  732,  729,  730,  733,  735,  734,  731,  736,  743,
1177       731,  739,  735,  742,  744,  748,  756,  749,   40,  733,
1178 
1179       729,  734,  756,  739,  750,  752,  753,  732,  754,  761,
1180       733,  735,  734,  749,  736,  743,  742,  739,  762,  742,
1181       744,  748,  756,  749,  757,  750,  752,  753,  763,  754,
1182       750,  752,  753,  764,  754,  761,  765,  767,  766,  770,
1183       757,  763,  771,  772,  762,  766,  764,  773,  775,  776,
1184       757,  765,  777,  779,  763,  775,  776,  782,  770,  764,
1185       772,  771,  765,  767,  766,  770,  777,  780,  771,  772,
1186       781,  779,  783,  773,  775,  776,  787,  784,  777,  779,
1187        39,   34,   10,  782,  784,  780,    9,  781,    0,    0,
1188         0,    0,    0,  780,    0,    0,  781,    0,  783,    0,
1189 
1190         0,    0,  787,  784,  790,  790,  790,  790,  791,  791,
1191       791,  791,  792,  792,  792,  792,  794,  794,    0,  794,
1192       795,  795,  797,  797,  798,  798,    0,  798,  789,  789,
1193       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1194       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1195       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1196       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1197       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1198       789,  789,  789,  789,  789,  789,  789,  789,  789,  789
1199     } ;
1200 
1201 static yy_state_type yy_last_accepting_state;
1202 static char *yy_last_accepting_cpos;
1203 
1204 extern int yy_flex_debug;
1205 int yy_flex_debug = 0;
1206 
1207 /* The intent behind this definition is that it'll catch
1208  * any uses of REJECT which flex missed.
1209  */
1210 #define REJECT reject_used_but_not_detected
1211 static int yy_more_flag = 0;
1212 static int yy_more_len = 0;
1213 #define yymore() ((yy_more_flag) = 1)
1214 #define YY_MORE_ADJ (yy_more_len)
1215 #define YY_RESTORE_YY_MORE_OFFSET
1216 char *yytext;
1217 #line 1 "configlexer.lex"
1218 #line 2 "configlexer.lex"
1219 /*
1220  * configlexer.lex - lexical analyzer for NSD config file
1221  *
1222  * Copyright (c) 2001-2006, NLnet Labs. All rights reserved
1223  *
1224  * See LICENSE for the license.
1225  *
1226  */
1227 /* because flex keeps having sign-unsigned compare problems that are unfixed*/
1228 #if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
1229 #pragma GCC diagnostic ignored "-Wsign-compare"
1230 #endif
1231 
1232 #include "config.h"
1233 
1234 #include <ctype.h>
1235 #include <errno.h>
1236 #include <string.h>
1237 #include <strings.h>
1238 #ifdef HAVE_GLOB_H
1239 # include <glob.h>
1240 #endif
1241 
1242 #include "options.h"
1243 #include "configyyrename.h"
1244 #include "configparser.h"
1245 void c_error(const char *message);
1246 
1247 #if 0
1248 #define LEXOUT(s)  printf s /* used ONLY when debugging */
1249 #else
1250 #define LEXOUT(s)
1251 #endif
1252 
1253 struct inc_state {
1254 	char* filename;
1255 	int line;
1256 	YY_BUFFER_STATE buffer;
1257 	struct inc_state* next;
1258 };
1259 static struct inc_state* config_include_stack = NULL;
1260 static int inc_depth = 0;
1261 static int inc_prev = 0;
1262 static int num_args = 0;
1263 
1264 void init_cfg_parse(void)
1265 {
1266 	config_include_stack = NULL;
1267 	inc_depth = 0;
1268 	inc_prev = 0;
1269 	num_args = 0;
1270 }
1271 
1272 static void config_start_include(const char* filename)
1273 {
1274 	FILE *input;
1275 	struct inc_state* s;
1276 	char* nm;
1277 	if(inc_depth++ > 10000000) {
1278 		c_error_msg("too many include files");
1279 		return;
1280 	}
1281 	if(strlen(filename) == 0) {
1282 		c_error_msg("empty include file name");
1283 		return;
1284 	}
1285 	s = (struct inc_state*)malloc(sizeof(*s));
1286 	if(!s) {
1287 		c_error_msg("include %s: malloc failure", filename);
1288 		return;
1289 	}
1290 	nm = strdup(filename);
1291 	if(!nm) {
1292 		c_error_msg("include %s: strdup failure", filename);
1293 		free(s);
1294 		return;
1295 	}
1296 	input = fopen(filename, "r");
1297 	if(!input) {
1298 		c_error_msg("cannot open include file '%s': %s",
1299 			filename, strerror(errno));
1300 		free(s);
1301 		free(nm);
1302 		return;
1303 	}
1304 	LEXOUT(("switch_to_include_file(%s) ", filename));
1305 	s->filename = cfg_parser->filename;
1306 	s->line = cfg_parser->line;
1307 	s->buffer = YY_CURRENT_BUFFER;
1308 	s->next = config_include_stack;
1309 	config_include_stack = s;
1310 
1311 	cfg_parser->filename = nm;
1312 	cfg_parser->line = 1;
1313 	yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE));
1314 }
1315 
1316 static void config_start_include_glob(const char* filename)
1317 {
1318 	/* check for wildcards */
1319 #ifdef HAVE_GLOB
1320 	glob_t g;
1321 	size_t i;
1322 	int r, flags;
1323 #endif /* HAVE_GLOB */
1324 	if (cfg_parser->chroot) {
1325 		int l = strlen(cfg_parser->chroot); /* chroot has trailing slash */
1326 		if (strncmp(cfg_parser->chroot, filename, l) != 0) {
1327 			c_error_msg("include file '%s' is not relative to chroot '%s'",
1328 				filename, cfg_parser->chroot);
1329 			return;
1330 		}
1331 		filename += l - 1; /* strip chroot without trailing slash */
1332 	}
1333 #ifdef HAVE_GLOB
1334 	if(!(!strchr(filename, '*') && !strchr(filename, '?') &&
1335 		 !strchr(filename, '[') && !strchr(filename, '{') &&
1336 		 !strchr(filename, '~'))) {
1337 		 flags = 0
1338 #ifdef GLOB_ERR
1339 		 	 | GLOB_ERR
1340 #endif
1341 #ifdef GLOB_NOSORT
1342 			 | GLOB_NOSORT
1343 #endif
1344 #ifdef GLOB_BRACE
1345 			 | GLOB_BRACE
1346 #endif
1347 #ifdef GLOB_TILDE
1348 			 | GLOB_TILDE
1349 #endif
1350 		;
1351 		memset(&g, 0, sizeof(g));
1352 		r = glob(filename, flags, NULL, &g);
1353 		if(r) {
1354 			/* some error */
1355 			globfree(&g);
1356 			if(r == GLOB_NOMATCH)
1357 				return; /* no matches for pattern */
1358 			config_start_include(filename); /* let original deal with it */
1359 			return;
1360 		}
1361 		/* process files found, if any */
1362 		for(i=0; i<(size_t)g.gl_pathc; i++) {
1363 			config_start_include(g.gl_pathv[i]);
1364 		}
1365 		globfree(&g);
1366 		return;
1367 	}
1368 #endif /* HAVE_GLOB */
1369 	config_start_include(filename);
1370 }
1371 
1372 static void config_end_include(void)
1373 {
1374 	struct inc_state* s = config_include_stack;
1375 	--inc_depth;
1376 	if(!s) return;
1377 	free(cfg_parser->filename);
1378 	cfg_parser->filename = s->filename;
1379 	cfg_parser->line = s->line;
1380 	yy_delete_buffer(YY_CURRENT_BUFFER);
1381 	yy_switch_to_buffer(s->buffer);
1382 	config_include_stack = s->next;
1383 	free(s);
1384 }
1385 
1386 #ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
1387 #define yy_set_bol(at_bol) \
1388         { \
1389 	        if ( ! yy_current_buffer ) \
1390 	                yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \
1391 	        yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
1392         }
1393 #endif
1394 
1395 #define YY_NO_INPUT 1
1396 #line 182 "configlexer.lex"
1397 #ifndef YY_NO_UNPUT
1398 #define YY_NO_UNPUT 1
1399 #endif
1400 #ifndef YY_NO_INPUT
1401 #define YY_NO_INPUT 1
1402 #endif
1403 
1404 #line 1404 "<stdout>"
1405 
1406 #define INITIAL 0
1407 #define quotedstring 1
1408 #define include 2
1409 #define include_quoted 3
1410 
1411 #ifndef YY_NO_UNISTD_H
1412 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1413  * down here because we want the user's section 1 to have been scanned first.
1414  * The user has a chance to override it with an option.
1415  */
1416 #include <unistd.h>
1417 #endif
1418 
1419 #ifndef YY_EXTRA_TYPE
1420 #define YY_EXTRA_TYPE void *
1421 #endif
1422 
1423 static int yy_init_globals (void );
1424 
1425 /* Accessor methods to globals.
1426    These are made visible to non-reentrant scanners for convenience. */
1427 
1428 int yylex_destroy (void );
1429 
1430 int yyget_debug (void );
1431 
1432 void yyset_debug (int debug_flag  );
1433 
1434 YY_EXTRA_TYPE yyget_extra (void );
1435 
1436 void yyset_extra (YY_EXTRA_TYPE user_defined  );
1437 
1438 FILE *yyget_in (void );
1439 
1440 void yyset_in  (FILE * _in_str  );
1441 
1442 FILE *yyget_out (void );
1443 
1444 void yyset_out  (FILE * _out_str  );
1445 
1446 			int yyget_leng (void );
1447 
1448 char *yyget_text (void );
1449 
1450 int yyget_lineno (void );
1451 
1452 void yyset_lineno (int _line_number  );
1453 
1454 /* Macros after this point can all be overridden by user definitions in
1455  * section 1.
1456  */
1457 
1458 #ifndef YY_SKIP_YYWRAP
1459 #ifdef __cplusplus
1460 extern "C" int yywrap (void );
1461 #else
1462 extern int yywrap (void );
1463 #endif
1464 #endif
1465 
1466 #ifndef YY_NO_UNPUT
1467 
1468 #endif
1469 
1470 #ifndef yytext_ptr
1471 static void yy_flex_strncpy (char *,yyconst char *,int );
1472 #endif
1473 
1474 #ifdef YY_NEED_STRLEN
1475 static int yy_flex_strlen (yyconst char * );
1476 #endif
1477 
1478 #ifndef YY_NO_INPUT
1479 
1480 #ifdef __cplusplus
1481 static int yyinput (void );
1482 #else
1483 static int input (void );
1484 #endif
1485 
1486 #endif
1487 
1488 /* Amount of stuff to slurp up with each read. */
1489 #ifndef YY_READ_BUF_SIZE
1490 #ifdef __ia64__
1491 /* On IA-64, the buffer size is 16k, not 8k */
1492 #define YY_READ_BUF_SIZE 16384
1493 #else
1494 #define YY_READ_BUF_SIZE 8192
1495 #endif /* __ia64__ */
1496 #endif
1497 
1498 /* Copy whatever the last rule matched to the standard output. */
1499 #ifndef ECHO
1500 /* This used to be an fputs(), but since the string might contain NUL's,
1501  * we now use fwrite().
1502  */
1503 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1504 #endif
1505 
1506 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1507  * is returned in "result".
1508  */
1509 #ifndef YY_INPUT
1510 #define YY_INPUT(buf,result,max_size) \
1511 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1512 		{ \
1513 		int c = '*'; \
1514 		int n; \
1515 		for ( n = 0; n < max_size && \
1516 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1517 			buf[n] = (char) c; \
1518 		if ( c == '\n' ) \
1519 			buf[n++] = (char) c; \
1520 		if ( c == EOF && ferror( yyin ) ) \
1521 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1522 		result = n; \
1523 		} \
1524 	else \
1525 		{ \
1526 		errno=0; \
1527 		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1528 			{ \
1529 			if( errno != EINTR) \
1530 				{ \
1531 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1532 				break; \
1533 				} \
1534 			errno=0; \
1535 			clearerr(yyin); \
1536 			} \
1537 		}\
1538 \
1539 
1540 #endif
1541 
1542 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1543  * we don't want an extra ';' after the "return" because that will cause
1544  * some compilers to complain about unreachable statements.
1545  */
1546 #ifndef yyterminate
1547 #define yyterminate() return YY_NULL
1548 #endif
1549 
1550 /* Number of entries by which start-condition stack grows. */
1551 #ifndef YY_START_STACK_INCR
1552 #define YY_START_STACK_INCR 25
1553 #endif
1554 
1555 /* Report a fatal error. */
1556 #ifndef YY_FATAL_ERROR
1557 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1558 #endif
1559 
1560 /* end tables serialization structures and prototypes */
1561 
1562 /* Default declaration of generated scanner - a define so the user can
1563  * easily add parameters.
1564  */
1565 #ifndef YY_DECL
1566 #define YY_DECL_IS_OURS 1
1567 
1568 extern int yylex (void);
1569 
1570 #define YY_DECL int yylex (void)
1571 #endif /* !YY_DECL */
1572 
1573 /* Code executed at the beginning of each rule, after yytext and yyleng
1574  * have been set up.
1575  */
1576 #ifndef YY_USER_ACTION
1577 #define YY_USER_ACTION
1578 #endif
1579 
1580 /* Code executed at the end of each rule. */
1581 #ifndef YY_BREAK
1582 #define YY_BREAK /*LINTED*/break;
1583 #endif
1584 
1585 #define YY_RULE_SETUP \
1586 	YY_USER_ACTION
1587 
1588 /** The main scanner function which does all the work.
1589  */
1590 YY_DECL
1591 {
1592 	yy_state_type yy_current_state;
1593 	char *yy_cp, *yy_bp;
1594 	int yy_act;
1595 
1596 	if ( !(yy_init) )
1597 		{
1598 		(yy_init) = 1;
1599 
1600 #ifdef YY_USER_INIT
1601 		YY_USER_INIT;
1602 #endif
1603 
1604 		if ( ! (yy_start) )
1605 			(yy_start) = 1;	/* first start state */
1606 
1607 		if ( ! yyin )
1608 			yyin = stdin;
1609 
1610 		if ( ! yyout )
1611 			yyout = stdout;
1612 
1613 		if ( ! YY_CURRENT_BUFFER ) {
1614 			yyensure_buffer_stack ();
1615 			YY_CURRENT_BUFFER_LVALUE =
1616 				yy_create_buffer(yyin,YY_BUF_SIZE );
1617 		}
1618 
1619 		yy_load_buffer_state( );
1620 		}
1621 
1622 	{
1623 #line 200 "configlexer.lex"
1624 
1625 #line 1625 "<stdout>"
1626 
1627 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
1628 		{
1629 		(yy_more_len) = 0;
1630 		if ( (yy_more_flag) )
1631 			{
1632 			(yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
1633 			(yy_more_flag) = 0;
1634 			}
1635 		yy_cp = (yy_c_buf_p);
1636 
1637 		/* Support of yytext. */
1638 		*yy_cp = (yy_hold_char);
1639 
1640 		/* yy_bp points to the position in yy_ch_buf of the start of
1641 		 * the current run.
1642 		 */
1643 		yy_bp = yy_cp;
1644 
1645 		yy_current_state = (yy_start);
1646 yy_match:
1647 		do
1648 			{
1649 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1650 			if ( yy_accept[yy_current_state] )
1651 				{
1652 				(yy_last_accepting_state) = yy_current_state;
1653 				(yy_last_accepting_cpos) = yy_cp;
1654 				}
1655 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1656 				{
1657 				yy_current_state = (int) yy_def[yy_current_state];
1658 				if ( yy_current_state >= 790 )
1659 					yy_c = yy_meta[(unsigned int) yy_c];
1660 				}
1661 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1662 			++yy_cp;
1663 			}
1664 		while ( yy_base[yy_current_state] != 2229 );
1665 
1666 yy_find_action:
1667 		yy_act = yy_accept[yy_current_state];
1668 		if ( yy_act == 0 )
1669 			{ /* have to back up */
1670 			yy_cp = (yy_last_accepting_cpos);
1671 			yy_current_state = (yy_last_accepting_state);
1672 			yy_act = yy_accept[yy_current_state];
1673 			}
1674 
1675 		YY_DO_BEFORE_ACTION;
1676 
1677 do_action:	/* This label is used only to access EOF actions. */
1678 
1679 		switch ( yy_act )
1680 	{ /* beginning of action switch */
1681 			case 0: /* must back up */
1682 			/* undo the effects of YY_DO_BEFORE_ACTION */
1683 			*yy_cp = (yy_hold_char);
1684 			yy_cp = (yy_last_accepting_cpos);
1685 			yy_current_state = (yy_last_accepting_state);
1686 			goto yy_find_action;
1687 
1688 case 1:
1689 YY_RULE_SETUP
1690 #line 201 "configlexer.lex"
1691 { LEXOUT(("SP ")); /* ignore */ }
1692 	YY_BREAK
1693 case 2:
1694 YY_RULE_SETUP
1695 #line 202 "configlexer.lex"
1696 { LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
1697 	YY_BREAK
1698 case 3:
1699 YY_RULE_SETUP
1700 #line 203 "configlexer.lex"
1701 { LEXOUT(("v(%s) ", yytext)); return VAR_SERVER;}
1702 	YY_BREAK
1703 case 4:
1704 YY_RULE_SETUP
1705 #line 204 "configlexer.lex"
1706 { LEXOUT(("v(%s) ", yytext)); return VAR_NAME;}
1707 	YY_BREAK
1708 case 5:
1709 YY_RULE_SETUP
1710 #line 205 "configlexer.lex"
1711 { LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
1712 	YY_BREAK
1713 case 6:
1714 YY_RULE_SETUP
1715 #line 206 "configlexer.lex"
1716 { LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
1717 	YY_BREAK
1718 case 7:
1719 YY_RULE_SETUP
1720 #line 207 "configlexer.lex"
1721 { LEXOUT(("v(%s) ", yytext)); return VAR_IP_TRANSPARENT;}
1722 	YY_BREAK
1723 case 8:
1724 YY_RULE_SETUP
1725 #line 208 "configlexer.lex"
1726 { LEXOUT(("v(%s) ", yytext)); return VAR_IP_FREEBIND;}
1727 	YY_BREAK
1728 case 9:
1729 YY_RULE_SETUP
1730 #line 209 "configlexer.lex"
1731 { LEXOUT(("v(%s) ", yytext)); return VAR_DEBUG_MODE;}
1732 	YY_BREAK
1733 case 10:
1734 YY_RULE_SETUP
1735 #line 210 "configlexer.lex"
1736 { LEXOUT(("v(%s) ", yytext)); return VAR_HIDE_VERSION;}
1737 	YY_BREAK
1738 case 11:
1739 YY_RULE_SETUP
1740 #line 211 "configlexer.lex"
1741 { LEXOUT(("v(%s) ", yytext)); return VAR_IP4_ONLY;}
1742 	YY_BREAK
1743 case 12:
1744 YY_RULE_SETUP
1745 #line 212 "configlexer.lex"
1746 { LEXOUT(("v(%s) ", yytext)); return VAR_IP6_ONLY;}
1747 	YY_BREAK
1748 case 13:
1749 YY_RULE_SETUP
1750 #line 213 "configlexer.lex"
1751 { LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP4;}
1752 	YY_BREAK
1753 case 14:
1754 YY_RULE_SETUP
1755 #line 214 "configlexer.lex"
1756 { LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP6;}
1757 	YY_BREAK
1758 case 15:
1759 YY_RULE_SETUP
1760 #line 215 "configlexer.lex"
1761 { LEXOUT(("v(%s) ", yytext)); return VAR_DATABASE;}
1762 	YY_BREAK
1763 case 16:
1764 YY_RULE_SETUP
1765 #line 216 "configlexer.lex"
1766 { LEXOUT(("v(%s) ", yytext)); return VAR_IDENTITY;}
1767 	YY_BREAK
1768 case 17:
1769 YY_RULE_SETUP
1770 #line 217 "configlexer.lex"
1771 { LEXOUT(("v(%s) ", yytext)); return VAR_VERSION;}
1772 	YY_BREAK
1773 case 18:
1774 YY_RULE_SETUP
1775 #line 218 "configlexer.lex"
1776 { LEXOUT(("v(%s) ", yytext)); return VAR_NSID;}
1777 	YY_BREAK
1778 case 19:
1779 YY_RULE_SETUP
1780 #line 219 "configlexer.lex"
1781 { LEXOUT(("v(%s) ", yytext)); return VAR_LOGFILE;}
1782 	YY_BREAK
1783 case 20:
1784 YY_RULE_SETUP
1785 #line 220 "configlexer.lex"
1786 { LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_COUNT;}
1787 	YY_BREAK
1788 case 21:
1789 YY_RULE_SETUP
1790 #line 221 "configlexer.lex"
1791 { LEXOUT(("v(%s) ", yytext)); return VAR_TCP_COUNT;}
1792 	YY_BREAK
1793 case 22:
1794 YY_RULE_SETUP
1795 #line 222 "configlexer.lex"
1796 { LEXOUT(("v(%s) ", yytext)); return VAR_TCP_QUERY_COUNT;}
1797 	YY_BREAK
1798 case 23:
1799 YY_RULE_SETUP
1800 #line 223 "configlexer.lex"
1801 { LEXOUT(("v(%s) ", yytext)); return VAR_TCP_TIMEOUT;}
1802 	YY_BREAK
1803 case 24:
1804 YY_RULE_SETUP
1805 #line 224 "configlexer.lex"
1806 { LEXOUT(("v(%s) ", yytext)); return VAR_TCP_MSS;}
1807 	YY_BREAK
1808 case 25:
1809 YY_RULE_SETUP
1810 #line 225 "configlexer.lex"
1811 { LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_TCP_MSS;}
1812 	YY_BREAK
1813 case 26:
1814 YY_RULE_SETUP
1815 #line 226 "configlexer.lex"
1816 { LEXOUT(("v(%s) ", yytext)); return VAR_IPV4_EDNS_SIZE;}
1817 	YY_BREAK
1818 case 27:
1819 YY_RULE_SETUP
1820 #line 227 "configlexer.lex"
1821 { LEXOUT(("v(%s) ", yytext)); return VAR_IPV6_EDNS_SIZE;}
1822 	YY_BREAK
1823 case 28:
1824 YY_RULE_SETUP
1825 #line 228 "configlexer.lex"
1826 { LEXOUT(("v(%s) ", yytext)); return VAR_PIDFILE;}
1827 	YY_BREAK
1828 case 29:
1829 YY_RULE_SETUP
1830 #line 229 "configlexer.lex"
1831 { LEXOUT(("v(%s) ", yytext)); return VAR_PORT;}
1832 	YY_BREAK
1833 case 30:
1834 YY_RULE_SETUP
1835 #line 230 "configlexer.lex"
1836 { LEXOUT(("v(%s) ", yytext)); return VAR_REUSEPORT;}
1837 	YY_BREAK
1838 case 31:
1839 YY_RULE_SETUP
1840 #line 231 "configlexer.lex"
1841 { LEXOUT(("v(%s) ", yytext)); return VAR_STATISTICS;}
1842 	YY_BREAK
1843 case 32:
1844 YY_RULE_SETUP
1845 #line 232 "configlexer.lex"
1846 { LEXOUT(("v(%s) ", yytext)); return VAR_CHROOT;}
1847 	YY_BREAK
1848 case 33:
1849 YY_RULE_SETUP
1850 #line 233 "configlexer.lex"
1851 { LEXOUT(("v(%s) ", yytext)); return VAR_USERNAME;}
1852 	YY_BREAK
1853 case 34:
1854 YY_RULE_SETUP
1855 #line 234 "configlexer.lex"
1856 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONESDIR;}
1857 	YY_BREAK
1858 case 35:
1859 YY_RULE_SETUP
1860 #line 235 "configlexer.lex"
1861 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONELISTFILE;}
1862 	YY_BREAK
1863 case 36:
1864 YY_RULE_SETUP
1865 #line 236 "configlexer.lex"
1866 { LEXOUT(("v(%s) ", yytext)); return VAR_DIFFFILE;}
1867 	YY_BREAK
1868 case 37:
1869 YY_RULE_SETUP
1870 #line 237 "configlexer.lex"
1871 { LEXOUT(("v(%s) ", yytext)); return VAR_XFRDFILE;}
1872 	YY_BREAK
1873 case 38:
1874 YY_RULE_SETUP
1875 #line 238 "configlexer.lex"
1876 { LEXOUT(("v(%s) ", yytext)); return VAR_XFRDIR;}
1877 	YY_BREAK
1878 case 39:
1879 YY_RULE_SETUP
1880 #line 239 "configlexer.lex"
1881 { LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_RELOAD_TIMEOUT;}
1882 	YY_BREAK
1883 case 40:
1884 YY_RULE_SETUP
1885 #line 240 "configlexer.lex"
1886 { LEXOUT(("v(%s) ", yytext)); return VAR_VERBOSITY;}
1887 	YY_BREAK
1888 case 41:
1889 YY_RULE_SETUP
1890 #line 241 "configlexer.lex"
1891 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONE;}
1892 	YY_BREAK
1893 case 42:
1894 YY_RULE_SETUP
1895 #line 242 "configlexer.lex"
1896 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILE;}
1897 	YY_BREAK
1898 case 43:
1899 YY_RULE_SETUP
1900 #line 243 "configlexer.lex"
1901 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONESTATS;}
1902 	YY_BREAK
1903 case 44:
1904 YY_RULE_SETUP
1905 #line 244 "configlexer.lex"
1906 { LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_NOTIFY;}
1907 	YY_BREAK
1908 case 45:
1909 YY_RULE_SETUP
1910 #line 245 "configlexer.lex"
1911 { LEXOUT(("v(%s) ", yytext)); return VAR_SIZE_LIMIT_XFR;}
1912 	YY_BREAK
1913 case 46:
1914 YY_RULE_SETUP
1915 #line 246 "configlexer.lex"
1916 { LEXOUT(("v(%s) ", yytext)); return VAR_REQUEST_XFR;}
1917 	YY_BREAK
1918 case 47:
1919 YY_RULE_SETUP
1920 #line 247 "configlexer.lex"
1921 { LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY;}
1922 	YY_BREAK
1923 case 48:
1924 YY_RULE_SETUP
1925 #line 248 "configlexer.lex"
1926 { LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY_RETRY;}
1927 	YY_BREAK
1928 case 49:
1929 YY_RULE_SETUP
1930 #line 249 "configlexer.lex"
1931 { LEXOUT(("v(%s) ", yytext)); return VAR_PROVIDE_XFR;}
1932 	YY_BREAK
1933 case 50:
1934 YY_RULE_SETUP
1935 #line 250 "configlexer.lex"
1936 { LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_INTERFACE;}
1937 	YY_BREAK
1938 case 51:
1939 YY_RULE_SETUP
1940 #line 251 "configlexer.lex"
1941 { LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_AXFR_FALLBACK;}
1942 	YY_BREAK
1943 case 52:
1944 YY_RULE_SETUP
1945 #line 252 "configlexer.lex"
1946 { LEXOUT(("v(%s) ", yytext)); return VAR_KEY;}
1947 	YY_BREAK
1948 case 53:
1949 YY_RULE_SETUP
1950 #line 253 "configlexer.lex"
1951 { LEXOUT(("v(%s) ", yytext)); return VAR_ALGORITHM;}
1952 	YY_BREAK
1953 case 54:
1954 YY_RULE_SETUP
1955 #line 254 "configlexer.lex"
1956 { LEXOUT(("v(%s) ", yytext)); return VAR_SECRET;}
1957 	YY_BREAK
1958 case 55:
1959 YY_RULE_SETUP
1960 #line 255 "configlexer.lex"
1961 { LEXOUT(("v(%s) ", yytext)); return VAR_PATTERN;}
1962 	YY_BREAK
1963 case 56:
1964 YY_RULE_SETUP
1965 #line 256 "configlexer.lex"
1966 { LEXOUT(("v(%s) ", yytext)); return VAR_INCLUDEPATTERN;}
1967 	YY_BREAK
1968 case 57:
1969 YY_RULE_SETUP
1970 #line 257 "configlexer.lex"
1971 { LEXOUT(("v(%s) ", yytext)); return VAR_REMOTE_CONTROL;}
1972 	YY_BREAK
1973 case 58:
1974 YY_RULE_SETUP
1975 #line 258 "configlexer.lex"
1976 { LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_ENABLE;}
1977 	YY_BREAK
1978 case 59:
1979 YY_RULE_SETUP
1980 #line 259 "configlexer.lex"
1981 { LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_INTERFACE;}
1982 	YY_BREAK
1983 case 60:
1984 YY_RULE_SETUP
1985 #line 260 "configlexer.lex"
1986 { LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_PORT;}
1987 	YY_BREAK
1988 case 61:
1989 YY_RULE_SETUP
1990 #line 261 "configlexer.lex"
1991 { LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_KEY_FILE;}
1992 	YY_BREAK
1993 case 62:
1994 YY_RULE_SETUP
1995 #line 262 "configlexer.lex"
1996 { LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_CERT_FILE;}
1997 	YY_BREAK
1998 case 63:
1999 YY_RULE_SETUP
2000 #line 263 "configlexer.lex"
2001 { LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_KEY_FILE;}
2002 	YY_BREAK
2003 case 64:
2004 YY_RULE_SETUP
2005 #line 264 "configlexer.lex"
2006 { LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_CERT_FILE;}
2007 	YY_BREAK
2008 case 65:
2009 YY_RULE_SETUP
2010 #line 265 "configlexer.lex"
2011 { LEXOUT(("v(%s) ", yytext)); return VAR_AXFR;}
2012 	YY_BREAK
2013 case 66:
2014 YY_RULE_SETUP
2015 #line 266 "configlexer.lex"
2016 { LEXOUT(("v(%s) ", yytext)); return VAR_UDP;}
2017 	YY_BREAK
2018 case 67:
2019 YY_RULE_SETUP
2020 #line 267 "configlexer.lex"
2021 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SIZE;}
2022 	YY_BREAK
2023 case 68:
2024 YY_RULE_SETUP
2025 #line 268 "configlexer.lex"
2026 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_RATELIMIT;}
2027 	YY_BREAK
2028 case 69:
2029 YY_RULE_SETUP
2030 #line 269 "configlexer.lex"
2031 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SLIP;}
2032 	YY_BREAK
2033 case 70:
2034 YY_RULE_SETUP
2035 #line 270 "configlexer.lex"
2036 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV4_PREFIX_LENGTH;}
2037 	YY_BREAK
2038 case 71:
2039 YY_RULE_SETUP
2040 #line 271 "configlexer.lex"
2041 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV6_PREFIX_LENGTH;}
2042 	YY_BREAK
2043 case 72:
2044 YY_RULE_SETUP
2045 #line 272 "configlexer.lex"
2046 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST_RATELIMIT;}
2047 	YY_BREAK
2048 case 73:
2049 YY_RULE_SETUP
2050 #line 273 "configlexer.lex"
2051 { LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST;}
2052 	YY_BREAK
2053 case 74:
2054 YY_RULE_SETUP
2055 #line 274 "configlexer.lex"
2056 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_CHECK;}
2057 	YY_BREAK
2058 case 75:
2059 YY_RULE_SETUP
2060 #line 275 "configlexer.lex"
2061 { LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_WRITE;}
2062 	YY_BREAK
2063 case 76:
2064 YY_RULE_SETUP
2065 #line 276 "configlexer.lex"
2066 { LEXOUT(("v(%s) ", yytext)); return VAR_LOG_TIME_ASCII;}
2067 	YY_BREAK
2068 case 77:
2069 YY_RULE_SETUP
2070 #line 277 "configlexer.lex"
2071 { LEXOUT(("v(%s) ", yytext)); return VAR_ROUND_ROBIN;}
2072 	YY_BREAK
2073 case 78:
2074 YY_RULE_SETUP
2075 #line 278 "configlexer.lex"
2076 { LEXOUT(("v(%s) ", yytext)); return VAR_MINIMAL_RESPONSES;}
2077 	YY_BREAK
2078 case 79:
2079 YY_RULE_SETUP
2080 #line 279 "configlexer.lex"
2081 { LEXOUT(("v(%s) ", yytext)); return VAR_MAX_REFRESH_TIME;}
2082 	YY_BREAK
2083 case 80:
2084 YY_RULE_SETUP
2085 #line 280 "configlexer.lex"
2086 { LEXOUT(("v(%s) ", yytext)); return VAR_MIN_REFRESH_TIME;}
2087 	YY_BREAK
2088 case 81:
2089 YY_RULE_SETUP
2090 #line 281 "configlexer.lex"
2091 { LEXOUT(("v(%s) ", yytext)); return VAR_MAX_RETRY_TIME;}
2092 	YY_BREAK
2093 case 82:
2094 YY_RULE_SETUP
2095 #line 282 "configlexer.lex"
2096 { LEXOUT(("v(%s) ", yytext)); return VAR_MIN_RETRY_TIME;}
2097 	YY_BREAK
2098 case 83:
2099 YY_RULE_SETUP
2100 #line 283 "configlexer.lex"
2101 { LEXOUT(("v(%s) ", yytext)); return VAR_MULTI_MASTER_CHECK;}
2102 	YY_BREAK
2103 case 84:
2104 /* rule 84 can match eol */
2105 YY_RULE_SETUP
2106 #line 284 "configlexer.lex"
2107 { LEXOUT(("NL\n")); cfg_parser->line++;}
2108 	YY_BREAK
2109 /* Quoted strings. Strip leading and ending quotes */
2110 case 85:
2111 YY_RULE_SETUP
2112 #line 287 "configlexer.lex"
2113 { BEGIN(quotedstring); LEXOUT(("QS ")); }
2114 	YY_BREAK
2115 case YY_STATE_EOF(quotedstring):
2116 #line 288 "configlexer.lex"
2117 {
2118         yyerror("EOF inside quoted string");
2119         BEGIN(INITIAL);
2120 }
2121 	YY_BREAK
2122 case 86:
2123 YY_RULE_SETUP
2124 #line 292 "configlexer.lex"
2125 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
2126 	YY_BREAK
2127 case 87:
2128 /* rule 87 can match eol */
2129 YY_RULE_SETUP
2130 #line 293 "configlexer.lex"
2131 { cfg_parser->line++; yymore(); }
2132 	YY_BREAK
2133 case 88:
2134 YY_RULE_SETUP
2135 #line 294 "configlexer.lex"
2136 {
2137         LEXOUT(("QE "));
2138         BEGIN(INITIAL);
2139         yytext[yyleng - 1] = '\0';
2140 	yylval.str = region_strdup(cfg_parser->opt->region, yytext);
2141         return STRING;
2142 }
2143 	YY_BREAK
2144 /* include: directive */
2145 case 89:
2146 YY_RULE_SETUP
2147 #line 303 "configlexer.lex"
2148 { LEXOUT(("v(%s) ", yytext)); BEGIN(include); }
2149 	YY_BREAK
2150 case YY_STATE_EOF(include):
2151 #line 304 "configlexer.lex"
2152 {
2153         yyerror("EOF inside include directive");
2154         BEGIN(INITIAL);
2155 }
2156 	YY_BREAK
2157 case 90:
2158 YY_RULE_SETUP
2159 #line 308 "configlexer.lex"
2160 { LEXOUT(("ISP ")); /* ignore */ }
2161 	YY_BREAK
2162 case 91:
2163 /* rule 91 can match eol */
2164 YY_RULE_SETUP
2165 #line 309 "configlexer.lex"
2166 { LEXOUT(("NL\n")); cfg_parser->line++;}
2167 	YY_BREAK
2168 case 92:
2169 YY_RULE_SETUP
2170 #line 310 "configlexer.lex"
2171 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
2172 	YY_BREAK
2173 case 93:
2174 YY_RULE_SETUP
2175 #line 311 "configlexer.lex"
2176 {
2177 	LEXOUT(("Iunquotedstr(%s) ", yytext));
2178 	config_start_include_glob(yytext);
2179 	BEGIN(INITIAL);
2180 }
2181 	YY_BREAK
2182 case YY_STATE_EOF(include_quoted):
2183 #line 316 "configlexer.lex"
2184 {
2185         yyerror("EOF inside quoted string");
2186         BEGIN(INITIAL);
2187 }
2188 	YY_BREAK
2189 case 94:
2190 YY_RULE_SETUP
2191 #line 320 "configlexer.lex"
2192 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
2193 	YY_BREAK
2194 case 95:
2195 /* rule 95 can match eol */
2196 YY_RULE_SETUP
2197 #line 321 "configlexer.lex"
2198 { cfg_parser->line++; yymore(); }
2199 	YY_BREAK
2200 case 96:
2201 YY_RULE_SETUP
2202 #line 322 "configlexer.lex"
2203 {
2204 	LEXOUT(("IQE "));
2205 	yytext[yyleng - 1] = '\0';
2206 	config_start_include_glob(yytext);
2207 	BEGIN(INITIAL);
2208 }
2209 	YY_BREAK
2210 case YY_STATE_EOF(INITIAL):
2211 #line 328 "configlexer.lex"
2212 {
2213 	yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
2214 	if (!config_include_stack) {
2215 		yyterminate();
2216 	} else {
2217 		fclose(yyin);
2218 		config_end_include();
2219 	}
2220 }
2221 	YY_BREAK
2222 case 97:
2223 YY_RULE_SETUP
2224 #line 338 "configlexer.lex"
2225 { LEXOUT(("unquotedstr(%s) ", yytext));
2226 			yylval.str = region_strdup(cfg_parser->opt->region, yytext); return STRING; }
2227 	YY_BREAK
2228 case 98:
2229 YY_RULE_SETUP
2230 #line 341 "configlexer.lex"
2231 ECHO;
2232 	YY_BREAK
2233 #line 2233 "<stdout>"
2234 
2235 	case YY_END_OF_BUFFER:
2236 		{
2237 		/* Amount of text matched not including the EOB char. */
2238 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2239 
2240 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2241 		*yy_cp = (yy_hold_char);
2242 		YY_RESTORE_YY_MORE_OFFSET
2243 
2244 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2245 			{
2246 			/* We're scanning a new file or input source.  It's
2247 			 * possible that this happened because the user
2248 			 * just pointed yyin at a new source and called
2249 			 * yylex().  If so, then we have to assure
2250 			 * consistency between YY_CURRENT_BUFFER and our
2251 			 * globals.  Here is the right place to do so, because
2252 			 * this is the first action (other than possibly a
2253 			 * back-up) that will match for the new input source.
2254 			 */
2255 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2256 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2257 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2258 			}
2259 
2260 		/* Note that here we test for yy_c_buf_p "<=" to the position
2261 		 * of the first EOB in the buffer, since yy_c_buf_p will
2262 		 * already have been incremented past the NUL character
2263 		 * (since all states make transitions on EOB to the
2264 		 * end-of-buffer state).  Contrast this with the test
2265 		 * in input().
2266 		 */
2267 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2268 			{ /* This was really a NUL. */
2269 			yy_state_type yy_next_state;
2270 
2271 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2272 
2273 			yy_current_state = yy_get_previous_state(  );
2274 
2275 			/* Okay, we're now positioned to make the NUL
2276 			 * transition.  We couldn't have
2277 			 * yy_get_previous_state() go ahead and do it
2278 			 * for us because it doesn't know how to deal
2279 			 * with the possibility of jamming (and we don't
2280 			 * want to build jamming into it because then it
2281 			 * will run more slowly).
2282 			 */
2283 
2284 			yy_next_state = yy_try_NUL_trans( yy_current_state );
2285 
2286 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2287 
2288 			if ( yy_next_state )
2289 				{
2290 				/* Consume the NUL. */
2291 				yy_cp = ++(yy_c_buf_p);
2292 				yy_current_state = yy_next_state;
2293 				goto yy_match;
2294 				}
2295 
2296 			else
2297 				{
2298 				yy_cp = (yy_c_buf_p);
2299 				goto yy_find_action;
2300 				}
2301 			}
2302 
2303 		else switch ( yy_get_next_buffer(  ) )
2304 			{
2305 			case EOB_ACT_END_OF_FILE:
2306 				{
2307 				(yy_did_buffer_switch_on_eof) = 0;
2308 
2309 				if ( yywrap( ) )
2310 					{
2311 					/* Note: because we've taken care in
2312 					 * yy_get_next_buffer() to have set up
2313 					 * yytext, we can now set up
2314 					 * yy_c_buf_p so that if some total
2315 					 * hoser (like flex itself) wants to
2316 					 * call the scanner after we return the
2317 					 * YY_NULL, it'll still work - another
2318 					 * YY_NULL will get returned.
2319 					 */
2320 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2321 
2322 					yy_act = YY_STATE_EOF(YY_START);
2323 					goto do_action;
2324 					}
2325 
2326 				else
2327 					{
2328 					if ( ! (yy_did_buffer_switch_on_eof) )
2329 						YY_NEW_FILE;
2330 					}
2331 				break;
2332 				}
2333 
2334 			case EOB_ACT_CONTINUE_SCAN:
2335 				(yy_c_buf_p) =
2336 					(yytext_ptr) + yy_amount_of_matched_text;
2337 
2338 				yy_current_state = yy_get_previous_state(  );
2339 
2340 				yy_cp = (yy_c_buf_p);
2341 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2342 				goto yy_match;
2343 
2344 			case EOB_ACT_LAST_MATCH:
2345 				(yy_c_buf_p) =
2346 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2347 
2348 				yy_current_state = yy_get_previous_state(  );
2349 
2350 				yy_cp = (yy_c_buf_p);
2351 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2352 				goto yy_find_action;
2353 			}
2354 		break;
2355 		}
2356 
2357 	default:
2358 		YY_FATAL_ERROR(
2359 			"fatal flex scanner internal error--no action found" );
2360 	} /* end of action switch */
2361 		} /* end of scanning one token */
2362 	} /* end of user's declarations */
2363 } /* end of yylex */
2364 
2365 /* yy_get_next_buffer - try to read in a new buffer
2366  *
2367  * Returns a code representing an action:
2368  *	EOB_ACT_LAST_MATCH -
2369  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2370  *	EOB_ACT_END_OF_FILE - end of file
2371  */
2372 static int yy_get_next_buffer (void)
2373 {
2374     	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2375 	char *source = (yytext_ptr);
2376 	yy_size_t number_to_move, i;
2377 	int ret_val;
2378 
2379 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2380 		YY_FATAL_ERROR(
2381 		"fatal flex scanner internal error--end of buffer missed" );
2382 
2383 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2384 		{ /* Don't try to fill the buffer, so this is an EOF. */
2385 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2386 			{
2387 			/* We matched a single character, the EOB, so
2388 			 * treat this as a final EOF.
2389 			 */
2390 			return EOB_ACT_END_OF_FILE;
2391 			}
2392 
2393 		else
2394 			{
2395 			/* We matched some text prior to the EOB, first
2396 			 * process it.
2397 			 */
2398 			return EOB_ACT_LAST_MATCH;
2399 			}
2400 		}
2401 
2402 	/* Try to read more data. */
2403 
2404 	/* First move last chars to start of buffer. */
2405 	number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2406 
2407 	for ( i = 0; i < number_to_move; ++i )
2408 		*(dest++) = *(source++);
2409 
2410 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2411 		/* don't do the read, it's not guaranteed to return an EOF,
2412 		 * just force an EOF
2413 		 */
2414 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2415 
2416 	else
2417 		{
2418 			int num_to_read =
2419 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2420 
2421 		while ( num_to_read <= 0 )
2422 			{ /* Not enough room in the buffer - grow it. */
2423 
2424 			/* just a shorter name for the current buffer */
2425 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
2426 
2427 			int yy_c_buf_p_offset =
2428 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
2429 
2430 			if ( b->yy_is_our_buffer )
2431 				{
2432 				int new_size = b->yy_buf_size * 2;
2433 
2434 				if ( new_size <= 0 )
2435 					b->yy_buf_size += b->yy_buf_size / 8;
2436 				else
2437 					b->yy_buf_size *= 2;
2438 
2439 				b->yy_ch_buf = (char *)
2440 					/* Include room in for 2 EOB chars. */
2441 					yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2)  );
2442 				}
2443 			else
2444 				/* Can't grow it, we don't own it. */
2445 				b->yy_ch_buf = NULL;
2446 
2447 			if ( ! b->yy_ch_buf )
2448 				YY_FATAL_ERROR(
2449 				"fatal error - scanner input buffer overflow" );
2450 
2451 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2452 
2453 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2454 						number_to_move - 1;
2455 
2456 			}
2457 
2458 		if ( num_to_read > YY_READ_BUF_SIZE )
2459 			num_to_read = YY_READ_BUF_SIZE;
2460 
2461 		/* Read in more data. */
2462 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2463 			(yy_n_chars), num_to_read );
2464 
2465 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2466 		}
2467 
2468 	if ( (yy_n_chars) == 0 )
2469 		{
2470 		if ( number_to_move == YY_MORE_ADJ )
2471 			{
2472 			ret_val = EOB_ACT_END_OF_FILE;
2473 			yyrestart(yyin  );
2474 			}
2475 
2476 		else
2477 			{
2478 			ret_val = EOB_ACT_LAST_MATCH;
2479 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2480 				YY_BUFFER_EOF_PENDING;
2481 			}
2482 		}
2483 
2484 	else
2485 		ret_val = EOB_ACT_CONTINUE_SCAN;
2486 
2487 	if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2488 		/* Extend the array by 50%, plus the number we really need. */
2489 		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2490 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size  );
2491 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2492 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2493 	}
2494 
2495 	(yy_n_chars) += number_to_move;
2496 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2497 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2498 
2499 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2500 
2501 	return ret_val;
2502 }
2503 
2504 /* yy_get_previous_state - get the state just before the EOB char was reached */
2505 
2506     static yy_state_type yy_get_previous_state (void)
2507 {
2508 	yy_state_type yy_current_state;
2509 	char *yy_cp;
2510 
2511 	yy_current_state = (yy_start);
2512 
2513 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2514 		{
2515 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2516 		if ( yy_accept[yy_current_state] )
2517 			{
2518 			(yy_last_accepting_state) = yy_current_state;
2519 			(yy_last_accepting_cpos) = yy_cp;
2520 			}
2521 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2522 			{
2523 			yy_current_state = (int) yy_def[yy_current_state];
2524 			if ( yy_current_state >= 790 )
2525 				yy_c = yy_meta[(unsigned int) yy_c];
2526 			}
2527 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2528 		}
2529 
2530 	return yy_current_state;
2531 }
2532 
2533 /* yy_try_NUL_trans - try to make a transition on the NUL character
2534  *
2535  * synopsis
2536  *	next_state = yy_try_NUL_trans( current_state );
2537  */
2538     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2539 {
2540 	int yy_is_jam;
2541     	char *yy_cp = (yy_c_buf_p);
2542 
2543 	YY_CHAR yy_c = 1;
2544 	if ( yy_accept[yy_current_state] )
2545 		{
2546 		(yy_last_accepting_state) = yy_current_state;
2547 		(yy_last_accepting_cpos) = yy_cp;
2548 		}
2549 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2550 		{
2551 		yy_current_state = (int) yy_def[yy_current_state];
2552 		if ( yy_current_state >= 790 )
2553 			yy_c = yy_meta[(unsigned int) yy_c];
2554 		}
2555 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2556 	yy_is_jam = (yy_current_state == 789);
2557 
2558 		return yy_is_jam ? 0 : yy_current_state;
2559 }
2560 
2561 #ifndef YY_NO_UNPUT
2562 
2563 #endif
2564 
2565 #ifndef YY_NO_INPUT
2566 #ifdef __cplusplus
2567     static int yyinput (void)
2568 #else
2569     static int input  (void)
2570 #endif
2571 
2572 {
2573 	int c;
2574 
2575 	*(yy_c_buf_p) = (yy_hold_char);
2576 
2577 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2578 		{
2579 		/* yy_c_buf_p now points to the character we want to return.
2580 		 * If this occurs *before* the EOB characters, then it's a
2581 		 * valid NUL; if not, then we've hit the end of the buffer.
2582 		 */
2583 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2584 			/* This was really a NUL. */
2585 			*(yy_c_buf_p) = '\0';
2586 
2587 		else
2588 			{ /* need more input */
2589 			int offset = (yy_c_buf_p) - (yytext_ptr);
2590 			++(yy_c_buf_p);
2591 
2592 			switch ( yy_get_next_buffer(  ) )
2593 				{
2594 				case EOB_ACT_LAST_MATCH:
2595 					/* This happens because yy_g_n_b()
2596 					 * sees that we've accumulated a
2597 					 * token and flags that we need to
2598 					 * try matching the token before
2599 					 * proceeding.  But for input(),
2600 					 * there's no matching to consider.
2601 					 * So convert the EOB_ACT_LAST_MATCH
2602 					 * to EOB_ACT_END_OF_FILE.
2603 					 */
2604 
2605 					/* Reset buffer status. */
2606 					yyrestart(yyin );
2607 
2608 					/*FALLTHROUGH*/
2609 
2610 				case EOB_ACT_END_OF_FILE:
2611 					{
2612 					if ( yywrap( ) )
2613 						return 0;
2614 
2615 					if ( ! (yy_did_buffer_switch_on_eof) )
2616 						YY_NEW_FILE;
2617 #ifdef __cplusplus
2618 					return yyinput();
2619 #else
2620 					return input();
2621 #endif
2622 					}
2623 
2624 				case EOB_ACT_CONTINUE_SCAN:
2625 					(yy_c_buf_p) = (yytext_ptr) + offset;
2626 					break;
2627 				}
2628 			}
2629 		}
2630 
2631 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
2632 	*(yy_c_buf_p) = '\0';	/* preserve yytext */
2633 	(yy_hold_char) = *++(yy_c_buf_p);
2634 
2635 	return c;
2636 }
2637 #endif	/* ifndef YY_NO_INPUT */
2638 
2639 /** Immediately switch to a different input stream.
2640  * @param input_file A readable stream.
2641  *
2642  * @note This function does not reset the start condition to @c INITIAL .
2643  */
2644     void yyrestart  (FILE * input_file )
2645 {
2646 
2647 	if ( ! YY_CURRENT_BUFFER ){
2648         yyensure_buffer_stack ();
2649 		YY_CURRENT_BUFFER_LVALUE =
2650             yy_create_buffer(yyin,YY_BUF_SIZE );
2651 	}
2652 
2653 	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2654 	yy_load_buffer_state( );
2655 }
2656 
2657 /** Switch to a different input buffer.
2658  * @param new_buffer The new input buffer.
2659  *
2660  */
2661     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2662 {
2663 
2664 	/* TODO. We should be able to replace this entire function body
2665 	 * with
2666 	 *		yypop_buffer_state();
2667 	 *		yypush_buffer_state(new_buffer);
2668      */
2669 	yyensure_buffer_stack ();
2670 	if ( YY_CURRENT_BUFFER == new_buffer )
2671 		return;
2672 
2673 	if ( YY_CURRENT_BUFFER )
2674 		{
2675 		/* Flush out information for old buffer. */
2676 		*(yy_c_buf_p) = (yy_hold_char);
2677 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2678 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2679 		}
2680 
2681 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2682 	yy_load_buffer_state( );
2683 
2684 	/* We don't actually know whether we did this switch during
2685 	 * EOF (yywrap()) processing, but the only time this flag
2686 	 * is looked at is after yywrap() is called, so it's safe
2687 	 * to go ahead and always set it.
2688 	 */
2689 	(yy_did_buffer_switch_on_eof) = 1;
2690 }
2691 
2692 static void yy_load_buffer_state  (void)
2693 {
2694     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2695 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2696 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2697 	(yy_hold_char) = *(yy_c_buf_p);
2698 }
2699 
2700 /** Allocate and initialize an input buffer state.
2701  * @param file A readable stream.
2702  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2703  *
2704  * @return the allocated buffer state.
2705  */
2706     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
2707 {
2708 	YY_BUFFER_STATE b;
2709 
2710 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2711 	if ( ! b )
2712 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2713 
2714 	b->yy_buf_size = size;
2715 
2716 	/* yy_ch_buf has to be 2 characters longer than the size given because
2717 	 * we need to put in 2 end-of-buffer characters.
2718 	 */
2719 	b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2)  );
2720 	if ( ! b->yy_ch_buf )
2721 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2722 
2723 	b->yy_is_our_buffer = 1;
2724 
2725 	yy_init_buffer(b,file );
2726 
2727 	return b;
2728 }
2729 
2730 /** Destroy the buffer.
2731  * @param b a buffer created with yy_create_buffer()
2732  *
2733  */
2734     void yy_delete_buffer (YY_BUFFER_STATE  b )
2735 {
2736 
2737 	if ( ! b )
2738 		return;
2739 
2740 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2741 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2742 
2743 	if ( b->yy_is_our_buffer )
2744 		yyfree((void *) b->yy_ch_buf  );
2745 
2746 	yyfree((void *) b  );
2747 }
2748 
2749 /* Initializes or reinitializes a buffer.
2750  * This function is sometimes called more than once on the same buffer,
2751  * such as during a yyrestart() or at EOF.
2752  */
2753     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
2754 
2755 {
2756 	int oerrno = errno;
2757 
2758 	yy_flush_buffer(b );
2759 
2760 	b->yy_input_file = file;
2761 	b->yy_fill_buffer = 1;
2762 
2763     /* If b is the current buffer, then yy_init_buffer was _probably_
2764      * called from yyrestart() or through yy_get_next_buffer.
2765      * In that case, we don't want to reset the lineno or column.
2766      */
2767     if (b != YY_CURRENT_BUFFER){
2768         b->yy_bs_lineno = 1;
2769         b->yy_bs_column = 0;
2770     }
2771 
2772         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2773 
2774 	errno = oerrno;
2775 }
2776 
2777 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2778  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2779  *
2780  */
2781     void yy_flush_buffer (YY_BUFFER_STATE  b )
2782 {
2783     	if ( ! b )
2784 		return;
2785 
2786 	b->yy_n_chars = 0;
2787 
2788 	/* We always need two end-of-buffer characters.  The first causes
2789 	 * a transition to the end-of-buffer state.  The second causes
2790 	 * a jam in that state.
2791 	 */
2792 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2793 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2794 
2795 	b->yy_buf_pos = &b->yy_ch_buf[0];
2796 
2797 	b->yy_at_bol = 1;
2798 	b->yy_buffer_status = YY_BUFFER_NEW;
2799 
2800 	if ( b == YY_CURRENT_BUFFER )
2801 		yy_load_buffer_state( );
2802 }
2803 
2804 /** Pushes the new state onto the stack. The new state becomes
2805  *  the current state. This function will allocate the stack
2806  *  if necessary.
2807  *  @param new_buffer The new state.
2808  *
2809  */
2810 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2811 {
2812     	if (new_buffer == NULL)
2813 		return;
2814 
2815 	yyensure_buffer_stack();
2816 
2817 	/* This block is copied from yy_switch_to_buffer. */
2818 	if ( YY_CURRENT_BUFFER )
2819 		{
2820 		/* Flush out information for old buffer. */
2821 		*(yy_c_buf_p) = (yy_hold_char);
2822 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2823 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2824 		}
2825 
2826 	/* Only push if top exists. Otherwise, replace top. */
2827 	if (YY_CURRENT_BUFFER)
2828 		(yy_buffer_stack_top)++;
2829 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2830 
2831 	/* copied from yy_switch_to_buffer. */
2832 	yy_load_buffer_state( );
2833 	(yy_did_buffer_switch_on_eof) = 1;
2834 }
2835 
2836 /** Removes and deletes the top of the stack, if present.
2837  *  The next element becomes the new top.
2838  *
2839  */
2840 void yypop_buffer_state (void)
2841 {
2842     	if (!YY_CURRENT_BUFFER)
2843 		return;
2844 
2845 	yy_delete_buffer(YY_CURRENT_BUFFER );
2846 	YY_CURRENT_BUFFER_LVALUE = NULL;
2847 	if ((yy_buffer_stack_top) > 0)
2848 		--(yy_buffer_stack_top);
2849 
2850 	if (YY_CURRENT_BUFFER) {
2851 		yy_load_buffer_state( );
2852 		(yy_did_buffer_switch_on_eof) = 1;
2853 	}
2854 }
2855 
2856 /* Allocates the stack if it does not exist.
2857  *  Guarantees space for at least one push.
2858  */
2859 static void yyensure_buffer_stack (void)
2860 {
2861 	int num_to_alloc;
2862 
2863 	if (!(yy_buffer_stack)) {
2864 
2865 		/* First allocation is just for 2 elements, since we don't know if this
2866 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2867 		 * immediate realloc on the next call.
2868          */
2869       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2870 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2871 								(num_to_alloc * sizeof(struct yy_buffer_state*)
2872 								);
2873 		if ( ! (yy_buffer_stack) )
2874 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2875 
2876 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2877 
2878 		(yy_buffer_stack_max) = num_to_alloc;
2879 		(yy_buffer_stack_top) = 0;
2880 		return;
2881 	}
2882 
2883 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2884 
2885 		/* Increase the buffer to prepare for a possible push. */
2886 		yy_size_t grow_size = 8 /* arbitrary grow size */;
2887 
2888 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
2889 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2890 								((yy_buffer_stack),
2891 								num_to_alloc * sizeof(struct yy_buffer_state*)
2892 								);
2893 		if ( ! (yy_buffer_stack) )
2894 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2895 
2896 		/* zero only the new slots.*/
2897 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2898 		(yy_buffer_stack_max) = num_to_alloc;
2899 	}
2900 }
2901 
2902 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2903  * @param base the character buffer
2904  * @param size the size in bytes of the character buffer
2905  *
2906  * @return the newly allocated buffer state object.
2907  */
2908 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
2909 {
2910 	YY_BUFFER_STATE b;
2911 
2912 	if ( size < 2 ||
2913 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2914 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2915 		/* They forgot to leave room for the EOB's. */
2916 		return NULL;
2917 
2918 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2919 	if ( ! b )
2920 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2921 
2922 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
2923 	b->yy_buf_pos = b->yy_ch_buf = base;
2924 	b->yy_is_our_buffer = 0;
2925 	b->yy_input_file = NULL;
2926 	b->yy_n_chars = b->yy_buf_size;
2927 	b->yy_is_interactive = 0;
2928 	b->yy_at_bol = 1;
2929 	b->yy_fill_buffer = 0;
2930 	b->yy_buffer_status = YY_BUFFER_NEW;
2931 
2932 	yy_switch_to_buffer(b  );
2933 
2934 	return b;
2935 }
2936 
2937 /** Setup the input buffer state to scan a string. The next call to yylex() will
2938  * scan from a @e copy of @a str.
2939  * @param yystr a NUL-terminated string to scan
2940  *
2941  * @return the newly allocated buffer state object.
2942  * @note If you want to scan bytes that may contain NUL values, then use
2943  *       yy_scan_bytes() instead.
2944  */
2945 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2946 {
2947 
2948 	return yy_scan_bytes(yystr,(int) strlen(yystr) );
2949 }
2950 
2951 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2952  * scan from a @e copy of @a bytes.
2953  * @param yybytes the byte buffer to scan
2954  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2955  *
2956  * @return the newly allocated buffer state object.
2957  */
2958 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
2959 {
2960 	YY_BUFFER_STATE b;
2961 	char *buf;
2962 	yy_size_t n;
2963 	yy_size_t i;
2964 
2965 	/* Get memory for full buffer, including space for trailing EOB's. */
2966 	n = (yy_size_t) _yybytes_len + 2;
2967 	buf = (char *) yyalloc(n  );
2968 	if ( ! buf )
2969 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2970 
2971 	for ( i = 0; i < _yybytes_len; ++i )
2972 		buf[i] = yybytes[i];
2973 
2974 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2975 
2976 	b = yy_scan_buffer(buf,n );
2977 	if ( ! b )
2978 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2979 
2980 	/* It's okay to grow etc. this buffer, and we should throw it
2981 	 * away when we're done.
2982 	 */
2983 	b->yy_is_our_buffer = 1;
2984 
2985 	return b;
2986 }
2987 
2988 #ifndef YY_EXIT_FAILURE
2989 #define YY_EXIT_FAILURE 2
2990 #endif
2991 
2992 static void yynoreturn yy_fatal_error (yyconst char* msg )
2993 {
2994 			(void) fprintf( stderr, "%s\n", msg );
2995 	exit( YY_EXIT_FAILURE );
2996 }
2997 
2998 /* Redefine yyless() so it works in section 3 code. */
2999 
3000 #undef yyless
3001 #define yyless(n) \
3002 	do \
3003 		{ \
3004 		/* Undo effects of setting up yytext. */ \
3005         yy_size_t yyless_macro_arg = (n); \
3006         YY_LESS_LINENO(yyless_macro_arg);\
3007 		yytext[yyleng] = (yy_hold_char); \
3008 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
3009 		(yy_hold_char) = *(yy_c_buf_p); \
3010 		*(yy_c_buf_p) = '\0'; \
3011 		yyleng = yyless_macro_arg; \
3012 		} \
3013 	while ( 0 )
3014 
3015 /* Accessor  methods (get/set functions) to struct members. */
3016 
3017 /** Get the current line number.
3018  *
3019  */
3020 int yyget_lineno  (void)
3021 {
3022 
3023     return yylineno;
3024 }
3025 
3026 /** Get the input stream.
3027  *
3028  */
3029 FILE *yyget_in  (void)
3030 {
3031         return yyin;
3032 }
3033 
3034 /** Get the output stream.
3035  *
3036  */
3037 FILE *yyget_out  (void)
3038 {
3039         return yyout;
3040 }
3041 
3042 /** Get the length of the current token.
3043  *
3044  */
3045 int yyget_leng  (void)
3046 {
3047         return yyleng;
3048 }
3049 
3050 /** Get the current token.
3051  *
3052  */
3053 
3054 char *yyget_text  (void)
3055 {
3056         return yytext;
3057 }
3058 
3059 /** Set the current line number.
3060  * @param _line_number line number
3061  *
3062  */
3063 void yyset_lineno (int  _line_number )
3064 {
3065 
3066     yylineno = _line_number;
3067 }
3068 
3069 /** Set the input stream. This does not discard the current
3070  * input buffer.
3071  * @param _in_str A readable stream.
3072  *
3073  * @see yy_switch_to_buffer
3074  */
3075 void yyset_in (FILE *  _in_str )
3076 {
3077         yyin = _in_str ;
3078 }
3079 
3080 void yyset_out (FILE *  _out_str )
3081 {
3082         yyout = _out_str ;
3083 }
3084 
3085 int yyget_debug  (void)
3086 {
3087         return yy_flex_debug;
3088 }
3089 
3090 void yyset_debug (int  _bdebug )
3091 {
3092         yy_flex_debug = _bdebug ;
3093 }
3094 
3095 static int yy_init_globals (void)
3096 {
3097         /* Initialization is the same as for the non-reentrant scanner.
3098      * This function is called from yylex_destroy(), so don't allocate here.
3099      */
3100 
3101     (yy_buffer_stack) = NULL;
3102     (yy_buffer_stack_top) = 0;
3103     (yy_buffer_stack_max) = 0;
3104     (yy_c_buf_p) = NULL;
3105     (yy_init) = 0;
3106     (yy_start) = 0;
3107 
3108 /* Defined in main.c */
3109 #ifdef YY_STDINIT
3110     yyin = stdin;
3111     yyout = stdout;
3112 #else
3113     yyin = NULL;
3114     yyout = NULL;
3115 #endif
3116 
3117     /* For future reference: Set errno on error, since we are called by
3118      * yylex_init()
3119      */
3120     return 0;
3121 }
3122 
3123 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3124 int yylex_destroy  (void)
3125 {
3126 
3127     /* Pop the buffer stack, destroying each element. */
3128 	while(YY_CURRENT_BUFFER){
3129 		yy_delete_buffer(YY_CURRENT_BUFFER  );
3130 		YY_CURRENT_BUFFER_LVALUE = NULL;
3131 		yypop_buffer_state();
3132 	}
3133 
3134 	/* Destroy the stack itself. */
3135 	yyfree((yy_buffer_stack) );
3136 	(yy_buffer_stack) = NULL;
3137 
3138     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3139      * yylex() is called, initialization will occur. */
3140     yy_init_globals( );
3141 
3142     return 0;
3143 }
3144 
3145 /*
3146  * Internal utility routines.
3147  */
3148 
3149 #ifndef yytext_ptr
3150 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3151 {
3152 
3153 	int i;
3154 	for ( i = 0; i < n; ++i )
3155 		s1[i] = s2[i];
3156 }
3157 #endif
3158 
3159 #ifdef YY_NEED_STRLEN
3160 static int yy_flex_strlen (yyconst char * s )
3161 {
3162 	int n;
3163 	for ( n = 0; s[n]; ++n )
3164 		;
3165 
3166 	return n;
3167 }
3168 #endif
3169 
3170 void *yyalloc (yy_size_t  size )
3171 {
3172 			return malloc(size);
3173 }
3174 
3175 void *yyrealloc  (void * ptr, yy_size_t  size )
3176 {
3177 
3178 	/* The cast to (char *) in the following accommodates both
3179 	 * implementations that use char* generic pointers, and those
3180 	 * that use void* generic pointers.  It works with the latter
3181 	 * because both ANSI C and C++ allow castless assignment from
3182 	 * any pointer type to void*, and deal with argument conversions
3183 	 * as though doing an assignment.
3184 	 */
3185 	return realloc(ptr, size);
3186 }
3187 
3188 void yyfree (void * ptr )
3189 {
3190 			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
3191 }
3192 
3193 #define YYTABLES_NAME "yytables"
3194 
3195 #line 341 "configlexer.lex"
3196 
3197 
3198 
3199