1*10465441SEvalZero
2*10465441SEvalZero #define YY_INT_ALIGNED short int
3*10465441SEvalZero
4*10465441SEvalZero /* A lexical scanner generated by flex */
5*10465441SEvalZero
6*10465441SEvalZero #define yy_create_buffer zconf_create_buffer
7*10465441SEvalZero #define yy_delete_buffer zconf_delete_buffer
8*10465441SEvalZero #define yy_flex_debug zconf_flex_debug
9*10465441SEvalZero #define yy_init_buffer zconf_init_buffer
10*10465441SEvalZero #define yy_flush_buffer zconf_flush_buffer
11*10465441SEvalZero #define yy_load_buffer_state zconf_load_buffer_state
12*10465441SEvalZero #define yy_switch_to_buffer zconf_switch_to_buffer
13*10465441SEvalZero #define yyin zconfin
14*10465441SEvalZero #define yyleng zconfleng
15*10465441SEvalZero #define yylex zconflex
16*10465441SEvalZero #define yylineno zconflineno
17*10465441SEvalZero #define yyout zconfout
18*10465441SEvalZero #define yyrestart zconfrestart
19*10465441SEvalZero #define yytext zconftext
20*10465441SEvalZero #define yywrap zconfwrap
21*10465441SEvalZero #define yyalloc zconfalloc
22*10465441SEvalZero #define yyrealloc zconfrealloc
23*10465441SEvalZero #define yyfree zconffree
24*10465441SEvalZero
25*10465441SEvalZero #define FLEX_SCANNER
26*10465441SEvalZero #define YY_FLEX_MAJOR_VERSION 2
27*10465441SEvalZero #define YY_FLEX_MINOR_VERSION 6
28*10465441SEvalZero #define YY_FLEX_SUBMINOR_VERSION 1
29*10465441SEvalZero #if YY_FLEX_SUBMINOR_VERSION > 0
30*10465441SEvalZero #define FLEX_BETA
31*10465441SEvalZero #endif
32*10465441SEvalZero
33*10465441SEvalZero /* First, we deal with platform-specific or compiler-specific issues. */
34*10465441SEvalZero
35*10465441SEvalZero /* begin standard C headers. */
36*10465441SEvalZero #include <stdio.h>
37*10465441SEvalZero #include <string.h>
38*10465441SEvalZero #include <errno.h>
39*10465441SEvalZero #include <stdlib.h>
40*10465441SEvalZero
41*10465441SEvalZero /* end standard C headers. */
42*10465441SEvalZero
43*10465441SEvalZero /* flex integer type definitions */
44*10465441SEvalZero
45*10465441SEvalZero #ifndef FLEXINT_H
46*10465441SEvalZero #define FLEXINT_H
47*10465441SEvalZero
48*10465441SEvalZero /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
49*10465441SEvalZero
50*10465441SEvalZero #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
51*10465441SEvalZero
52*10465441SEvalZero /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
53*10465441SEvalZero * if you want the limit (max/min) macros for int types.
54*10465441SEvalZero */
55*10465441SEvalZero #ifndef __STDC_LIMIT_MACROS
56*10465441SEvalZero #define __STDC_LIMIT_MACROS 1
57*10465441SEvalZero #endif
58*10465441SEvalZero
59*10465441SEvalZero #include <inttypes.h>
60*10465441SEvalZero typedef int8_t flex_int8_t;
61*10465441SEvalZero typedef uint8_t flex_uint8_t;
62*10465441SEvalZero typedef int16_t flex_int16_t;
63*10465441SEvalZero typedef uint16_t flex_uint16_t;
64*10465441SEvalZero typedef int32_t flex_int32_t;
65*10465441SEvalZero typedef uint32_t flex_uint32_t;
66*10465441SEvalZero #else
67*10465441SEvalZero typedef signed char flex_int8_t;
68*10465441SEvalZero typedef short int flex_int16_t;
69*10465441SEvalZero typedef int flex_int32_t;
70*10465441SEvalZero typedef unsigned char flex_uint8_t;
71*10465441SEvalZero typedef unsigned short int flex_uint16_t;
72*10465441SEvalZero typedef unsigned int flex_uint32_t;
73*10465441SEvalZero
74*10465441SEvalZero /* Limits of integral types. */
75*10465441SEvalZero #ifndef INT8_MIN
76*10465441SEvalZero #define INT8_MIN (-128)
77*10465441SEvalZero #endif
78*10465441SEvalZero #ifndef INT16_MIN
79*10465441SEvalZero #define INT16_MIN (-32767-1)
80*10465441SEvalZero #endif
81*10465441SEvalZero #ifndef INT32_MIN
82*10465441SEvalZero #define INT32_MIN (-2147483647-1)
83*10465441SEvalZero #endif
84*10465441SEvalZero #ifndef INT8_MAX
85*10465441SEvalZero #define INT8_MAX (127)
86*10465441SEvalZero #endif
87*10465441SEvalZero #ifndef INT16_MAX
88*10465441SEvalZero #define INT16_MAX (32767)
89*10465441SEvalZero #endif
90*10465441SEvalZero #ifndef INT32_MAX
91*10465441SEvalZero #define INT32_MAX (2147483647)
92*10465441SEvalZero #endif
93*10465441SEvalZero #ifndef UINT8_MAX
94*10465441SEvalZero #define UINT8_MAX (255U)
95*10465441SEvalZero #endif
96*10465441SEvalZero #ifndef UINT16_MAX
97*10465441SEvalZero #define UINT16_MAX (65535U)
98*10465441SEvalZero #endif
99*10465441SEvalZero #ifndef UINT32_MAX
100*10465441SEvalZero #define UINT32_MAX (4294967295U)
101*10465441SEvalZero #endif
102*10465441SEvalZero
103*10465441SEvalZero #endif /* ! C99 */
104*10465441SEvalZero
105*10465441SEvalZero #endif /* ! FLEXINT_H */
106*10465441SEvalZero
107*10465441SEvalZero /* TODO: this is always defined, so inline it */
108*10465441SEvalZero #define yyconst const
109*10465441SEvalZero
110*10465441SEvalZero #if defined(__GNUC__) && __GNUC__ >= 3
111*10465441SEvalZero #define yynoreturn __attribute__((__noreturn__))
112*10465441SEvalZero #else
113*10465441SEvalZero #define yynoreturn
114*10465441SEvalZero #endif
115*10465441SEvalZero
116*10465441SEvalZero /* Returned upon end-of-file. */
117*10465441SEvalZero #define YY_NULL 0
118*10465441SEvalZero
119*10465441SEvalZero /* Promotes a possibly negative, possibly signed char to an unsigned
120*10465441SEvalZero * integer for use as an array index. If the signed char is negative,
121*10465441SEvalZero * we want to instead treat it as an 8-bit unsigned char, hence the
122*10465441SEvalZero * double cast.
123*10465441SEvalZero */
124*10465441SEvalZero #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
125*10465441SEvalZero
126*10465441SEvalZero /* Enter a start condition. This macro really ought to take a parameter,
127*10465441SEvalZero * but we do it the disgusting crufty way forced on us by the ()-less
128*10465441SEvalZero * definition of BEGIN.
129*10465441SEvalZero */
130*10465441SEvalZero #define BEGIN (yy_start) = 1 + 2 *
131*10465441SEvalZero
132*10465441SEvalZero /* Translate the current start state into a value that can be later handed
133*10465441SEvalZero * to BEGIN to return to the state. The YYSTATE alias is for lex
134*10465441SEvalZero * compatibility.
135*10465441SEvalZero */
136*10465441SEvalZero #define YY_START (((yy_start) - 1) / 2)
137*10465441SEvalZero #define YYSTATE YY_START
138*10465441SEvalZero
139*10465441SEvalZero /* Action number for EOF rule of a given start state. */
140*10465441SEvalZero #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
141*10465441SEvalZero
142*10465441SEvalZero /* Special action meaning "start processing a new file". */
143*10465441SEvalZero #define YY_NEW_FILE zconfrestart(zconfin )
144*10465441SEvalZero
145*10465441SEvalZero #define YY_END_OF_BUFFER_CHAR 0
146*10465441SEvalZero
147*10465441SEvalZero /* Size of default input buffer. */
148*10465441SEvalZero #ifndef YY_BUF_SIZE
149*10465441SEvalZero #ifdef __ia64__
150*10465441SEvalZero /* On IA-64, the buffer size is 16k, not 8k.
151*10465441SEvalZero * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
152*10465441SEvalZero * Ditto for the __ia64__ case accordingly.
153*10465441SEvalZero */
154*10465441SEvalZero #define YY_BUF_SIZE 32768
155*10465441SEvalZero #else
156*10465441SEvalZero #define YY_BUF_SIZE 16384
157*10465441SEvalZero #endif /* __ia64__ */
158*10465441SEvalZero #endif
159*10465441SEvalZero
160*10465441SEvalZero /* The state buf must be large enough to hold one state per character in the main buffer.
161*10465441SEvalZero */
162*10465441SEvalZero #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
163*10465441SEvalZero
164*10465441SEvalZero #ifndef YY_TYPEDEF_YY_BUFFER_STATE
165*10465441SEvalZero #define YY_TYPEDEF_YY_BUFFER_STATE
166*10465441SEvalZero typedef struct yy_buffer_state *YY_BUFFER_STATE;
167*10465441SEvalZero #endif
168*10465441SEvalZero
169*10465441SEvalZero #ifndef YY_TYPEDEF_YY_SIZE_T
170*10465441SEvalZero #define YY_TYPEDEF_YY_SIZE_T
171*10465441SEvalZero typedef size_t yy_size_t;
172*10465441SEvalZero #endif
173*10465441SEvalZero
174*10465441SEvalZero extern int zconfleng;
175*10465441SEvalZero
176*10465441SEvalZero extern FILE *zconfin, *zconfout;
177*10465441SEvalZero
178*10465441SEvalZero #define EOB_ACT_CONTINUE_SCAN 0
179*10465441SEvalZero #define EOB_ACT_END_OF_FILE 1
180*10465441SEvalZero #define EOB_ACT_LAST_MATCH 2
181*10465441SEvalZero
182*10465441SEvalZero #define YY_LESS_LINENO(n)
183*10465441SEvalZero #define YY_LINENO_REWIND_TO(ptr)
184*10465441SEvalZero
185*10465441SEvalZero /* Return all but the first "n" matched characters back to the input stream. */
186*10465441SEvalZero #define yyless(n) \
187*10465441SEvalZero do \
188*10465441SEvalZero { \
189*10465441SEvalZero /* Undo effects of setting up zconftext. */ \
190*10465441SEvalZero int yyless_macro_arg = (n); \
191*10465441SEvalZero YY_LESS_LINENO(yyless_macro_arg);\
192*10465441SEvalZero *yy_cp = (yy_hold_char); \
193*10465441SEvalZero YY_RESTORE_YY_MORE_OFFSET \
194*10465441SEvalZero (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195*10465441SEvalZero YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
196*10465441SEvalZero } \
197*10465441SEvalZero while ( 0 )
198*10465441SEvalZero
199*10465441SEvalZero #define unput(c) yyunput( c, (yytext_ptr) )
200*10465441SEvalZero
201*10465441SEvalZero #ifndef YY_STRUCT_YY_BUFFER_STATE
202*10465441SEvalZero #define YY_STRUCT_YY_BUFFER_STATE
203*10465441SEvalZero struct yy_buffer_state
204*10465441SEvalZero {
205*10465441SEvalZero FILE *yy_input_file;
206*10465441SEvalZero
207*10465441SEvalZero char *yy_ch_buf; /* input buffer */
208*10465441SEvalZero char *yy_buf_pos; /* current position in input buffer */
209*10465441SEvalZero
210*10465441SEvalZero /* Size of input buffer in bytes, not including room for EOB
211*10465441SEvalZero * characters.
212*10465441SEvalZero */
213*10465441SEvalZero int yy_buf_size;
214*10465441SEvalZero
215*10465441SEvalZero /* Number of characters read into yy_ch_buf, not including EOB
216*10465441SEvalZero * characters.
217*10465441SEvalZero */
218*10465441SEvalZero int yy_n_chars;
219*10465441SEvalZero
220*10465441SEvalZero /* Whether we "own" the buffer - i.e., we know we created it,
221*10465441SEvalZero * and can realloc() it to grow it, and should free() it to
222*10465441SEvalZero * delete it.
223*10465441SEvalZero */
224*10465441SEvalZero int yy_is_our_buffer;
225*10465441SEvalZero
226*10465441SEvalZero /* Whether this is an "interactive" input source; if so, and
227*10465441SEvalZero * if we're using stdio for input, then we want to use getc()
228*10465441SEvalZero * instead of fread(), to make sure we stop fetching input after
229*10465441SEvalZero * each newline.
230*10465441SEvalZero */
231*10465441SEvalZero int yy_is_interactive;
232*10465441SEvalZero
233*10465441SEvalZero /* Whether we're considered to be at the beginning of a line.
234*10465441SEvalZero * If so, '^' rules will be active on the next match, otherwise
235*10465441SEvalZero * not.
236*10465441SEvalZero */
237*10465441SEvalZero int yy_at_bol;
238*10465441SEvalZero
239*10465441SEvalZero int yy_bs_lineno; /**< The line count. */
240*10465441SEvalZero int yy_bs_column; /**< The column count. */
241*10465441SEvalZero
242*10465441SEvalZero /* Whether to try to fill the input buffer when we reach the
243*10465441SEvalZero * end of it.
244*10465441SEvalZero */
245*10465441SEvalZero int yy_fill_buffer;
246*10465441SEvalZero
247*10465441SEvalZero int yy_buffer_status;
248*10465441SEvalZero
249*10465441SEvalZero #define YY_BUFFER_NEW 0
250*10465441SEvalZero #define YY_BUFFER_NORMAL 1
251*10465441SEvalZero /* When an EOF's been seen but there's still some text to process
252*10465441SEvalZero * then we mark the buffer as YY_EOF_PENDING, to indicate that we
253*10465441SEvalZero * shouldn't try reading from the input source any more. We might
254*10465441SEvalZero * still have a bunch of tokens to match, though, because of
255*10465441SEvalZero * possible backing-up.
256*10465441SEvalZero *
257*10465441SEvalZero * When we actually see the EOF, we change the status to "new"
258*10465441SEvalZero * (via zconfrestart()), so that the user can continue scanning by
259*10465441SEvalZero * just pointing zconfin at a new input file.
260*10465441SEvalZero */
261*10465441SEvalZero #define YY_BUFFER_EOF_PENDING 2
262*10465441SEvalZero
263*10465441SEvalZero };
264*10465441SEvalZero #endif /* !YY_STRUCT_YY_BUFFER_STATE */
265*10465441SEvalZero
266*10465441SEvalZero /* Stack of input buffers. */
267*10465441SEvalZero static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
268*10465441SEvalZero static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
269*10465441SEvalZero static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
270*10465441SEvalZero
271*10465441SEvalZero /* We provide macros for accessing buffer states in case in the
272*10465441SEvalZero * future we want to put the buffer states in a more general
273*10465441SEvalZero * "scanner state".
274*10465441SEvalZero *
275*10465441SEvalZero * Returns the top of the stack, or NULL.
276*10465441SEvalZero */
277*10465441SEvalZero #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
278*10465441SEvalZero ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
279*10465441SEvalZero : NULL)
280*10465441SEvalZero
281*10465441SEvalZero /* Same as previous macro, but useful when we know that the buffer stack is not
282*10465441SEvalZero * NULL or when we need an lvalue. For internal use only.
283*10465441SEvalZero */
284*10465441SEvalZero #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
285*10465441SEvalZero
286*10465441SEvalZero /* yy_hold_char holds the character lost when zconftext is formed. */
287*10465441SEvalZero static char yy_hold_char;
288*10465441SEvalZero static int yy_n_chars; /* number of characters read into yy_ch_buf */
289*10465441SEvalZero int zconfleng;
290*10465441SEvalZero
291*10465441SEvalZero /* Points to current character in buffer. */
292*10465441SEvalZero static char *yy_c_buf_p = NULL;
293*10465441SEvalZero static int yy_init = 0; /* whether we need to initialize */
294*10465441SEvalZero static int yy_start = 0; /* start state number */
295*10465441SEvalZero
296*10465441SEvalZero /* Flag which is used to allow zconfwrap()'s to do buffer switches
297*10465441SEvalZero * instead of setting up a fresh zconfin. A bit of a hack ...
298*10465441SEvalZero */
299*10465441SEvalZero static int yy_did_buffer_switch_on_eof;
300*10465441SEvalZero
301*10465441SEvalZero void zconfrestart (FILE *input_file );
302*10465441SEvalZero void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
303*10465441SEvalZero YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
304*10465441SEvalZero void zconf_delete_buffer (YY_BUFFER_STATE b );
305*10465441SEvalZero void zconf_flush_buffer (YY_BUFFER_STATE b );
306*10465441SEvalZero void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
307*10465441SEvalZero void zconfpop_buffer_state (void );
308*10465441SEvalZero
309*10465441SEvalZero static void zconfensure_buffer_stack (void );
310*10465441SEvalZero static void zconf_load_buffer_state (void );
311*10465441SEvalZero static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
312*10465441SEvalZero
313*10465441SEvalZero #define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
314*10465441SEvalZero
315*10465441SEvalZero YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
316*10465441SEvalZero YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
317*10465441SEvalZero YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
318*10465441SEvalZero
319*10465441SEvalZero void *zconfalloc (yy_size_t );
320*10465441SEvalZero void *zconfrealloc (void *,yy_size_t );
321*10465441SEvalZero void zconffree (void * );
322*10465441SEvalZero
323*10465441SEvalZero #define yy_new_buffer zconf_create_buffer
324*10465441SEvalZero
325*10465441SEvalZero #define yy_set_interactive(is_interactive) \
326*10465441SEvalZero { \
327*10465441SEvalZero if ( ! YY_CURRENT_BUFFER ){ \
328*10465441SEvalZero zconfensure_buffer_stack (); \
329*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = \
330*10465441SEvalZero zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
331*10465441SEvalZero } \
332*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
333*10465441SEvalZero }
334*10465441SEvalZero
335*10465441SEvalZero #define yy_set_bol(at_bol) \
336*10465441SEvalZero { \
337*10465441SEvalZero if ( ! YY_CURRENT_BUFFER ){\
338*10465441SEvalZero zconfensure_buffer_stack (); \
339*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = \
340*10465441SEvalZero zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
341*10465441SEvalZero } \
342*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
343*10465441SEvalZero }
344*10465441SEvalZero
345*10465441SEvalZero #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
346*10465441SEvalZero
347*10465441SEvalZero /* Begin user sect3 */
348*10465441SEvalZero
349*10465441SEvalZero #define zconfwrap() (/*CONSTCOND*/1)
350*10465441SEvalZero #define YY_SKIP_YYWRAP
351*10465441SEvalZero
352*10465441SEvalZero typedef unsigned char YY_CHAR;
353*10465441SEvalZero
354*10465441SEvalZero FILE *zconfin = NULL, *zconfout = NULL;
355*10465441SEvalZero
356*10465441SEvalZero typedef int yy_state_type;
357*10465441SEvalZero
358*10465441SEvalZero extern int zconflineno;
359*10465441SEvalZero
360*10465441SEvalZero int zconflineno = 1;
361*10465441SEvalZero
362*10465441SEvalZero extern char *zconftext;
363*10465441SEvalZero #ifdef yytext_ptr
364*10465441SEvalZero #undef yytext_ptr
365*10465441SEvalZero #endif
366*10465441SEvalZero #define yytext_ptr zconftext
367*10465441SEvalZero
368*10465441SEvalZero static yyconst flex_int16_t yy_nxt[][18] =
369*10465441SEvalZero {
370*10465441SEvalZero {
371*10465441SEvalZero 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372*10465441SEvalZero 0, 0, 0, 0, 0, 0, 0, 0
373*10465441SEvalZero },
374*10465441SEvalZero
375*10465441SEvalZero {
376*10465441SEvalZero 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
377*10465441SEvalZero 12, 12, 12, 12, 12, 12, 12, 12
378*10465441SEvalZero },
379*10465441SEvalZero
380*10465441SEvalZero {
381*10465441SEvalZero 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
382*10465441SEvalZero 12, 12, 12, 12, 12, 12, 12, 12
383*10465441SEvalZero },
384*10465441SEvalZero
385*10465441SEvalZero {
386*10465441SEvalZero 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
387*10465441SEvalZero 16, 18, 16, 16, 16, 16, 16, 16
388*10465441SEvalZero },
389*10465441SEvalZero
390*10465441SEvalZero {
391*10465441SEvalZero 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
392*10465441SEvalZero 16, 18, 16, 16, 16, 16, 16, 16
393*10465441SEvalZero
394*10465441SEvalZero },
395*10465441SEvalZero
396*10465441SEvalZero {
397*10465441SEvalZero 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
398*10465441SEvalZero 19, 19, 19, 19, 19, 19, 19, 19
399*10465441SEvalZero },
400*10465441SEvalZero
401*10465441SEvalZero {
402*10465441SEvalZero 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
403*10465441SEvalZero 19, 19, 19, 19, 19, 19, 19, 19
404*10465441SEvalZero },
405*10465441SEvalZero
406*10465441SEvalZero {
407*10465441SEvalZero 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
408*10465441SEvalZero 22, 22, 22, 22, 22, 22, 25, 22
409*10465441SEvalZero },
410*10465441SEvalZero
411*10465441SEvalZero {
412*10465441SEvalZero 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
413*10465441SEvalZero 22, 22, 22, 22, 22, 22, 25, 22
414*10465441SEvalZero },
415*10465441SEvalZero
416*10465441SEvalZero {
417*10465441SEvalZero 11, 26, 27, 28, 29, 30, 31, 32, 30, 33,
418*10465441SEvalZero 34, 35, 35, 36, 37, 38, 39, 40
419*10465441SEvalZero
420*10465441SEvalZero },
421*10465441SEvalZero
422*10465441SEvalZero {
423*10465441SEvalZero 11, 26, 27, 28, 29, 30, 31, 32, 30, 33,
424*10465441SEvalZero 34, 35, 35, 36, 37, 38, 39, 40
425*10465441SEvalZero },
426*10465441SEvalZero
427*10465441SEvalZero {
428*10465441SEvalZero -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
429*10465441SEvalZero -11, -11, -11, -11, -11, -11, -11, -11
430*10465441SEvalZero },
431*10465441SEvalZero
432*10465441SEvalZero {
433*10465441SEvalZero 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
434*10465441SEvalZero -12, -12, -12, -12, -12, -12, -12, -12
435*10465441SEvalZero },
436*10465441SEvalZero
437*10465441SEvalZero {
438*10465441SEvalZero 11, -13, 41, 42, -13, -13, 43, -13, -13, -13,
439*10465441SEvalZero -13, -13, -13, -13, -13, -13, -13, -13
440*10465441SEvalZero },
441*10465441SEvalZero
442*10465441SEvalZero {
443*10465441SEvalZero 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
444*10465441SEvalZero -14, -14, -14, -14, -14, -14, -14, -14
445*10465441SEvalZero
446*10465441SEvalZero },
447*10465441SEvalZero
448*10465441SEvalZero {
449*10465441SEvalZero 11, 44, 44, 45, 44, 44, 44, 44, 44, 44,
450*10465441SEvalZero 44, 44, 44, 44, 44, 44, 44, 44
451*10465441SEvalZero },
452*10465441SEvalZero
453*10465441SEvalZero {
454*10465441SEvalZero 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
455*10465441SEvalZero -16, -16, -16, -16, -16, -16, -16, -16
456*10465441SEvalZero },
457*10465441SEvalZero
458*10465441SEvalZero {
459*10465441SEvalZero 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
460*10465441SEvalZero -17, -17, -17, -17, -17, -17, -17, -17
461*10465441SEvalZero },
462*10465441SEvalZero
463*10465441SEvalZero {
464*10465441SEvalZero 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
465*10465441SEvalZero -18, 46, -18, -18, -18, -18, -18, -18
466*10465441SEvalZero },
467*10465441SEvalZero
468*10465441SEvalZero {
469*10465441SEvalZero 11, 47, 47, -19, 47, 47, 47, 47, 47, 47,
470*10465441SEvalZero 47, 47, 47, 47, 47, 47, 47, 47
471*10465441SEvalZero
472*10465441SEvalZero },
473*10465441SEvalZero
474*10465441SEvalZero {
475*10465441SEvalZero 11, -20, 48, 49, -20, -20, -20, -20, -20, -20,
476*10465441SEvalZero -20, -20, -20, -20, -20, -20, -20, -20
477*10465441SEvalZero },
478*10465441SEvalZero
479*10465441SEvalZero {
480*10465441SEvalZero 11, 50, -21, -21, 50, 50, 50, 50, 50, 50,
481*10465441SEvalZero 50, 50, 50, 50, 50, 50, 50, 50
482*10465441SEvalZero },
483*10465441SEvalZero
484*10465441SEvalZero {
485*10465441SEvalZero 11, 51, 51, 52, 51, -22, 51, 51, -22, 51,
486*10465441SEvalZero 51, 51, 51, 51, 51, 51, -22, 51
487*10465441SEvalZero },
488*10465441SEvalZero
489*10465441SEvalZero {
490*10465441SEvalZero 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
491*10465441SEvalZero -23, -23, -23, -23, -23, -23, -23, -23
492*10465441SEvalZero },
493*10465441SEvalZero
494*10465441SEvalZero {
495*10465441SEvalZero 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
496*10465441SEvalZero -24, -24, -24, -24, -24, -24, -24, -24
497*10465441SEvalZero
498*10465441SEvalZero },
499*10465441SEvalZero
500*10465441SEvalZero {
501*10465441SEvalZero 11, 53, 53, 54, 53, 53, 53, 53, 53, 53,
502*10465441SEvalZero 53, 53, 53, 53, 53, 53, 53, 53
503*10465441SEvalZero },
504*10465441SEvalZero
505*10465441SEvalZero {
506*10465441SEvalZero 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
507*10465441SEvalZero -26, -26, -26, -26, -26, -26, -26, -26
508*10465441SEvalZero },
509*10465441SEvalZero
510*10465441SEvalZero {
511*10465441SEvalZero 11, -27, 55, -27, -27, -27, -27, -27, -27, -27,
512*10465441SEvalZero -27, -27, -27, -27, -27, -27, -27, -27
513*10465441SEvalZero },
514*10465441SEvalZero
515*10465441SEvalZero {
516*10465441SEvalZero 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
517*10465441SEvalZero -28, -28, -28, -28, -28, -28, -28, -28
518*10465441SEvalZero },
519*10465441SEvalZero
520*10465441SEvalZero {
521*10465441SEvalZero 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
522*10465441SEvalZero -29, -29, -29, -29, 56, -29, -29, -29
523*10465441SEvalZero
524*10465441SEvalZero },
525*10465441SEvalZero
526*10465441SEvalZero {
527*10465441SEvalZero 11, -30, -30, -30, -30, -30, -30, -30, -30, -30,
528*10465441SEvalZero -30, -30, -30, -30, -30, -30, -30, -30
529*10465441SEvalZero },
530*10465441SEvalZero
531*10465441SEvalZero {
532*10465441SEvalZero 11, 57, 57, -31, 57, 57, 57, 57, 57, 57,
533*10465441SEvalZero 57, 57, 57, 57, 57, 57, 57, 57
534*10465441SEvalZero },
535*10465441SEvalZero
536*10465441SEvalZero {
537*10465441SEvalZero 11, -32, -32, -32, -32, -32, -32, 58, -32, -32,
538*10465441SEvalZero -32, -32, -32, -32, -32, -32, -32, -32
539*10465441SEvalZero },
540*10465441SEvalZero
541*10465441SEvalZero {
542*10465441SEvalZero 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
543*10465441SEvalZero -33, -33, -33, -33, -33, -33, -33, -33
544*10465441SEvalZero },
545*10465441SEvalZero
546*10465441SEvalZero {
547*10465441SEvalZero 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
548*10465441SEvalZero -34, -34, -34, -34, -34, -34, -34, -34
549*10465441SEvalZero
550*10465441SEvalZero },
551*10465441SEvalZero
552*10465441SEvalZero {
553*10465441SEvalZero 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
554*10465441SEvalZero -35, 59, 59, -35, -35, -35, -35, -35
555*10465441SEvalZero },
556*10465441SEvalZero
557*10465441SEvalZero {
558*10465441SEvalZero 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
559*10465441SEvalZero -36, -36, -36, -36, 60, -36, -36, -36
560*10465441SEvalZero },
561*10465441SEvalZero
562*10465441SEvalZero {
563*10465441SEvalZero 11, -37, -37, -37, -37, -37, -37, -37, -37, -37,
564*10465441SEvalZero -37, -37, -37, -37, -37, -37, -37, -37
565*10465441SEvalZero },
566*10465441SEvalZero
567*10465441SEvalZero {
568*10465441SEvalZero 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
569*10465441SEvalZero -38, -38, -38, -38, 61, -38, -38, -38
570*10465441SEvalZero },
571*10465441SEvalZero
572*10465441SEvalZero {
573*10465441SEvalZero 11, -39, -39, 62, -39, -39, -39, -39, -39, -39,
574*10465441SEvalZero -39, -39, -39, -39, -39, -39, -39, -39
575*10465441SEvalZero
576*10465441SEvalZero },
577*10465441SEvalZero
578*10465441SEvalZero {
579*10465441SEvalZero 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
580*10465441SEvalZero -40, -40, -40, -40, -40, -40, -40, 63
581*10465441SEvalZero },
582*10465441SEvalZero
583*10465441SEvalZero {
584*10465441SEvalZero 11, -41, 41, 42, -41, -41, 43, -41, -41, -41,
585*10465441SEvalZero -41, -41, -41, -41, -41, -41, -41, -41
586*10465441SEvalZero },
587*10465441SEvalZero
588*10465441SEvalZero {
589*10465441SEvalZero 11, -42, -42, -42, -42, -42, -42, -42, -42, -42,
590*10465441SEvalZero -42, -42, -42, -42, -42, -42, -42, -42
591*10465441SEvalZero },
592*10465441SEvalZero
593*10465441SEvalZero {
594*10465441SEvalZero 11, 44, 44, 45, 44, 44, 44, 44, 44, 44,
595*10465441SEvalZero 44, 44, 44, 44, 44, 44, 44, 44
596*10465441SEvalZero },
597*10465441SEvalZero
598*10465441SEvalZero {
599*10465441SEvalZero 11, 44, 44, 45, 44, 44, 44, 44, 44, 44,
600*10465441SEvalZero 44, 44, 44, 44, 44, 44, 44, 44
601*10465441SEvalZero
602*10465441SEvalZero },
603*10465441SEvalZero
604*10465441SEvalZero {
605*10465441SEvalZero 11, -45, -45, -45, -45, -45, -45, -45, -45, -45,
606*10465441SEvalZero -45, -45, -45, -45, -45, -45, -45, -45
607*10465441SEvalZero },
608*10465441SEvalZero
609*10465441SEvalZero {
610*10465441SEvalZero 11, -46, -46, -46, -46, -46, -46, -46, -46, -46,
611*10465441SEvalZero -46, 46, -46, -46, -46, -46, -46, -46
612*10465441SEvalZero },
613*10465441SEvalZero
614*10465441SEvalZero {
615*10465441SEvalZero 11, 47, 47, -47, 47, 47, 47, 47, 47, 47,
616*10465441SEvalZero 47, 47, 47, 47, 47, 47, 47, 47
617*10465441SEvalZero },
618*10465441SEvalZero
619*10465441SEvalZero {
620*10465441SEvalZero 11, -48, 48, 49, -48, -48, -48, -48, -48, -48,
621*10465441SEvalZero -48, -48, -48, -48, -48, -48, -48, -48
622*10465441SEvalZero },
623*10465441SEvalZero
624*10465441SEvalZero {
625*10465441SEvalZero 11, 50, -49, -49, 50, 50, 50, 50, 50, 50,
626*10465441SEvalZero 50, 50, 50, 50, 50, 50, 50, 50
627*10465441SEvalZero
628*10465441SEvalZero },
629*10465441SEvalZero
630*10465441SEvalZero {
631*10465441SEvalZero 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
632*10465441SEvalZero -50, -50, -50, -50, -50, -50, -50, -50
633*10465441SEvalZero },
634*10465441SEvalZero
635*10465441SEvalZero {
636*10465441SEvalZero 11, 51, 51, 52, 51, -51, 51, 51, -51, 51,
637*10465441SEvalZero 51, 51, 51, 51, 51, 51, -51, 51
638*10465441SEvalZero },
639*10465441SEvalZero
640*10465441SEvalZero {
641*10465441SEvalZero 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
642*10465441SEvalZero -52, -52, -52, -52, -52, -52, -52, -52
643*10465441SEvalZero },
644*10465441SEvalZero
645*10465441SEvalZero {
646*10465441SEvalZero 11, -53, -53, 54, -53, -53, -53, -53, -53, -53,
647*10465441SEvalZero -53, -53, -53, -53, -53, -53, -53, -53
648*10465441SEvalZero },
649*10465441SEvalZero
650*10465441SEvalZero {
651*10465441SEvalZero 11, -54, -54, -54, -54, -54, -54, -54, -54, -54,
652*10465441SEvalZero -54, -54, -54, -54, -54, -54, -54, -54
653*10465441SEvalZero
654*10465441SEvalZero },
655*10465441SEvalZero
656*10465441SEvalZero {
657*10465441SEvalZero 11, -55, 55, -55, -55, -55, -55, -55, -55, -55,
658*10465441SEvalZero -55, -55, -55, -55, -55, -55, -55, -55
659*10465441SEvalZero },
660*10465441SEvalZero
661*10465441SEvalZero {
662*10465441SEvalZero 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
663*10465441SEvalZero -56, -56, -56, -56, -56, -56, -56, -56
664*10465441SEvalZero },
665*10465441SEvalZero
666*10465441SEvalZero {
667*10465441SEvalZero 11, 57, 57, -57, 57, 57, 57, 57, 57, 57,
668*10465441SEvalZero 57, 57, 57, 57, 57, 57, 57, 57
669*10465441SEvalZero },
670*10465441SEvalZero
671*10465441SEvalZero {
672*10465441SEvalZero 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
673*10465441SEvalZero -58, -58, -58, -58, -58, -58, -58, -58
674*10465441SEvalZero },
675*10465441SEvalZero
676*10465441SEvalZero {
677*10465441SEvalZero 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
678*10465441SEvalZero -59, 59, 59, -59, -59, -59, -59, -59
679*10465441SEvalZero
680*10465441SEvalZero },
681*10465441SEvalZero
682*10465441SEvalZero {
683*10465441SEvalZero 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
684*10465441SEvalZero -60, -60, -60, -60, -60, -60, -60, -60
685*10465441SEvalZero },
686*10465441SEvalZero
687*10465441SEvalZero {
688*10465441SEvalZero 11, -61, -61, -61, -61, -61, -61, -61, -61, -61,
689*10465441SEvalZero -61, -61, -61, -61, -61, -61, -61, -61
690*10465441SEvalZero },
691*10465441SEvalZero
692*10465441SEvalZero {
693*10465441SEvalZero 11, -62, -62, -62, -62, -62, -62, -62, -62, -62,
694*10465441SEvalZero -62, -62, -62, -62, -62, -62, -62, -62
695*10465441SEvalZero },
696*10465441SEvalZero
697*10465441SEvalZero {
698*10465441SEvalZero 11, -63, -63, -63, -63, -63, -63, -63, -63, -63,
699*10465441SEvalZero -63, -63, -63, -63, -63, -63, -63, -63
700*10465441SEvalZero },
701*10465441SEvalZero
702*10465441SEvalZero } ;
703*10465441SEvalZero
704*10465441SEvalZero static yy_state_type yy_get_previous_state (void );
705*10465441SEvalZero static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
706*10465441SEvalZero static int yy_get_next_buffer (void );
707*10465441SEvalZero static void yynoreturn yy_fatal_error (yyconst char* msg );
708*10465441SEvalZero
709*10465441SEvalZero /* Done after the current pattern has been matched and before the
710*10465441SEvalZero * corresponding action - sets up zconftext.
711*10465441SEvalZero */
712*10465441SEvalZero #define YY_DO_BEFORE_ACTION \
713*10465441SEvalZero (yytext_ptr) = yy_bp; \
714*10465441SEvalZero zconfleng = (int) (yy_cp - yy_bp); \
715*10465441SEvalZero (yy_hold_char) = *yy_cp; \
716*10465441SEvalZero *yy_cp = '\0'; \
717*10465441SEvalZero (yy_c_buf_p) = yy_cp;
718*10465441SEvalZero
719*10465441SEvalZero #define YY_NUM_RULES 37
720*10465441SEvalZero #define YY_END_OF_BUFFER 38
721*10465441SEvalZero /* This struct is not used in this scanner,
722*10465441SEvalZero but its presence is necessary. */
723*10465441SEvalZero struct yy_trans_info
724*10465441SEvalZero {
725*10465441SEvalZero flex_int32_t yy_verify;
726*10465441SEvalZero flex_int32_t yy_nxt;
727*10465441SEvalZero };
728*10465441SEvalZero static yyconst flex_int16_t yy_accept[64] =
729*10465441SEvalZero { 0,
730*10465441SEvalZero 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731*10465441SEvalZero 38, 5, 4, 2, 3, 7, 8, 6, 36, 33,
732*10465441SEvalZero 35, 28, 32, 31, 30, 26, 25, 21, 13, 20,
733*10465441SEvalZero 23, 26, 11, 12, 22, 18, 14, 19, 26, 26,
734*10465441SEvalZero 4, 2, 3, 3, 1, 6, 36, 33, 35, 34,
735*10465441SEvalZero 28, 27, 30, 29, 25, 15, 23, 9, 22, 16,
736*10465441SEvalZero 17, 24, 10
737*10465441SEvalZero } ;
738*10465441SEvalZero
739*10465441SEvalZero static yyconst YY_CHAR yy_ec[256] =
740*10465441SEvalZero { 0,
741*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
742*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
743*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
744*10465441SEvalZero 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
745*10465441SEvalZero 10, 1, 1, 1, 11, 12, 12, 11, 11, 11,
746*10465441SEvalZero 11, 11, 11, 11, 11, 11, 11, 1, 1, 13,
747*10465441SEvalZero 14, 15, 1, 1, 11, 11, 11, 11, 11, 11,
748*10465441SEvalZero 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
749*10465441SEvalZero 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
750*10465441SEvalZero 1, 16, 1, 1, 11, 1, 11, 11, 11, 11,
751*10465441SEvalZero
752*10465441SEvalZero 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
753*10465441SEvalZero 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
754*10465441SEvalZero 11, 11, 1, 17, 1, 1, 1, 1, 1, 1,
755*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
756*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
757*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
758*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
759*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
760*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
761*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
762*10465441SEvalZero
763*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
764*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
765*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
766*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
767*10465441SEvalZero 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
768*10465441SEvalZero 1, 1, 1, 1, 1
769*10465441SEvalZero } ;
770*10465441SEvalZero
771*10465441SEvalZero extern int zconf_flex_debug;
772*10465441SEvalZero int zconf_flex_debug = 0;
773*10465441SEvalZero
774*10465441SEvalZero /* The intent behind this definition is that it'll catch
775*10465441SEvalZero * any uses of REJECT which flex missed.
776*10465441SEvalZero */
777*10465441SEvalZero #define REJECT reject_used_but_not_detected
778*10465441SEvalZero #define yymore() yymore_used_but_not_detected
779*10465441SEvalZero #define YY_MORE_ADJ 0
780*10465441SEvalZero #define YY_RESTORE_YY_MORE_OFFSET
781*10465441SEvalZero char *zconftext;
782*10465441SEvalZero #define YY_NO_INPUT 1
783*10465441SEvalZero
784*10465441SEvalZero /*
785*10465441SEvalZero * Copyright (C) 2002 Roman Zippel <[email protected]>
786*10465441SEvalZero * Released under the terms of the GNU GPL v2.0.
787*10465441SEvalZero */
788*10465441SEvalZero
789*10465441SEvalZero #include <limits.h>
790*10465441SEvalZero #include <stdio.h>
791*10465441SEvalZero #include <stdlib.h>
792*10465441SEvalZero #include <string.h>
793*10465441SEvalZero #include <unistd.h>
794*10465441SEvalZero
795*10465441SEvalZero #include "lkc.h"
796*10465441SEvalZero
797*10465441SEvalZero #define START_STRSIZE 16
798*10465441SEvalZero
799*10465441SEvalZero static struct {
800*10465441SEvalZero struct file *file;
801*10465441SEvalZero int lineno;
802*10465441SEvalZero } current_pos;
803*10465441SEvalZero
804*10465441SEvalZero static char *text;
805*10465441SEvalZero static int text_size, text_asize;
806*10465441SEvalZero
807*10465441SEvalZero struct buffer {
808*10465441SEvalZero struct buffer *parent;
809*10465441SEvalZero YY_BUFFER_STATE state;
810*10465441SEvalZero };
811*10465441SEvalZero
812*10465441SEvalZero struct buffer *current_buf;
813*10465441SEvalZero
814*10465441SEvalZero static int last_ts, first_ts;
815*10465441SEvalZero
816*10465441SEvalZero static void zconf_endhelp(void);
817*10465441SEvalZero static void zconf_endfile(void);
818*10465441SEvalZero
new_string(void)819*10465441SEvalZero static void new_string(void)
820*10465441SEvalZero {
821*10465441SEvalZero text = xmalloc(START_STRSIZE);
822*10465441SEvalZero text_asize = START_STRSIZE;
823*10465441SEvalZero text_size = 0;
824*10465441SEvalZero *text = 0;
825*10465441SEvalZero }
826*10465441SEvalZero
append_string(const char * str,int size)827*10465441SEvalZero static void append_string(const char *str, int size)
828*10465441SEvalZero {
829*10465441SEvalZero int new_size = text_size + size + 1;
830*10465441SEvalZero if (new_size > text_asize) {
831*10465441SEvalZero new_size += START_STRSIZE - 1;
832*10465441SEvalZero new_size &= -START_STRSIZE;
833*10465441SEvalZero text = realloc(text, new_size);
834*10465441SEvalZero text_asize = new_size;
835*10465441SEvalZero }
836*10465441SEvalZero memcpy(text + text_size, str, size);
837*10465441SEvalZero text_size += size;
838*10465441SEvalZero text[text_size] = 0;
839*10465441SEvalZero }
840*10465441SEvalZero
alloc_string(const char * str,int size)841*10465441SEvalZero static void alloc_string(const char *str, int size)
842*10465441SEvalZero {
843*10465441SEvalZero text = xmalloc(size + 1);
844*10465441SEvalZero memcpy(text, str, size);
845*10465441SEvalZero text[size] = 0;
846*10465441SEvalZero }
847*10465441SEvalZero
warn_ignored_character(char chr)848*10465441SEvalZero static void warn_ignored_character(char chr)
849*10465441SEvalZero {
850*10465441SEvalZero fprintf(stderr,
851*10465441SEvalZero "%s:%d:warning: ignoring unsupported character '%c'\n",
852*10465441SEvalZero zconf_curname(), zconf_lineno(), chr);
853*10465441SEvalZero }
854*10465441SEvalZero
855*10465441SEvalZero #define INITIAL 0
856*10465441SEvalZero #define COMMAND 1
857*10465441SEvalZero #define HELP 2
858*10465441SEvalZero #define STRING 3
859*10465441SEvalZero #define PARAM 4
860*10465441SEvalZero
861*10465441SEvalZero #ifndef YY_NO_UNISTD_H
862*10465441SEvalZero /* Special case for "unistd.h", since it is non-ANSI. We include it way
863*10465441SEvalZero * down here because we want the user's section 1 to have been scanned first.
864*10465441SEvalZero * The user has a chance to override it with an option.
865*10465441SEvalZero */
866*10465441SEvalZero #include <unistd.h>
867*10465441SEvalZero #endif
868*10465441SEvalZero
869*10465441SEvalZero #ifndef YY_EXTRA_TYPE
870*10465441SEvalZero #define YY_EXTRA_TYPE void *
871*10465441SEvalZero #endif
872*10465441SEvalZero
873*10465441SEvalZero static int yy_init_globals (void );
874*10465441SEvalZero
875*10465441SEvalZero /* Accessor methods to globals.
876*10465441SEvalZero These are made visible to non-reentrant scanners for convenience. */
877*10465441SEvalZero
878*10465441SEvalZero int zconflex_destroy (void );
879*10465441SEvalZero
880*10465441SEvalZero int zconfget_debug (void );
881*10465441SEvalZero
882*10465441SEvalZero void zconfset_debug (int debug_flag );
883*10465441SEvalZero
884*10465441SEvalZero YY_EXTRA_TYPE zconfget_extra (void );
885*10465441SEvalZero
886*10465441SEvalZero void zconfset_extra (YY_EXTRA_TYPE user_defined );
887*10465441SEvalZero
888*10465441SEvalZero FILE *zconfget_in (void );
889*10465441SEvalZero
890*10465441SEvalZero void zconfset_in (FILE * _in_str );
891*10465441SEvalZero
892*10465441SEvalZero FILE *zconfget_out (void );
893*10465441SEvalZero
894*10465441SEvalZero void zconfset_out (FILE * _out_str );
895*10465441SEvalZero
896*10465441SEvalZero int zconfget_leng (void );
897*10465441SEvalZero
898*10465441SEvalZero char *zconfget_text (void );
899*10465441SEvalZero
900*10465441SEvalZero int zconfget_lineno (void );
901*10465441SEvalZero
902*10465441SEvalZero void zconfset_lineno (int _line_number );
903*10465441SEvalZero
904*10465441SEvalZero /* Macros after this point can all be overridden by user definitions in
905*10465441SEvalZero * section 1.
906*10465441SEvalZero */
907*10465441SEvalZero
908*10465441SEvalZero #ifndef YY_SKIP_YYWRAP
909*10465441SEvalZero #ifdef __cplusplus
910*10465441SEvalZero extern "C" int zconfwrap (void );
911*10465441SEvalZero #else
912*10465441SEvalZero extern int zconfwrap (void );
913*10465441SEvalZero #endif
914*10465441SEvalZero #endif
915*10465441SEvalZero
916*10465441SEvalZero #ifndef YY_NO_UNPUT
917*10465441SEvalZero
918*10465441SEvalZero static void yyunput (int c,char *buf_ptr );
919*10465441SEvalZero
920*10465441SEvalZero #endif
921*10465441SEvalZero
922*10465441SEvalZero #ifndef yytext_ptr
923*10465441SEvalZero static void yy_flex_strncpy (char *,yyconst char *,int );
924*10465441SEvalZero #endif
925*10465441SEvalZero
926*10465441SEvalZero #ifdef YY_NEED_STRLEN
927*10465441SEvalZero static int yy_flex_strlen (yyconst char * );
928*10465441SEvalZero #endif
929*10465441SEvalZero
930*10465441SEvalZero #ifndef YY_NO_INPUT
931*10465441SEvalZero
932*10465441SEvalZero #ifdef __cplusplus
933*10465441SEvalZero static int yyinput (void );
934*10465441SEvalZero #else
935*10465441SEvalZero static int input (void );
936*10465441SEvalZero #endif
937*10465441SEvalZero
938*10465441SEvalZero #endif
939*10465441SEvalZero
940*10465441SEvalZero /* Amount of stuff to slurp up with each read. */
941*10465441SEvalZero #ifndef YY_READ_BUF_SIZE
942*10465441SEvalZero #ifdef __ia64__
943*10465441SEvalZero /* On IA-64, the buffer size is 16k, not 8k */
944*10465441SEvalZero #define YY_READ_BUF_SIZE 16384
945*10465441SEvalZero #else
946*10465441SEvalZero #define YY_READ_BUF_SIZE 8192
947*10465441SEvalZero #endif /* __ia64__ */
948*10465441SEvalZero #endif
949*10465441SEvalZero
950*10465441SEvalZero /* Copy whatever the last rule matched to the standard output. */
951*10465441SEvalZero #ifndef ECHO
952*10465441SEvalZero /* This used to be an fputs(), but since the string might contain NUL's,
953*10465441SEvalZero * we now use fwrite().
954*10465441SEvalZero */
955*10465441SEvalZero #define ECHO do { if (fwrite( zconftext, (size_t) zconfleng, 1, zconfout )) {} } while (0)
956*10465441SEvalZero #endif
957*10465441SEvalZero
958*10465441SEvalZero /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
959*10465441SEvalZero * is returned in "result".
960*10465441SEvalZero */
961*10465441SEvalZero #ifndef YY_INPUT
962*10465441SEvalZero #define YY_INPUT(buf,result,max_size) \
963*10465441SEvalZero errno=0; \
964*10465441SEvalZero while ( (result = (int) read( fileno(zconfin), buf, max_size )) < 0 ) \
965*10465441SEvalZero { \
966*10465441SEvalZero if( errno != EINTR) \
967*10465441SEvalZero { \
968*10465441SEvalZero YY_FATAL_ERROR( "input in flex scanner failed" ); \
969*10465441SEvalZero break; \
970*10465441SEvalZero } \
971*10465441SEvalZero errno=0; \
972*10465441SEvalZero clearerr(zconfin); \
973*10465441SEvalZero }\
974*10465441SEvalZero \
975*10465441SEvalZero
976*10465441SEvalZero #endif
977*10465441SEvalZero
978*10465441SEvalZero /* No semi-colon after return; correct usage is to write "yyterminate();" -
979*10465441SEvalZero * we don't want an extra ';' after the "return" because that will cause
980*10465441SEvalZero * some compilers to complain about unreachable statements.
981*10465441SEvalZero */
982*10465441SEvalZero #ifndef yyterminate
983*10465441SEvalZero #define yyterminate() return YY_NULL
984*10465441SEvalZero #endif
985*10465441SEvalZero
986*10465441SEvalZero /* Number of entries by which start-condition stack grows. */
987*10465441SEvalZero #ifndef YY_START_STACK_INCR
988*10465441SEvalZero #define YY_START_STACK_INCR 25
989*10465441SEvalZero #endif
990*10465441SEvalZero
991*10465441SEvalZero /* Report a fatal error. */
992*10465441SEvalZero #ifndef YY_FATAL_ERROR
993*10465441SEvalZero #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
994*10465441SEvalZero #endif
995*10465441SEvalZero
996*10465441SEvalZero /* end tables serialization structures and prototypes */
997*10465441SEvalZero
998*10465441SEvalZero /* Default declaration of generated scanner - a define so the user can
999*10465441SEvalZero * easily add parameters.
1000*10465441SEvalZero */
1001*10465441SEvalZero #ifndef YY_DECL
1002*10465441SEvalZero #define YY_DECL_IS_OURS 1
1003*10465441SEvalZero
1004*10465441SEvalZero extern int zconflex (void);
1005*10465441SEvalZero
1006*10465441SEvalZero #define YY_DECL int zconflex (void)
1007*10465441SEvalZero #endif /* !YY_DECL */
1008*10465441SEvalZero
1009*10465441SEvalZero /* Code executed at the beginning of each rule, after zconftext and zconfleng
1010*10465441SEvalZero * have been set up.
1011*10465441SEvalZero */
1012*10465441SEvalZero #ifndef YY_USER_ACTION
1013*10465441SEvalZero #define YY_USER_ACTION
1014*10465441SEvalZero #endif
1015*10465441SEvalZero
1016*10465441SEvalZero /* Code executed at the end of each rule. */
1017*10465441SEvalZero #ifndef YY_BREAK
1018*10465441SEvalZero #define YY_BREAK /*LINTED*/break;
1019*10465441SEvalZero #endif
1020*10465441SEvalZero
1021*10465441SEvalZero #define YY_RULE_SETUP \
1022*10465441SEvalZero YY_USER_ACTION
1023*10465441SEvalZero
1024*10465441SEvalZero /** The main scanner function which does all the work.
1025*10465441SEvalZero */
1026*10465441SEvalZero YY_DECL
1027*10465441SEvalZero {
1028*10465441SEvalZero yy_state_type yy_current_state;
1029*10465441SEvalZero char *yy_cp, *yy_bp;
1030*10465441SEvalZero int yy_act;
1031*10465441SEvalZero
1032*10465441SEvalZero if ( !(yy_init) )
1033*10465441SEvalZero {
1034*10465441SEvalZero (yy_init) = 1;
1035*10465441SEvalZero
1036*10465441SEvalZero #ifdef YY_USER_INIT
1037*10465441SEvalZero YY_USER_INIT;
1038*10465441SEvalZero #endif
1039*10465441SEvalZero
1040*10465441SEvalZero if ( ! (yy_start) )
1041*10465441SEvalZero (yy_start) = 1; /* first start state */
1042*10465441SEvalZero
1043*10465441SEvalZero if ( ! zconfin )
1044*10465441SEvalZero zconfin = stdin;
1045*10465441SEvalZero
1046*10465441SEvalZero if ( ! zconfout )
1047*10465441SEvalZero zconfout = stdout;
1048*10465441SEvalZero
1049*10465441SEvalZero if ( ! YY_CURRENT_BUFFER ) {
1050*10465441SEvalZero zconfensure_buffer_stack ();
1051*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE =
1052*10465441SEvalZero zconf_create_buffer(zconfin,YY_BUF_SIZE );
1053*10465441SEvalZero }
1054*10465441SEvalZero
1055*10465441SEvalZero zconf_load_buffer_state( );
1056*10465441SEvalZero }
1057*10465441SEvalZero
1058*10465441SEvalZero {
1059*10465441SEvalZero
1060*10465441SEvalZero int str = 0;
1061*10465441SEvalZero int ts, i;
1062*10465441SEvalZero
1063*10465441SEvalZero while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1064*10465441SEvalZero {
1065*10465441SEvalZero yy_cp = (yy_c_buf_p);
1066*10465441SEvalZero
1067*10465441SEvalZero /* Support of zconftext. */
1068*10465441SEvalZero *yy_cp = (yy_hold_char);
1069*10465441SEvalZero
1070*10465441SEvalZero /* yy_bp points to the position in yy_ch_buf of the start of
1071*10465441SEvalZero * the current run.
1072*10465441SEvalZero */
1073*10465441SEvalZero yy_bp = yy_cp;
1074*10465441SEvalZero
1075*10465441SEvalZero yy_current_state = (yy_start);
1076*10465441SEvalZero yy_match:
1077*10465441SEvalZero while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
1078*10465441SEvalZero ++yy_cp;
1079*10465441SEvalZero
1080*10465441SEvalZero yy_current_state = -yy_current_state;
1081*10465441SEvalZero
1082*10465441SEvalZero yy_find_action:
1083*10465441SEvalZero yy_act = yy_accept[yy_current_state];
1084*10465441SEvalZero
1085*10465441SEvalZero YY_DO_BEFORE_ACTION;
1086*10465441SEvalZero
1087*10465441SEvalZero do_action: /* This label is used only to access EOF actions. */
1088*10465441SEvalZero
1089*10465441SEvalZero switch ( yy_act )
1090*10465441SEvalZero { /* beginning of action switch */
1091*10465441SEvalZero case 1:
1092*10465441SEvalZero /* rule 1 can match eol */
1093*10465441SEvalZero case 2:
1094*10465441SEvalZero /* rule 2 can match eol */
1095*10465441SEvalZero YY_RULE_SETUP
1096*10465441SEvalZero {
1097*10465441SEvalZero current_file->lineno++;
1098*10465441SEvalZero return T_EOL;
1099*10465441SEvalZero }
1100*10465441SEvalZero YY_BREAK
1101*10465441SEvalZero case 3:
1102*10465441SEvalZero YY_RULE_SETUP
1103*10465441SEvalZero
1104*10465441SEvalZero YY_BREAK
1105*10465441SEvalZero case 4:
1106*10465441SEvalZero YY_RULE_SETUP
1107*10465441SEvalZero {
1108*10465441SEvalZero BEGIN(COMMAND);
1109*10465441SEvalZero }
1110*10465441SEvalZero YY_BREAK
1111*10465441SEvalZero case 5:
1112*10465441SEvalZero YY_RULE_SETUP
1113*10465441SEvalZero {
1114*10465441SEvalZero unput(zconftext[0]);
1115*10465441SEvalZero BEGIN(COMMAND);
1116*10465441SEvalZero }
1117*10465441SEvalZero YY_BREAK
1118*10465441SEvalZero
1119*10465441SEvalZero case 6:
1120*10465441SEvalZero YY_RULE_SETUP
1121*10465441SEvalZero {
1122*10465441SEvalZero const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
1123*10465441SEvalZero BEGIN(PARAM);
1124*10465441SEvalZero current_pos.file = current_file;
1125*10465441SEvalZero current_pos.lineno = current_file->lineno;
1126*10465441SEvalZero if (id && id->flags & TF_COMMAND) {
1127*10465441SEvalZero zconflval.id = id;
1128*10465441SEvalZero return id->token;
1129*10465441SEvalZero }
1130*10465441SEvalZero alloc_string(zconftext, zconfleng);
1131*10465441SEvalZero zconflval.string = text;
1132*10465441SEvalZero return T_WORD;
1133*10465441SEvalZero }
1134*10465441SEvalZero YY_BREAK
1135*10465441SEvalZero case 7:
1136*10465441SEvalZero YY_RULE_SETUP
1137*10465441SEvalZero warn_ignored_character(*zconftext);
1138*10465441SEvalZero YY_BREAK
1139*10465441SEvalZero case 8:
1140*10465441SEvalZero /* rule 8 can match eol */
1141*10465441SEvalZero YY_RULE_SETUP
1142*10465441SEvalZero {
1143*10465441SEvalZero BEGIN(INITIAL);
1144*10465441SEvalZero current_file->lineno++;
1145*10465441SEvalZero return T_EOL;
1146*10465441SEvalZero }
1147*10465441SEvalZero YY_BREAK
1148*10465441SEvalZero
1149*10465441SEvalZero case 9:
1150*10465441SEvalZero YY_RULE_SETUP
1151*10465441SEvalZero return T_AND;
1152*10465441SEvalZero YY_BREAK
1153*10465441SEvalZero case 10:
1154*10465441SEvalZero YY_RULE_SETUP
1155*10465441SEvalZero return T_OR;
1156*10465441SEvalZero YY_BREAK
1157*10465441SEvalZero case 11:
1158*10465441SEvalZero YY_RULE_SETUP
1159*10465441SEvalZero return T_OPEN_PAREN;
1160*10465441SEvalZero YY_BREAK
1161*10465441SEvalZero case 12:
1162*10465441SEvalZero YY_RULE_SETUP
1163*10465441SEvalZero return T_CLOSE_PAREN;
1164*10465441SEvalZero YY_BREAK
1165*10465441SEvalZero case 13:
1166*10465441SEvalZero YY_RULE_SETUP
1167*10465441SEvalZero return T_NOT;
1168*10465441SEvalZero YY_BREAK
1169*10465441SEvalZero case 14:
1170*10465441SEvalZero YY_RULE_SETUP
1171*10465441SEvalZero return T_EQUAL;
1172*10465441SEvalZero YY_BREAK
1173*10465441SEvalZero case 15:
1174*10465441SEvalZero YY_RULE_SETUP
1175*10465441SEvalZero return T_UNEQUAL;
1176*10465441SEvalZero YY_BREAK
1177*10465441SEvalZero case 16:
1178*10465441SEvalZero YY_RULE_SETUP
1179*10465441SEvalZero return T_LESS_EQUAL;
1180*10465441SEvalZero YY_BREAK
1181*10465441SEvalZero case 17:
1182*10465441SEvalZero YY_RULE_SETUP
1183*10465441SEvalZero return T_GREATER_EQUAL;
1184*10465441SEvalZero YY_BREAK
1185*10465441SEvalZero case 18:
1186*10465441SEvalZero YY_RULE_SETUP
1187*10465441SEvalZero return T_LESS;
1188*10465441SEvalZero YY_BREAK
1189*10465441SEvalZero case 19:
1190*10465441SEvalZero YY_RULE_SETUP
1191*10465441SEvalZero return T_GREATER;
1192*10465441SEvalZero YY_BREAK
1193*10465441SEvalZero case 20:
1194*10465441SEvalZero YY_RULE_SETUP
1195*10465441SEvalZero {
1196*10465441SEvalZero str = zconftext[0];
1197*10465441SEvalZero new_string();
1198*10465441SEvalZero BEGIN(STRING);
1199*10465441SEvalZero }
1200*10465441SEvalZero YY_BREAK
1201*10465441SEvalZero case 21:
1202*10465441SEvalZero /* rule 21 can match eol */
1203*10465441SEvalZero YY_RULE_SETUP
1204*10465441SEvalZero BEGIN(INITIAL); current_file->lineno++; return T_EOL;
1205*10465441SEvalZero YY_BREAK
1206*10465441SEvalZero case 22:
1207*10465441SEvalZero YY_RULE_SETUP
1208*10465441SEvalZero {
1209*10465441SEvalZero const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
1210*10465441SEvalZero if (id && id->flags & TF_PARAM) {
1211*10465441SEvalZero zconflval.id = id;
1212*10465441SEvalZero return id->token;
1213*10465441SEvalZero }
1214*10465441SEvalZero alloc_string(zconftext, zconfleng);
1215*10465441SEvalZero zconflval.string = text;
1216*10465441SEvalZero return T_WORD;
1217*10465441SEvalZero }
1218*10465441SEvalZero YY_BREAK
1219*10465441SEvalZero case 23:
1220*10465441SEvalZero YY_RULE_SETUP
1221*10465441SEvalZero /* comment */
1222*10465441SEvalZero YY_BREAK
1223*10465441SEvalZero case 24:
1224*10465441SEvalZero /* rule 24 can match eol */
1225*10465441SEvalZero YY_RULE_SETUP
1226*10465441SEvalZero current_file->lineno++;
1227*10465441SEvalZero YY_BREAK
1228*10465441SEvalZero case 25:
1229*10465441SEvalZero YY_RULE_SETUP
1230*10465441SEvalZero
1231*10465441SEvalZero YY_BREAK
1232*10465441SEvalZero case 26:
1233*10465441SEvalZero YY_RULE_SETUP
1234*10465441SEvalZero warn_ignored_character(*zconftext);
1235*10465441SEvalZero YY_BREAK
1236*10465441SEvalZero case YY_STATE_EOF(PARAM):
1237*10465441SEvalZero {
1238*10465441SEvalZero BEGIN(INITIAL);
1239*10465441SEvalZero }
1240*10465441SEvalZero YY_BREAK
1241*10465441SEvalZero
1242*10465441SEvalZero case 27:
1243*10465441SEvalZero /* rule 27 can match eol */
1244*10465441SEvalZero *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
1245*10465441SEvalZero YY_LINENO_REWIND_TO(yy_cp - 1);
1246*10465441SEvalZero (yy_c_buf_p) = yy_cp -= 1;
1247*10465441SEvalZero YY_DO_BEFORE_ACTION; /* set up zconftext again */
1248*10465441SEvalZero YY_RULE_SETUP
1249*10465441SEvalZero {
1250*10465441SEvalZero append_string(zconftext, zconfleng);
1251*10465441SEvalZero zconflval.string = text;
1252*10465441SEvalZero return T_WORD_QUOTE;
1253*10465441SEvalZero }
1254*10465441SEvalZero YY_BREAK
1255*10465441SEvalZero case 28:
1256*10465441SEvalZero YY_RULE_SETUP
1257*10465441SEvalZero {
1258*10465441SEvalZero append_string(zconftext, zconfleng);
1259*10465441SEvalZero }
1260*10465441SEvalZero YY_BREAK
1261*10465441SEvalZero case 29:
1262*10465441SEvalZero /* rule 29 can match eol */
1263*10465441SEvalZero *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
1264*10465441SEvalZero YY_LINENO_REWIND_TO(yy_cp - 1);
1265*10465441SEvalZero (yy_c_buf_p) = yy_cp -= 1;
1266*10465441SEvalZero YY_DO_BEFORE_ACTION; /* set up zconftext again */
1267*10465441SEvalZero YY_RULE_SETUP
1268*10465441SEvalZero {
1269*10465441SEvalZero append_string(zconftext + 1, zconfleng - 1);
1270*10465441SEvalZero zconflval.string = text;
1271*10465441SEvalZero return T_WORD_QUOTE;
1272*10465441SEvalZero }
1273*10465441SEvalZero YY_BREAK
1274*10465441SEvalZero case 30:
1275*10465441SEvalZero YY_RULE_SETUP
1276*10465441SEvalZero {
1277*10465441SEvalZero append_string(zconftext + 1, zconfleng - 1);
1278*10465441SEvalZero }
1279*10465441SEvalZero YY_BREAK
1280*10465441SEvalZero case 31:
1281*10465441SEvalZero YY_RULE_SETUP
1282*10465441SEvalZero {
1283*10465441SEvalZero if (str == zconftext[0]) {
1284*10465441SEvalZero BEGIN(PARAM);
1285*10465441SEvalZero zconflval.string = text;
1286*10465441SEvalZero return T_WORD_QUOTE;
1287*10465441SEvalZero } else
1288*10465441SEvalZero append_string(zconftext, 1);
1289*10465441SEvalZero }
1290*10465441SEvalZero YY_BREAK
1291*10465441SEvalZero case 32:
1292*10465441SEvalZero /* rule 32 can match eol */
1293*10465441SEvalZero YY_RULE_SETUP
1294*10465441SEvalZero {
1295*10465441SEvalZero printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
1296*10465441SEvalZero current_file->lineno++;
1297*10465441SEvalZero BEGIN(INITIAL);
1298*10465441SEvalZero return T_EOL;
1299*10465441SEvalZero }
1300*10465441SEvalZero YY_BREAK
1301*10465441SEvalZero case YY_STATE_EOF(STRING):
1302*10465441SEvalZero {
1303*10465441SEvalZero BEGIN(INITIAL);
1304*10465441SEvalZero }
1305*10465441SEvalZero YY_BREAK
1306*10465441SEvalZero
1307*10465441SEvalZero case 33:
1308*10465441SEvalZero YY_RULE_SETUP
1309*10465441SEvalZero {
1310*10465441SEvalZero ts = 0;
1311*10465441SEvalZero for (i = 0; i < zconfleng; i++) {
1312*10465441SEvalZero if (zconftext[i] == '\t')
1313*10465441SEvalZero ts = (ts & ~7) + 8;
1314*10465441SEvalZero else
1315*10465441SEvalZero ts++;
1316*10465441SEvalZero }
1317*10465441SEvalZero last_ts = ts;
1318*10465441SEvalZero if (first_ts) {
1319*10465441SEvalZero if (ts < first_ts) {
1320*10465441SEvalZero zconf_endhelp();
1321*10465441SEvalZero return T_HELPTEXT;
1322*10465441SEvalZero }
1323*10465441SEvalZero ts -= first_ts;
1324*10465441SEvalZero while (ts > 8) {
1325*10465441SEvalZero append_string(" ", 8);
1326*10465441SEvalZero ts -= 8;
1327*10465441SEvalZero }
1328*10465441SEvalZero append_string(" ", ts);
1329*10465441SEvalZero }
1330*10465441SEvalZero }
1331*10465441SEvalZero YY_BREAK
1332*10465441SEvalZero case 34:
1333*10465441SEvalZero /* rule 34 can match eol */
1334*10465441SEvalZero *yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
1335*10465441SEvalZero YY_LINENO_REWIND_TO(yy_cp - 1);
1336*10465441SEvalZero (yy_c_buf_p) = yy_cp -= 1;
1337*10465441SEvalZero YY_DO_BEFORE_ACTION; /* set up zconftext again */
1338*10465441SEvalZero YY_RULE_SETUP
1339*10465441SEvalZero {
1340*10465441SEvalZero current_file->lineno++;
1341*10465441SEvalZero zconf_endhelp();
1342*10465441SEvalZero return T_HELPTEXT;
1343*10465441SEvalZero }
1344*10465441SEvalZero YY_BREAK
1345*10465441SEvalZero case 35:
1346*10465441SEvalZero /* rule 35 can match eol */
1347*10465441SEvalZero YY_RULE_SETUP
1348*10465441SEvalZero {
1349*10465441SEvalZero current_file->lineno++;
1350*10465441SEvalZero append_string("\n", 1);
1351*10465441SEvalZero }
1352*10465441SEvalZero YY_BREAK
1353*10465441SEvalZero case 36:
1354*10465441SEvalZero YY_RULE_SETUP
1355*10465441SEvalZero {
1356*10465441SEvalZero while (zconfleng) {
1357*10465441SEvalZero if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
1358*10465441SEvalZero break;
1359*10465441SEvalZero zconfleng--;
1360*10465441SEvalZero }
1361*10465441SEvalZero append_string(zconftext, zconfleng);
1362*10465441SEvalZero if (!first_ts)
1363*10465441SEvalZero first_ts = last_ts;
1364*10465441SEvalZero }
1365*10465441SEvalZero YY_BREAK
1366*10465441SEvalZero case YY_STATE_EOF(HELP):
1367*10465441SEvalZero {
1368*10465441SEvalZero zconf_endhelp();
1369*10465441SEvalZero return T_HELPTEXT;
1370*10465441SEvalZero }
1371*10465441SEvalZero YY_BREAK
1372*10465441SEvalZero
1373*10465441SEvalZero case YY_STATE_EOF(INITIAL):
1374*10465441SEvalZero case YY_STATE_EOF(COMMAND):
1375*10465441SEvalZero {
1376*10465441SEvalZero if (current_file) {
1377*10465441SEvalZero zconf_endfile();
1378*10465441SEvalZero return T_EOL;
1379*10465441SEvalZero }
1380*10465441SEvalZero fclose(zconfin);
1381*10465441SEvalZero yyterminate();
1382*10465441SEvalZero }
1383*10465441SEvalZero YY_BREAK
1384*10465441SEvalZero case 37:
1385*10465441SEvalZero YY_RULE_SETUP
1386*10465441SEvalZero YY_FATAL_ERROR( "flex scanner jammed" );
1387*10465441SEvalZero YY_BREAK
1388*10465441SEvalZero
1389*10465441SEvalZero case YY_END_OF_BUFFER:
1390*10465441SEvalZero {
1391*10465441SEvalZero /* Amount of text matched not including the EOB char. */
1392*10465441SEvalZero int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1393*10465441SEvalZero
1394*10465441SEvalZero /* Undo the effects of YY_DO_BEFORE_ACTION. */
1395*10465441SEvalZero *yy_cp = (yy_hold_char);
1396*10465441SEvalZero YY_RESTORE_YY_MORE_OFFSET
1397*10465441SEvalZero
1398*10465441SEvalZero if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1399*10465441SEvalZero {
1400*10465441SEvalZero /* We're scanning a new file or input source. It's
1401*10465441SEvalZero * possible that this happened because the user
1402*10465441SEvalZero * just pointed zconfin at a new source and called
1403*10465441SEvalZero * zconflex(). If so, then we have to assure
1404*10465441SEvalZero * consistency between YY_CURRENT_BUFFER and our
1405*10465441SEvalZero * globals. Here is the right place to do so, because
1406*10465441SEvalZero * this is the first action (other than possibly a
1407*10465441SEvalZero * back-up) that will match for the new input source.
1408*10465441SEvalZero */
1409*10465441SEvalZero (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1410*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
1411*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1412*10465441SEvalZero }
1413*10465441SEvalZero
1414*10465441SEvalZero /* Note that here we test for yy_c_buf_p "<=" to the position
1415*10465441SEvalZero * of the first EOB in the buffer, since yy_c_buf_p will
1416*10465441SEvalZero * already have been incremented past the NUL character
1417*10465441SEvalZero * (since all states make transitions on EOB to the
1418*10465441SEvalZero * end-of-buffer state). Contrast this with the test
1419*10465441SEvalZero * in input().
1420*10465441SEvalZero */
1421*10465441SEvalZero if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1422*10465441SEvalZero { /* This was really a NUL. */
1423*10465441SEvalZero yy_state_type yy_next_state;
1424*10465441SEvalZero
1425*10465441SEvalZero (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1426*10465441SEvalZero
1427*10465441SEvalZero yy_current_state = yy_get_previous_state( );
1428*10465441SEvalZero
1429*10465441SEvalZero /* Okay, we're now positioned to make the NUL
1430*10465441SEvalZero * transition. We couldn't have
1431*10465441SEvalZero * yy_get_previous_state() go ahead and do it
1432*10465441SEvalZero * for us because it doesn't know how to deal
1433*10465441SEvalZero * with the possibility of jamming (and we don't
1434*10465441SEvalZero * want to build jamming into it because then it
1435*10465441SEvalZero * will run more slowly).
1436*10465441SEvalZero */
1437*10465441SEvalZero
1438*10465441SEvalZero yy_next_state = yy_try_NUL_trans( yy_current_state );
1439*10465441SEvalZero
1440*10465441SEvalZero yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1441*10465441SEvalZero
1442*10465441SEvalZero if ( yy_next_state )
1443*10465441SEvalZero {
1444*10465441SEvalZero /* Consume the NUL. */
1445*10465441SEvalZero yy_cp = ++(yy_c_buf_p);
1446*10465441SEvalZero yy_current_state = yy_next_state;
1447*10465441SEvalZero goto yy_match;
1448*10465441SEvalZero }
1449*10465441SEvalZero
1450*10465441SEvalZero else
1451*10465441SEvalZero {
1452*10465441SEvalZero yy_cp = (yy_c_buf_p);
1453*10465441SEvalZero goto yy_find_action;
1454*10465441SEvalZero }
1455*10465441SEvalZero }
1456*10465441SEvalZero
1457*10465441SEvalZero else switch ( yy_get_next_buffer( ) )
1458*10465441SEvalZero {
1459*10465441SEvalZero case EOB_ACT_END_OF_FILE:
1460*10465441SEvalZero {
1461*10465441SEvalZero (yy_did_buffer_switch_on_eof) = 0;
1462*10465441SEvalZero
1463*10465441SEvalZero if ( zconfwrap( ) )
1464*10465441SEvalZero {
1465*10465441SEvalZero /* Note: because we've taken care in
1466*10465441SEvalZero * yy_get_next_buffer() to have set up
1467*10465441SEvalZero * zconftext, we can now set up
1468*10465441SEvalZero * yy_c_buf_p so that if some total
1469*10465441SEvalZero * hoser (like flex itself) wants to
1470*10465441SEvalZero * call the scanner after we return the
1471*10465441SEvalZero * YY_NULL, it'll still work - another
1472*10465441SEvalZero * YY_NULL will get returned.
1473*10465441SEvalZero */
1474*10465441SEvalZero (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1475*10465441SEvalZero
1476*10465441SEvalZero yy_act = YY_STATE_EOF(YY_START);
1477*10465441SEvalZero goto do_action;
1478*10465441SEvalZero }
1479*10465441SEvalZero
1480*10465441SEvalZero else
1481*10465441SEvalZero {
1482*10465441SEvalZero if ( ! (yy_did_buffer_switch_on_eof) )
1483*10465441SEvalZero YY_NEW_FILE;
1484*10465441SEvalZero }
1485*10465441SEvalZero break;
1486*10465441SEvalZero }
1487*10465441SEvalZero
1488*10465441SEvalZero case EOB_ACT_CONTINUE_SCAN:
1489*10465441SEvalZero (yy_c_buf_p) =
1490*10465441SEvalZero (yytext_ptr) + yy_amount_of_matched_text;
1491*10465441SEvalZero
1492*10465441SEvalZero yy_current_state = yy_get_previous_state( );
1493*10465441SEvalZero
1494*10465441SEvalZero yy_cp = (yy_c_buf_p);
1495*10465441SEvalZero yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1496*10465441SEvalZero goto yy_match;
1497*10465441SEvalZero
1498*10465441SEvalZero case EOB_ACT_LAST_MATCH:
1499*10465441SEvalZero (yy_c_buf_p) =
1500*10465441SEvalZero &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1501*10465441SEvalZero
1502*10465441SEvalZero yy_current_state = yy_get_previous_state( );
1503*10465441SEvalZero
1504*10465441SEvalZero yy_cp = (yy_c_buf_p);
1505*10465441SEvalZero yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1506*10465441SEvalZero goto yy_find_action;
1507*10465441SEvalZero }
1508*10465441SEvalZero break;
1509*10465441SEvalZero }
1510*10465441SEvalZero
1511*10465441SEvalZero default:
1512*10465441SEvalZero YY_FATAL_ERROR(
1513*10465441SEvalZero "fatal flex scanner internal error--no action found" );
1514*10465441SEvalZero } /* end of action switch */
1515*10465441SEvalZero } /* end of scanning one token */
1516*10465441SEvalZero } /* end of user's declarations */
1517*10465441SEvalZero } /* end of zconflex */
1518*10465441SEvalZero
1519*10465441SEvalZero /* yy_get_next_buffer - try to read in a new buffer
1520*10465441SEvalZero *
1521*10465441SEvalZero * Returns a code representing an action:
1522*10465441SEvalZero * EOB_ACT_LAST_MATCH -
1523*10465441SEvalZero * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1524*10465441SEvalZero * EOB_ACT_END_OF_FILE - end of file
1525*10465441SEvalZero */
yy_get_next_buffer(void)1526*10465441SEvalZero static int yy_get_next_buffer (void)
1527*10465441SEvalZero {
1528*10465441SEvalZero char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1529*10465441SEvalZero char *source = (yytext_ptr);
1530*10465441SEvalZero int number_to_move, i;
1531*10465441SEvalZero int ret_val;
1532*10465441SEvalZero
1533*10465441SEvalZero if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1534*10465441SEvalZero YY_FATAL_ERROR(
1535*10465441SEvalZero "fatal flex scanner internal error--end of buffer missed" );
1536*10465441SEvalZero
1537*10465441SEvalZero if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1538*10465441SEvalZero { /* Don't try to fill the buffer, so this is an EOF. */
1539*10465441SEvalZero if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1540*10465441SEvalZero {
1541*10465441SEvalZero /* We matched a single character, the EOB, so
1542*10465441SEvalZero * treat this as a final EOF.
1543*10465441SEvalZero */
1544*10465441SEvalZero return EOB_ACT_END_OF_FILE;
1545*10465441SEvalZero }
1546*10465441SEvalZero
1547*10465441SEvalZero else
1548*10465441SEvalZero {
1549*10465441SEvalZero /* We matched some text prior to the EOB, first
1550*10465441SEvalZero * process it.
1551*10465441SEvalZero */
1552*10465441SEvalZero return EOB_ACT_LAST_MATCH;
1553*10465441SEvalZero }
1554*10465441SEvalZero }
1555*10465441SEvalZero
1556*10465441SEvalZero /* Try to read more data. */
1557*10465441SEvalZero
1558*10465441SEvalZero /* First move last chars to start of buffer. */
1559*10465441SEvalZero number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1560*10465441SEvalZero
1561*10465441SEvalZero for ( i = 0; i < number_to_move; ++i )
1562*10465441SEvalZero *(dest++) = *(source++);
1563*10465441SEvalZero
1564*10465441SEvalZero if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1565*10465441SEvalZero /* don't do the read, it's not guaranteed to return an EOF,
1566*10465441SEvalZero * just force an EOF
1567*10465441SEvalZero */
1568*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1569*10465441SEvalZero
1570*10465441SEvalZero else
1571*10465441SEvalZero {
1572*10465441SEvalZero int num_to_read =
1573*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1574*10465441SEvalZero
1575*10465441SEvalZero while ( num_to_read <= 0 )
1576*10465441SEvalZero { /* Not enough room in the buffer - grow it. */
1577*10465441SEvalZero
1578*10465441SEvalZero /* just a shorter name for the current buffer */
1579*10465441SEvalZero YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1580*10465441SEvalZero
1581*10465441SEvalZero int yy_c_buf_p_offset =
1582*10465441SEvalZero (int) ((yy_c_buf_p) - b->yy_ch_buf);
1583*10465441SEvalZero
1584*10465441SEvalZero if ( b->yy_is_our_buffer )
1585*10465441SEvalZero {
1586*10465441SEvalZero int new_size = b->yy_buf_size * 2;
1587*10465441SEvalZero
1588*10465441SEvalZero if ( new_size <= 0 )
1589*10465441SEvalZero b->yy_buf_size += b->yy_buf_size / 8;
1590*10465441SEvalZero else
1591*10465441SEvalZero b->yy_buf_size *= 2;
1592*10465441SEvalZero
1593*10465441SEvalZero b->yy_ch_buf = (char *)
1594*10465441SEvalZero /* Include room in for 2 EOB chars. */
1595*10465441SEvalZero zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1596*10465441SEvalZero }
1597*10465441SEvalZero else
1598*10465441SEvalZero /* Can't grow it, we don't own it. */
1599*10465441SEvalZero b->yy_ch_buf = NULL;
1600*10465441SEvalZero
1601*10465441SEvalZero if ( ! b->yy_ch_buf )
1602*10465441SEvalZero YY_FATAL_ERROR(
1603*10465441SEvalZero "fatal error - scanner input buffer overflow" );
1604*10465441SEvalZero
1605*10465441SEvalZero (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1606*10465441SEvalZero
1607*10465441SEvalZero num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1608*10465441SEvalZero number_to_move - 1;
1609*10465441SEvalZero
1610*10465441SEvalZero }
1611*10465441SEvalZero
1612*10465441SEvalZero if ( num_to_read > YY_READ_BUF_SIZE )
1613*10465441SEvalZero num_to_read = YY_READ_BUF_SIZE;
1614*10465441SEvalZero
1615*10465441SEvalZero /* Read in more data. */
1616*10465441SEvalZero YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1617*10465441SEvalZero (yy_n_chars), num_to_read );
1618*10465441SEvalZero
1619*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1620*10465441SEvalZero }
1621*10465441SEvalZero
1622*10465441SEvalZero if ( (yy_n_chars) == 0 )
1623*10465441SEvalZero {
1624*10465441SEvalZero if ( number_to_move == YY_MORE_ADJ )
1625*10465441SEvalZero {
1626*10465441SEvalZero ret_val = EOB_ACT_END_OF_FILE;
1627*10465441SEvalZero zconfrestart(zconfin );
1628*10465441SEvalZero }
1629*10465441SEvalZero
1630*10465441SEvalZero else
1631*10465441SEvalZero {
1632*10465441SEvalZero ret_val = EOB_ACT_LAST_MATCH;
1633*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1634*10465441SEvalZero YY_BUFFER_EOF_PENDING;
1635*10465441SEvalZero }
1636*10465441SEvalZero }
1637*10465441SEvalZero
1638*10465441SEvalZero else
1639*10465441SEvalZero ret_val = EOB_ACT_CONTINUE_SCAN;
1640*10465441SEvalZero
1641*10465441SEvalZero if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1642*10465441SEvalZero /* Extend the array by 50%, plus the number we really need. */
1643*10465441SEvalZero int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1644*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
1645*10465441SEvalZero if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1646*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1647*10465441SEvalZero }
1648*10465441SEvalZero
1649*10465441SEvalZero (yy_n_chars) += number_to_move;
1650*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1651*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1652*10465441SEvalZero
1653*10465441SEvalZero (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1654*10465441SEvalZero
1655*10465441SEvalZero return ret_val;
1656*10465441SEvalZero }
1657*10465441SEvalZero
1658*10465441SEvalZero /* yy_get_previous_state - get the state just before the EOB char was reached */
1659*10465441SEvalZero
yy_get_previous_state(void)1660*10465441SEvalZero static yy_state_type yy_get_previous_state (void)
1661*10465441SEvalZero {
1662*10465441SEvalZero yy_state_type yy_current_state;
1663*10465441SEvalZero char *yy_cp;
1664*10465441SEvalZero
1665*10465441SEvalZero yy_current_state = (yy_start);
1666*10465441SEvalZero
1667*10465441SEvalZero for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1668*10465441SEvalZero {
1669*10465441SEvalZero yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
1670*10465441SEvalZero }
1671*10465441SEvalZero
1672*10465441SEvalZero return yy_current_state;
1673*10465441SEvalZero }
1674*10465441SEvalZero
1675*10465441SEvalZero /* yy_try_NUL_trans - try to make a transition on the NUL character
1676*10465441SEvalZero *
1677*10465441SEvalZero * synopsis
1678*10465441SEvalZero * next_state = yy_try_NUL_trans( current_state );
1679*10465441SEvalZero */
yy_try_NUL_trans(yy_state_type yy_current_state)1680*10465441SEvalZero static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
1681*10465441SEvalZero {
1682*10465441SEvalZero int yy_is_jam;
1683*10465441SEvalZero
1684*10465441SEvalZero yy_current_state = yy_nxt[yy_current_state][1];
1685*10465441SEvalZero yy_is_jam = (yy_current_state <= 0);
1686*10465441SEvalZero
1687*10465441SEvalZero return yy_is_jam ? 0 : yy_current_state;
1688*10465441SEvalZero }
1689*10465441SEvalZero
1690*10465441SEvalZero #ifndef YY_NO_UNPUT
1691*10465441SEvalZero
yyunput(int c,char * yy_bp)1692*10465441SEvalZero static void yyunput (int c, char * yy_bp )
1693*10465441SEvalZero {
1694*10465441SEvalZero char *yy_cp;
1695*10465441SEvalZero
1696*10465441SEvalZero yy_cp = (yy_c_buf_p);
1697*10465441SEvalZero
1698*10465441SEvalZero /* undo effects of setting up zconftext */
1699*10465441SEvalZero *yy_cp = (yy_hold_char);
1700*10465441SEvalZero
1701*10465441SEvalZero if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1702*10465441SEvalZero { /* need to shift things up to make room */
1703*10465441SEvalZero /* +2 for EOB chars. */
1704*10465441SEvalZero int number_to_move = (yy_n_chars) + 2;
1705*10465441SEvalZero char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1706*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1707*10465441SEvalZero char *source =
1708*10465441SEvalZero &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1709*10465441SEvalZero
1710*10465441SEvalZero while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1711*10465441SEvalZero *--dest = *--source;
1712*10465441SEvalZero
1713*10465441SEvalZero yy_cp += (int) (dest - source);
1714*10465441SEvalZero yy_bp += (int) (dest - source);
1715*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1716*10465441SEvalZero (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1717*10465441SEvalZero
1718*10465441SEvalZero if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1719*10465441SEvalZero YY_FATAL_ERROR( "flex scanner push-back overflow" );
1720*10465441SEvalZero }
1721*10465441SEvalZero
1722*10465441SEvalZero *--yy_cp = (char) c;
1723*10465441SEvalZero
1724*10465441SEvalZero (yytext_ptr) = yy_bp;
1725*10465441SEvalZero (yy_hold_char) = *yy_cp;
1726*10465441SEvalZero (yy_c_buf_p) = yy_cp;
1727*10465441SEvalZero }
1728*10465441SEvalZero
1729*10465441SEvalZero #endif
1730*10465441SEvalZero
1731*10465441SEvalZero #ifndef YY_NO_INPUT
1732*10465441SEvalZero #ifdef __cplusplus
yyinput(void)1733*10465441SEvalZero static int yyinput (void)
1734*10465441SEvalZero #else
1735*10465441SEvalZero static int input (void)
1736*10465441SEvalZero #endif
1737*10465441SEvalZero
1738*10465441SEvalZero {
1739*10465441SEvalZero int c;
1740*10465441SEvalZero
1741*10465441SEvalZero *(yy_c_buf_p) = (yy_hold_char);
1742*10465441SEvalZero
1743*10465441SEvalZero if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1744*10465441SEvalZero {
1745*10465441SEvalZero /* yy_c_buf_p now points to the character we want to return.
1746*10465441SEvalZero * If this occurs *before* the EOB characters, then it's a
1747*10465441SEvalZero * valid NUL; if not, then we've hit the end of the buffer.
1748*10465441SEvalZero */
1749*10465441SEvalZero if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1750*10465441SEvalZero /* This was really a NUL. */
1751*10465441SEvalZero *(yy_c_buf_p) = '\0';
1752*10465441SEvalZero
1753*10465441SEvalZero else
1754*10465441SEvalZero { /* need more input */
1755*10465441SEvalZero int offset = (yy_c_buf_p) - (yytext_ptr);
1756*10465441SEvalZero ++(yy_c_buf_p);
1757*10465441SEvalZero
1758*10465441SEvalZero switch ( yy_get_next_buffer( ) )
1759*10465441SEvalZero {
1760*10465441SEvalZero case EOB_ACT_LAST_MATCH:
1761*10465441SEvalZero /* This happens because yy_g_n_b()
1762*10465441SEvalZero * sees that we've accumulated a
1763*10465441SEvalZero * token and flags that we need to
1764*10465441SEvalZero * try matching the token before
1765*10465441SEvalZero * proceeding. But for input(),
1766*10465441SEvalZero * there's no matching to consider.
1767*10465441SEvalZero * So convert the EOB_ACT_LAST_MATCH
1768*10465441SEvalZero * to EOB_ACT_END_OF_FILE.
1769*10465441SEvalZero */
1770*10465441SEvalZero
1771*10465441SEvalZero /* Reset buffer status. */
1772*10465441SEvalZero zconfrestart(zconfin );
1773*10465441SEvalZero
1774*10465441SEvalZero /*FALLTHROUGH*/
1775*10465441SEvalZero
1776*10465441SEvalZero case EOB_ACT_END_OF_FILE:
1777*10465441SEvalZero {
1778*10465441SEvalZero if ( zconfwrap( ) )
1779*10465441SEvalZero return 0;
1780*10465441SEvalZero
1781*10465441SEvalZero if ( ! (yy_did_buffer_switch_on_eof) )
1782*10465441SEvalZero YY_NEW_FILE;
1783*10465441SEvalZero #ifdef __cplusplus
1784*10465441SEvalZero return yyinput();
1785*10465441SEvalZero #else
1786*10465441SEvalZero return input();
1787*10465441SEvalZero #endif
1788*10465441SEvalZero }
1789*10465441SEvalZero
1790*10465441SEvalZero case EOB_ACT_CONTINUE_SCAN:
1791*10465441SEvalZero (yy_c_buf_p) = (yytext_ptr) + offset;
1792*10465441SEvalZero break;
1793*10465441SEvalZero }
1794*10465441SEvalZero }
1795*10465441SEvalZero }
1796*10465441SEvalZero
1797*10465441SEvalZero c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1798*10465441SEvalZero *(yy_c_buf_p) = '\0'; /* preserve zconftext */
1799*10465441SEvalZero (yy_hold_char) = *++(yy_c_buf_p);
1800*10465441SEvalZero
1801*10465441SEvalZero return c;
1802*10465441SEvalZero }
1803*10465441SEvalZero #endif /* ifndef YY_NO_INPUT */
1804*10465441SEvalZero
1805*10465441SEvalZero /** Immediately switch to a different input stream.
1806*10465441SEvalZero * @param input_file A readable stream.
1807*10465441SEvalZero *
1808*10465441SEvalZero * @note This function does not reset the start condition to @c INITIAL .
1809*10465441SEvalZero */
zconfrestart(FILE * input_file)1810*10465441SEvalZero void zconfrestart (FILE * input_file )
1811*10465441SEvalZero {
1812*10465441SEvalZero
1813*10465441SEvalZero if ( ! YY_CURRENT_BUFFER ){
1814*10465441SEvalZero zconfensure_buffer_stack ();
1815*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE =
1816*10465441SEvalZero zconf_create_buffer(zconfin,YY_BUF_SIZE );
1817*10465441SEvalZero }
1818*10465441SEvalZero
1819*10465441SEvalZero zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
1820*10465441SEvalZero zconf_load_buffer_state( );
1821*10465441SEvalZero }
1822*10465441SEvalZero
1823*10465441SEvalZero /** Switch to a different input buffer.
1824*10465441SEvalZero * @param new_buffer The new input buffer.
1825*10465441SEvalZero *
1826*10465441SEvalZero */
zconf_switch_to_buffer(YY_BUFFER_STATE new_buffer)1827*10465441SEvalZero void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
1828*10465441SEvalZero {
1829*10465441SEvalZero
1830*10465441SEvalZero /* TODO. We should be able to replace this entire function body
1831*10465441SEvalZero * with
1832*10465441SEvalZero * zconfpop_buffer_state();
1833*10465441SEvalZero * zconfpush_buffer_state(new_buffer);
1834*10465441SEvalZero */
1835*10465441SEvalZero zconfensure_buffer_stack ();
1836*10465441SEvalZero if ( YY_CURRENT_BUFFER == new_buffer )
1837*10465441SEvalZero return;
1838*10465441SEvalZero
1839*10465441SEvalZero if ( YY_CURRENT_BUFFER )
1840*10465441SEvalZero {
1841*10465441SEvalZero /* Flush out information for old buffer. */
1842*10465441SEvalZero *(yy_c_buf_p) = (yy_hold_char);
1843*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1844*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1845*10465441SEvalZero }
1846*10465441SEvalZero
1847*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = new_buffer;
1848*10465441SEvalZero zconf_load_buffer_state( );
1849*10465441SEvalZero
1850*10465441SEvalZero /* We don't actually know whether we did this switch during
1851*10465441SEvalZero * EOF (zconfwrap()) processing, but the only time this flag
1852*10465441SEvalZero * is looked at is after zconfwrap() is called, so it's safe
1853*10465441SEvalZero * to go ahead and always set it.
1854*10465441SEvalZero */
1855*10465441SEvalZero (yy_did_buffer_switch_on_eof) = 1;
1856*10465441SEvalZero }
1857*10465441SEvalZero
zconf_load_buffer_state(void)1858*10465441SEvalZero static void zconf_load_buffer_state (void)
1859*10465441SEvalZero {
1860*10465441SEvalZero (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1861*10465441SEvalZero (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1862*10465441SEvalZero zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1863*10465441SEvalZero (yy_hold_char) = *(yy_c_buf_p);
1864*10465441SEvalZero }
1865*10465441SEvalZero
1866*10465441SEvalZero /** Allocate and initialize an input buffer state.
1867*10465441SEvalZero * @param file A readable stream.
1868*10465441SEvalZero * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1869*10465441SEvalZero *
1870*10465441SEvalZero * @return the allocated buffer state.
1871*10465441SEvalZero */
zconf_create_buffer(FILE * file,int size)1872*10465441SEvalZero YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
1873*10465441SEvalZero {
1874*10465441SEvalZero YY_BUFFER_STATE b;
1875*10465441SEvalZero
1876*10465441SEvalZero b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
1877*10465441SEvalZero if ( ! b )
1878*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
1879*10465441SEvalZero
1880*10465441SEvalZero b->yy_buf_size = (yy_size_t)size;
1881*10465441SEvalZero
1882*10465441SEvalZero /* yy_ch_buf has to be 2 characters longer than the size given because
1883*10465441SEvalZero * we need to put in 2 end-of-buffer characters.
1884*10465441SEvalZero */
1885*10465441SEvalZero b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
1886*10465441SEvalZero if ( ! b->yy_ch_buf )
1887*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
1888*10465441SEvalZero
1889*10465441SEvalZero b->yy_is_our_buffer = 1;
1890*10465441SEvalZero
1891*10465441SEvalZero zconf_init_buffer(b,file );
1892*10465441SEvalZero
1893*10465441SEvalZero return b;
1894*10465441SEvalZero }
1895*10465441SEvalZero
1896*10465441SEvalZero /** Destroy the buffer.
1897*10465441SEvalZero * @param b a buffer created with zconf_create_buffer()
1898*10465441SEvalZero *
1899*10465441SEvalZero */
zconf_delete_buffer(YY_BUFFER_STATE b)1900*10465441SEvalZero void zconf_delete_buffer (YY_BUFFER_STATE b )
1901*10465441SEvalZero {
1902*10465441SEvalZero
1903*10465441SEvalZero if ( ! b )
1904*10465441SEvalZero return;
1905*10465441SEvalZero
1906*10465441SEvalZero if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1907*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1908*10465441SEvalZero
1909*10465441SEvalZero if ( b->yy_is_our_buffer )
1910*10465441SEvalZero zconffree((void *) b->yy_ch_buf );
1911*10465441SEvalZero
1912*10465441SEvalZero zconffree((void *) b );
1913*10465441SEvalZero }
1914*10465441SEvalZero
1915*10465441SEvalZero /* Initializes or reinitializes a buffer.
1916*10465441SEvalZero * This function is sometimes called more than once on the same buffer,
1917*10465441SEvalZero * such as during a zconfrestart() or at EOF.
1918*10465441SEvalZero */
zconf_init_buffer(YY_BUFFER_STATE b,FILE * file)1919*10465441SEvalZero static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
1920*10465441SEvalZero
1921*10465441SEvalZero {
1922*10465441SEvalZero int oerrno = errno;
1923*10465441SEvalZero
1924*10465441SEvalZero zconf_flush_buffer(b );
1925*10465441SEvalZero
1926*10465441SEvalZero b->yy_input_file = file;
1927*10465441SEvalZero b->yy_fill_buffer = 1;
1928*10465441SEvalZero
1929*10465441SEvalZero /* If b is the current buffer, then zconf_init_buffer was _probably_
1930*10465441SEvalZero * called from zconfrestart() or through yy_get_next_buffer.
1931*10465441SEvalZero * In that case, we don't want to reset the lineno or column.
1932*10465441SEvalZero */
1933*10465441SEvalZero if (b != YY_CURRENT_BUFFER){
1934*10465441SEvalZero b->yy_bs_lineno = 1;
1935*10465441SEvalZero b->yy_bs_column = 0;
1936*10465441SEvalZero }
1937*10465441SEvalZero
1938*10465441SEvalZero b->yy_is_interactive = 0;
1939*10465441SEvalZero
1940*10465441SEvalZero errno = oerrno;
1941*10465441SEvalZero }
1942*10465441SEvalZero
1943*10465441SEvalZero /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1944*10465441SEvalZero * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1945*10465441SEvalZero *
1946*10465441SEvalZero */
zconf_flush_buffer(YY_BUFFER_STATE b)1947*10465441SEvalZero void zconf_flush_buffer (YY_BUFFER_STATE b )
1948*10465441SEvalZero {
1949*10465441SEvalZero if ( ! b )
1950*10465441SEvalZero return;
1951*10465441SEvalZero
1952*10465441SEvalZero b->yy_n_chars = 0;
1953*10465441SEvalZero
1954*10465441SEvalZero /* We always need two end-of-buffer characters. The first causes
1955*10465441SEvalZero * a transition to the end-of-buffer state. The second causes
1956*10465441SEvalZero * a jam in that state.
1957*10465441SEvalZero */
1958*10465441SEvalZero b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1959*10465441SEvalZero b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1960*10465441SEvalZero
1961*10465441SEvalZero b->yy_buf_pos = &b->yy_ch_buf[0];
1962*10465441SEvalZero
1963*10465441SEvalZero b->yy_at_bol = 1;
1964*10465441SEvalZero b->yy_buffer_status = YY_BUFFER_NEW;
1965*10465441SEvalZero
1966*10465441SEvalZero if ( b == YY_CURRENT_BUFFER )
1967*10465441SEvalZero zconf_load_buffer_state( );
1968*10465441SEvalZero }
1969*10465441SEvalZero
1970*10465441SEvalZero /** Pushes the new state onto the stack. The new state becomes
1971*10465441SEvalZero * the current state. This function will allocate the stack
1972*10465441SEvalZero * if necessary.
1973*10465441SEvalZero * @param new_buffer The new state.
1974*10465441SEvalZero *
1975*10465441SEvalZero */
zconfpush_buffer_state(YY_BUFFER_STATE new_buffer)1976*10465441SEvalZero void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
1977*10465441SEvalZero {
1978*10465441SEvalZero if (new_buffer == NULL)
1979*10465441SEvalZero return;
1980*10465441SEvalZero
1981*10465441SEvalZero zconfensure_buffer_stack();
1982*10465441SEvalZero
1983*10465441SEvalZero /* This block is copied from zconf_switch_to_buffer. */
1984*10465441SEvalZero if ( YY_CURRENT_BUFFER )
1985*10465441SEvalZero {
1986*10465441SEvalZero /* Flush out information for old buffer. */
1987*10465441SEvalZero *(yy_c_buf_p) = (yy_hold_char);
1988*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1989*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1990*10465441SEvalZero }
1991*10465441SEvalZero
1992*10465441SEvalZero /* Only push if top exists. Otherwise, replace top. */
1993*10465441SEvalZero if (YY_CURRENT_BUFFER)
1994*10465441SEvalZero (yy_buffer_stack_top)++;
1995*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = new_buffer;
1996*10465441SEvalZero
1997*10465441SEvalZero /* copied from zconf_switch_to_buffer. */
1998*10465441SEvalZero zconf_load_buffer_state( );
1999*10465441SEvalZero (yy_did_buffer_switch_on_eof) = 1;
2000*10465441SEvalZero }
2001*10465441SEvalZero
2002*10465441SEvalZero /** Removes and deletes the top of the stack, if present.
2003*10465441SEvalZero * The next element becomes the new top.
2004*10465441SEvalZero *
2005*10465441SEvalZero */
zconfpop_buffer_state(void)2006*10465441SEvalZero void zconfpop_buffer_state (void)
2007*10465441SEvalZero {
2008*10465441SEvalZero if (!YY_CURRENT_BUFFER)
2009*10465441SEvalZero return;
2010*10465441SEvalZero
2011*10465441SEvalZero zconf_delete_buffer(YY_CURRENT_BUFFER );
2012*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = NULL;
2013*10465441SEvalZero if ((yy_buffer_stack_top) > 0)
2014*10465441SEvalZero --(yy_buffer_stack_top);
2015*10465441SEvalZero
2016*10465441SEvalZero if (YY_CURRENT_BUFFER) {
2017*10465441SEvalZero zconf_load_buffer_state( );
2018*10465441SEvalZero (yy_did_buffer_switch_on_eof) = 1;
2019*10465441SEvalZero }
2020*10465441SEvalZero }
2021*10465441SEvalZero
2022*10465441SEvalZero /* Allocates the stack if it does not exist.
2023*10465441SEvalZero * Guarantees space for at least one push.
2024*10465441SEvalZero */
zconfensure_buffer_stack(void)2025*10465441SEvalZero static void zconfensure_buffer_stack (void)
2026*10465441SEvalZero {
2027*10465441SEvalZero int num_to_alloc;
2028*10465441SEvalZero
2029*10465441SEvalZero if (!(yy_buffer_stack)) {
2030*10465441SEvalZero
2031*10465441SEvalZero /* First allocation is just for 2 elements, since we don't know if this
2032*10465441SEvalZero * scanner will even need a stack. We use 2 instead of 1 to avoid an
2033*10465441SEvalZero * immediate realloc on the next call.
2034*10465441SEvalZero */
2035*10465441SEvalZero num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2036*10465441SEvalZero (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
2037*10465441SEvalZero (num_to_alloc * sizeof(struct yy_buffer_state*)
2038*10465441SEvalZero );
2039*10465441SEvalZero if ( ! (yy_buffer_stack) )
2040*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
2041*10465441SEvalZero
2042*10465441SEvalZero memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2043*10465441SEvalZero
2044*10465441SEvalZero (yy_buffer_stack_max) = num_to_alloc;
2045*10465441SEvalZero (yy_buffer_stack_top) = 0;
2046*10465441SEvalZero return;
2047*10465441SEvalZero }
2048*10465441SEvalZero
2049*10465441SEvalZero if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2050*10465441SEvalZero
2051*10465441SEvalZero /* Increase the buffer to prepare for a possible push. */
2052*10465441SEvalZero yy_size_t grow_size = 8 /* arbitrary grow size */;
2053*10465441SEvalZero
2054*10465441SEvalZero num_to_alloc = (yy_buffer_stack_max) + grow_size;
2055*10465441SEvalZero (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
2056*10465441SEvalZero ((yy_buffer_stack),
2057*10465441SEvalZero num_to_alloc * sizeof(struct yy_buffer_state*)
2058*10465441SEvalZero );
2059*10465441SEvalZero if ( ! (yy_buffer_stack) )
2060*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
2061*10465441SEvalZero
2062*10465441SEvalZero /* zero only the new slots.*/
2063*10465441SEvalZero memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2064*10465441SEvalZero (yy_buffer_stack_max) = num_to_alloc;
2065*10465441SEvalZero }
2066*10465441SEvalZero }
2067*10465441SEvalZero
2068*10465441SEvalZero /** Setup the input buffer state to scan directly from a user-specified character buffer.
2069*10465441SEvalZero * @param base the character buffer
2070*10465441SEvalZero * @param size the size in bytes of the character buffer
2071*10465441SEvalZero *
2072*10465441SEvalZero * @return the newly allocated buffer state object.
2073*10465441SEvalZero */
zconf_scan_buffer(char * base,yy_size_t size)2074*10465441SEvalZero YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
2075*10465441SEvalZero {
2076*10465441SEvalZero YY_BUFFER_STATE b;
2077*10465441SEvalZero
2078*10465441SEvalZero if ( size < 2 ||
2079*10465441SEvalZero base[size-2] != YY_END_OF_BUFFER_CHAR ||
2080*10465441SEvalZero base[size-1] != YY_END_OF_BUFFER_CHAR )
2081*10465441SEvalZero /* They forgot to leave room for the EOB's. */
2082*10465441SEvalZero return NULL;
2083*10465441SEvalZero
2084*10465441SEvalZero b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
2085*10465441SEvalZero if ( ! b )
2086*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
2087*10465441SEvalZero
2088*10465441SEvalZero b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2089*10465441SEvalZero b->yy_buf_pos = b->yy_ch_buf = base;
2090*10465441SEvalZero b->yy_is_our_buffer = 0;
2091*10465441SEvalZero b->yy_input_file = NULL;
2092*10465441SEvalZero b->yy_n_chars = b->yy_buf_size;
2093*10465441SEvalZero b->yy_is_interactive = 0;
2094*10465441SEvalZero b->yy_at_bol = 1;
2095*10465441SEvalZero b->yy_fill_buffer = 0;
2096*10465441SEvalZero b->yy_buffer_status = YY_BUFFER_NEW;
2097*10465441SEvalZero
2098*10465441SEvalZero zconf_switch_to_buffer(b );
2099*10465441SEvalZero
2100*10465441SEvalZero return b;
2101*10465441SEvalZero }
2102*10465441SEvalZero
2103*10465441SEvalZero /** Setup the input buffer state to scan a string. The next call to zconflex() will
2104*10465441SEvalZero * scan from a @e copy of @a str.
2105*10465441SEvalZero * @param yystr a NUL-terminated string to scan
2106*10465441SEvalZero *
2107*10465441SEvalZero * @return the newly allocated buffer state object.
2108*10465441SEvalZero * @note If you want to scan bytes that may contain NUL values, then use
2109*10465441SEvalZero * zconf_scan_bytes() instead.
2110*10465441SEvalZero */
zconf_scan_string(yyconst char * yystr)2111*10465441SEvalZero YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
2112*10465441SEvalZero {
2113*10465441SEvalZero
2114*10465441SEvalZero return zconf_scan_bytes(yystr,(int) strlen(yystr) );
2115*10465441SEvalZero }
2116*10465441SEvalZero
2117*10465441SEvalZero /** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
2118*10465441SEvalZero * scan from a @e copy of @a bytes.
2119*10465441SEvalZero * @param yybytes the byte buffer to scan
2120*10465441SEvalZero * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2121*10465441SEvalZero *
2122*10465441SEvalZero * @return the newly allocated buffer state object.
2123*10465441SEvalZero */
zconf_scan_bytes(yyconst char * yybytes,int _yybytes_len)2124*10465441SEvalZero YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2125*10465441SEvalZero {
2126*10465441SEvalZero YY_BUFFER_STATE b;
2127*10465441SEvalZero char *buf;
2128*10465441SEvalZero yy_size_t n;
2129*10465441SEvalZero int i;
2130*10465441SEvalZero
2131*10465441SEvalZero /* Get memory for full buffer, including space for trailing EOB's. */
2132*10465441SEvalZero n = (yy_size_t) (_yybytes_len + 2);
2133*10465441SEvalZero buf = (char *) zconfalloc(n );
2134*10465441SEvalZero if ( ! buf )
2135*10465441SEvalZero YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
2136*10465441SEvalZero
2137*10465441SEvalZero for ( i = 0; i < _yybytes_len; ++i )
2138*10465441SEvalZero buf[i] = yybytes[i];
2139*10465441SEvalZero
2140*10465441SEvalZero buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2141*10465441SEvalZero
2142*10465441SEvalZero b = zconf_scan_buffer(buf,n );
2143*10465441SEvalZero if ( ! b )
2144*10465441SEvalZero YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
2145*10465441SEvalZero
2146*10465441SEvalZero /* It's okay to grow etc. this buffer, and we should throw it
2147*10465441SEvalZero * away when we're done.
2148*10465441SEvalZero */
2149*10465441SEvalZero b->yy_is_our_buffer = 1;
2150*10465441SEvalZero
2151*10465441SEvalZero return b;
2152*10465441SEvalZero }
2153*10465441SEvalZero
2154*10465441SEvalZero #ifndef YY_EXIT_FAILURE
2155*10465441SEvalZero #define YY_EXIT_FAILURE 2
2156*10465441SEvalZero #endif
2157*10465441SEvalZero
yy_fatal_error(yyconst char * msg)2158*10465441SEvalZero static void yynoreturn yy_fatal_error (yyconst char* msg )
2159*10465441SEvalZero {
2160*10465441SEvalZero (void) fprintf( stderr, "%s\n", msg );
2161*10465441SEvalZero exit( YY_EXIT_FAILURE );
2162*10465441SEvalZero }
2163*10465441SEvalZero
2164*10465441SEvalZero /* Redefine yyless() so it works in section 3 code. */
2165*10465441SEvalZero
2166*10465441SEvalZero #undef yyless
2167*10465441SEvalZero #define yyless(n) \
2168*10465441SEvalZero do \
2169*10465441SEvalZero { \
2170*10465441SEvalZero /* Undo effects of setting up zconftext. */ \
2171*10465441SEvalZero int yyless_macro_arg = (n); \
2172*10465441SEvalZero YY_LESS_LINENO(yyless_macro_arg);\
2173*10465441SEvalZero zconftext[zconfleng] = (yy_hold_char); \
2174*10465441SEvalZero (yy_c_buf_p) = zconftext + yyless_macro_arg; \
2175*10465441SEvalZero (yy_hold_char) = *(yy_c_buf_p); \
2176*10465441SEvalZero *(yy_c_buf_p) = '\0'; \
2177*10465441SEvalZero zconfleng = yyless_macro_arg; \
2178*10465441SEvalZero } \
2179*10465441SEvalZero while ( 0 )
2180*10465441SEvalZero
2181*10465441SEvalZero /* Accessor methods (get/set functions) to struct members. */
2182*10465441SEvalZero
2183*10465441SEvalZero /** Get the current line number.
2184*10465441SEvalZero *
2185*10465441SEvalZero */
zconfget_lineno(void)2186*10465441SEvalZero int zconfget_lineno (void)
2187*10465441SEvalZero {
2188*10465441SEvalZero
2189*10465441SEvalZero return zconflineno;
2190*10465441SEvalZero }
2191*10465441SEvalZero
2192*10465441SEvalZero /** Get the input stream.
2193*10465441SEvalZero *
2194*10465441SEvalZero */
zconfget_in(void)2195*10465441SEvalZero FILE *zconfget_in (void)
2196*10465441SEvalZero {
2197*10465441SEvalZero return zconfin;
2198*10465441SEvalZero }
2199*10465441SEvalZero
2200*10465441SEvalZero /** Get the output stream.
2201*10465441SEvalZero *
2202*10465441SEvalZero */
zconfget_out(void)2203*10465441SEvalZero FILE *zconfget_out (void)
2204*10465441SEvalZero {
2205*10465441SEvalZero return zconfout;
2206*10465441SEvalZero }
2207*10465441SEvalZero
2208*10465441SEvalZero /** Get the length of the current token.
2209*10465441SEvalZero *
2210*10465441SEvalZero */
zconfget_leng(void)2211*10465441SEvalZero int zconfget_leng (void)
2212*10465441SEvalZero {
2213*10465441SEvalZero return zconfleng;
2214*10465441SEvalZero }
2215*10465441SEvalZero
2216*10465441SEvalZero /** Get the current token.
2217*10465441SEvalZero *
2218*10465441SEvalZero */
2219*10465441SEvalZero
zconfget_text(void)2220*10465441SEvalZero char *zconfget_text (void)
2221*10465441SEvalZero {
2222*10465441SEvalZero return zconftext;
2223*10465441SEvalZero }
2224*10465441SEvalZero
2225*10465441SEvalZero /** Set the current line number.
2226*10465441SEvalZero * @param _line_number line number
2227*10465441SEvalZero *
2228*10465441SEvalZero */
zconfset_lineno(int _line_number)2229*10465441SEvalZero void zconfset_lineno (int _line_number )
2230*10465441SEvalZero {
2231*10465441SEvalZero
2232*10465441SEvalZero zconflineno = _line_number;
2233*10465441SEvalZero }
2234*10465441SEvalZero
2235*10465441SEvalZero /** Set the input stream. This does not discard the current
2236*10465441SEvalZero * input buffer.
2237*10465441SEvalZero * @param _in_str A readable stream.
2238*10465441SEvalZero *
2239*10465441SEvalZero * @see zconf_switch_to_buffer
2240*10465441SEvalZero */
zconfset_in(FILE * _in_str)2241*10465441SEvalZero void zconfset_in (FILE * _in_str )
2242*10465441SEvalZero {
2243*10465441SEvalZero zconfin = _in_str ;
2244*10465441SEvalZero }
2245*10465441SEvalZero
zconfset_out(FILE * _out_str)2246*10465441SEvalZero void zconfset_out (FILE * _out_str )
2247*10465441SEvalZero {
2248*10465441SEvalZero zconfout = _out_str ;
2249*10465441SEvalZero }
2250*10465441SEvalZero
zconfget_debug(void)2251*10465441SEvalZero int zconfget_debug (void)
2252*10465441SEvalZero {
2253*10465441SEvalZero return zconf_flex_debug;
2254*10465441SEvalZero }
2255*10465441SEvalZero
zconfset_debug(int _bdebug)2256*10465441SEvalZero void zconfset_debug (int _bdebug )
2257*10465441SEvalZero {
2258*10465441SEvalZero zconf_flex_debug = _bdebug ;
2259*10465441SEvalZero }
2260*10465441SEvalZero
yy_init_globals(void)2261*10465441SEvalZero static int yy_init_globals (void)
2262*10465441SEvalZero {
2263*10465441SEvalZero /* Initialization is the same as for the non-reentrant scanner.
2264*10465441SEvalZero * This function is called from zconflex_destroy(), so don't allocate here.
2265*10465441SEvalZero */
2266*10465441SEvalZero
2267*10465441SEvalZero (yy_buffer_stack) = NULL;
2268*10465441SEvalZero (yy_buffer_stack_top) = 0;
2269*10465441SEvalZero (yy_buffer_stack_max) = 0;
2270*10465441SEvalZero (yy_c_buf_p) = NULL;
2271*10465441SEvalZero (yy_init) = 0;
2272*10465441SEvalZero (yy_start) = 0;
2273*10465441SEvalZero
2274*10465441SEvalZero /* Defined in main.c */
2275*10465441SEvalZero #ifdef YY_STDINIT
2276*10465441SEvalZero zconfin = stdin;
2277*10465441SEvalZero zconfout = stdout;
2278*10465441SEvalZero #else
2279*10465441SEvalZero zconfin = NULL;
2280*10465441SEvalZero zconfout = NULL;
2281*10465441SEvalZero #endif
2282*10465441SEvalZero
2283*10465441SEvalZero /* For future reference: Set errno on error, since we are called by
2284*10465441SEvalZero * zconflex_init()
2285*10465441SEvalZero */
2286*10465441SEvalZero return 0;
2287*10465441SEvalZero }
2288*10465441SEvalZero
2289*10465441SEvalZero /* zconflex_destroy is for both reentrant and non-reentrant scanners. */
zconflex_destroy(void)2290*10465441SEvalZero int zconflex_destroy (void)
2291*10465441SEvalZero {
2292*10465441SEvalZero
2293*10465441SEvalZero /* Pop the buffer stack, destroying each element. */
2294*10465441SEvalZero while(YY_CURRENT_BUFFER){
2295*10465441SEvalZero zconf_delete_buffer(YY_CURRENT_BUFFER );
2296*10465441SEvalZero YY_CURRENT_BUFFER_LVALUE = NULL;
2297*10465441SEvalZero zconfpop_buffer_state();
2298*10465441SEvalZero }
2299*10465441SEvalZero
2300*10465441SEvalZero /* Destroy the stack itself. */
2301*10465441SEvalZero zconffree((yy_buffer_stack) );
2302*10465441SEvalZero (yy_buffer_stack) = NULL;
2303*10465441SEvalZero
2304*10465441SEvalZero /* Reset the globals. This is important in a non-reentrant scanner so the next time
2305*10465441SEvalZero * zconflex() is called, initialization will occur. */
2306*10465441SEvalZero yy_init_globals( );
2307*10465441SEvalZero
2308*10465441SEvalZero return 0;
2309*10465441SEvalZero }
2310*10465441SEvalZero
2311*10465441SEvalZero /*
2312*10465441SEvalZero * Internal utility routines.
2313*10465441SEvalZero */
2314*10465441SEvalZero
2315*10465441SEvalZero #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)2316*10465441SEvalZero static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2317*10465441SEvalZero {
2318*10465441SEvalZero
2319*10465441SEvalZero int i;
2320*10465441SEvalZero for ( i = 0; i < n; ++i )
2321*10465441SEvalZero s1[i] = s2[i];
2322*10465441SEvalZero }
2323*10465441SEvalZero #endif
2324*10465441SEvalZero
2325*10465441SEvalZero #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)2326*10465441SEvalZero static int yy_flex_strlen (yyconst char * s )
2327*10465441SEvalZero {
2328*10465441SEvalZero int n;
2329*10465441SEvalZero for ( n = 0; s[n]; ++n )
2330*10465441SEvalZero ;
2331*10465441SEvalZero
2332*10465441SEvalZero return n;
2333*10465441SEvalZero }
2334*10465441SEvalZero #endif
2335*10465441SEvalZero
zconfalloc(yy_size_t size)2336*10465441SEvalZero void *zconfalloc (yy_size_t size )
2337*10465441SEvalZero {
2338*10465441SEvalZero return malloc(size);
2339*10465441SEvalZero }
2340*10465441SEvalZero
zconfrealloc(void * ptr,yy_size_t size)2341*10465441SEvalZero void *zconfrealloc (void * ptr, yy_size_t size )
2342*10465441SEvalZero {
2343*10465441SEvalZero
2344*10465441SEvalZero /* The cast to (char *) in the following accommodates both
2345*10465441SEvalZero * implementations that use char* generic pointers, and those
2346*10465441SEvalZero * that use void* generic pointers. It works with the latter
2347*10465441SEvalZero * because both ANSI C and C++ allow castless assignment from
2348*10465441SEvalZero * any pointer type to void*, and deal with argument conversions
2349*10465441SEvalZero * as though doing an assignment.
2350*10465441SEvalZero */
2351*10465441SEvalZero return realloc(ptr, size);
2352*10465441SEvalZero }
2353*10465441SEvalZero
zconffree(void * ptr)2354*10465441SEvalZero void zconffree (void * ptr )
2355*10465441SEvalZero {
2356*10465441SEvalZero free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
2357*10465441SEvalZero }
2358*10465441SEvalZero
2359*10465441SEvalZero #define YYTABLES_NAME "yytables"
2360*10465441SEvalZero
zconf_starthelp(void)2361*10465441SEvalZero void zconf_starthelp(void)
2362*10465441SEvalZero {
2363*10465441SEvalZero new_string();
2364*10465441SEvalZero last_ts = first_ts = 0;
2365*10465441SEvalZero BEGIN(HELP);
2366*10465441SEvalZero }
2367*10465441SEvalZero
zconf_endhelp(void)2368*10465441SEvalZero static void zconf_endhelp(void)
2369*10465441SEvalZero {
2370*10465441SEvalZero zconflval.string = text;
2371*10465441SEvalZero BEGIN(INITIAL);
2372*10465441SEvalZero }
2373*10465441SEvalZero
2374*10465441SEvalZero /*
2375*10465441SEvalZero * Try to open specified file with following names:
2376*10465441SEvalZero * ./name
2377*10465441SEvalZero * $(srctree)/name
2378*10465441SEvalZero * The latter is used when srctree is separate from objtree
2379*10465441SEvalZero * when compiling the kernel.
2380*10465441SEvalZero * Return NULL if file is not found.
2381*10465441SEvalZero */
zconf_fopen(const char * name)2382*10465441SEvalZero FILE *zconf_fopen(const char *name)
2383*10465441SEvalZero {
2384*10465441SEvalZero char *env, fullname[PATH_MAX+1];
2385*10465441SEvalZero FILE *f;
2386*10465441SEvalZero
2387*10465441SEvalZero f = fopen(name, "r");
2388*10465441SEvalZero if (!f && name != NULL && name[0] != '/') {
2389*10465441SEvalZero env = getenv(SRCTREE);
2390*10465441SEvalZero if (env) {
2391*10465441SEvalZero sprintf(fullname, "%s/%s", env, name);
2392*10465441SEvalZero f = fopen(fullname, "r");
2393*10465441SEvalZero }
2394*10465441SEvalZero }
2395*10465441SEvalZero return f;
2396*10465441SEvalZero }
2397*10465441SEvalZero
zconf_initscan(const char * name)2398*10465441SEvalZero void zconf_initscan(const char *name)
2399*10465441SEvalZero {
2400*10465441SEvalZero zconfin = zconf_fopen(name);
2401*10465441SEvalZero if (!zconfin) {
2402*10465441SEvalZero printf("can't find file %s\n", name);
2403*10465441SEvalZero exit(1);
2404*10465441SEvalZero }
2405*10465441SEvalZero
2406*10465441SEvalZero current_buf = xmalloc(sizeof(*current_buf));
2407*10465441SEvalZero memset(current_buf, 0, sizeof(*current_buf));
2408*10465441SEvalZero
2409*10465441SEvalZero current_file = file_lookup(name);
2410*10465441SEvalZero current_file->lineno = 1;
2411*10465441SEvalZero }
2412*10465441SEvalZero
zconf_nextfile(const char * name)2413*10465441SEvalZero void zconf_nextfile(const char *name)
2414*10465441SEvalZero {
2415*10465441SEvalZero struct file *iter;
2416*10465441SEvalZero struct file *file = file_lookup(name);
2417*10465441SEvalZero struct buffer *buf = xmalloc(sizeof(*buf));
2418*10465441SEvalZero memset(buf, 0, sizeof(*buf));
2419*10465441SEvalZero
2420*10465441SEvalZero current_buf->state = YY_CURRENT_BUFFER;
2421*10465441SEvalZero zconfin = zconf_fopen(file->name);
2422*10465441SEvalZero if (!zconfin) {
2423*10465441SEvalZero printf("%s:%d: can't open file \"%s\"\n",
2424*10465441SEvalZero zconf_curname(), zconf_lineno(), file->name);
2425*10465441SEvalZero exit(1);
2426*10465441SEvalZero }
2427*10465441SEvalZero zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
2428*10465441SEvalZero buf->parent = current_buf;
2429*10465441SEvalZero current_buf = buf;
2430*10465441SEvalZero
2431*10465441SEvalZero for (iter = current_file->parent; iter; iter = iter->parent ) {
2432*10465441SEvalZero if (!strcmp(current_file->name,iter->name) ) {
2433*10465441SEvalZero printf("%s:%d: recursive inclusion detected. "
2434*10465441SEvalZero "Inclusion path:\n current file : '%s'\n",
2435*10465441SEvalZero zconf_curname(), zconf_lineno(),
2436*10465441SEvalZero zconf_curname());
2437*10465441SEvalZero iter = current_file->parent;
2438*10465441SEvalZero while (iter && \
2439*10465441SEvalZero strcmp(iter->name,current_file->name)) {
2440*10465441SEvalZero printf(" included from: '%s:%d'\n",
2441*10465441SEvalZero iter->name, iter->lineno-1);
2442*10465441SEvalZero iter = iter->parent;
2443*10465441SEvalZero }
2444*10465441SEvalZero if (iter)
2445*10465441SEvalZero printf(" included from: '%s:%d'\n",
2446*10465441SEvalZero iter->name, iter->lineno+1);
2447*10465441SEvalZero exit(1);
2448*10465441SEvalZero }
2449*10465441SEvalZero }
2450*10465441SEvalZero file->lineno = 1;
2451*10465441SEvalZero file->parent = current_file;
2452*10465441SEvalZero current_file = file;
2453*10465441SEvalZero }
2454*10465441SEvalZero
zconf_endfile(void)2455*10465441SEvalZero static void zconf_endfile(void)
2456*10465441SEvalZero {
2457*10465441SEvalZero struct buffer *parent;
2458*10465441SEvalZero
2459*10465441SEvalZero current_file = current_file->parent;
2460*10465441SEvalZero
2461*10465441SEvalZero parent = current_buf->parent;
2462*10465441SEvalZero if (parent) {
2463*10465441SEvalZero fclose(zconfin);
2464*10465441SEvalZero zconf_delete_buffer(YY_CURRENT_BUFFER);
2465*10465441SEvalZero zconf_switch_to_buffer(parent->state);
2466*10465441SEvalZero }
2467*10465441SEvalZero free(current_buf);
2468*10465441SEvalZero current_buf = parent;
2469*10465441SEvalZero }
2470*10465441SEvalZero
zconf_lineno(void)2471*10465441SEvalZero int zconf_lineno(void)
2472*10465441SEvalZero {
2473*10465441SEvalZero return current_pos.lineno;
2474*10465441SEvalZero }
2475*10465441SEvalZero
zconf_curname(void)2476*10465441SEvalZero const char *zconf_curname(void)
2477*10465441SEvalZero {
2478*10465441SEvalZero return current_pos.file ? current_pos.file->name : "<none>";
2479*10465441SEvalZero }
2480*10465441SEvalZero
2481