1 #define yy_create_buffer ipcacfg_create_buffer
2 #define yy_delete_buffer ipcacfg_delete_buffer
3 #define yy_scan_buffer ipcacfg_scan_buffer
4 #define yy_scan_string ipcacfg_scan_string
5 #define yy_scan_bytes ipcacfg_scan_bytes
6 #define yy_flex_debug ipcacfg_flex_debug
7 #define yy_init_buffer ipcacfg_init_buffer
8 #define yy_flush_buffer ipcacfg_flush_buffer
9 #define yy_load_buffer_state ipcacfg_load_buffer_state
10 #define yy_switch_to_buffer ipcacfg_switch_to_buffer
11 #define yyin ipcacfgin
12 #define yyleng ipcacfgleng
13 #define yylex ipcacfglex
14 #define yyout ipcacfgout
15 #define yyrestart ipcacfgrestart
16 #define yytext ipcacfgtext
17 
18 #line 19 "cfglex.c"
19 /* A lexical scanner generated by flex */
20 
21 /* Scanner skeleton version:
22  * $Header: /cvsroot/ipcad/ipcad/cfglex.c,v 1.39 2006/03/27 13:57:29 vlm Exp $
23  */
24 
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 5
28 
29 #include <stdio.h>
30 
31 
32 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
33 #ifdef c_plusplus
34 #ifndef __cplusplus
35 #define __cplusplus
36 #endif
37 #endif
38 
39 
40 #ifdef __cplusplus
41 
42 #include <stdlib.h>
43 #include <unistd.h>
44 
45 /* Use prototypes in function declarations. */
46 #define YY_USE_PROTOS
47 
48 /* The "const" storage-class-modifier is valid. */
49 #define YY_USE_CONST
50 
51 #else	/* ! __cplusplus */
52 
53 #if __STDC__
54 
55 #define YY_USE_PROTOS
56 #define YY_USE_CONST
57 
58 #endif	/* __STDC__ */
59 #endif	/* ! __cplusplus */
60 
61 #ifdef __TURBOC__
62  #pragma warn -rch
63  #pragma warn -use
64 #include <io.h>
65 #include <stdlib.h>
66 #define YY_USE_CONST
67 #define YY_USE_PROTOS
68 #endif
69 
70 #ifdef YY_USE_CONST
71 #define yyconst const
72 #else
73 #define yyconst
74 #endif
75 
76 
77 #ifdef YY_USE_PROTOS
78 #define YY_PROTO(proto) proto
79 #else
80 #define YY_PROTO(proto) ()
81 #endif
82 
83 /* Returned upon end-of-file. */
84 #define YY_NULL 0
85 
86 /* Promotes a possibly negative, possibly signed char to an unsigned
87  * integer for use as an array index.  If the signed char is negative,
88  * we want to instead treat it as an 8-bit unsigned char, hence the
89  * double cast.
90  */
91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
92 
93 /* Enter a start condition.  This macro really ought to take a parameter,
94  * but we do it the disgusting crufty way forced on us by the ()-less
95  * definition of BEGIN.
96  */
97 #define BEGIN yy_start = 1 + 2 *
98 
99 /* Translate the current start state into a value that can be later handed
100  * to BEGIN to return to the state.  The YYSTATE alias is for lex
101  * compatibility.
102  */
103 #define YY_START ((yy_start - 1) / 2)
104 #define YYSTATE YY_START
105 
106 /* Action number for EOF rule of a given start state. */
107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
108 
109 /* Special action meaning "start processing a new file". */
110 #define YY_NEW_FILE yyrestart( yyin )
111 
112 #define YY_END_OF_BUFFER_CHAR 0
113 
114 /* Size of default input buffer. */
115 #define YY_BUF_SIZE 16384
116 
117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
118 
119 extern int yyleng;
120 extern FILE *yyin, *yyout;
121 
122 #define EOB_ACT_CONTINUE_SCAN 0
123 #define EOB_ACT_END_OF_FILE 1
124 #define EOB_ACT_LAST_MATCH 2
125 
126 /* The funky do-while in the following #define is used to turn the definition
127  * int a single C statement (which needs a semi-colon terminator).  This
128  * avoids problems with code like:
129  *
130  * 	if ( condition_holds )
131  *		yyless( 5 );
132  *	else
133  *		do_something_else();
134  *
135  * Prior to using the do-while the compiler would get upset at the
136  * "else" because it interpreted the "if" statement as being all
137  * done when it reached the ';' after the yyless() call.
138  */
139 
140 /* Return all but the first 'n' matched characters back to the input stream. */
141 
142 #define yyless(n) \
143 	do \
144 		{ \
145 		/* Undo effects of setting up yytext. */ \
146 		*yy_cp = yy_hold_char; \
147 		YY_RESTORE_YY_MORE_OFFSET \
148 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
149 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
150 		} \
151 	while ( 0 )
152 
153 #define unput(c) yyunput( c, yytext_ptr )
154 
155 /* The following is because we cannot portably get our hands on size_t
156  * (without autoconf's help, which isn't available because we want
157  * flex-generated scanners to compile on their own).
158  */
159 typedef unsigned int yy_size_t;
160 
161 
162 struct yy_buffer_state
163 	{
164 	FILE *yy_input_file;
165 
166 	char *yy_ch_buf;		/* input buffer */
167 	char *yy_buf_pos;		/* current position in input buffer */
168 
169 	/* Size of input buffer in bytes, not including room for EOB
170 	 * characters.
171 	 */
172 	yy_size_t yy_buf_size;
173 
174 	/* Number of characters read into yy_ch_buf, not including EOB
175 	 * characters.
176 	 */
177 	int yy_n_chars;
178 
179 	/* Whether we "own" the buffer - i.e., we know we created it,
180 	 * and can realloc() it to grow it, and should free() it to
181 	 * delete it.
182 	 */
183 	int yy_is_our_buffer;
184 
185 	/* Whether this is an "interactive" input source; if so, and
186 	 * if we're using stdio for input, then we want to use getc()
187 	 * instead of fread(), to make sure we stop fetching input after
188 	 * each newline.
189 	 */
190 	int yy_is_interactive;
191 
192 	/* Whether we're considered to be at the beginning of a line.
193 	 * If so, '^' rules will be active on the next match, otherwise
194 	 * not.
195 	 */
196 	int yy_at_bol;
197 
198 	/* Whether to try to fill the input buffer when we reach the
199 	 * end of it.
200 	 */
201 	int yy_fill_buffer;
202 
203 	int yy_buffer_status;
204 #define YY_BUFFER_NEW 0
205 #define YY_BUFFER_NORMAL 1
206 	/* When an EOF's been seen but there's still some text to process
207 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
208 	 * shouldn't try reading from the input source any more.  We might
209 	 * still have a bunch of tokens to match, though, because of
210 	 * possible backing-up.
211 	 *
212 	 * When we actually see the EOF, we change the status to "new"
213 	 * (via yyrestart()), so that the user can continue scanning by
214 	 * just pointing yyin at a new input file.
215 	 */
216 #define YY_BUFFER_EOF_PENDING 2
217 	};
218 
219 static YY_BUFFER_STATE yy_current_buffer = 0;
220 
221 /* We provide macros for accessing buffer states in case in the
222  * future we want to put the buffer states in a more general
223  * "scanner state".
224  */
225 #define YY_CURRENT_BUFFER yy_current_buffer
226 
227 
228 /* yy_hold_char holds the character lost when yytext is formed. */
229 static char yy_hold_char;
230 
231 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
232 
233 
234 int yyleng;
235 
236 /* Points to current character in buffer. */
237 static char *yy_c_buf_p = (char *) 0;
238 static int yy_init = 1;		/* whether we need to initialize */
239 static int yy_start = 0;	/* start state number */
240 
241 /* Flag which is used to allow yywrap()'s to do buffer switches
242  * instead of setting up a fresh yyin.  A bit of a hack ...
243  */
244 static int yy_did_buffer_switch_on_eof;
245 
246 void yyrestart YY_PROTO(( FILE *input_file ));
247 
248 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
249 void yy_load_buffer_state YY_PROTO(( void ));
250 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
251 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
252 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
253 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
254 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
255 
256 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
257 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
258 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
259 
260 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
261 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
262 static void yy_flex_free YY_PROTO(( void * ));
263 
264 #define yy_new_buffer yy_create_buffer
265 
266 #define yy_set_interactive(is_interactive) \
267 	{ \
268 	if ( ! yy_current_buffer ) \
269 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
270 	yy_current_buffer->yy_is_interactive = is_interactive; \
271 	}
272 
273 #define yy_set_bol(at_bol) \
274 	{ \
275 	if ( ! yy_current_buffer ) \
276 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
277 	yy_current_buffer->yy_at_bol = at_bol; \
278 	}
279 
280 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
281 
282 
283 #define yywrap() 1
284 #define YY_SKIP_YYWRAP
285 typedef unsigned char YY_CHAR;
286 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
287 typedef int yy_state_type;
288 extern char *yytext;
289 #define yytext_ptr yytext
290 
291 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
292 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
293 static int yy_get_next_buffer YY_PROTO(( void ));
294 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
295 
296 /* Done after the current pattern has been matched and before the
297  * corresponding action - sets up yytext.
298  */
299 #define YY_DO_BEFORE_ACTION \
300 	yytext_ptr = yy_bp; \
301 	yyleng = (int) (yy_cp - yy_bp); \
302 	yy_hold_char = *yy_cp; \
303 	*yy_cp = '\0'; \
304 	yy_c_buf_p = yy_cp;
305 
306 #define YY_NUM_RULES 76
307 #define YY_END_OF_BUFFER 77
308 static yyconst short int yy_accept[391] =
309     {   0,
310         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
311         0,    0,    0,    0,    0,    0,    0,    0,   77,   75,
312        74,   74,    8,   75,    6,    7,   75,   75,   75,   75,
313        75,   75,   75,   75,   75,   75,   75,   75,    2,    2,
314         4,    5,    5,    2,   73,   73,   75,   20,   28,   27,
315        27,   27,   27,   27,   27,   27,   27,   27,   12,   12,
316        12,   41,   32,   31,   41,   41,   41,   41,   41,   41,
317        41,   41,   41,   55,   57,   56,   57,   57,   57,   57,
318        57,   57,   57,   57,   57,   70,   68,   69,   75,   75,
319        75,   75,   75,   75,   75,   75,    8,    8,    1,    0,
320 
321         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
322         0,    0,    0,    0,    3,   73,    0,   29,   28,   27,
323        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
324        27,   12,    1,   41,   41,   41,   33,   41,   41,   41,
325        41,   35,   41,   36,   41,   41,   41,   41,   57,   56,
326        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
327        57,   57,   68,    0,    0,    0,    0,    0,    0,   59,
328         0,   60,    0,    0,   62,    0,    0,    0,   65,    0,
329         0,   61,    0,    0,    0,   30,    9,   64,    0,   27,
330        27,   27,   27,   17,   27,   27,   27,   15,   27,   41,
331 
332        41,   41,   41,   41,   41,   41,   41,    9,   41,   57,
333        57,   44,   57,   57,   57,   57,   57,   57,   57,   57,
334        57,    0,    0,    0,    0,    0,    0,   67,   62,    0,
335         0,   66,    0,    0,   61,    0,    0,   26,   27,   13,
336        27,   27,   27,   27,   16,   22,   18,   41,   41,   41,
337        41,   41,   41,   41,   37,   57,   44,   57,   57,   57,
338        57,   57,   57,   57,   57,   57,   72,    0,    0,    0,
339         0,   67,    0,    0,   66,   11,    0,    0,    0,   27,
340        27,   19,   21,   27,   22,   40,   41,   41,   41,   41,
341        41,   37,   37,   57,   44,   57,   57,   57,   57,   54,
342 
343        57,   57,   57,   57,   71,    0,    0,    0,   63,    0,
344         0,    0,   14,   25,   21,   21,   21,   27,   39,   41,
345        41,   41,   47,   57,   43,   57,   57,   57,   57,   57,
346        57,    0,    0,    0,   42,   10,   27,   38,   34,    0,
347        51,   57,    0,   57,   46,   45,    0,    0,    0,    0,
348         0,   48,    0,   57,    0,    0,    0,   53,    0,    0,
349         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
350        52,    0,    0,    0,    0,    0,    0,    0,   58,    0,
351         0,    0,   49,    0,    0,    0,   24,   23,   50,    0
352     } ;
353 
354 static yyconst int yy_ec[256] =
355     {   0,
356         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
357         4,    2,    2,    1,    1,    1,    1,    1,    1,    1,
358         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
359         1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
360         1,    7,    1,    8,    9,   10,   11,   12,   12,   12,
361        12,   12,   12,   12,   12,   12,   12,   13,   14,    1,
362        15,    1,    1,   16,   18,   19,   20,   21,   22,   23,
363        24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
364        34,   35,   36,   37,   38,   39,   40,   41,   42,   27,
365         1,    1,    1,    1,   17,    1,   18,   19,   20,   21,
366 
367        22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
368        32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
369        42,   27,    1,    1,    1,    1,    1,    1,    1,    1,
370         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
371         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
372         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
373         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
374         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
375         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
376         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
377 
378         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
379         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
380         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
381         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
382         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
383         1,    1,    1,    1,    1
384     } ;
385 
386 static yyconst int yy_meta[43] =
387     {   0,
388         1,    2,    2,    1,    1,    1,    3,    1,    4,    5,
389         6,    7,    1,    2,    1,    1,    8,    9,    9,    9,
390         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
391         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
392         9,    9
393     } ;
394 
395 static yyconst short int yy_base[411] =
396     {   0,
397         0,    0,   41,   47,   61,   78,   95,    0,  136,  140,
398       154,    0,  196,    0,  233,    0,  263,    0,  825,  826,
399       826,  826,  821,  816,  826,  826,  798,  783,   28,  782,
400       793,  118,  796,  795,  790,   37,  778,  788,  826,  826,
401       826,  802,  805,  826,    0,  804,  805,  826,  797,  243,
402       270,  271,  286,  294,  295,  297,  301,  319,    0,    0,
403       801,    0,  826,  826,  301,  789,   34,  775,  773,  122,
404        33,  778,  781,  826,    0,  790,  781,  225,  215,  218,
405       782,  781,  780,  771,  774,  826,   78,  788,  763,  756,
406       763,  126,  760,  758,  269,  767,  785,  826,  826,  763,
407 
408       763,  752,  749,  753,  761,  763,  743,  749,  741,  756,
409       746,  750,  745,  752,  826,    0,  767,  826,  759,  327,
410       303,  334,  335,  338,  342,  346,  349,  350,  362,  365,
411       364,    0,    0,    0,  740,  740,    0,  748,  293,  731,
412       748,    0,  742,    0,  734,  734,  740,  725,    0,  748,
413       722,  722,  720,  732,  722,  734,  735,  719,  731,  720,
414       719,  713,  255,  710,  711,  716,  713,  707,  724,  826,
415       718,  826,  704,  704,    0,  701,  705,  703,  826,  715,
416       712,    0,  710,  709,  710,  826,  826,  826,  279,  371,
417       383,  385,  391,  392,  394,  407,  409,  415,  418,  704,
418 
419       697,  700,  709,  684,  707,  705,  701,    0,  682,  695,
420       683,    0,  693,  686,  688,  696,  678,  686,  680,  690,
421       675,  678,  683,  676,  665,  688,  686,    0,    0,  666,
422       671,    0,  680,  666,    0,  671,  673,  321,  421,  424,
423       433,  436,  440,  442,  451,  453,  455,  667,  657,  658,
424       657,  675,  664,  660,  464,  652,  468,  659,  654,  670,
425       650,  654,  663,  655,  651,  656,  826,  646,  638,  658,
426       645,    0,  638,  635,    0,  826,  648,  634,  636,  472,
427       475,  476,  487,  483,  490,    0,  626,  625,  619,  625,
428       608,    0,  496,  620,  502,  619,  603,  599,  604,    0,
429 
430       584,  590,  577,  582,  826,  573,  538,  537,  826,  540,
431       517,  534,  504,  510,    0,  513,  522,  521,    0,  518,
432       532,  516,    0,  543,    0,  515,  511,  540,  517,  510,
433       515,  522,  534,  522,  826,  826,  528,    0,    0,  253,
434         0,  519,  510,  508,    0,    0,  491,  496,  425,  482,
435       459,    0,  467,  482,  454,  449,  448,  826,  431,  414,
436       407,  399,  382,  385,  391,  390,  378,  370,  373,  356,
437       826,  349,  347,  329,  341,  314,  296,  297,  826,  251,
438       254,  244,  826,  236,  219,  117,  826,  826,  826,  826,
439       561,  570,  579,  588,  594,  603,  610,  619,  624,  629,
440 
441        78,  635,   62,   38,  642,  648,  653,  660,  666,  672
442     } ;
443 
444 static yyconst short int yy_def[411] =
445     {   0,
446       390,    1,  391,  391,  392,  392,  390,    7,  393,  393,
447       390,   11,  390,   13,    1,   15,   15,   17,  390,  390,
448       390,  390,  394,  390,  390,  390,  390,  390,  390,  390,
449       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
450       390,  390,  390,  390,  395,  395,  396,  390,  390,  397,
451       397,  397,  397,  397,  397,  397,  397,  397,  398,  398,
452       398,  399,  390,  390,  399,  399,  399,  399,  399,  399,
453       399,  399,  399,  390,  400,  400,  400,  400,  400,  400,
454       400,  400,  400,  400,  400,  390,  390,  390,  390,  390,
455       390,  390,  390,  390,  390,  390,  394,  390,  390,  390,
456 
457       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
458       390,  390,  390,  390,  390,  395,  396,  390,  390,  390,
459       397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
460       397,  398,  398,  399,  399,  399,  399,  399,  399,  399,
461       399,  399,  399,  399,  399,  399,  399,  399,  400,  400,
462       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
463       400,  400,  390,  390,  390,  390,  390,  390,  390,  390,
464       390,  390,  390,  390,  401,  390,  390,  390,  390,  390,
465       390,  402,  390,  390,  390,  390,  390,  390,  390,  397,
466       397,  397,  397,  397,  397,  397,  397,  397,  397,  399,
467 
468       399,  399,  399,  399,  399,  399,  399,  399,  399,  400,
469       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
470       400,  390,  390,  390,  390,  390,  390,  403,  401,  390,
471       390,  404,  390,  390,  402,  390,  390,  390,  397,  397,
472       397,  397,  397,  397,  397,  405,  397,  399,  399,  399,
473       399,  399,  399,  399,  406,  400,  407,  400,  400,  400,
474       400,  400,  400,  400,  400,  400,  390,  390,  390,  390,
475       390,  403,  390,  390,  404,  390,  390,  390,  390,  397,
476       397,  397,  408,  397,  405,  399,  399,  399,  399,  399,
477       399,  409,  406,  400,  407,  400,  400,  400,  400,  400,
478 
479       400,  400,  400,  400,  390,  390,  390,  390,  390,  390,
480       390,  390,  397,  397,  410,  410,  408,  397,  399,  399,
481       399,  399,  400,  400,  400,  400,  400,  400,  400,  400,
482       400,  390,  390,  390,  390,  390,  397,  399,  399,  390,
483       400,  400,  390,  400,  400,  400,  390,  390,  390,  390,
484       390,  400,  390,  400,  390,  390,  390,  390,  390,  390,
485       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
486       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
487       390,  390,  390,  390,  390,  390,  390,  390,  390,    0,
488       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
489 
490       390,  390,  390,  390,  390,  390,  390,  390,  390,  390
491     } ;
492 
493 static yyconst short int yy_nxt[869] =
494     {   0,
495        20,   21,   22,   21,   20,   23,   20,   20,   20,   20,
496        24,   20,   20,   25,   26,   20,   20,   27,   28,   29,
497        30,   20,   20,   31,   20,   32,   20,   20,   20,   33,
498        34,   20,   35,   20,   36,   20,   37,   38,   20,   20,
499        20,   20,   40,   41,   40,  102,  275,   42,   40,   41,
500        40,   43,  103,   42,   44,  139,  111,   43,  145,  140,
501        44,   20,   21,   22,   21,   20,   20,   20,   20,  146,
502       272,   46,  112,   20,   25,   20,   20,   20,   20,   21,
503        22,   21,   20,   20,   20,   20,  229,  163,   46,  163,
504        20,   25,   20,   20,   20,   20,   21,   22,   21,   47,
505 
506        20,   20,   48,   20,   20,   24,   49,   20,   25,   20,
507        20,   20,   50,   50,   50,   51,   50,   52,   53,   50,
508        54,   50,   50,   50,   50,   55,   50,   56,   50,   50,
509        50,   57,   58,   50,   50,   50,   50,   21,   22,   60,
510       106,   21,   22,   60,  143,  389,   61,  167,  107,   25,
511        61,  168,  144,   25,   20,   21,   22,   21,   20,   20,
512        20,   20,   20,   62,   24,   62,   20,   25,   63,   64,
513        62,   65,   66,   62,   67,   68,   62,   62,   62,   62,
514        62,   62,   62,   62,   69,   70,   62,   62,   62,   62,
515        71,   62,   72,   62,   62,   73,   20,   21,   22,   21,
516 
517        20,   20,   20,   20,   74,   75,   24,   76,   20,   25,
518        20,   20,   75,   77,   75,   75,   78,   79,   75,   75,
519        75,   80,   75,   75,   75,   81,   75,   75,   82,   75,
520        75,   83,   84,   75,   85,   75,   75,   75,   20,  388,
521       156,   86,   87,   88,   87,  154,  152,   20,  157,  120,
522        20,   20,   20,   20,  120,  155,   20,  387,   89,  120,
523       153,  386,   20,   20,  163,   20,  163,   20,   90,   20,
524        20,   20,   20,   24,   20,  385,  120,  120,  350,  384,
525        91,  120,  120,   92,   93,  238,  120,  120,   20,  351,
526       238,  171,  120,   94,   95,  122,  123,  120,   20,  172,
527 
528       120,  120,  120,  120,   96,  120,  120,  120,  120,  120,
529       120,  120,  120,  120,  120,  203,  127,  120,  383,  120,
530       124,  135,  130,  204,  125,  120,  126,  238,  128,  136,
531       120,  129,  238,  120,  382,  120,  189,  137,  120,  189,
532       120,  120,  381,  120,  120,  120,  120,  131,  120,  120,
533       120,  120,  120,  120,  120,  120,  120,  120,  120,  380,
534       120,  120,  120,  191,  379,  120,  120,  378,  120,  192,
535       120,  120,  190,  120,  193,  120,  120,  120,  120,  194,
536       120,  120,  120,  377,  196,  195,  198,  120,  376,  120,
537       375,  120,  239,  197,  120,  199,  120,  120,  120,  120,
538 
539       120,  120,  120,  120,  240,  120,  374,  120,  120,  373,
540       120,  372,  371,  120,  370,  120,  244,  369,  120,  241,
541       120,  120,  242,  120,  120,  120,  120,  120,  243,  120,
542       120,  120,  120,  368,  120,  120,  367,  120,  246,  120,
543       120,  247,  120,  245,  120,  356,  120,  120,  120,  120,
544       366,  120,  120,  120,  281,  280,  120,  120,  120,  120,
545       357,  120,  120,  365,  120,  364,  120,  120,  282,  120,
546       284,  120,  292,  134,  363,  134,  283,  149,  120,  149,
547       134,  120,  120,  120,  149,  362,  120,  120,  120,  120,
548       361,  120,  120,  120,  120,  315,  120,  360,  120,  120,
549 
550       359,  120,  358,  316,  292,  134,  120,  134,  313,  314,
551       120,  149,  134,  149,  318,  120,  120,  276,  149,  120,
552       120,  120,  189,  355,  120,  189,  120,  120,  120,  316,
553       315,  354,  120,  120,  120,  353,  349,  120,  316,  120,
554       352,  348,  347,  170,  120,  346,  345,  344,  343,  342,
555       341,  340,  339,  142,  338,  336,  335,  334,  333,  172,
556       337,   39,   39,   39,   39,   39,   39,   39,   39,   39,
557        45,   45,   45,   45,   45,   45,   45,   45,   45,   59,
558        59,   59,   59,   59,   59,   59,   59,   59,   97,   97,
559        97,   97,   97,   97,   97,   97,   97,  116,  116,  116,
560 
561       116,  332,  116,  117,  117,  117,  117,  117,  117,  117,
562       117,  117,  121,  331,  330,  329,  121,  121,  121,  132,
563       328,  132,  132,  132,  132,  132,  132,  132,  134,  327,
564       134,  134,  134,  149,  326,  149,  149,  149,  235,  325,
565       324,  323,  235,  235,  285,  322,  144,  321,  285,  285,
566       285,  293,  293,  320,  293,  293,  293,  295,  319,  295,
567       295,  295,  317,  317,  312,  311,  317,  317,  317,  292,
568       310,  309,  308,  307,  292,  315,  306,  172,  305,  315,
569       315,  304,  303,  302,  301,  300,  299,  298,  297,  296,
570       294,  291,  290,  289,  288,  287,  144,  286,  279,  278,
571 
572       277,  276,  274,  273,  271,  270,  170,  269,  268,  267,
573       266,  265,  264,  263,  262,  261,  260,  259,  258,  257,
574       256,  255,  254,  253,  252,  142,  251,  250,  249,  248,
575       186,  237,  236,  234,  233,  232,  231,  230,  228,  172,
576       170,  227,  226,  225,  224,  223,  222,  221,  220,  219,
577       218,  217,  216,  215,  214,  213,  212,  211,  210,  150,
578       144,  209,  208,  207,  142,  206,  205,  202,  201,  200,
579       119,  118,  188,  187,  186,  185,  184,  183,  182,  181,
580       180,  179,  178,  177,  176,  175,  174,   98,  173,  170,
581       169,  166,  165,  164,   99,  162,  161,  160,  159,  158,
582 
583       151,  150,  148,  147,  142,  141,  138,  133,  119,  118,
584        99,   99,  115,  114,  113,  110,  109,  108,  105,  104,
585       101,  100,   99,   98,  390,   19,  390,  390,  390,  390,
586       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
587       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
588       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
589       390,  390,  390,  390,  390,  390,  390,  390
590     } ;
591 
592 static yyconst short int yy_chk[869] =
593     {   0,
594         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
595         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
596         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
597         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
598         1,    1,    3,    3,    3,   29,  404,    3,    4,    4,
599         4,    3,   29,    4,    3,   67,   36,    4,   71,   67,
600         4,    5,    5,    5,    5,    5,    5,    5,    5,   71,
601       403,    5,   36,    5,    5,    5,    5,    5,    6,    6,
602         6,    6,    6,    6,    6,    6,  401,   87,    6,   87,
603         6,    6,    6,    6,    6,    7,    7,    7,    7,    7,
604 
605         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
606         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
607         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
608         7,    7,    7,    7,    7,    7,    7,    9,    9,    9,
609        32,   10,   10,   10,   70,  386,    9,   92,   32,    9,
610        10,   92,   70,   10,   11,   11,   11,   11,   11,   11,
611        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
612        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
613        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
614        11,   11,   11,   11,   11,   11,   13,   13,   13,   13,
615 
616        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
617        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
618        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
619        13,   13,   13,   13,   13,   13,   13,   13,   15,  385,
620        80,   15,   15,   15,   15,   79,   78,   15,   80,   50,
621        15,   15,   15,   15,   50,   79,   15,  384,   15,   50,
622        78,  382,   15,   15,  163,   15,  163,   15,   15,   15,
623        15,   17,   17,   17,   17,  381,   51,   52,  340,  380,
624        17,   51,   52,   17,   17,  189,   51,   52,   17,  340,
625       189,   95,   53,   17,   17,   51,   52,   53,   17,   95,
626 
627        54,   55,   53,   56,   17,   54,   55,   57,   56,  121,
628        54,   55,   57,   56,  121,  139,   55,   57,  378,  121,
629        53,   65,   57,  139,   54,   58,   54,  238,   56,   65,
630        58,   56,  238,  120,  377,   58,  120,   65,  120,  120,
631       122,  123,  376,  120,  124,  122,  123,   58,  125,  124,
632       122,  123,  126,  125,  124,  127,  128,  126,  125,  375,
633       127,  128,  126,  123,  374,  127,  128,  373,  129,  124,
634       131,  130,  122,  129,  125,  131,  130,  190,  129,  126,
635       131,  130,  190,  372,  128,  127,  130,  190,  370,  191,
636       369,  192,  190,  129,  191,  131,  192,  193,  194,  191,
637 
638       195,  192,  193,  194,  191,  195,  368,  193,  194,  367,
639       195,  366,  365,  196,  364,  197,  195,  363,  196,  191,
640       197,  198,  192,  196,  199,  197,  198,  239,  193,  199,
641       240,  198,  239,  362,  199,  240,  361,  239,  197,  241,
642       240,  199,  242,  196,  241,  349,  243,  242,  244,  241,
643       360,  243,  242,  244,  241,  239,  243,  245,  244,  246,
644       349,  247,  245,  359,  246,  357,  247,  245,  242,  246,
645       244,  247,  255,  255,  356,  255,  243,  257,  280,  257,
646       255,  281,  282,  280,  257,  355,  281,  282,  280,  284,
647       354,  281,  282,  283,  284,  283,  285,  353,  283,  284,
648 
649       351,  285,  350,  283,  293,  293,  285,  293,  280,  281,
650       313,  295,  293,  295,  284,  313,  314,  348,  295,  316,
651       313,  314,  316,  347,  316,  316,  314,  318,  317,  316,
652       317,  344,  318,  317,  337,  343,  337,  318,  317,  337,
653       342,  334,  333,  332,  337,  331,  330,  329,  328,  327,
654       326,  324,  322,  321,  320,  312,  311,  310,  308,  307,
655       318,  391,  391,  391,  391,  391,  391,  391,  391,  391,
656       392,  392,  392,  392,  392,  392,  392,  392,  392,  393,
657       393,  393,  393,  393,  393,  393,  393,  393,  394,  394,
658       394,  394,  394,  394,  394,  394,  394,  395,  395,  395,
659 
660       395,  306,  395,  396,  396,  396,  396,  396,  396,  396,
661       396,  396,  397,  304,  303,  302,  397,  397,  397,  398,
662       301,  398,  398,  398,  398,  398,  398,  398,  399,  299,
663       399,  399,  399,  400,  298,  400,  400,  400,  402,  297,
664       296,  294,  402,  402,  405,  291,  290,  289,  405,  405,
665       405,  406,  406,  288,  406,  406,  406,  407,  287,  407,
666       407,  407,  408,  408,  279,  278,  408,  408,  408,  409,
667       277,  274,  273,  271,  409,  410,  270,  269,  268,  410,
668       410,  266,  265,  264,  263,  262,  261,  260,  259,  258,
669       256,  254,  253,  252,  251,  250,  249,  248,  237,  236,
670 
671       234,  233,  231,  230,  227,  226,  225,  224,  223,  222,
672       221,  220,  219,  218,  217,  216,  215,  214,  213,  211,
673       210,  209,  207,  206,  205,  204,  203,  202,  201,  200,
674       185,  184,  183,  181,  180,  178,  177,  176,  174,  173,
675       171,  169,  168,  167,  166,  165,  164,  162,  161,  160,
676       159,  158,  157,  156,  155,  154,  153,  152,  151,  150,
677       148,  147,  146,  145,  143,  141,  140,  138,  136,  135,
678       119,  117,  114,  113,  112,  111,  110,  109,  108,  107,
679       106,  105,  104,  103,  102,  101,  100,   97,   96,   94,
680        93,   91,   90,   89,   88,   85,   84,   83,   82,   81,
681 
682        77,   76,   73,   72,   69,   68,   66,   61,   49,   47,
683        46,   43,   42,   38,   37,   35,   34,   33,   31,   30,
684        28,   27,   24,   23,   19,  390,  390,  390,  390,  390,
685       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
686       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
687       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
688       390,  390,  390,  390,  390,  390,  390,  390
689     } ;
690 
691 static yy_state_type yy_last_accepting_state;
692 static char *yy_last_accepting_cpos;
693 
694 /* The intent behind this definition is that it'll catch
695  * any uses of REJECT which flex missed.
696  */
697 #define REJECT reject_used_but_not_detected
698 #define yymore() yymore_used_but_not_detected
699 #define YY_MORE_ADJ 0
700 #define YY_RESTORE_YY_MORE_OFFSET
701 char *yytext;
702 #line 1 "cfglex.l"
703 #define INITIAL 0
704 #line 2 "cfglex.l"
705 
706 #include "headers.h"
707 #include "cfgy.h"
708 
709 int ipcacfglineno = 1;
710 
711 #define YY_NEVER_INTERACTIVE 1
712 #define YY_NO_INPUT 1
713 #define YY_NO_UNPUT 1
714 #define YY_STACK_USED 1
715 #define comment 1
716 
717 #define string 2
718 
719 #define ifbody 3
720 
721 #define filename 4
722 
723 #define rshdef 5
724 
725 #define nflowdef 6
726 
727 #define aggr 7
728 
729 #define cports 8
730 
731 #line 732 "cfglex.c"
732 
733 /* Macros after this point can all be overridden by user definitions in
734  * section 1.
735  */
736 
737 #ifndef YY_SKIP_YYWRAP
738 #ifdef __cplusplus
739 extern "C" int yywrap YY_PROTO(( void ));
740 #else
741 extern int yywrap YY_PROTO(( void ));
742 #endif
743 #endif
744 
745 #ifndef YY_NO_UNPUT
746 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
747 #endif
748 
749 #ifndef yytext_ptr
750 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
751 #endif
752 
753 #ifdef YY_NEED_STRLEN
754 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
755 #endif
756 
757 #ifndef YY_NO_INPUT
758 #ifdef __cplusplus
759 static int yyinput YY_PROTO(( void ));
760 #else
761 static int input YY_PROTO(( void ));
762 #endif
763 #endif
764 
765 #if YY_STACK_USED
766 static int yy_start_stack_ptr = 0;
767 static int yy_start_stack_depth = 0;
768 static int *yy_start_stack = 0;
769 #ifndef YY_NO_PUSH_STATE
770 static void yy_push_state YY_PROTO(( int new_state ));
771 #endif
772 #ifndef YY_NO_POP_STATE
773 static void yy_pop_state YY_PROTO(( void ));
774 #endif
775 #ifndef YY_NO_TOP_STATE
776 static int yy_top_state YY_PROTO(( void ));
777 #endif
778 
779 #else
780 #define YY_NO_PUSH_STATE 1
781 #define YY_NO_POP_STATE 1
782 #define YY_NO_TOP_STATE 1
783 #endif
784 
785 #ifdef YY_MALLOC_DECL
786 YY_MALLOC_DECL
787 #else
788 #if __STDC__
789 #ifndef __cplusplus
790 #include <stdlib.h>
791 #endif
792 #else
793 /* Just try to get by without declaring the routines.  This will fail
794  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
795  * or sizeof(void*) != sizeof(int).
796  */
797 #endif
798 #endif
799 
800 /* Amount of stuff to slurp up with each read. */
801 #ifndef YY_READ_BUF_SIZE
802 #define YY_READ_BUF_SIZE 8192
803 #endif
804 
805 /* Copy whatever the last rule matched to the standard output. */
806 
807 #ifndef ECHO
808 /* This used to be an fputs(), but since the string might contain NUL's,
809  * we now use fwrite().
810  */
811 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
812 #endif
813 
814 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
815  * is returned in "result".
816  */
817 #ifndef YY_INPUT
818 #define YY_INPUT(buf,result,max_size) \
819 	if ( yy_current_buffer->yy_is_interactive ) \
820 		{ \
821 		int c = '*', n; \
822 		for ( n = 0; n < max_size && \
823 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
824 			buf[n] = (char) c; \
825 		if ( c == '\n' ) \
826 			buf[n++] = (char) c; \
827 		if ( c == EOF && ferror( yyin ) ) \
828 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
829 		result = n; \
830 		} \
831 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
832 		  && ferror( yyin ) ) \
833 		YY_FATAL_ERROR( "input in flex scanner failed" );
834 #endif
835 
836 /* No semi-colon after return; correct usage is to write "yyterminate();" -
837  * we don't want an extra ';' after the "return" because that will cause
838  * some compilers to complain about unreachable statements.
839  */
840 #ifndef yyterminate
841 #define yyterminate() return YY_NULL
842 #endif
843 
844 /* Number of entries by which start-condition stack grows. */
845 #ifndef YY_START_STACK_INCR
846 #define YY_START_STACK_INCR 25
847 #endif
848 
849 /* Report a fatal error. */
850 #ifndef YY_FATAL_ERROR
851 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
852 #endif
853 
854 /* Default declaration of generated scanner - a define so the user can
855  * easily add parameters.
856  */
857 #ifndef YY_DECL
858 #define YY_DECL int yylex YY_PROTO(( void ))
859 #endif
860 
861 /* Code executed at the beginning of each rule, after yytext and yyleng
862  * have been set up.
863  */
864 #ifndef YY_USER_ACTION
865 #define YY_USER_ACTION
866 #endif
867 
868 /* Code executed at the end of each rule. */
869 #ifndef YY_BREAK
870 #define YY_BREAK break;
871 #endif
872 
873 #define YY_RULE_SETUP \
874 	YY_USER_ACTION
875 
876 YY_DECL
877 	{
878 	register yy_state_type yy_current_state;
879 	register char *yy_cp, *yy_bp;
880 	register int yy_act;
881 
882 #line 26 "cfglex.l"
883 
884 
885 #line 886 "cfglex.c"
886 
887 	if ( yy_init )
888 		{
889 		yy_init = 0;
890 
891 #ifdef YY_USER_INIT
892 		YY_USER_INIT;
893 #endif
894 
895 		if ( ! yy_start )
896 			yy_start = 1;	/* first start state */
897 
898 		if ( ! yyin )
899 			yyin = stdin;
900 
901 		if ( ! yyout )
902 			yyout = stdout;
903 
904 		if ( ! yy_current_buffer )
905 			yy_current_buffer =
906 				yy_create_buffer( yyin, YY_BUF_SIZE );
907 
908 		yy_load_buffer_state();
909 		}
910 
911 	while ( 1 )		/* loops until end-of-file is reached */
912 		{
913 		yy_cp = yy_c_buf_p;
914 
915 		/* Support of yytext. */
916 		*yy_cp = yy_hold_char;
917 
918 		/* yy_bp points to the position in yy_ch_buf of the start of
919 		 * the current run.
920 		 */
921 		yy_bp = yy_cp;
922 
923 		yy_current_state = yy_start;
924 yy_match:
925 		do
926 			{
927 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
928 			if ( yy_accept[yy_current_state] )
929 				{
930 				yy_last_accepting_state = yy_current_state;
931 				yy_last_accepting_cpos = yy_cp;
932 				}
933 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
934 				{
935 				yy_current_state = (int) yy_def[yy_current_state];
936 				if ( yy_current_state >= 391 )
937 					yy_c = yy_meta[(unsigned int) yy_c];
938 				}
939 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
940 			++yy_cp;
941 			}
942 		while ( yy_base[yy_current_state] != 826 );
943 
944 yy_find_action:
945 		yy_act = yy_accept[yy_current_state];
946 		if ( yy_act == 0 )
947 			{ /* have to back up */
948 			yy_cp = yy_last_accepting_cpos;
949 			yy_current_state = yy_last_accepting_state;
950 			yy_act = yy_accept[yy_current_state];
951 			}
952 
953 		YY_DO_BEFORE_ACTION;
954 
955 
956 do_action:	/* This label is used only to access EOF actions. */
957 
958 
959 		switch ( yy_act )
960 	{ /* beginning of action switch */
961 			case 0: /* must back up */
962 			/* undo the effects of YY_DO_BEFORE_ACTION */
963 			*yy_cp = yy_hold_char;
964 			yy_cp = yy_last_accepting_cpos;
965 			yy_current_state = yy_last_accepting_state;
966 			goto yy_find_action;
967 
968 case 1:
969 YY_RULE_SETUP
970 #line 28 "cfglex.l"
971 yy_push_state(comment);
972 	YY_BREAK
973 
974 case 2:
975 YY_RULE_SETUP
976 #line 30 "cfglex.l"
977 /* Eat */
978 	YY_BREAK
979 case 3:
980 YY_RULE_SETUP
981 #line 31 "cfglex.l"
982 yy_pop_state();
983 	YY_BREAK
984 case 4:
985 YY_RULE_SETUP
986 #line 32 "cfglex.l"
987 ipcacfglineno++;
988 	YY_BREAK
989 case 5:
990 YY_RULE_SETUP
991 #line 33 "cfglex.l"
992 /* Eat */
993 	YY_BREAK
994 
995 case 6:
996 YY_RULE_SETUP
997 #line 36 "cfglex.l"
998 { while(YY_START) yy_pop_state(); yy_top_state(); return SEMICOLON; }
999 	YY_BREAK
1000 case 7:
1001 YY_RULE_SETUP
1002 #line 37 "cfglex.l"
1003 { yy_push_state(string); return EQ; }
1004 	YY_BREAK
1005 case 8:
1006 YY_RULE_SETUP
1007 #line 39 "cfglex.l"
1008 {
1009 		if(yytext[yyleng-1] == '\n')
1010 			ipcacfglineno++;
1011 	}
1012 	YY_BREAK
1013 case 9:
1014 YY_RULE_SETUP
1015 #line 44 "cfglex.l"
1016 { return TTL; }
1017 	YY_BREAK
1018 case 10:
1019 YY_RULE_SETUP
1020 #line 45 "cfglex.l"
1021 { return PIDFILE; }
1022 	YY_BREAK
1023 case 11:
1024 YY_RULE_SETUP
1025 #line 47 "cfglex.l"
1026 {
1027 		yy_push_state(ifbody);
1028 		return IFACE;
1029 	}
1030 	YY_BREAK
1031 
1032 case 12:
1033 YY_RULE_SETUP
1034 #line 52 "cfglex.l"
1035 {
1036 		ipcacfglval.tv_char = strdup(yytext);
1037 		yy_pop_state();
1038 		return TOK_STRING;
1039 	}
1040 	YY_BREAK
1041 
1042 
1043 case 13:
1044 YY_RULE_SETUP
1045 #line 59 "cfglex.l"
1046 yy_push_state(filename); return IFILE;	/* PCAP file */
1047 	YY_BREAK
1048 case 14:
1049 YY_RULE_SETUP
1050 #line 60 "cfglex.l"
1051 return DIVERT;	/* BSD's ipfw(8) divert(4) */
1052 	YY_BREAK
1053 case 15:
1054 YY_RULE_SETUP
1055 #line 61 "cfglex.l"
1056 return TEE;	/* BSD's ipfw(8), grep tee */
1057 	YY_BREAK
1058 case 16:
1059 YY_RULE_SETUP
1060 #line 62 "cfglex.l"
1061 return PORT;	/* port for divert(4) and tee. */
1062 	YY_BREAK
1063 case 17:
1064 YY_RULE_SETUP
1065 #line 63 "cfglex.l"
1066 return IPQ;	/* Linux libipq(3) */
1067 	YY_BREAK
1068 case 18:
1069 YY_RULE_SETUP
1070 #line 64 "cfglex.l"
1071 return ULOG;	/* Linux ULOG */
1072 	YY_BREAK
1073 case 19:
1074 YY_RULE_SETUP
1075 #line 65 "cfglex.l"
1076 return GROUP;	/* ULOG group */
1077 	YY_BREAK
1078 case 20:
1079 YY_RULE_SETUP
1080 #line 66 "cfglex.l"
1081 return ',';	/* ULOG groups are comma separated */
1082 	YY_BREAK
1083 case 21:
1084 YY_RULE_SETUP
1085 #line 68 "cfglex.l"
1086 return INONLY;
1087 	YY_BREAK
1088 case 22:
1089 YY_RULE_SETUP
1090 #line 69 "cfglex.l"
1091 return PROMISC;
1092 	YY_BREAK
1093 case 23:
1094 YY_RULE_SETUP
1095 #line 70 "cfglex.l"
1096 return NETFLOW_SAMPLED;
1097 	YY_BREAK
1098 case 24:
1099 YY_RULE_SETUP
1100 #line 71 "cfglex.l"
1101 return NETFLOW_DISABLE;
1102 	YY_BREAK
1103 case 25:
1104 YY_RULE_SETUP
1105 #line 72 "cfglex.l"
1106 return FILTER;
1107 	YY_BREAK
1108 case 26:
1109 YY_RULE_SETUP
1110 #line 74 "cfglex.l"
1111 {
1112 		ipcacfglval.tv_char = strdup(yytext);
1113 		return TOK_STRING;
1114 	}
1115 	YY_BREAK
1116 case 27:
1117 YY_RULE_SETUP
1118 #line 78 "cfglex.l"
1119 {
1120 		ipcacfglval.tv_char = strdup(yytext);
1121 		return TOK_STRING;
1122 	}
1123 	YY_BREAK
1124 case 28:
1125 YY_RULE_SETUP
1126 #line 82 "cfglex.l"
1127 {
1128 		ipcacfglval.tv_int = atoi(yytext);
1129 		return TOK_INTEGER;
1130 	}
1131 	YY_BREAK
1132 case 29:
1133 YY_RULE_SETUP
1134 #line 87 "cfglex.l"
1135 {
1136 		yytext[yyleng-1] = '\0';
1137 		ipcacfglval.tv_char = strdup(yytext+1);
1138 		return TOK_STRING;
1139 	}
1140 	YY_BREAK
1141 
1142 case 30:
1143 YY_RULE_SETUP
1144 #line 94 "cfglex.l"
1145 { yy_push_state(rshdef); return RSH; }
1146 	YY_BREAK
1147 
1148 case 31:
1149 YY_RULE_SETUP
1150 #line 97 "cfglex.l"
1151 return AT;
1152 	YY_BREAK
1153 case 32:
1154 YY_RULE_SETUP
1155 #line 98 "cfglex.l"
1156 { yy_push_state(string); return EQ; }
1157 	YY_BREAK
1158 case 33:
1159 YY_RULE_SETUP
1160 #line 99 "cfglex.l"
1161 return AT;
1162 	YY_BREAK
1163 case 34:
1164 YY_RULE_SETUP
1165 #line 100 "cfglex.l"
1166 { yy_pop_state(); return TIMEOUT; }
1167 	YY_BREAK
1168 case 35:
1169 YY_RULE_SETUP
1170 #line 102 "cfglex.l"
1171 return DENY;
1172 	YY_BREAK
1173 case 36:
1174 YY_RULE_SETUP
1175 #line 103 "cfglex.l"
1176 return ALLOW;
1177 	YY_BREAK
1178 case 37:
1179 YY_RULE_SETUP
1180 #line 104 "cfglex.l"
1181 return VIEW_ONLY;
1182 	YY_BREAK
1183 case 38:
1184 YY_RULE_SETUP
1185 #line 105 "cfglex.l"
1186 return DEFAULT;
1187 	YY_BREAK
1188 case 39:
1189 YY_RULE_SETUP
1190 #line 106 "cfglex.l"
1191 return BACKUP;
1192 	YY_BREAK
1193 case 40:
1194 YY_RULE_SETUP
1195 #line 107 "cfglex.l"
1196 return ADMIN;
1197 	YY_BREAK
1198 case 41:
1199 YY_RULE_SETUP
1200 #line 109 "cfglex.l"
1201 {
1202 		ipcacfglval.tv_char = strdup(yytext);
1203 		return TOK_STRING;
1204 	}
1205 	YY_BREAK
1206 
1207 case 42:
1208 YY_RULE_SETUP
1209 #line 115 "cfglex.l"
1210 { yy_push_state(nflowdef); return NETFLOW; }
1211 	YY_BREAK
1212 
1213 case 43:
1214 YY_RULE_SETUP
1215 #line 117 "cfglex.l"
1216 return EXPORT;
1217 	YY_BREAK
1218 case 44:
1219 YY_RULE_SETUP
1220 #line 118 "cfglex.l"
1221 return DESTINATION;
1222 	YY_BREAK
1223 case 45:
1224 YY_RULE_SETUP
1225 #line 119 "cfglex.l"
1226 return VERSION;
1227 	YY_BREAK
1228 case 46:
1229 YY_RULE_SETUP
1230 #line 120 "cfglex.l"
1231 return TIMEOUT;
1232 	YY_BREAK
1233 case 47:
1234 YY_RULE_SETUP
1235 #line 121 "cfglex.l"
1236 return ACTIVE;
1237 	YY_BREAK
1238 case 48:
1239 YY_RULE_SETUP
1240 #line 122 "cfglex.l"
1241 return INACTIVE;
1242 	YY_BREAK
1243 case 49:
1244 YY_RULE_SETUP
1245 #line 123 "cfglex.l"
1246 return SAMPLING_MODE;
1247 	YY_BREAK
1248 case 50:
1249 YY_RULE_SETUP
1250 #line 124 "cfglex.l"
1251 return PACKET_INTERVAL;
1252 	YY_BREAK
1253 case 51:
1254 YY_RULE_SETUP
1255 #line 125 "cfglex.l"
1256 return IFCLASS;
1257 	YY_BREAK
1258 case 52:
1259 YY_RULE_SETUP
1260 #line 126 "cfglex.l"
1261 return ENGINE_TYPE;
1262 	YY_BREAK
1263 case 53:
1264 YY_RULE_SETUP
1265 #line 127 "cfglex.l"
1266 return ENGINE_ID;
1267 	YY_BREAK
1268 case 54:
1269 YY_RULE_SETUP
1270 #line 128 "cfglex.l"
1271 return MAPTO;
1272 	YY_BREAK
1273 case 55:
1274 YY_RULE_SETUP
1275 #line 129 "cfglex.l"
1276 return	'-';
1277 	YY_BREAK
1278 case 56:
1279 YY_RULE_SETUP
1280 #line 131 "cfglex.l"
1281 {
1282 		ipcacfglval.tv_int = atoi(yytext);
1283 		return TOK_INTEGER;
1284 		}
1285 	YY_BREAK
1286 case 57:
1287 YY_RULE_SETUP
1288 #line 135 "cfglex.l"
1289 {
1290 		ipcacfglval.tv_char = strdup(yytext);
1291 		return TOK_STRING;
1292 	}
1293 	YY_BREAK
1294 
1295 case 58:
1296 YY_RULE_SETUP
1297 #line 141 "cfglex.l"
1298 { yy_push_state(cports); return CAPTURE_PORTS; }
1299 	YY_BREAK
1300 
1301 case 59:
1302 YY_RULE_SETUP
1303 #line 143 "cfglex.l"
1304 return DENY;
1305 	YY_BREAK
1306 case 60:
1307 YY_RULE_SETUP
1308 #line 144 "cfglex.l"
1309 return ALLOW;
1310 	YY_BREAK
1311 
1312 case 61:
1313 YY_RULE_SETUP
1314 #line 147 "cfglex.l"
1315 return MEMSIZE;
1316 	YY_BREAK
1317 case 62:
1318 YY_RULE_SETUP
1319 #line 148 "cfglex.l"
1320 return BUFFERS;
1321 	YY_BREAK
1322 case 63:
1323 YY_RULE_SETUP
1324 #line 149 "cfglex.l"
1325 return CHROOT;
1326 	YY_BREAK
1327 case 64:
1328 YY_RULE_SETUP
1329 #line 150 "cfglex.l"
1330 return UID;
1331 	YY_BREAK
1332 case 65:
1333 YY_RULE_SETUP
1334 #line 151 "cfglex.l"
1335 return GID;
1336 	YY_BREAK
1337 case 66:
1338 YY_RULE_SETUP
1339 #line 152 "cfglex.l"
1340 return DUMP;
1341 	YY_BREAK
1342 case 67:
1343 YY_RULE_SETUP
1344 #line 154 "cfglex.l"
1345 { yy_push_state(aggr); return AGGR; }
1346 	YY_BREAK
1347 
1348 case 68:
1349 YY_RULE_SETUP
1350 #line 156 "cfglex.l"
1351 {
1352 		ipcacfglval.tv_char = strdup(yytext);
1353 		return TOK_STRING;
1354 	}
1355 	YY_BREAK
1356 case 69:
1357 YY_RULE_SETUP
1358 #line 160 "cfglex.l"
1359 return SLASH;
1360 	YY_BREAK
1361 case 70:
1362 YY_RULE_SETUP
1363 #line 161 "cfglex.l"
1364 return	'-';
1365 	YY_BREAK
1366 case 71:
1367 YY_RULE_SETUP
1368 #line 162 "cfglex.l"
1369 return STRIP;
1370 	YY_BREAK
1371 case 72:
1372 YY_RULE_SETUP
1373 #line 163 "cfglex.l"
1374 return INTO;
1375 	YY_BREAK
1376 
1377 case 73:
1378 YY_RULE_SETUP
1379 #line 166 "cfglex.l"
1380 {
1381 		ipcacfglval.tv_char = strdup(yytext);
1382 		return TOK_STRING;
1383 	}
1384 	YY_BREAK
1385 case 74:
1386 YY_RULE_SETUP
1387 #line 171 "cfglex.l"
1388 {
1389 		if(*yytext == '\n')
1390 			ipcacfglineno++;
1391 	}
1392 	YY_BREAK
1393 case 75:
1394 YY_RULE_SETUP
1395 #line 176 "cfglex.l"
1396 { return ERROR; }
1397 	YY_BREAK
1398 case YY_STATE_EOF(INITIAL):
1399 case YY_STATE_EOF(comment):
1400 case YY_STATE_EOF(string):
1401 case YY_STATE_EOF(ifbody):
1402 case YY_STATE_EOF(filename):
1403 case YY_STATE_EOF(rshdef):
1404 case YY_STATE_EOF(nflowdef):
1405 case YY_STATE_EOF(aggr):
1406 case YY_STATE_EOF(cports):
1407 #line 178 "cfglex.l"
1408 { yyterminate(); }
1409 	YY_BREAK
1410 case 76:
1411 YY_RULE_SETUP
1412 #line 180 "cfglex.l"
1413 YY_FATAL_ERROR( "flex scanner jammed" );
1414 	YY_BREAK
1415 #line 1416 "cfglex.c"
1416 
1417 	case YY_END_OF_BUFFER:
1418 		{
1419 		/* Amount of text matched not including the EOB char. */
1420 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1421 
1422 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1423 		*yy_cp = yy_hold_char;
1424 		YY_RESTORE_YY_MORE_OFFSET
1425 
1426 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1427 			{
1428 			/* We're scanning a new file or input source.  It's
1429 			 * possible that this happened because the user
1430 			 * just pointed yyin at a new source and called
1431 			 * yylex().  If so, then we have to assure
1432 			 * consistency between yy_current_buffer and our
1433 			 * globals.  Here is the right place to do so, because
1434 			 * this is the first action (other than possibly a
1435 			 * back-up) that will match for the new input source.
1436 			 */
1437 			yy_n_chars = yy_current_buffer->yy_n_chars;
1438 			yy_current_buffer->yy_input_file = yyin;
1439 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1440 			}
1441 
1442 		/* Note that here we test for yy_c_buf_p "<=" to the position
1443 		 * of the first EOB in the buffer, since yy_c_buf_p will
1444 		 * already have been incremented past the NUL character
1445 		 * (since all states make transitions on EOB to the
1446 		 * end-of-buffer state).  Contrast this with the test
1447 		 * in input().
1448 		 */
1449 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1450 			{ /* This was really a NUL. */
1451 			yy_state_type yy_next_state;
1452 
1453 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1454 
1455 			yy_current_state = yy_get_previous_state();
1456 
1457 			/* Okay, we're now positioned to make the NUL
1458 			 * transition.  We couldn't have
1459 			 * yy_get_previous_state() go ahead and do it
1460 			 * for us because it doesn't know how to deal
1461 			 * with the possibility of jamming (and we don't
1462 			 * want to build jamming into it because then it
1463 			 * will run more slowly).
1464 			 */
1465 
1466 			yy_next_state = yy_try_NUL_trans( yy_current_state );
1467 
1468 			yy_bp = yytext_ptr + YY_MORE_ADJ;
1469 
1470 			if ( yy_next_state )
1471 				{
1472 				/* Consume the NUL. */
1473 				yy_cp = ++yy_c_buf_p;
1474 				yy_current_state = yy_next_state;
1475 				goto yy_match;
1476 				}
1477 
1478 			else
1479 				{
1480 				yy_cp = yy_c_buf_p;
1481 				goto yy_find_action;
1482 				}
1483 			}
1484 
1485 		else switch ( yy_get_next_buffer() )
1486 			{
1487 			case EOB_ACT_END_OF_FILE:
1488 				{
1489 				yy_did_buffer_switch_on_eof = 0;
1490 
1491 				if ( yywrap() )
1492 					{
1493 					/* Note: because we've taken care in
1494 					 * yy_get_next_buffer() to have set up
1495 					 * yytext, we can now set up
1496 					 * yy_c_buf_p so that if some total
1497 					 * hoser (like flex itself) wants to
1498 					 * call the scanner after we return the
1499 					 * YY_NULL, it'll still work - another
1500 					 * YY_NULL will get returned.
1501 					 */
1502 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1503 
1504 					yy_act = YY_STATE_EOF(YY_START);
1505 					goto do_action;
1506 					}
1507 
1508 				else
1509 					{
1510 					if ( ! yy_did_buffer_switch_on_eof )
1511 						YY_NEW_FILE;
1512 					}
1513 				break;
1514 				}
1515 
1516 			case EOB_ACT_CONTINUE_SCAN:
1517 				yy_c_buf_p =
1518 					yytext_ptr + yy_amount_of_matched_text;
1519 
1520 				yy_current_state = yy_get_previous_state();
1521 
1522 				yy_cp = yy_c_buf_p;
1523 				yy_bp = yytext_ptr + YY_MORE_ADJ;
1524 				goto yy_match;
1525 
1526 			case EOB_ACT_LAST_MATCH:
1527 				yy_c_buf_p =
1528 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
1529 
1530 				yy_current_state = yy_get_previous_state();
1531 
1532 				yy_cp = yy_c_buf_p;
1533 				yy_bp = yytext_ptr + YY_MORE_ADJ;
1534 				goto yy_find_action;
1535 			}
1536 		break;
1537 		}
1538 
1539 	default:
1540 		YY_FATAL_ERROR(
1541 			"fatal flex scanner internal error--no action found" );
1542 	} /* end of action switch */
1543 		} /* end of scanning one token */
1544 	} /* end of yylex */
1545 
1546 
1547 /* yy_get_next_buffer - try to read in a new buffer
1548  *
1549  * Returns a code representing an action:
1550  *	EOB_ACT_LAST_MATCH -
1551  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1552  *	EOB_ACT_END_OF_FILE - end of file
1553  */
1554 
yy_get_next_buffer()1555 static int yy_get_next_buffer()
1556 	{
1557 	register char *dest = yy_current_buffer->yy_ch_buf;
1558 	register char *source = yytext_ptr;
1559 	register int number_to_move, i;
1560 	int ret_val;
1561 
1562 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1563 		YY_FATAL_ERROR(
1564 		"fatal flex scanner internal error--end of buffer missed" );
1565 
1566 	if ( yy_current_buffer->yy_fill_buffer == 0 )
1567 		{ /* Don't try to fill the buffer, so this is an EOF. */
1568 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1569 			{
1570 			/* We matched a single character, the EOB, so
1571 			 * treat this as a final EOF.
1572 			 */
1573 			return EOB_ACT_END_OF_FILE;
1574 			}
1575 
1576 		else
1577 			{
1578 			/* We matched some text prior to the EOB, first
1579 			 * process it.
1580 			 */
1581 			return EOB_ACT_LAST_MATCH;
1582 			}
1583 		}
1584 
1585 	/* Try to read more data. */
1586 
1587 	/* First move last chars to start of buffer. */
1588 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1589 
1590 	for ( i = 0; i < number_to_move; ++i )
1591 		*(dest++) = *(source++);
1592 
1593 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1594 		/* don't do the read, it's not guaranteed to return an EOF,
1595 		 * just force an EOF
1596 		 */
1597 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1598 
1599 	else
1600 		{
1601 		int num_to_read =
1602 			yy_current_buffer->yy_buf_size - number_to_move - 1;
1603 
1604 		while ( num_to_read <= 0 )
1605 			{ /* Not enough room in the buffer - grow it. */
1606 #ifdef YY_USES_REJECT
1607 			YY_FATAL_ERROR(
1608 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1609 #else
1610 
1611 			/* just a shorter name for the current buffer */
1612 			YY_BUFFER_STATE b = yy_current_buffer;
1613 
1614 			int yy_c_buf_p_offset =
1615 				(int) (yy_c_buf_p - b->yy_ch_buf);
1616 
1617 			if ( b->yy_is_our_buffer )
1618 				{
1619 				int new_size = b->yy_buf_size * 2;
1620 
1621 				if ( new_size <= 0 )
1622 					b->yy_buf_size += b->yy_buf_size / 8;
1623 				else
1624 					b->yy_buf_size *= 2;
1625 
1626 				b->yy_ch_buf = (char *)
1627 					/* Include room in for 2 EOB chars. */
1628 					yy_flex_realloc( (void *) b->yy_ch_buf,
1629 							 b->yy_buf_size + 2 );
1630 				}
1631 			else
1632 				/* Can't grow it, we don't own it. */
1633 				b->yy_ch_buf = 0;
1634 
1635 			if ( ! b->yy_ch_buf )
1636 				YY_FATAL_ERROR(
1637 				"fatal error - scanner input buffer overflow" );
1638 
1639 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1640 
1641 			num_to_read = yy_current_buffer->yy_buf_size -
1642 						number_to_move - 1;
1643 #endif
1644 			}
1645 
1646 		if ( num_to_read > YY_READ_BUF_SIZE )
1647 			num_to_read = YY_READ_BUF_SIZE;
1648 
1649 		/* Read in more data. */
1650 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1651 			yy_n_chars, num_to_read );
1652 
1653 		yy_current_buffer->yy_n_chars = yy_n_chars;
1654 		}
1655 
1656 	if ( yy_n_chars == 0 )
1657 		{
1658 		if ( number_to_move == YY_MORE_ADJ )
1659 			{
1660 			ret_val = EOB_ACT_END_OF_FILE;
1661 			yyrestart( yyin );
1662 			}
1663 
1664 		else
1665 			{
1666 			ret_val = EOB_ACT_LAST_MATCH;
1667 			yy_current_buffer->yy_buffer_status =
1668 				YY_BUFFER_EOF_PENDING;
1669 			}
1670 		}
1671 
1672 	else
1673 		ret_val = EOB_ACT_CONTINUE_SCAN;
1674 
1675 	yy_n_chars += number_to_move;
1676 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1677 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1678 
1679 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1680 
1681 	return ret_val;
1682 	}
1683 
1684 
1685 /* yy_get_previous_state - get the state just before the EOB char was reached */
1686 
yy_get_previous_state()1687 static yy_state_type yy_get_previous_state()
1688 	{
1689 	register yy_state_type yy_current_state;
1690 	register char *yy_cp;
1691 
1692 	yy_current_state = yy_start;
1693 
1694 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1695 		{
1696 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1697 		if ( yy_accept[yy_current_state] )
1698 			{
1699 			yy_last_accepting_state = yy_current_state;
1700 			yy_last_accepting_cpos = yy_cp;
1701 			}
1702 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1703 			{
1704 			yy_current_state = (int) yy_def[yy_current_state];
1705 			if ( yy_current_state >= 391 )
1706 				yy_c = yy_meta[(unsigned int) yy_c];
1707 			}
1708 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1709 		}
1710 
1711 	return yy_current_state;
1712 	}
1713 
1714 
1715 /* yy_try_NUL_trans - try to make a transition on the NUL character
1716  *
1717  * synopsis
1718  *	next_state = yy_try_NUL_trans( current_state );
1719  */
1720 
1721 #ifdef YY_USE_PROTOS
yy_try_NUL_trans(yy_state_type yy_current_state)1722 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1723 #else
1724 static yy_state_type yy_try_NUL_trans( yy_current_state )
1725 yy_state_type yy_current_state;
1726 #endif
1727 	{
1728 	register int yy_is_jam;
1729 	register char *yy_cp = yy_c_buf_p;
1730 
1731 	register YY_CHAR yy_c = 1;
1732 	if ( yy_accept[yy_current_state] )
1733 		{
1734 		yy_last_accepting_state = yy_current_state;
1735 		yy_last_accepting_cpos = yy_cp;
1736 		}
1737 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1738 		{
1739 		yy_current_state = (int) yy_def[yy_current_state];
1740 		if ( yy_current_state >= 391 )
1741 			yy_c = yy_meta[(unsigned int) yy_c];
1742 		}
1743 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1744 	yy_is_jam = (yy_current_state == 390);
1745 
1746 	return yy_is_jam ? 0 : yy_current_state;
1747 	}
1748 
1749 
1750 #ifndef YY_NO_UNPUT
1751 #ifdef YY_USE_PROTOS
yyunput(int c,register char * yy_bp)1752 static void yyunput( int c, register char *yy_bp )
1753 #else
1754 static void yyunput( c, yy_bp )
1755 int c;
1756 register char *yy_bp;
1757 #endif
1758 	{
1759 	register char *yy_cp = yy_c_buf_p;
1760 
1761 	/* undo effects of setting up yytext */
1762 	*yy_cp = yy_hold_char;
1763 
1764 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1765 		{ /* need to shift things up to make room */
1766 		/* +2 for EOB chars. */
1767 		register int number_to_move = yy_n_chars + 2;
1768 		register char *dest = &yy_current_buffer->yy_ch_buf[
1769 					yy_current_buffer->yy_buf_size + 2];
1770 		register char *source =
1771 				&yy_current_buffer->yy_ch_buf[number_to_move];
1772 
1773 		while ( source > yy_current_buffer->yy_ch_buf )
1774 			*--dest = *--source;
1775 
1776 		yy_cp += (int) (dest - source);
1777 		yy_bp += (int) (dest - source);
1778 		yy_current_buffer->yy_n_chars =
1779 			yy_n_chars = yy_current_buffer->yy_buf_size;
1780 
1781 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1782 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
1783 		}
1784 
1785 	*--yy_cp = (char) c;
1786 
1787 
1788 	yytext_ptr = yy_bp;
1789 	yy_hold_char = *yy_cp;
1790 	yy_c_buf_p = yy_cp;
1791 	}
1792 #endif	/* ifndef YY_NO_UNPUT */
1793 
1794 
1795 #ifdef __cplusplus
yyinput()1796 static int yyinput()
1797 #else
1798 static int input()
1799 #endif
1800 	{
1801 	int c;
1802 
1803 	*yy_c_buf_p = yy_hold_char;
1804 
1805 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1806 		{
1807 		/* yy_c_buf_p now points to the character we want to return.
1808 		 * If this occurs *before* the EOB characters, then it's a
1809 		 * valid NUL; if not, then we've hit the end of the buffer.
1810 		 */
1811 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1812 			/* This was really a NUL. */
1813 			*yy_c_buf_p = '\0';
1814 
1815 		else
1816 			{ /* need more input */
1817 			int offset = yy_c_buf_p - yytext_ptr;
1818 			++yy_c_buf_p;
1819 
1820 			switch ( yy_get_next_buffer() )
1821 				{
1822 				case EOB_ACT_LAST_MATCH:
1823 					/* This happens because yy_g_n_b()
1824 					 * sees that we've accumulated a
1825 					 * token and flags that we need to
1826 					 * try matching the token before
1827 					 * proceeding.  But for input(),
1828 					 * there's no matching to consider.
1829 					 * So convert the EOB_ACT_LAST_MATCH
1830 					 * to EOB_ACT_END_OF_FILE.
1831 					 */
1832 
1833 					/* Reset buffer status. */
1834 					yyrestart( yyin );
1835 
1836 					/* fall through */
1837 
1838 				case EOB_ACT_END_OF_FILE:
1839 					{
1840 					if ( yywrap() )
1841 						return EOF;
1842 
1843 					if ( ! yy_did_buffer_switch_on_eof )
1844 						YY_NEW_FILE;
1845 #ifdef __cplusplus
1846 					return yyinput();
1847 #else
1848 					return input();
1849 #endif
1850 					}
1851 
1852 				case EOB_ACT_CONTINUE_SCAN:
1853 					yy_c_buf_p = yytext_ptr + offset;
1854 					break;
1855 				}
1856 			}
1857 		}
1858 
1859 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
1860 	*yy_c_buf_p = '\0';	/* preserve yytext */
1861 	yy_hold_char = *++yy_c_buf_p;
1862 
1863 
1864 	return c;
1865 	}
1866 
1867 
1868 #ifdef YY_USE_PROTOS
yyrestart(FILE * input_file)1869 void yyrestart( FILE *input_file )
1870 #else
1871 void yyrestart( input_file )
1872 FILE *input_file;
1873 #endif
1874 	{
1875 	if ( ! yy_current_buffer )
1876 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1877 
1878 	yy_init_buffer( yy_current_buffer, input_file );
1879 	yy_load_buffer_state();
1880 	}
1881 
1882 
1883 #ifdef YY_USE_PROTOS
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)1884 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1885 #else
1886 void yy_switch_to_buffer( new_buffer )
1887 YY_BUFFER_STATE new_buffer;
1888 #endif
1889 	{
1890 	if ( yy_current_buffer == new_buffer )
1891 		return;
1892 
1893 	if ( yy_current_buffer )
1894 		{
1895 		/* Flush out information for old buffer. */
1896 		*yy_c_buf_p = yy_hold_char;
1897 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1898 		yy_current_buffer->yy_n_chars = yy_n_chars;
1899 		}
1900 
1901 	yy_current_buffer = new_buffer;
1902 	yy_load_buffer_state();
1903 
1904 	/* We don't actually know whether we did this switch during
1905 	 * EOF (yywrap()) processing, but the only time this flag
1906 	 * is looked at is after yywrap() is called, so it's safe
1907 	 * to go ahead and always set it.
1908 	 */
1909 	yy_did_buffer_switch_on_eof = 1;
1910 	}
1911 
1912 
1913 #ifdef YY_USE_PROTOS
yy_load_buffer_state(void)1914 void yy_load_buffer_state( void )
1915 #else
1916 void yy_load_buffer_state()
1917 #endif
1918 	{
1919 	yy_n_chars = yy_current_buffer->yy_n_chars;
1920 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1921 	yyin = yy_current_buffer->yy_input_file;
1922 	yy_hold_char = *yy_c_buf_p;
1923 	}
1924 
1925 
1926 #ifdef YY_USE_PROTOS
yy_create_buffer(FILE * file,int size)1927 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1928 #else
1929 YY_BUFFER_STATE yy_create_buffer( file, size )
1930 FILE *file;
1931 int size;
1932 #endif
1933 	{
1934 	YY_BUFFER_STATE b;
1935 
1936 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1937 	if ( ! b )
1938 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1939 
1940 	b->yy_buf_size = size;
1941 
1942 	/* yy_ch_buf has to be 2 characters longer than the size given because
1943 	 * we need to put in 2 end-of-buffer characters.
1944 	 */
1945 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
1946 	if ( ! b->yy_ch_buf )
1947 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1948 
1949 	b->yy_is_our_buffer = 1;
1950 
1951 	yy_init_buffer( b, file );
1952 
1953 	return b;
1954 	}
1955 
1956 
1957 #ifdef YY_USE_PROTOS
yy_delete_buffer(YY_BUFFER_STATE b)1958 void yy_delete_buffer( YY_BUFFER_STATE b )
1959 #else
1960 void yy_delete_buffer( b )
1961 YY_BUFFER_STATE b;
1962 #endif
1963 	{
1964 	if ( ! b )
1965 		return;
1966 
1967 	if ( b == yy_current_buffer )
1968 		yy_current_buffer = (YY_BUFFER_STATE) 0;
1969 
1970 	if ( b->yy_is_our_buffer )
1971 		yy_flex_free( (void *) b->yy_ch_buf );
1972 
1973 	yy_flex_free( (void *) b );
1974 	}
1975 
1976 
1977 #ifndef YY_ALWAYS_INTERACTIVE
1978 #ifndef YY_NEVER_INTERACTIVE
1979 extern int isatty YY_PROTO(( int ));
1980 #endif
1981 #endif
1982 
1983 #ifdef YY_USE_PROTOS
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)1984 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1985 #else
1986 void yy_init_buffer( b, file )
1987 YY_BUFFER_STATE b;
1988 FILE *file;
1989 #endif
1990 
1991 
1992 	{
1993 	yy_flush_buffer( b );
1994 
1995 	b->yy_input_file = file;
1996 	b->yy_fill_buffer = 1;
1997 
1998 #if YY_ALWAYS_INTERACTIVE
1999 	b->yy_is_interactive = 1;
2000 #else
2001 #if YY_NEVER_INTERACTIVE
2002 	b->yy_is_interactive = 0;
2003 #else
2004 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2005 #endif
2006 #endif
2007 	}
2008 
2009 
2010 #ifdef YY_USE_PROTOS
yy_flush_buffer(YY_BUFFER_STATE b)2011 void yy_flush_buffer( YY_BUFFER_STATE b )
2012 #else
2013 void yy_flush_buffer( b )
2014 YY_BUFFER_STATE b;
2015 #endif
2016 
2017 	{
2018 	if ( ! b )
2019 		return;
2020 
2021 	b->yy_n_chars = 0;
2022 
2023 	/* We always need two end-of-buffer characters.  The first causes
2024 	 * a transition to the end-of-buffer state.  The second causes
2025 	 * a jam in that state.
2026 	 */
2027 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2028 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2029 
2030 	b->yy_buf_pos = &b->yy_ch_buf[0];
2031 
2032 	b->yy_at_bol = 1;
2033 	b->yy_buffer_status = YY_BUFFER_NEW;
2034 
2035 	if ( b == yy_current_buffer )
2036 		yy_load_buffer_state();
2037 	}
2038 
2039 
2040 #ifndef YY_NO_SCAN_BUFFER
2041 #ifdef YY_USE_PROTOS
yy_scan_buffer(char * base,yy_size_t size)2042 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2043 #else
2044 YY_BUFFER_STATE yy_scan_buffer( base, size )
2045 char *base;
2046 yy_size_t size;
2047 #endif
2048 	{
2049 	YY_BUFFER_STATE b;
2050 
2051 	if ( size < 2 ||
2052 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2053 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2054 		/* They forgot to leave room for the EOB's. */
2055 		return 0;
2056 
2057 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2058 	if ( ! b )
2059 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2060 
2061 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2062 	b->yy_buf_pos = b->yy_ch_buf = base;
2063 	b->yy_is_our_buffer = 0;
2064 	b->yy_input_file = 0;
2065 	b->yy_n_chars = b->yy_buf_size;
2066 	b->yy_is_interactive = 0;
2067 	b->yy_at_bol = 1;
2068 	b->yy_fill_buffer = 0;
2069 	b->yy_buffer_status = YY_BUFFER_NEW;
2070 
2071 	yy_switch_to_buffer( b );
2072 
2073 	return b;
2074 	}
2075 #endif
2076 
2077 
2078 #ifndef YY_NO_SCAN_STRING
2079 #ifdef YY_USE_PROTOS
yy_scan_string(yyconst char * yy_str)2080 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2081 #else
2082 YY_BUFFER_STATE yy_scan_string( yy_str )
2083 yyconst char *yy_str;
2084 #endif
2085 	{
2086 	int len;
2087 	for ( len = 0; yy_str[len]; ++len )
2088 		;
2089 
2090 	return yy_scan_bytes( yy_str, len );
2091 	}
2092 #endif
2093 
2094 
2095 #ifndef YY_NO_SCAN_BYTES
2096 #ifdef YY_USE_PROTOS
yy_scan_bytes(yyconst char * bytes,int len)2097 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2098 #else
2099 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2100 yyconst char *bytes;
2101 int len;
2102 #endif
2103 	{
2104 	YY_BUFFER_STATE b;
2105 	char *buf;
2106 	yy_size_t n;
2107 	int i;
2108 
2109 	/* Get memory for full buffer, including space for trailing EOB's. */
2110 	n = len + 2;
2111 	buf = (char *) yy_flex_alloc( n );
2112 	if ( ! buf )
2113 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2114 
2115 	for ( i = 0; i < len; ++i )
2116 		buf[i] = bytes[i];
2117 
2118 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2119 
2120 	b = yy_scan_buffer( buf, n );
2121 	if ( ! b )
2122 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2123 
2124 	/* It's okay to grow etc. this buffer, and we should throw it
2125 	 * away when we're done.
2126 	 */
2127 	b->yy_is_our_buffer = 1;
2128 
2129 	return b;
2130 	}
2131 #endif
2132 
2133 
2134 #ifndef YY_NO_PUSH_STATE
2135 #ifdef YY_USE_PROTOS
yy_push_state(int new_state)2136 static void yy_push_state( int new_state )
2137 #else
2138 static void yy_push_state( new_state )
2139 int new_state;
2140 #endif
2141 	{
2142 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
2143 		{
2144 		yy_size_t new_size;
2145 
2146 		yy_start_stack_depth += YY_START_STACK_INCR;
2147 		new_size = yy_start_stack_depth * sizeof( int );
2148 
2149 		if ( ! yy_start_stack )
2150 			yy_start_stack = (int *) yy_flex_alloc( new_size );
2151 
2152 		else
2153 			yy_start_stack = (int *) yy_flex_realloc(
2154 					(void *) yy_start_stack, new_size );
2155 
2156 		if ( ! yy_start_stack )
2157 			YY_FATAL_ERROR(
2158 			"out of memory expanding start-condition stack" );
2159 		}
2160 
2161 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
2162 
2163 	BEGIN(new_state);
2164 	}
2165 #endif
2166 
2167 
2168 #ifndef YY_NO_POP_STATE
yy_pop_state()2169 static void yy_pop_state()
2170 	{
2171 	if ( --yy_start_stack_ptr < 0 )
2172 		YY_FATAL_ERROR( "start-condition stack underflow" );
2173 
2174 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
2175 	}
2176 #endif
2177 
2178 
2179 #ifndef YY_NO_TOP_STATE
yy_top_state()2180 static int yy_top_state()
2181 	{
2182 	return yy_start_stack[yy_start_stack_ptr - 1];
2183 	}
2184 #endif
2185 
2186 #ifndef YY_EXIT_FAILURE
2187 #define YY_EXIT_FAILURE 2
2188 #endif
2189 
2190 #ifdef YY_USE_PROTOS
yy_fatal_error(yyconst char msg[])2191 static void yy_fatal_error( yyconst char msg[] )
2192 #else
2193 static void yy_fatal_error( msg )
2194 char msg[];
2195 #endif
2196 	{
2197 	(void) fprintf( stderr, "%s\n", msg );
2198 	exit( YY_EXIT_FAILURE );
2199 	}
2200 
2201 
2202 
2203 /* Redefine yyless() so it works in section 3 code. */
2204 
2205 #undef yyless
2206 #define yyless(n) \
2207 	do \
2208 		{ \
2209 		/* Undo effects of setting up yytext. */ \
2210 		yytext[yyleng] = yy_hold_char; \
2211 		yy_c_buf_p = yytext + n; \
2212 		yy_hold_char = *yy_c_buf_p; \
2213 		*yy_c_buf_p = '\0'; \
2214 		yyleng = n; \
2215 		} \
2216 	while ( 0 )
2217 
2218 
2219 /* Internal utility routines. */
2220 
2221 #ifndef yytext_ptr
2222 #ifdef YY_USE_PROTOS
yy_flex_strncpy(char * s1,yyconst char * s2,int n)2223 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2224 #else
2225 static void yy_flex_strncpy( s1, s2, n )
2226 char *s1;
2227 yyconst char *s2;
2228 int n;
2229 #endif
2230 	{
2231 	register int i;
2232 	for ( i = 0; i < n; ++i )
2233 		s1[i] = s2[i];
2234 	}
2235 #endif
2236 
2237 #ifdef YY_NEED_STRLEN
2238 #ifdef YY_USE_PROTOS
yy_flex_strlen(yyconst char * s)2239 static int yy_flex_strlen( yyconst char *s )
2240 #else
2241 static int yy_flex_strlen( s )
2242 yyconst char *s;
2243 #endif
2244 	{
2245 	register int n;
2246 	for ( n = 0; s[n]; ++n )
2247 		;
2248 
2249 	return n;
2250 	}
2251 #endif
2252 
2253 
2254 #ifdef YY_USE_PROTOS
yy_flex_alloc(yy_size_t size)2255 static void *yy_flex_alloc( yy_size_t size )
2256 #else
2257 static void *yy_flex_alloc( size )
2258 yy_size_t size;
2259 #endif
2260 	{
2261 	return (void *) malloc( size );
2262 	}
2263 
2264 #ifdef YY_USE_PROTOS
yy_flex_realloc(void * ptr,yy_size_t size)2265 static void *yy_flex_realloc( void *ptr, yy_size_t size )
2266 #else
2267 static void *yy_flex_realloc( ptr, size )
2268 void *ptr;
2269 yy_size_t size;
2270 #endif
2271 	{
2272 	/* The cast to (char *) in the following accommodates both
2273 	 * implementations that use char* generic pointers, and those
2274 	 * that use void* generic pointers.  It works with the latter
2275 	 * because both ANSI C and C++ allow castless assignment from
2276 	 * any pointer type to void*, and deal with argument conversions
2277 	 * as though doing an assignment.
2278 	 */
2279 	return (void *) realloc( (char *) ptr, size );
2280 	}
2281 
2282 #ifdef YY_USE_PROTOS
yy_flex_free(void * ptr)2283 static void yy_flex_free( void *ptr )
2284 #else
2285 static void yy_flex_free( ptr )
2286 void *ptr;
2287 #endif
2288 	{
2289 	free( ptr );
2290 	}
2291 
2292 #if YY_MAIN
main()2293 int main()
2294 	{
2295 	yylex();
2296 	return 0;
2297 	}
2298 #endif
2299 #line 180 "cfglex.l"
2300 
2301