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