xref: /rk3399_rockchip-uboot/scripts/kconfig/zconf.lex.c_shipped (revision bf7ab1e70fd7621fea5dea07b6975c576119b86e)
10a9064fbSMasahiro Yamada
20a9064fbSMasahiro Yamada#line 3 "scripts/kconfig/zconf.lex.c_shipped"
30a9064fbSMasahiro Yamada
40a9064fbSMasahiro Yamada#define  YY_INT_ALIGNED short int
50a9064fbSMasahiro Yamada
60a9064fbSMasahiro Yamada/* A lexical scanner generated by flex */
70a9064fbSMasahiro Yamada
80a9064fbSMasahiro Yamada#define yy_create_buffer zconf_create_buffer
90a9064fbSMasahiro Yamada#define yy_delete_buffer zconf_delete_buffer
100a9064fbSMasahiro Yamada#define yy_flex_debug zconf_flex_debug
110a9064fbSMasahiro Yamada#define yy_init_buffer zconf_init_buffer
120a9064fbSMasahiro Yamada#define yy_flush_buffer zconf_flush_buffer
130a9064fbSMasahiro Yamada#define yy_load_buffer_state zconf_load_buffer_state
140a9064fbSMasahiro Yamada#define yy_switch_to_buffer zconf_switch_to_buffer
150a9064fbSMasahiro Yamada#define yyin zconfin
160a9064fbSMasahiro Yamada#define yyleng zconfleng
170a9064fbSMasahiro Yamada#define yylex zconflex
180a9064fbSMasahiro Yamada#define yylineno zconflineno
190a9064fbSMasahiro Yamada#define yyout zconfout
200a9064fbSMasahiro Yamada#define yyrestart zconfrestart
210a9064fbSMasahiro Yamada#define yytext zconftext
220a9064fbSMasahiro Yamada#define yywrap zconfwrap
230a9064fbSMasahiro Yamada#define yyalloc zconfalloc
240a9064fbSMasahiro Yamada#define yyrealloc zconfrealloc
250a9064fbSMasahiro Yamada#define yyfree zconffree
260a9064fbSMasahiro Yamada
270a9064fbSMasahiro Yamada#define FLEX_SCANNER
280a9064fbSMasahiro Yamada#define YY_FLEX_MAJOR_VERSION 2
290a9064fbSMasahiro Yamada#define YY_FLEX_MINOR_VERSION 5
300a9064fbSMasahiro Yamada#define YY_FLEX_SUBMINOR_VERSION 35
310a9064fbSMasahiro Yamada#if YY_FLEX_SUBMINOR_VERSION > 0
320a9064fbSMasahiro Yamada#define FLEX_BETA
330a9064fbSMasahiro Yamada#endif
340a9064fbSMasahiro Yamada
350a9064fbSMasahiro Yamada/* First, we deal with  platform-specific or compiler-specific issues. */
360a9064fbSMasahiro Yamada
370a9064fbSMasahiro Yamada/* begin standard C headers. */
380a9064fbSMasahiro Yamada#include <stdio.h>
390a9064fbSMasahiro Yamada#include <string.h>
400a9064fbSMasahiro Yamada#include <errno.h>
410a9064fbSMasahiro Yamada#include <stdlib.h>
420a9064fbSMasahiro Yamada
430a9064fbSMasahiro Yamada/* end standard C headers. */
440a9064fbSMasahiro Yamada
450a9064fbSMasahiro Yamada/* flex integer type definitions */
460a9064fbSMasahiro Yamada
470a9064fbSMasahiro Yamada#ifndef FLEXINT_H
480a9064fbSMasahiro Yamada#define FLEXINT_H
490a9064fbSMasahiro Yamada
500a9064fbSMasahiro Yamada/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
510a9064fbSMasahiro Yamada
520a9064fbSMasahiro Yamada#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
530a9064fbSMasahiro Yamada
540a9064fbSMasahiro Yamada/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
550a9064fbSMasahiro Yamada * if you want the limit (max/min) macros for int types.
560a9064fbSMasahiro Yamada */
570a9064fbSMasahiro Yamada#ifndef __STDC_LIMIT_MACROS
580a9064fbSMasahiro Yamada#define __STDC_LIMIT_MACROS 1
590a9064fbSMasahiro Yamada#endif
600a9064fbSMasahiro Yamada
610a9064fbSMasahiro Yamada#include <inttypes.h>
620a9064fbSMasahiro Yamadatypedef int8_t flex_int8_t;
630a9064fbSMasahiro Yamadatypedef uint8_t flex_uint8_t;
640a9064fbSMasahiro Yamadatypedef int16_t flex_int16_t;
650a9064fbSMasahiro Yamadatypedef uint16_t flex_uint16_t;
660a9064fbSMasahiro Yamadatypedef int32_t flex_int32_t;
670a9064fbSMasahiro Yamadatypedef uint32_t flex_uint32_t;
680a9064fbSMasahiro Yamada#else
690a9064fbSMasahiro Yamadatypedef signed char flex_int8_t;
700a9064fbSMasahiro Yamadatypedef short int flex_int16_t;
710a9064fbSMasahiro Yamadatypedef int flex_int32_t;
720a9064fbSMasahiro Yamadatypedef unsigned char flex_uint8_t;
730a9064fbSMasahiro Yamadatypedef unsigned short int flex_uint16_t;
740a9064fbSMasahiro Yamadatypedef unsigned int flex_uint32_t;
750a9064fbSMasahiro Yamada
760a9064fbSMasahiro Yamada/* Limits of integral types. */
770a9064fbSMasahiro Yamada#ifndef INT8_MIN
780a9064fbSMasahiro Yamada#define INT8_MIN               (-128)
790a9064fbSMasahiro Yamada#endif
800a9064fbSMasahiro Yamada#ifndef INT16_MIN
810a9064fbSMasahiro Yamada#define INT16_MIN              (-32767-1)
820a9064fbSMasahiro Yamada#endif
830a9064fbSMasahiro Yamada#ifndef INT32_MIN
840a9064fbSMasahiro Yamada#define INT32_MIN              (-2147483647-1)
850a9064fbSMasahiro Yamada#endif
860a9064fbSMasahiro Yamada#ifndef INT8_MAX
870a9064fbSMasahiro Yamada#define INT8_MAX               (127)
880a9064fbSMasahiro Yamada#endif
890a9064fbSMasahiro Yamada#ifndef INT16_MAX
900a9064fbSMasahiro Yamada#define INT16_MAX              (32767)
910a9064fbSMasahiro Yamada#endif
920a9064fbSMasahiro Yamada#ifndef INT32_MAX
930a9064fbSMasahiro Yamada#define INT32_MAX              (2147483647)
940a9064fbSMasahiro Yamada#endif
950a9064fbSMasahiro Yamada#ifndef UINT8_MAX
960a9064fbSMasahiro Yamada#define UINT8_MAX              (255U)
970a9064fbSMasahiro Yamada#endif
980a9064fbSMasahiro Yamada#ifndef UINT16_MAX
990a9064fbSMasahiro Yamada#define UINT16_MAX             (65535U)
1000a9064fbSMasahiro Yamada#endif
1010a9064fbSMasahiro Yamada#ifndef UINT32_MAX
1020a9064fbSMasahiro Yamada#define UINT32_MAX             (4294967295U)
1030a9064fbSMasahiro Yamada#endif
1040a9064fbSMasahiro Yamada
105*bf7ab1e7SMasahiro Yamada#endif /* ! C99 */
106*bf7ab1e7SMasahiro Yamada
1070a9064fbSMasahiro Yamada#endif /* ! FLEXINT_H */
1080a9064fbSMasahiro Yamada
1090a9064fbSMasahiro Yamada#ifdef __cplusplus
1100a9064fbSMasahiro Yamada
1110a9064fbSMasahiro Yamada/* The "const" storage-class-modifier is valid. */
1120a9064fbSMasahiro Yamada#define YY_USE_CONST
1130a9064fbSMasahiro Yamada
1140a9064fbSMasahiro Yamada#else	/* ! __cplusplus */
1150a9064fbSMasahiro Yamada
1160a9064fbSMasahiro Yamada/* C99 requires __STDC__ to be defined as 1. */
1170a9064fbSMasahiro Yamada#if defined (__STDC__)
1180a9064fbSMasahiro Yamada
1190a9064fbSMasahiro Yamada#define YY_USE_CONST
1200a9064fbSMasahiro Yamada
1210a9064fbSMasahiro Yamada#endif	/* defined (__STDC__) */
1220a9064fbSMasahiro Yamada#endif	/* ! __cplusplus */
1230a9064fbSMasahiro Yamada
1240a9064fbSMasahiro Yamada#ifdef YY_USE_CONST
1250a9064fbSMasahiro Yamada#define yyconst const
1260a9064fbSMasahiro Yamada#else
1270a9064fbSMasahiro Yamada#define yyconst
1280a9064fbSMasahiro Yamada#endif
1290a9064fbSMasahiro Yamada
1300a9064fbSMasahiro Yamada/* Returned upon end-of-file. */
1310a9064fbSMasahiro Yamada#define YY_NULL 0
1320a9064fbSMasahiro Yamada
1330a9064fbSMasahiro Yamada/* Promotes a possibly negative, possibly signed char to an unsigned
1340a9064fbSMasahiro Yamada * integer for use as an array index.  If the signed char is negative,
1350a9064fbSMasahiro Yamada * we want to instead treat it as an 8-bit unsigned char, hence the
1360a9064fbSMasahiro Yamada * double cast.
1370a9064fbSMasahiro Yamada */
1380a9064fbSMasahiro Yamada#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
1390a9064fbSMasahiro Yamada
1400a9064fbSMasahiro Yamada/* Enter a start condition.  This macro really ought to take a parameter,
1410a9064fbSMasahiro Yamada * but we do it the disgusting crufty way forced on us by the ()-less
1420a9064fbSMasahiro Yamada * definition of BEGIN.
1430a9064fbSMasahiro Yamada */
1440a9064fbSMasahiro Yamada#define BEGIN (yy_start) = 1 + 2 *
1450a9064fbSMasahiro Yamada
1460a9064fbSMasahiro Yamada/* Translate the current start state into a value that can be later handed
1470a9064fbSMasahiro Yamada * to BEGIN to return to the state.  The YYSTATE alias is for lex
1480a9064fbSMasahiro Yamada * compatibility.
1490a9064fbSMasahiro Yamada */
1500a9064fbSMasahiro Yamada#define YY_START (((yy_start) - 1) / 2)
1510a9064fbSMasahiro Yamada#define YYSTATE YY_START
1520a9064fbSMasahiro Yamada
1530a9064fbSMasahiro Yamada/* Action number for EOF rule of a given start state. */
1540a9064fbSMasahiro Yamada#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
1550a9064fbSMasahiro Yamada
1560a9064fbSMasahiro Yamada/* Special action meaning "start processing a new file". */
1570a9064fbSMasahiro Yamada#define YY_NEW_FILE zconfrestart(zconfin  )
1580a9064fbSMasahiro Yamada
1590a9064fbSMasahiro Yamada#define YY_END_OF_BUFFER_CHAR 0
1600a9064fbSMasahiro Yamada
1610a9064fbSMasahiro Yamada/* Size of default input buffer. */
1620a9064fbSMasahiro Yamada#ifndef YY_BUF_SIZE
163*bf7ab1e7SMasahiro Yamada#ifdef __ia64__
164*bf7ab1e7SMasahiro Yamada/* On IA-64, the buffer size is 16k, not 8k.
165*bf7ab1e7SMasahiro Yamada * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166*bf7ab1e7SMasahiro Yamada * Ditto for the __ia64__ case accordingly.
167*bf7ab1e7SMasahiro Yamada */
168*bf7ab1e7SMasahiro Yamada#define YY_BUF_SIZE 32768
169*bf7ab1e7SMasahiro Yamada#else
1700a9064fbSMasahiro Yamada#define YY_BUF_SIZE 16384
171*bf7ab1e7SMasahiro Yamada#endif /* __ia64__ */
1720a9064fbSMasahiro Yamada#endif
1730a9064fbSMasahiro Yamada
1740a9064fbSMasahiro Yamada/* The state buf must be large enough to hold one state per character in the main buffer.
1750a9064fbSMasahiro Yamada */
1760a9064fbSMasahiro Yamada#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
1770a9064fbSMasahiro Yamada
1780a9064fbSMasahiro Yamada#ifndef YY_TYPEDEF_YY_BUFFER_STATE
1790a9064fbSMasahiro Yamada#define YY_TYPEDEF_YY_BUFFER_STATE
1800a9064fbSMasahiro Yamadatypedef struct yy_buffer_state *YY_BUFFER_STATE;
1810a9064fbSMasahiro Yamada#endif
1820a9064fbSMasahiro Yamada
1830a9064fbSMasahiro Yamadaextern int zconfleng;
1840a9064fbSMasahiro Yamada
1850a9064fbSMasahiro Yamadaextern FILE *zconfin, *zconfout;
1860a9064fbSMasahiro Yamada
1870a9064fbSMasahiro Yamada#define EOB_ACT_CONTINUE_SCAN 0
1880a9064fbSMasahiro Yamada#define EOB_ACT_END_OF_FILE 1
1890a9064fbSMasahiro Yamada#define EOB_ACT_LAST_MATCH 2
1900a9064fbSMasahiro Yamada
1910a9064fbSMasahiro Yamada    #define YY_LESS_LINENO(n)
1920a9064fbSMasahiro Yamada
1930a9064fbSMasahiro Yamada/* Return all but the first "n" matched characters back to the input stream. */
1940a9064fbSMasahiro Yamada#define yyless(n) \
1950a9064fbSMasahiro Yamada	do \
1960a9064fbSMasahiro Yamada		{ \
1970a9064fbSMasahiro Yamada		/* Undo effects of setting up zconftext. */ \
1980a9064fbSMasahiro Yamada        int yyless_macro_arg = (n); \
1990a9064fbSMasahiro Yamada        YY_LESS_LINENO(yyless_macro_arg);\
2000a9064fbSMasahiro Yamada		*yy_cp = (yy_hold_char); \
2010a9064fbSMasahiro Yamada		YY_RESTORE_YY_MORE_OFFSET \
2020a9064fbSMasahiro Yamada		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
2030a9064fbSMasahiro Yamada		YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
2040a9064fbSMasahiro Yamada		} \
2050a9064fbSMasahiro Yamada	while ( 0 )
2060a9064fbSMasahiro Yamada
2070a9064fbSMasahiro Yamada#define unput(c) yyunput( c, (yytext_ptr)  )
2080a9064fbSMasahiro Yamada
2090a9064fbSMasahiro Yamada#ifndef YY_TYPEDEF_YY_SIZE_T
2100a9064fbSMasahiro Yamada#define YY_TYPEDEF_YY_SIZE_T
2110a9064fbSMasahiro Yamadatypedef size_t yy_size_t;
2120a9064fbSMasahiro Yamada#endif
2130a9064fbSMasahiro Yamada
2140a9064fbSMasahiro Yamada#ifndef YY_STRUCT_YY_BUFFER_STATE
2150a9064fbSMasahiro Yamada#define YY_STRUCT_YY_BUFFER_STATE
2160a9064fbSMasahiro Yamadastruct yy_buffer_state
2170a9064fbSMasahiro Yamada	{
2180a9064fbSMasahiro Yamada	FILE *yy_input_file;
2190a9064fbSMasahiro Yamada
2200a9064fbSMasahiro Yamada	char *yy_ch_buf;		/* input buffer */
2210a9064fbSMasahiro Yamada	char *yy_buf_pos;		/* current position in input buffer */
2220a9064fbSMasahiro Yamada
2230a9064fbSMasahiro Yamada	/* Size of input buffer in bytes, not including room for EOB
2240a9064fbSMasahiro Yamada	 * characters.
2250a9064fbSMasahiro Yamada	 */
2260a9064fbSMasahiro Yamada	yy_size_t yy_buf_size;
2270a9064fbSMasahiro Yamada
2280a9064fbSMasahiro Yamada	/* Number of characters read into yy_ch_buf, not including EOB
2290a9064fbSMasahiro Yamada	 * characters.
2300a9064fbSMasahiro Yamada	 */
2310a9064fbSMasahiro Yamada	int yy_n_chars;
2320a9064fbSMasahiro Yamada
2330a9064fbSMasahiro Yamada	/* Whether we "own" the buffer - i.e., we know we created it,
2340a9064fbSMasahiro Yamada	 * and can realloc() it to grow it, and should free() it to
2350a9064fbSMasahiro Yamada	 * delete it.
2360a9064fbSMasahiro Yamada	 */
2370a9064fbSMasahiro Yamada	int yy_is_our_buffer;
2380a9064fbSMasahiro Yamada
2390a9064fbSMasahiro Yamada	/* Whether this is an "interactive" input source; if so, and
2400a9064fbSMasahiro Yamada	 * if we're using stdio for input, then we want to use getc()
2410a9064fbSMasahiro Yamada	 * instead of fread(), to make sure we stop fetching input after
2420a9064fbSMasahiro Yamada	 * each newline.
2430a9064fbSMasahiro Yamada	 */
2440a9064fbSMasahiro Yamada	int yy_is_interactive;
2450a9064fbSMasahiro Yamada
2460a9064fbSMasahiro Yamada	/* Whether we're considered to be at the beginning of a line.
2470a9064fbSMasahiro Yamada	 * If so, '^' rules will be active on the next match, otherwise
2480a9064fbSMasahiro Yamada	 * not.
2490a9064fbSMasahiro Yamada	 */
2500a9064fbSMasahiro Yamada	int yy_at_bol;
2510a9064fbSMasahiro Yamada
2520a9064fbSMasahiro Yamada    int yy_bs_lineno; /**< The line count. */
2530a9064fbSMasahiro Yamada    int yy_bs_column; /**< The column count. */
2540a9064fbSMasahiro Yamada
2550a9064fbSMasahiro Yamada	/* Whether to try to fill the input buffer when we reach the
2560a9064fbSMasahiro Yamada	 * end of it.
2570a9064fbSMasahiro Yamada	 */
2580a9064fbSMasahiro Yamada	int yy_fill_buffer;
2590a9064fbSMasahiro Yamada
2600a9064fbSMasahiro Yamada	int yy_buffer_status;
2610a9064fbSMasahiro Yamada
2620a9064fbSMasahiro Yamada#define YY_BUFFER_NEW 0
2630a9064fbSMasahiro Yamada#define YY_BUFFER_NORMAL 1
2640a9064fbSMasahiro Yamada	/* When an EOF's been seen but there's still some text to process
2650a9064fbSMasahiro Yamada	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
2660a9064fbSMasahiro Yamada	 * shouldn't try reading from the input source any more.  We might
2670a9064fbSMasahiro Yamada	 * still have a bunch of tokens to match, though, because of
2680a9064fbSMasahiro Yamada	 * possible backing-up.
2690a9064fbSMasahiro Yamada	 *
2700a9064fbSMasahiro Yamada	 * When we actually see the EOF, we change the status to "new"
2710a9064fbSMasahiro Yamada	 * (via zconfrestart()), so that the user can continue scanning by
2720a9064fbSMasahiro Yamada	 * just pointing zconfin at a new input file.
2730a9064fbSMasahiro Yamada	 */
2740a9064fbSMasahiro Yamada#define YY_BUFFER_EOF_PENDING 2
2750a9064fbSMasahiro Yamada
2760a9064fbSMasahiro Yamada	};
2770a9064fbSMasahiro Yamada#endif /* !YY_STRUCT_YY_BUFFER_STATE */
2780a9064fbSMasahiro Yamada
2790a9064fbSMasahiro Yamada/* Stack of input buffers. */
2800a9064fbSMasahiro Yamadastatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
2810a9064fbSMasahiro Yamadastatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
2820a9064fbSMasahiro Yamadastatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
2830a9064fbSMasahiro Yamada
2840a9064fbSMasahiro Yamada/* We provide macros for accessing buffer states in case in the
2850a9064fbSMasahiro Yamada * future we want to put the buffer states in a more general
2860a9064fbSMasahiro Yamada * "scanner state".
2870a9064fbSMasahiro Yamada *
2880a9064fbSMasahiro Yamada * Returns the top of the stack, or NULL.
2890a9064fbSMasahiro Yamada */
2900a9064fbSMasahiro Yamada#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
2910a9064fbSMasahiro Yamada                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
2920a9064fbSMasahiro Yamada                          : NULL)
2930a9064fbSMasahiro Yamada
2940a9064fbSMasahiro Yamada/* Same as previous macro, but useful when we know that the buffer stack is not
2950a9064fbSMasahiro Yamada * NULL or when we need an lvalue. For internal use only.
2960a9064fbSMasahiro Yamada */
2970a9064fbSMasahiro Yamada#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
2980a9064fbSMasahiro Yamada
2990a9064fbSMasahiro Yamada/* yy_hold_char holds the character lost when zconftext is formed. */
3000a9064fbSMasahiro Yamadastatic char yy_hold_char;
3010a9064fbSMasahiro Yamadastatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
3020a9064fbSMasahiro Yamadaint zconfleng;
3030a9064fbSMasahiro Yamada
3040a9064fbSMasahiro Yamada/* Points to current character in buffer. */
3050a9064fbSMasahiro Yamadastatic char *yy_c_buf_p = (char *) 0;
3060a9064fbSMasahiro Yamadastatic int yy_init = 0;		/* whether we need to initialize */
3070a9064fbSMasahiro Yamadastatic int yy_start = 0;	/* start state number */
3080a9064fbSMasahiro Yamada
3090a9064fbSMasahiro Yamada/* Flag which is used to allow zconfwrap()'s to do buffer switches
3100a9064fbSMasahiro Yamada * instead of setting up a fresh zconfin.  A bit of a hack ...
3110a9064fbSMasahiro Yamada */
3120a9064fbSMasahiro Yamadastatic int yy_did_buffer_switch_on_eof;
3130a9064fbSMasahiro Yamada
3140a9064fbSMasahiro Yamadavoid zconfrestart (FILE *input_file  );
3150a9064fbSMasahiro Yamadavoid zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
3160a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  );
3170a9064fbSMasahiro Yamadavoid zconf_delete_buffer (YY_BUFFER_STATE b  );
3180a9064fbSMasahiro Yamadavoid zconf_flush_buffer (YY_BUFFER_STATE b  );
3190a9064fbSMasahiro Yamadavoid zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  );
3200a9064fbSMasahiro Yamadavoid zconfpop_buffer_state (void );
3210a9064fbSMasahiro Yamada
3220a9064fbSMasahiro Yamadastatic void zconfensure_buffer_stack (void );
3230a9064fbSMasahiro Yamadastatic void zconf_load_buffer_state (void );
3240a9064fbSMasahiro Yamadastatic void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  );
3250a9064fbSMasahiro Yamada
3260a9064fbSMasahiro Yamada#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
3270a9064fbSMasahiro Yamada
3280a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  );
3290a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  );
3300a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len  );
3310a9064fbSMasahiro Yamada
3320a9064fbSMasahiro Yamadavoid *zconfalloc (yy_size_t  );
3330a9064fbSMasahiro Yamadavoid *zconfrealloc (void *,yy_size_t  );
3340a9064fbSMasahiro Yamadavoid zconffree (void *  );
3350a9064fbSMasahiro Yamada
3360a9064fbSMasahiro Yamada#define yy_new_buffer zconf_create_buffer
3370a9064fbSMasahiro Yamada
3380a9064fbSMasahiro Yamada#define yy_set_interactive(is_interactive) \
3390a9064fbSMasahiro Yamada	{ \
3400a9064fbSMasahiro Yamada	if ( ! YY_CURRENT_BUFFER ){ \
3410a9064fbSMasahiro Yamada        zconfensure_buffer_stack (); \
3420a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE =    \
3430a9064fbSMasahiro Yamada            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
3440a9064fbSMasahiro Yamada	} \
3450a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
3460a9064fbSMasahiro Yamada	}
3470a9064fbSMasahiro Yamada
3480a9064fbSMasahiro Yamada#define yy_set_bol(at_bol) \
3490a9064fbSMasahiro Yamada	{ \
3500a9064fbSMasahiro Yamada	if ( ! YY_CURRENT_BUFFER ){\
3510a9064fbSMasahiro Yamada        zconfensure_buffer_stack (); \
3520a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE =    \
3530a9064fbSMasahiro Yamada            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
3540a9064fbSMasahiro Yamada	} \
3550a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
3560a9064fbSMasahiro Yamada	}
3570a9064fbSMasahiro Yamada
3580a9064fbSMasahiro Yamada#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
3590a9064fbSMasahiro Yamada
3600a9064fbSMasahiro Yamada/* Begin user sect3 */
3610a9064fbSMasahiro Yamada
3620a9064fbSMasahiro Yamada#define zconfwrap(n) 1
3630a9064fbSMasahiro Yamada#define YY_SKIP_YYWRAP
3640a9064fbSMasahiro Yamada
3650a9064fbSMasahiro Yamadatypedef unsigned char YY_CHAR;
3660a9064fbSMasahiro Yamada
3670a9064fbSMasahiro YamadaFILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
3680a9064fbSMasahiro Yamada
3690a9064fbSMasahiro Yamadatypedef int yy_state_type;
3700a9064fbSMasahiro Yamada
3710a9064fbSMasahiro Yamadaextern int zconflineno;
3720a9064fbSMasahiro Yamada
3730a9064fbSMasahiro Yamadaint zconflineno = 1;
3740a9064fbSMasahiro Yamada
3750a9064fbSMasahiro Yamadaextern char *zconftext;
3760a9064fbSMasahiro Yamada#define yytext_ptr zconftext
377*bf7ab1e7SMasahiro Yamadastatic yyconst flex_int16_t yy_nxt[][18] =
3780a9064fbSMasahiro Yamada    {
3790a9064fbSMasahiro Yamada    {
3800a9064fbSMasahiro Yamada        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
381*bf7ab1e7SMasahiro Yamada        0,    0,    0,    0,    0,    0,    0,    0
3820a9064fbSMasahiro Yamada    },
3830a9064fbSMasahiro Yamada
3840a9064fbSMasahiro Yamada    {
3850a9064fbSMasahiro Yamada       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
386*bf7ab1e7SMasahiro Yamada       12,   12,   12,   12,   12,   12,   12,   12
3870a9064fbSMasahiro Yamada    },
3880a9064fbSMasahiro Yamada
3890a9064fbSMasahiro Yamada    {
3900a9064fbSMasahiro Yamada       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
391*bf7ab1e7SMasahiro Yamada       12,   12,   12,   12,   12,   12,   12,   12
3920a9064fbSMasahiro Yamada    },
3930a9064fbSMasahiro Yamada
3940a9064fbSMasahiro Yamada    {
3950a9064fbSMasahiro Yamada       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
396*bf7ab1e7SMasahiro Yamada       16,   18,   16,   16,   16,   16,   16,   16
3970a9064fbSMasahiro Yamada    },
3980a9064fbSMasahiro Yamada
3990a9064fbSMasahiro Yamada    {
4000a9064fbSMasahiro Yamada       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
401*bf7ab1e7SMasahiro Yamada       16,   18,   16,   16,   16,   16,   16,   16
4020a9064fbSMasahiro Yamada
4030a9064fbSMasahiro Yamada    },
4040a9064fbSMasahiro Yamada
4050a9064fbSMasahiro Yamada    {
4060a9064fbSMasahiro Yamada       11,   19,   20,   21,   19,   19,   19,   19,   19,   19,
407*bf7ab1e7SMasahiro Yamada       19,   19,   19,   19,   19,   19,   19,   19
4080a9064fbSMasahiro Yamada    },
4090a9064fbSMasahiro Yamada
4100a9064fbSMasahiro Yamada    {
4110a9064fbSMasahiro Yamada       11,   19,   20,   21,   19,   19,   19,   19,   19,   19,
412*bf7ab1e7SMasahiro Yamada       19,   19,   19,   19,   19,   19,   19,   19
4130a9064fbSMasahiro Yamada    },
4140a9064fbSMasahiro Yamada
4150a9064fbSMasahiro Yamada    {
4160a9064fbSMasahiro Yamada       11,   22,   22,   23,   22,   24,   22,   22,   24,   22,
417*bf7ab1e7SMasahiro Yamada       22,   22,   22,   22,   22,   22,   25,   22
4180a9064fbSMasahiro Yamada    },
4190a9064fbSMasahiro Yamada
4200a9064fbSMasahiro Yamada    {
4210a9064fbSMasahiro Yamada       11,   22,   22,   23,   22,   24,   22,   22,   24,   22,
422*bf7ab1e7SMasahiro Yamada       22,   22,   22,   22,   22,   22,   25,   22
4230a9064fbSMasahiro Yamada    },
4240a9064fbSMasahiro Yamada
4250a9064fbSMasahiro Yamada    {
426*bf7ab1e7SMasahiro Yamada       11,   26,   27,   28,   29,   30,   31,   32,   30,   33,
427*bf7ab1e7SMasahiro Yamada       34,   35,   35,   36,   37,   38,   39,   40
4280a9064fbSMasahiro Yamada
4290a9064fbSMasahiro Yamada    },
4300a9064fbSMasahiro Yamada
4310a9064fbSMasahiro Yamada    {
432*bf7ab1e7SMasahiro Yamada       11,   26,   27,   28,   29,   30,   31,   32,   30,   33,
433*bf7ab1e7SMasahiro Yamada       34,   35,   35,   36,   37,   38,   39,   40
4340a9064fbSMasahiro Yamada    },
4350a9064fbSMasahiro Yamada
4360a9064fbSMasahiro Yamada    {
4370a9064fbSMasahiro Yamada      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
438*bf7ab1e7SMasahiro Yamada      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
4390a9064fbSMasahiro Yamada    },
4400a9064fbSMasahiro Yamada
4410a9064fbSMasahiro Yamada    {
4420a9064fbSMasahiro Yamada       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
443*bf7ab1e7SMasahiro Yamada      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
4440a9064fbSMasahiro Yamada    },
4450a9064fbSMasahiro Yamada
4460a9064fbSMasahiro Yamada    {
447*bf7ab1e7SMasahiro Yamada       11,  -13,   41,   42,  -13,  -13,   43,  -13,  -13,  -13,
448*bf7ab1e7SMasahiro Yamada      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
4490a9064fbSMasahiro Yamada    },
4500a9064fbSMasahiro Yamada
4510a9064fbSMasahiro Yamada    {
4520a9064fbSMasahiro Yamada       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
453*bf7ab1e7SMasahiro Yamada      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14
4540a9064fbSMasahiro Yamada
4550a9064fbSMasahiro Yamada    },
4560a9064fbSMasahiro Yamada
4570a9064fbSMasahiro Yamada    {
458*bf7ab1e7SMasahiro Yamada       11,   44,   44,   45,   44,   44,   44,   44,   44,   44,
459*bf7ab1e7SMasahiro Yamada       44,   44,   44,   44,   44,   44,   44,   44
4600a9064fbSMasahiro Yamada    },
4610a9064fbSMasahiro Yamada
4620a9064fbSMasahiro Yamada    {
4630a9064fbSMasahiro Yamada       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
464*bf7ab1e7SMasahiro Yamada      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
4650a9064fbSMasahiro Yamada    },
4660a9064fbSMasahiro Yamada
4670a9064fbSMasahiro Yamada    {
4680a9064fbSMasahiro Yamada       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
469*bf7ab1e7SMasahiro Yamada      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
4700a9064fbSMasahiro Yamada    },
4710a9064fbSMasahiro Yamada
4720a9064fbSMasahiro Yamada    {
4730a9064fbSMasahiro Yamada       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
474*bf7ab1e7SMasahiro Yamada      -18,   46,  -18,  -18,  -18,  -18,  -18,  -18
4750a9064fbSMasahiro Yamada    },
4760a9064fbSMasahiro Yamada
4770a9064fbSMasahiro Yamada    {
478*bf7ab1e7SMasahiro Yamada       11,   47,   47,  -19,   47,   47,   47,   47,   47,   47,
479*bf7ab1e7SMasahiro Yamada       47,   47,   47,   47,   47,   47,   47,   47
4800a9064fbSMasahiro Yamada
4810a9064fbSMasahiro Yamada    },
4820a9064fbSMasahiro Yamada
4830a9064fbSMasahiro Yamada    {
484*bf7ab1e7SMasahiro Yamada       11,  -20,   48,   49,  -20,  -20,  -20,  -20,  -20,  -20,
485*bf7ab1e7SMasahiro Yamada      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20
4860a9064fbSMasahiro Yamada    },
4870a9064fbSMasahiro Yamada
4880a9064fbSMasahiro Yamada    {
489*bf7ab1e7SMasahiro Yamada       11,   50,  -21,  -21,   50,   50,   50,   50,   50,   50,
490*bf7ab1e7SMasahiro Yamada       50,   50,   50,   50,   50,   50,   50,   50
4910a9064fbSMasahiro Yamada    },
4920a9064fbSMasahiro Yamada
4930a9064fbSMasahiro Yamada    {
494*bf7ab1e7SMasahiro Yamada       11,   51,   51,   52,   51,  -22,   51,   51,  -22,   51,
495*bf7ab1e7SMasahiro Yamada       51,   51,   51,   51,   51,   51,  -22,   51
4960a9064fbSMasahiro Yamada    },
4970a9064fbSMasahiro Yamada
4980a9064fbSMasahiro Yamada    {
4990a9064fbSMasahiro Yamada       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
500*bf7ab1e7SMasahiro Yamada      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23
5010a9064fbSMasahiro Yamada    },
5020a9064fbSMasahiro Yamada
5030a9064fbSMasahiro Yamada    {
5040a9064fbSMasahiro Yamada       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
505*bf7ab1e7SMasahiro Yamada      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24
5060a9064fbSMasahiro Yamada
5070a9064fbSMasahiro Yamada    },
5080a9064fbSMasahiro Yamada
5090a9064fbSMasahiro Yamada    {
510*bf7ab1e7SMasahiro Yamada       11,   53,   53,   54,   53,   53,   53,   53,   53,   53,
511*bf7ab1e7SMasahiro Yamada       53,   53,   53,   53,   53,   53,   53,   53
5120a9064fbSMasahiro Yamada    },
5130a9064fbSMasahiro Yamada
5140a9064fbSMasahiro Yamada    {
5150a9064fbSMasahiro Yamada       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
516*bf7ab1e7SMasahiro Yamada      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26
5170a9064fbSMasahiro Yamada    },
5180a9064fbSMasahiro Yamada
5190a9064fbSMasahiro Yamada    {
520*bf7ab1e7SMasahiro Yamada       11,  -27,   55,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
521*bf7ab1e7SMasahiro Yamada      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27
5220a9064fbSMasahiro Yamada    },
5230a9064fbSMasahiro Yamada
5240a9064fbSMasahiro Yamada    {
5250a9064fbSMasahiro Yamada       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
526*bf7ab1e7SMasahiro Yamada      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28
5270a9064fbSMasahiro Yamada    },
5280a9064fbSMasahiro Yamada
5290a9064fbSMasahiro Yamada    {
5300a9064fbSMasahiro Yamada       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
531*bf7ab1e7SMasahiro Yamada      -29,  -29,  -29,  -29,   56,  -29,  -29,  -29
5320a9064fbSMasahiro Yamada
5330a9064fbSMasahiro Yamada    },
5340a9064fbSMasahiro Yamada
5350a9064fbSMasahiro Yamada    {
536*bf7ab1e7SMasahiro Yamada       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
537*bf7ab1e7SMasahiro Yamada      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30
5380a9064fbSMasahiro Yamada    },
5390a9064fbSMasahiro Yamada
5400a9064fbSMasahiro Yamada    {
541*bf7ab1e7SMasahiro Yamada       11,   57,   57,  -31,   57,   57,   57,   57,   57,   57,
542*bf7ab1e7SMasahiro Yamada       57,   57,   57,   57,   57,   57,   57,   57
5430a9064fbSMasahiro Yamada    },
5440a9064fbSMasahiro Yamada
5450a9064fbSMasahiro Yamada    {
546*bf7ab1e7SMasahiro Yamada       11,  -32,  -32,  -32,  -32,  -32,  -32,   58,  -32,  -32,
547*bf7ab1e7SMasahiro Yamada      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
5480a9064fbSMasahiro Yamada    },
5490a9064fbSMasahiro Yamada
5500a9064fbSMasahiro Yamada    {
5510a9064fbSMasahiro Yamada       11,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
552*bf7ab1e7SMasahiro Yamada      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33
5530a9064fbSMasahiro Yamada    },
5540a9064fbSMasahiro Yamada
5550a9064fbSMasahiro Yamada    {
5560a9064fbSMasahiro Yamada       11,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
557*bf7ab1e7SMasahiro Yamada      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34
5580a9064fbSMasahiro Yamada
5590a9064fbSMasahiro Yamada    },
5600a9064fbSMasahiro Yamada
5610a9064fbSMasahiro Yamada    {
5620a9064fbSMasahiro Yamada       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
563*bf7ab1e7SMasahiro Yamada      -35,   59,   59,  -35,  -35,  -35,  -35,  -35
5640a9064fbSMasahiro Yamada    },
5650a9064fbSMasahiro Yamada
5660a9064fbSMasahiro Yamada    {
5670a9064fbSMasahiro Yamada       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
568*bf7ab1e7SMasahiro Yamada      -36,  -36,  -36,  -36,   60,  -36,  -36,  -36
5690a9064fbSMasahiro Yamada    },
5700a9064fbSMasahiro Yamada
5710a9064fbSMasahiro Yamada    {
572*bf7ab1e7SMasahiro Yamada       11,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
573*bf7ab1e7SMasahiro Yamada      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37
5740a9064fbSMasahiro Yamada    },
5750a9064fbSMasahiro Yamada
5760a9064fbSMasahiro Yamada    {
5770a9064fbSMasahiro Yamada       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
578*bf7ab1e7SMasahiro Yamada      -38,  -38,  -38,  -38,   61,  -38,  -38,  -38
5790a9064fbSMasahiro Yamada    },
5800a9064fbSMasahiro Yamada
5810a9064fbSMasahiro Yamada    {
582*bf7ab1e7SMasahiro Yamada       11,  -39,  -39,   62,  -39,  -39,  -39,  -39,  -39,  -39,
583*bf7ab1e7SMasahiro Yamada      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
5840a9064fbSMasahiro Yamada
5850a9064fbSMasahiro Yamada    },
5860a9064fbSMasahiro Yamada
5870a9064fbSMasahiro Yamada    {
5880a9064fbSMasahiro Yamada       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
589*bf7ab1e7SMasahiro Yamada      -40,  -40,  -40,  -40,  -40,  -40,  -40,   63
5900a9064fbSMasahiro Yamada    },
5910a9064fbSMasahiro Yamada
5920a9064fbSMasahiro Yamada    {
593*bf7ab1e7SMasahiro Yamada       11,  -41,   41,   42,  -41,  -41,   43,  -41,  -41,  -41,
594*bf7ab1e7SMasahiro Yamada      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
5950a9064fbSMasahiro Yamada    },
5960a9064fbSMasahiro Yamada
5970a9064fbSMasahiro Yamada    {
598*bf7ab1e7SMasahiro Yamada       11,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
599*bf7ab1e7SMasahiro Yamada      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42
6000a9064fbSMasahiro Yamada    },
6010a9064fbSMasahiro Yamada
6020a9064fbSMasahiro Yamada    {
603*bf7ab1e7SMasahiro Yamada       11,   44,   44,   45,   44,   44,   44,   44,   44,   44,
604*bf7ab1e7SMasahiro Yamada       44,   44,   44,   44,   44,   44,   44,   44
6050a9064fbSMasahiro Yamada    },
6060a9064fbSMasahiro Yamada
6070a9064fbSMasahiro Yamada    {
608*bf7ab1e7SMasahiro Yamada       11,   44,   44,   45,   44,   44,   44,   44,   44,   44,
609*bf7ab1e7SMasahiro Yamada       44,   44,   44,   44,   44,   44,   44,   44
6100a9064fbSMasahiro Yamada
6110a9064fbSMasahiro Yamada    },
6120a9064fbSMasahiro Yamada
6130a9064fbSMasahiro Yamada    {
614*bf7ab1e7SMasahiro Yamada       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
615*bf7ab1e7SMasahiro Yamada      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
6160a9064fbSMasahiro Yamada    },
6170a9064fbSMasahiro Yamada
6180a9064fbSMasahiro Yamada    {
619*bf7ab1e7SMasahiro Yamada       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
620*bf7ab1e7SMasahiro Yamada      -46,   46,  -46,  -46,  -46,  -46,  -46,  -46
6210a9064fbSMasahiro Yamada    },
6220a9064fbSMasahiro Yamada
6230a9064fbSMasahiro Yamada    {
624*bf7ab1e7SMasahiro Yamada       11,   47,   47,  -47,   47,   47,   47,   47,   47,   47,
625*bf7ab1e7SMasahiro Yamada       47,   47,   47,   47,   47,   47,   47,   47
6260a9064fbSMasahiro Yamada    },
6270a9064fbSMasahiro Yamada
6280a9064fbSMasahiro Yamada    {
629*bf7ab1e7SMasahiro Yamada       11,  -48,   48,   49,  -48,  -48,  -48,  -48,  -48,  -48,
630*bf7ab1e7SMasahiro Yamada      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
6310a9064fbSMasahiro Yamada    },
6320a9064fbSMasahiro Yamada
6330a9064fbSMasahiro Yamada    {
634*bf7ab1e7SMasahiro Yamada       11,   50,  -49,  -49,   50,   50,   50,   50,   50,   50,
635*bf7ab1e7SMasahiro Yamada       50,   50,   50,   50,   50,   50,   50,   50
6360a9064fbSMasahiro Yamada
6370a9064fbSMasahiro Yamada    },
6380a9064fbSMasahiro Yamada
6390a9064fbSMasahiro Yamada    {
6400a9064fbSMasahiro Yamada       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
641*bf7ab1e7SMasahiro Yamada      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50
6420a9064fbSMasahiro Yamada    },
6430a9064fbSMasahiro Yamada
6440a9064fbSMasahiro Yamada    {
645*bf7ab1e7SMasahiro Yamada       11,   51,   51,   52,   51,  -51,   51,   51,  -51,   51,
646*bf7ab1e7SMasahiro Yamada       51,   51,   51,   51,   51,   51,  -51,   51
6470a9064fbSMasahiro Yamada    },
6480a9064fbSMasahiro Yamada
6490a9064fbSMasahiro Yamada    {
6500a9064fbSMasahiro Yamada       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
651*bf7ab1e7SMasahiro Yamada      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52
6520a9064fbSMasahiro Yamada    },
6530a9064fbSMasahiro Yamada
6540a9064fbSMasahiro Yamada    {
655*bf7ab1e7SMasahiro Yamada       11,  -53,  -53,   54,  -53,  -53,  -53,  -53,  -53,  -53,
656*bf7ab1e7SMasahiro Yamada      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
6570a9064fbSMasahiro Yamada    },
6580a9064fbSMasahiro Yamada
6590a9064fbSMasahiro Yamada    {
660*bf7ab1e7SMasahiro Yamada       11,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
661*bf7ab1e7SMasahiro Yamada      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
6620a9064fbSMasahiro Yamada
6630a9064fbSMasahiro Yamada    },
6640a9064fbSMasahiro Yamada
6650a9064fbSMasahiro Yamada    {
666*bf7ab1e7SMasahiro Yamada       11,  -55,   55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
667*bf7ab1e7SMasahiro Yamada      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55
6680a9064fbSMasahiro Yamada    },
6690a9064fbSMasahiro Yamada
6700a9064fbSMasahiro Yamada    {
6710a9064fbSMasahiro Yamada       11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
672*bf7ab1e7SMasahiro Yamada      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56
6730a9064fbSMasahiro Yamada    },
6740a9064fbSMasahiro Yamada
6750a9064fbSMasahiro Yamada    {
676*bf7ab1e7SMasahiro Yamada       11,   57,   57,  -57,   57,   57,   57,   57,   57,   57,
677*bf7ab1e7SMasahiro Yamada       57,   57,   57,   57,   57,   57,   57,   57
6780a9064fbSMasahiro Yamada    },
6790a9064fbSMasahiro Yamada
6800a9064fbSMasahiro Yamada    {
6810a9064fbSMasahiro Yamada       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
682*bf7ab1e7SMasahiro Yamada      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58
6830a9064fbSMasahiro Yamada    },
6840a9064fbSMasahiro Yamada
6850a9064fbSMasahiro Yamada    {
6860a9064fbSMasahiro Yamada       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
687*bf7ab1e7SMasahiro Yamada      -59,   59,   59,  -59,  -59,  -59,  -59,  -59
6880a9064fbSMasahiro Yamada
6890a9064fbSMasahiro Yamada    },
6900a9064fbSMasahiro Yamada
6910a9064fbSMasahiro Yamada    {
6920a9064fbSMasahiro Yamada       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
693*bf7ab1e7SMasahiro Yamada      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60
694*bf7ab1e7SMasahiro Yamada    },
695*bf7ab1e7SMasahiro Yamada
696*bf7ab1e7SMasahiro Yamada    {
697*bf7ab1e7SMasahiro Yamada       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
698*bf7ab1e7SMasahiro Yamada      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61
699*bf7ab1e7SMasahiro Yamada    },
700*bf7ab1e7SMasahiro Yamada
701*bf7ab1e7SMasahiro Yamada    {
702*bf7ab1e7SMasahiro Yamada       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
703*bf7ab1e7SMasahiro Yamada      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62
704*bf7ab1e7SMasahiro Yamada    },
705*bf7ab1e7SMasahiro Yamada
706*bf7ab1e7SMasahiro Yamada    {
707*bf7ab1e7SMasahiro Yamada       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
708*bf7ab1e7SMasahiro Yamada      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63
7090a9064fbSMasahiro Yamada    },
7100a9064fbSMasahiro Yamada
7110a9064fbSMasahiro Yamada    } ;
7120a9064fbSMasahiro Yamada
7130a9064fbSMasahiro Yamadastatic yy_state_type yy_get_previous_state (void );
7140a9064fbSMasahiro Yamadastatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
7150a9064fbSMasahiro Yamadastatic int yy_get_next_buffer (void );
7160a9064fbSMasahiro Yamadastatic void yy_fatal_error (yyconst char msg[]  );
7170a9064fbSMasahiro Yamada
7180a9064fbSMasahiro Yamada/* Done after the current pattern has been matched and before the
7190a9064fbSMasahiro Yamada * corresponding action - sets up zconftext.
7200a9064fbSMasahiro Yamada */
7210a9064fbSMasahiro Yamada#define YY_DO_BEFORE_ACTION \
7220a9064fbSMasahiro Yamada	(yytext_ptr) = yy_bp; \
7230a9064fbSMasahiro Yamada	zconfleng = (size_t) (yy_cp - yy_bp); \
7240a9064fbSMasahiro Yamada	(yy_hold_char) = *yy_cp; \
7250a9064fbSMasahiro Yamada	*yy_cp = '\0'; \
7260a9064fbSMasahiro Yamada	(yy_c_buf_p) = yy_cp;
7270a9064fbSMasahiro Yamada
728*bf7ab1e7SMasahiro Yamada#define YY_NUM_RULES 37
729*bf7ab1e7SMasahiro Yamada#define YY_END_OF_BUFFER 38
7300a9064fbSMasahiro Yamada/* This struct is not used in this scanner,
7310a9064fbSMasahiro Yamada   but its presence is necessary. */
7320a9064fbSMasahiro Yamadastruct yy_trans_info
7330a9064fbSMasahiro Yamada	{
7340a9064fbSMasahiro Yamada	flex_int32_t yy_verify;
7350a9064fbSMasahiro Yamada	flex_int32_t yy_nxt;
7360a9064fbSMasahiro Yamada	};
737*bf7ab1e7SMasahiro Yamadastatic yyconst flex_int16_t yy_accept[64] =
7380a9064fbSMasahiro Yamada    {   0,
7390a9064fbSMasahiro Yamada        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740*bf7ab1e7SMasahiro Yamada       38,    5,    4,    2,    3,    7,    8,    6,   36,   33,
741*bf7ab1e7SMasahiro Yamada       35,   28,   32,   31,   30,   26,   25,   21,   13,   20,
742*bf7ab1e7SMasahiro Yamada       23,   26,   11,   12,   22,   18,   14,   19,   26,   26,
743*bf7ab1e7SMasahiro Yamada        4,    2,    3,    3,    1,    6,   36,   33,   35,   34,
744*bf7ab1e7SMasahiro Yamada       28,   27,   30,   29,   25,   15,   23,    9,   22,   16,
745*bf7ab1e7SMasahiro Yamada       17,   24,   10
7460a9064fbSMasahiro Yamada    } ;
7470a9064fbSMasahiro Yamada
7480a9064fbSMasahiro Yamadastatic yyconst flex_int32_t yy_ec[256] =
7490a9064fbSMasahiro Yamada    {   0,
7500a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
7510a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7520a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7530a9064fbSMasahiro Yamada        1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
754*bf7ab1e7SMasahiro Yamada       10,    1,    1,    1,   11,   12,   12,   11,   11,   11,
755*bf7ab1e7SMasahiro Yamada       11,   11,   11,   11,   11,   11,   11,    1,    1,   13,
756*bf7ab1e7SMasahiro Yamada       14,   15,    1,    1,   11,   11,   11,   11,   11,   11,
757*bf7ab1e7SMasahiro Yamada       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
758*bf7ab1e7SMasahiro Yamada       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
759*bf7ab1e7SMasahiro Yamada        1,   16,    1,    1,   11,    1,   11,   11,   11,   11,
7600a9064fbSMasahiro Yamada
761*bf7ab1e7SMasahiro Yamada       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
762*bf7ab1e7SMasahiro Yamada       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
763*bf7ab1e7SMasahiro Yamada       11,   11,    1,   17,    1,    1,    1,    1,    1,    1,
7640a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7650a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7660a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7670a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7680a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7690a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7700a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7710a9064fbSMasahiro Yamada
7720a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7730a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7740a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7750a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7760a9064fbSMasahiro Yamada        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
7770a9064fbSMasahiro Yamada        1,    1,    1,    1,    1
7780a9064fbSMasahiro Yamada    } ;
7790a9064fbSMasahiro Yamada
7800a9064fbSMasahiro Yamadaextern int zconf_flex_debug;
7810a9064fbSMasahiro Yamadaint zconf_flex_debug = 0;
7820a9064fbSMasahiro Yamada
7830a9064fbSMasahiro Yamada/* The intent behind this definition is that it'll catch
7840a9064fbSMasahiro Yamada * any uses of REJECT which flex missed.
7850a9064fbSMasahiro Yamada */
7860a9064fbSMasahiro Yamada#define REJECT reject_used_but_not_detected
7870a9064fbSMasahiro Yamada#define yymore() yymore_used_but_not_detected
7880a9064fbSMasahiro Yamada#define YY_MORE_ADJ 0
7890a9064fbSMasahiro Yamada#define YY_RESTORE_YY_MORE_OFFSET
7900a9064fbSMasahiro Yamadachar *zconftext;
7910a9064fbSMasahiro Yamada#define YY_NO_INPUT 1
7920a9064fbSMasahiro Yamada
7930a9064fbSMasahiro Yamada/*
7940a9064fbSMasahiro Yamada * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
7950a9064fbSMasahiro Yamada * Released under the terms of the GNU GPL v2.0.
7960a9064fbSMasahiro Yamada */
7970a9064fbSMasahiro Yamada
7980a9064fbSMasahiro Yamada#include <limits.h>
7990a9064fbSMasahiro Yamada#include <stdio.h>
8000a9064fbSMasahiro Yamada#include <stdlib.h>
8010a9064fbSMasahiro Yamada#include <string.h>
8020a9064fbSMasahiro Yamada#include <unistd.h>
8030a9064fbSMasahiro Yamada
8040a9064fbSMasahiro Yamada#include "lkc.h"
8050a9064fbSMasahiro Yamada
8060a9064fbSMasahiro Yamada#define START_STRSIZE	16
8070a9064fbSMasahiro Yamada
8080a9064fbSMasahiro Yamadastatic struct {
8090a9064fbSMasahiro Yamada	struct file *file;
8100a9064fbSMasahiro Yamada	int lineno;
8110a9064fbSMasahiro Yamada} current_pos;
8120a9064fbSMasahiro Yamada
8130a9064fbSMasahiro Yamadastatic char *text;
8140a9064fbSMasahiro Yamadastatic int text_size, text_asize;
8150a9064fbSMasahiro Yamada
8160a9064fbSMasahiro Yamadastruct buffer {
8170a9064fbSMasahiro Yamada	struct buffer *parent;
8180a9064fbSMasahiro Yamada	YY_BUFFER_STATE state;
8190a9064fbSMasahiro Yamada};
8200a9064fbSMasahiro Yamada
8210a9064fbSMasahiro Yamadastruct buffer *current_buf;
8220a9064fbSMasahiro Yamada
8230a9064fbSMasahiro Yamadastatic int last_ts, first_ts;
8240a9064fbSMasahiro Yamada
8250a9064fbSMasahiro Yamadastatic void zconf_endhelp(void);
8260a9064fbSMasahiro Yamadastatic void zconf_endfile(void);
8270a9064fbSMasahiro Yamada
8280a9064fbSMasahiro Yamadastatic void new_string(void)
8290a9064fbSMasahiro Yamada{
8300a9064fbSMasahiro Yamada	text = xmalloc(START_STRSIZE);
8310a9064fbSMasahiro Yamada	text_asize = START_STRSIZE;
8320a9064fbSMasahiro Yamada	text_size = 0;
8330a9064fbSMasahiro Yamada	*text = 0;
8340a9064fbSMasahiro Yamada}
8350a9064fbSMasahiro Yamada
8360a9064fbSMasahiro Yamadastatic void append_string(const char *str, int size)
8370a9064fbSMasahiro Yamada{
8380a9064fbSMasahiro Yamada	int new_size = text_size + size + 1;
8390a9064fbSMasahiro Yamada	if (new_size > text_asize) {
8400a9064fbSMasahiro Yamada		new_size += START_STRSIZE - 1;
8410a9064fbSMasahiro Yamada		new_size &= -START_STRSIZE;
8420a9064fbSMasahiro Yamada		text = realloc(text, new_size);
8430a9064fbSMasahiro Yamada		text_asize = new_size;
8440a9064fbSMasahiro Yamada	}
8450a9064fbSMasahiro Yamada	memcpy(text + text_size, str, size);
8460a9064fbSMasahiro Yamada	text_size += size;
8470a9064fbSMasahiro Yamada	text[text_size] = 0;
8480a9064fbSMasahiro Yamada}
8490a9064fbSMasahiro Yamada
8500a9064fbSMasahiro Yamadastatic void alloc_string(const char *str, int size)
8510a9064fbSMasahiro Yamada{
8520a9064fbSMasahiro Yamada	text = xmalloc(size + 1);
8530a9064fbSMasahiro Yamada	memcpy(text, str, size);
8540a9064fbSMasahiro Yamada	text[size] = 0;
8550a9064fbSMasahiro Yamada}
8560a9064fbSMasahiro Yamada
857*bf7ab1e7SMasahiro Yamadastatic void warn_ignored_character(char chr)
858*bf7ab1e7SMasahiro Yamada{
859*bf7ab1e7SMasahiro Yamada	fprintf(stderr,
860*bf7ab1e7SMasahiro Yamada	        "%s:%d:warning: ignoring unsupported character '%c'\n",
861*bf7ab1e7SMasahiro Yamada	        zconf_curname(), zconf_lineno(), chr);
862*bf7ab1e7SMasahiro Yamada}
863*bf7ab1e7SMasahiro Yamada
8640a9064fbSMasahiro Yamada#define INITIAL 0
8650a9064fbSMasahiro Yamada#define COMMAND 1
8660a9064fbSMasahiro Yamada#define HELP 2
8670a9064fbSMasahiro Yamada#define STRING 3
8680a9064fbSMasahiro Yamada#define PARAM 4
8690a9064fbSMasahiro Yamada
8700a9064fbSMasahiro Yamada#ifndef YY_NO_UNISTD_H
8710a9064fbSMasahiro Yamada/* Special case for "unistd.h", since it is non-ANSI. We include it way
8720a9064fbSMasahiro Yamada * down here because we want the user's section 1 to have been scanned first.
8730a9064fbSMasahiro Yamada * The user has a chance to override it with an option.
8740a9064fbSMasahiro Yamada */
8750a9064fbSMasahiro Yamada#include <unistd.h>
8760a9064fbSMasahiro Yamada#endif
8770a9064fbSMasahiro Yamada
8780a9064fbSMasahiro Yamada#ifndef YY_EXTRA_TYPE
8790a9064fbSMasahiro Yamada#define YY_EXTRA_TYPE void *
8800a9064fbSMasahiro Yamada#endif
8810a9064fbSMasahiro Yamada
8820a9064fbSMasahiro Yamadastatic int yy_init_globals (void );
8830a9064fbSMasahiro Yamada
8840a9064fbSMasahiro Yamada/* Accessor methods to globals.
8850a9064fbSMasahiro Yamada   These are made visible to non-reentrant scanners for convenience. */
8860a9064fbSMasahiro Yamada
8870a9064fbSMasahiro Yamadaint zconflex_destroy (void );
8880a9064fbSMasahiro Yamada
8890a9064fbSMasahiro Yamadaint zconfget_debug (void );
8900a9064fbSMasahiro Yamada
8910a9064fbSMasahiro Yamadavoid zconfset_debug (int debug_flag  );
8920a9064fbSMasahiro Yamada
8930a9064fbSMasahiro YamadaYY_EXTRA_TYPE zconfget_extra (void );
8940a9064fbSMasahiro Yamada
8950a9064fbSMasahiro Yamadavoid zconfset_extra (YY_EXTRA_TYPE user_defined  );
8960a9064fbSMasahiro Yamada
8970a9064fbSMasahiro YamadaFILE *zconfget_in (void );
8980a9064fbSMasahiro Yamada
8990a9064fbSMasahiro Yamadavoid zconfset_in  (FILE * in_str  );
9000a9064fbSMasahiro Yamada
9010a9064fbSMasahiro YamadaFILE *zconfget_out (void );
9020a9064fbSMasahiro Yamada
9030a9064fbSMasahiro Yamadavoid zconfset_out  (FILE * out_str  );
9040a9064fbSMasahiro Yamada
9050a9064fbSMasahiro Yamadaint zconfget_leng (void );
9060a9064fbSMasahiro Yamada
9070a9064fbSMasahiro Yamadachar *zconfget_text (void );
9080a9064fbSMasahiro Yamada
9090a9064fbSMasahiro Yamadaint zconfget_lineno (void );
9100a9064fbSMasahiro Yamada
9110a9064fbSMasahiro Yamadavoid zconfset_lineno (int line_number  );
9120a9064fbSMasahiro Yamada
9130a9064fbSMasahiro Yamada/* Macros after this point can all be overridden by user definitions in
9140a9064fbSMasahiro Yamada * section 1.
9150a9064fbSMasahiro Yamada */
9160a9064fbSMasahiro Yamada
9170a9064fbSMasahiro Yamada#ifndef YY_SKIP_YYWRAP
9180a9064fbSMasahiro Yamada#ifdef __cplusplus
9190a9064fbSMasahiro Yamadaextern "C" int zconfwrap (void );
9200a9064fbSMasahiro Yamada#else
9210a9064fbSMasahiro Yamadaextern int zconfwrap (void );
9220a9064fbSMasahiro Yamada#endif
9230a9064fbSMasahiro Yamada#endif
9240a9064fbSMasahiro Yamada
9250a9064fbSMasahiro Yamada    static void yyunput (int c,char *buf_ptr  );
9260a9064fbSMasahiro Yamada
9270a9064fbSMasahiro Yamada#ifndef yytext_ptr
9280a9064fbSMasahiro Yamadastatic void yy_flex_strncpy (char *,yyconst char *,int );
9290a9064fbSMasahiro Yamada#endif
9300a9064fbSMasahiro Yamada
9310a9064fbSMasahiro Yamada#ifdef YY_NEED_STRLEN
9320a9064fbSMasahiro Yamadastatic int yy_flex_strlen (yyconst char * );
9330a9064fbSMasahiro Yamada#endif
9340a9064fbSMasahiro Yamada
9350a9064fbSMasahiro Yamada#ifndef YY_NO_INPUT
9360a9064fbSMasahiro Yamada
9370a9064fbSMasahiro Yamada#ifdef __cplusplus
9380a9064fbSMasahiro Yamadastatic int yyinput (void );
9390a9064fbSMasahiro Yamada#else
9400a9064fbSMasahiro Yamadastatic int input (void );
9410a9064fbSMasahiro Yamada#endif
9420a9064fbSMasahiro Yamada
9430a9064fbSMasahiro Yamada#endif
9440a9064fbSMasahiro Yamada
9450a9064fbSMasahiro Yamada/* Amount of stuff to slurp up with each read. */
9460a9064fbSMasahiro Yamada#ifndef YY_READ_BUF_SIZE
947*bf7ab1e7SMasahiro Yamada#ifdef __ia64__
948*bf7ab1e7SMasahiro Yamada/* On IA-64, the buffer size is 16k, not 8k */
949*bf7ab1e7SMasahiro Yamada#define YY_READ_BUF_SIZE 16384
950*bf7ab1e7SMasahiro Yamada#else
9510a9064fbSMasahiro Yamada#define YY_READ_BUF_SIZE 8192
952*bf7ab1e7SMasahiro Yamada#endif /* __ia64__ */
9530a9064fbSMasahiro Yamada#endif
9540a9064fbSMasahiro Yamada
9550a9064fbSMasahiro Yamada/* Copy whatever the last rule matched to the standard output. */
9560a9064fbSMasahiro Yamada#ifndef ECHO
9570a9064fbSMasahiro Yamada/* This used to be an fputs(), but since the string might contain NUL's,
9580a9064fbSMasahiro Yamada * we now use fwrite().
9590a9064fbSMasahiro Yamada */
9600a9064fbSMasahiro Yamada#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0)
9610a9064fbSMasahiro Yamada#endif
9620a9064fbSMasahiro Yamada
9630a9064fbSMasahiro Yamada/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
9640a9064fbSMasahiro Yamada * is returned in "result".
9650a9064fbSMasahiro Yamada */
9660a9064fbSMasahiro Yamada#ifndef YY_INPUT
9670a9064fbSMasahiro Yamada#define YY_INPUT(buf,result,max_size) \
9680a9064fbSMasahiro Yamada	errno=0; \
9690a9064fbSMasahiro Yamada	while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
9700a9064fbSMasahiro Yamada	{ \
9710a9064fbSMasahiro Yamada		if( errno != EINTR) \
9720a9064fbSMasahiro Yamada		{ \
9730a9064fbSMasahiro Yamada			YY_FATAL_ERROR( "input in flex scanner failed" ); \
9740a9064fbSMasahiro Yamada			break; \
9750a9064fbSMasahiro Yamada		} \
9760a9064fbSMasahiro Yamada		errno=0; \
9770a9064fbSMasahiro Yamada		clearerr(zconfin); \
9780a9064fbSMasahiro Yamada	}\
9790a9064fbSMasahiro Yamada\
9800a9064fbSMasahiro Yamada
9810a9064fbSMasahiro Yamada#endif
9820a9064fbSMasahiro Yamada
9830a9064fbSMasahiro Yamada/* No semi-colon after return; correct usage is to write "yyterminate();" -
9840a9064fbSMasahiro Yamada * we don't want an extra ';' after the "return" because that will cause
9850a9064fbSMasahiro Yamada * some compilers to complain about unreachable statements.
9860a9064fbSMasahiro Yamada */
9870a9064fbSMasahiro Yamada#ifndef yyterminate
9880a9064fbSMasahiro Yamada#define yyterminate() return YY_NULL
9890a9064fbSMasahiro Yamada#endif
9900a9064fbSMasahiro Yamada
9910a9064fbSMasahiro Yamada/* Number of entries by which start-condition stack grows. */
9920a9064fbSMasahiro Yamada#ifndef YY_START_STACK_INCR
9930a9064fbSMasahiro Yamada#define YY_START_STACK_INCR 25
9940a9064fbSMasahiro Yamada#endif
9950a9064fbSMasahiro Yamada
9960a9064fbSMasahiro Yamada/* Report a fatal error. */
9970a9064fbSMasahiro Yamada#ifndef YY_FATAL_ERROR
9980a9064fbSMasahiro Yamada#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
9990a9064fbSMasahiro Yamada#endif
10000a9064fbSMasahiro Yamada
10010a9064fbSMasahiro Yamada/* end tables serialization structures and prototypes */
10020a9064fbSMasahiro Yamada
10030a9064fbSMasahiro Yamada/* Default declaration of generated scanner - a define so the user can
10040a9064fbSMasahiro Yamada * easily add parameters.
10050a9064fbSMasahiro Yamada */
10060a9064fbSMasahiro Yamada#ifndef YY_DECL
10070a9064fbSMasahiro Yamada#define YY_DECL_IS_OURS 1
10080a9064fbSMasahiro Yamada
10090a9064fbSMasahiro Yamadaextern int zconflex (void);
10100a9064fbSMasahiro Yamada
10110a9064fbSMasahiro Yamada#define YY_DECL int zconflex (void)
10120a9064fbSMasahiro Yamada#endif /* !YY_DECL */
10130a9064fbSMasahiro Yamada
10140a9064fbSMasahiro Yamada/* Code executed at the beginning of each rule, after zconftext and zconfleng
10150a9064fbSMasahiro Yamada * have been set up.
10160a9064fbSMasahiro Yamada */
10170a9064fbSMasahiro Yamada#ifndef YY_USER_ACTION
10180a9064fbSMasahiro Yamada#define YY_USER_ACTION
10190a9064fbSMasahiro Yamada#endif
10200a9064fbSMasahiro Yamada
10210a9064fbSMasahiro Yamada/* Code executed at the end of each rule. */
10220a9064fbSMasahiro Yamada#ifndef YY_BREAK
10230a9064fbSMasahiro Yamada#define YY_BREAK break;
10240a9064fbSMasahiro Yamada#endif
10250a9064fbSMasahiro Yamada
10260a9064fbSMasahiro Yamada#define YY_RULE_SETUP \
10270a9064fbSMasahiro Yamada	YY_USER_ACTION
10280a9064fbSMasahiro Yamada
10290a9064fbSMasahiro Yamada/** The main scanner function which does all the work.
10300a9064fbSMasahiro Yamada */
10310a9064fbSMasahiro YamadaYY_DECL
10320a9064fbSMasahiro Yamada{
10330a9064fbSMasahiro Yamada	register yy_state_type yy_current_state;
10340a9064fbSMasahiro Yamada	register char *yy_cp, *yy_bp;
10350a9064fbSMasahiro Yamada	register int yy_act;
10360a9064fbSMasahiro Yamada
10370a9064fbSMasahiro Yamada	int str = 0;
10380a9064fbSMasahiro Yamada	int ts, i;
10390a9064fbSMasahiro Yamada
10400a9064fbSMasahiro Yamada	if ( !(yy_init) )
10410a9064fbSMasahiro Yamada		{
10420a9064fbSMasahiro Yamada		(yy_init) = 1;
10430a9064fbSMasahiro Yamada
10440a9064fbSMasahiro Yamada#ifdef YY_USER_INIT
10450a9064fbSMasahiro Yamada		YY_USER_INIT;
10460a9064fbSMasahiro Yamada#endif
10470a9064fbSMasahiro Yamada
10480a9064fbSMasahiro Yamada		if ( ! (yy_start) )
10490a9064fbSMasahiro Yamada			(yy_start) = 1;	/* first start state */
10500a9064fbSMasahiro Yamada
10510a9064fbSMasahiro Yamada		if ( ! zconfin )
10520a9064fbSMasahiro Yamada			zconfin = stdin;
10530a9064fbSMasahiro Yamada
10540a9064fbSMasahiro Yamada		if ( ! zconfout )
10550a9064fbSMasahiro Yamada			zconfout = stdout;
10560a9064fbSMasahiro Yamada
10570a9064fbSMasahiro Yamada		if ( ! YY_CURRENT_BUFFER ) {
10580a9064fbSMasahiro Yamada			zconfensure_buffer_stack ();
10590a9064fbSMasahiro Yamada			YY_CURRENT_BUFFER_LVALUE =
10600a9064fbSMasahiro Yamada				zconf_create_buffer(zconfin,YY_BUF_SIZE );
10610a9064fbSMasahiro Yamada		}
10620a9064fbSMasahiro Yamada
10630a9064fbSMasahiro Yamada		zconf_load_buffer_state( );
10640a9064fbSMasahiro Yamada		}
10650a9064fbSMasahiro Yamada
10660a9064fbSMasahiro Yamada	while ( 1 )		/* loops until end-of-file is reached */
10670a9064fbSMasahiro Yamada		{
10680a9064fbSMasahiro Yamada		yy_cp = (yy_c_buf_p);
10690a9064fbSMasahiro Yamada
10700a9064fbSMasahiro Yamada		/* Support of zconftext. */
10710a9064fbSMasahiro Yamada		*yy_cp = (yy_hold_char);
10720a9064fbSMasahiro Yamada
10730a9064fbSMasahiro Yamada		/* yy_bp points to the position in yy_ch_buf of the start of
10740a9064fbSMasahiro Yamada		 * the current run.
10750a9064fbSMasahiro Yamada		 */
10760a9064fbSMasahiro Yamada		yy_bp = yy_cp;
10770a9064fbSMasahiro Yamada
10780a9064fbSMasahiro Yamada		yy_current_state = (yy_start);
10790a9064fbSMasahiro Yamadayy_match:
10800a9064fbSMasahiro Yamada		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
10810a9064fbSMasahiro Yamada			++yy_cp;
10820a9064fbSMasahiro Yamada
10830a9064fbSMasahiro Yamada		yy_current_state = -yy_current_state;
10840a9064fbSMasahiro Yamada
10850a9064fbSMasahiro Yamadayy_find_action:
10860a9064fbSMasahiro Yamada		yy_act = yy_accept[yy_current_state];
10870a9064fbSMasahiro Yamada
10880a9064fbSMasahiro Yamada		YY_DO_BEFORE_ACTION;
10890a9064fbSMasahiro Yamada
10900a9064fbSMasahiro Yamadado_action:	/* This label is used only to access EOF actions. */
10910a9064fbSMasahiro Yamada
10920a9064fbSMasahiro Yamada		switch ( yy_act )
10930a9064fbSMasahiro Yamada	{ /* beginning of action switch */
10940a9064fbSMasahiro Yamadacase 1:
10950a9064fbSMasahiro Yamada/* rule 1 can match eol */
10960a9064fbSMasahiro Yamadacase 2:
10970a9064fbSMasahiro Yamada/* rule 2 can match eol */
10980a9064fbSMasahiro YamadaYY_RULE_SETUP
10990a9064fbSMasahiro Yamada{
11000a9064fbSMasahiro Yamada	current_file->lineno++;
11010a9064fbSMasahiro Yamada	return T_EOL;
11020a9064fbSMasahiro Yamada}
11030a9064fbSMasahiro Yamada	YY_BREAK
11040a9064fbSMasahiro Yamadacase 3:
11050a9064fbSMasahiro YamadaYY_RULE_SETUP
11060a9064fbSMasahiro Yamada
11070a9064fbSMasahiro Yamada	YY_BREAK
11080a9064fbSMasahiro Yamadacase 4:
11090a9064fbSMasahiro YamadaYY_RULE_SETUP
11100a9064fbSMasahiro Yamada{
11110a9064fbSMasahiro Yamada	BEGIN(COMMAND);
11120a9064fbSMasahiro Yamada}
11130a9064fbSMasahiro Yamada	YY_BREAK
11140a9064fbSMasahiro Yamadacase 5:
11150a9064fbSMasahiro YamadaYY_RULE_SETUP
11160a9064fbSMasahiro Yamada{
11170a9064fbSMasahiro Yamada	unput(zconftext[0]);
11180a9064fbSMasahiro Yamada	BEGIN(COMMAND);
11190a9064fbSMasahiro Yamada}
11200a9064fbSMasahiro Yamada	YY_BREAK
11210a9064fbSMasahiro Yamada
11220a9064fbSMasahiro Yamadacase 6:
11230a9064fbSMasahiro YamadaYY_RULE_SETUP
11240a9064fbSMasahiro Yamada{
11250a9064fbSMasahiro Yamada		const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
11260a9064fbSMasahiro Yamada		BEGIN(PARAM);
11270a9064fbSMasahiro Yamada		current_pos.file = current_file;
11280a9064fbSMasahiro Yamada		current_pos.lineno = current_file->lineno;
11290a9064fbSMasahiro Yamada		if (id && id->flags & TF_COMMAND) {
11300a9064fbSMasahiro Yamada			zconflval.id = id;
11310a9064fbSMasahiro Yamada			return id->token;
11320a9064fbSMasahiro Yamada		}
11330a9064fbSMasahiro Yamada		alloc_string(zconftext, zconfleng);
11340a9064fbSMasahiro Yamada		zconflval.string = text;
11350a9064fbSMasahiro Yamada		return T_WORD;
11360a9064fbSMasahiro Yamada	}
11370a9064fbSMasahiro Yamada	YY_BREAK
11380a9064fbSMasahiro Yamadacase 7:
11390a9064fbSMasahiro YamadaYY_RULE_SETUP
1140*bf7ab1e7SMasahiro Yamadawarn_ignored_character(*zconftext);
11410a9064fbSMasahiro Yamada	YY_BREAK
11420a9064fbSMasahiro Yamadacase 8:
11430a9064fbSMasahiro Yamada/* rule 8 can match eol */
11440a9064fbSMasahiro YamadaYY_RULE_SETUP
11450a9064fbSMasahiro Yamada{
11460a9064fbSMasahiro Yamada		BEGIN(INITIAL);
11470a9064fbSMasahiro Yamada		current_file->lineno++;
11480a9064fbSMasahiro Yamada		return T_EOL;
11490a9064fbSMasahiro Yamada	}
11500a9064fbSMasahiro Yamada	YY_BREAK
11510a9064fbSMasahiro Yamada
11520a9064fbSMasahiro Yamadacase 9:
11530a9064fbSMasahiro YamadaYY_RULE_SETUP
11540a9064fbSMasahiro Yamadareturn T_AND;
11550a9064fbSMasahiro Yamada	YY_BREAK
11560a9064fbSMasahiro Yamadacase 10:
11570a9064fbSMasahiro YamadaYY_RULE_SETUP
11580a9064fbSMasahiro Yamadareturn T_OR;
11590a9064fbSMasahiro Yamada	YY_BREAK
11600a9064fbSMasahiro Yamadacase 11:
11610a9064fbSMasahiro YamadaYY_RULE_SETUP
11620a9064fbSMasahiro Yamadareturn T_OPEN_PAREN;
11630a9064fbSMasahiro Yamada	YY_BREAK
11640a9064fbSMasahiro Yamadacase 12:
11650a9064fbSMasahiro YamadaYY_RULE_SETUP
11660a9064fbSMasahiro Yamadareturn T_CLOSE_PAREN;
11670a9064fbSMasahiro Yamada	YY_BREAK
11680a9064fbSMasahiro Yamadacase 13:
11690a9064fbSMasahiro YamadaYY_RULE_SETUP
11700a9064fbSMasahiro Yamadareturn T_NOT;
11710a9064fbSMasahiro Yamada	YY_BREAK
11720a9064fbSMasahiro Yamadacase 14:
11730a9064fbSMasahiro YamadaYY_RULE_SETUP
11740a9064fbSMasahiro Yamadareturn T_EQUAL;
11750a9064fbSMasahiro Yamada	YY_BREAK
11760a9064fbSMasahiro Yamadacase 15:
11770a9064fbSMasahiro YamadaYY_RULE_SETUP
11780a9064fbSMasahiro Yamadareturn T_UNEQUAL;
11790a9064fbSMasahiro Yamada	YY_BREAK
11800a9064fbSMasahiro Yamadacase 16:
11810a9064fbSMasahiro YamadaYY_RULE_SETUP
1182*bf7ab1e7SMasahiro Yamadareturn T_LESS_EQUAL;
1183*bf7ab1e7SMasahiro Yamada	YY_BREAK
1184*bf7ab1e7SMasahiro Yamadacase 17:
1185*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1186*bf7ab1e7SMasahiro Yamadareturn T_GREATER_EQUAL;
1187*bf7ab1e7SMasahiro Yamada	YY_BREAK
1188*bf7ab1e7SMasahiro Yamadacase 18:
1189*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1190*bf7ab1e7SMasahiro Yamadareturn T_LESS;
1191*bf7ab1e7SMasahiro Yamada	YY_BREAK
1192*bf7ab1e7SMasahiro Yamadacase 19:
1193*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1194*bf7ab1e7SMasahiro Yamadareturn T_GREATER;
1195*bf7ab1e7SMasahiro Yamada	YY_BREAK
1196*bf7ab1e7SMasahiro Yamadacase 20:
1197*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
11980a9064fbSMasahiro Yamada{
11990a9064fbSMasahiro Yamada		str = zconftext[0];
12000a9064fbSMasahiro Yamada		new_string();
12010a9064fbSMasahiro Yamada		BEGIN(STRING);
12020a9064fbSMasahiro Yamada	}
12030a9064fbSMasahiro Yamada	YY_BREAK
1204*bf7ab1e7SMasahiro Yamadacase 21:
1205*bf7ab1e7SMasahiro Yamada/* rule 21 can match eol */
12060a9064fbSMasahiro YamadaYY_RULE_SETUP
12070a9064fbSMasahiro YamadaBEGIN(INITIAL); current_file->lineno++; return T_EOL;
12080a9064fbSMasahiro Yamada	YY_BREAK
1209*bf7ab1e7SMasahiro Yamadacase 22:
12100a9064fbSMasahiro YamadaYY_RULE_SETUP
12110a9064fbSMasahiro Yamada{
12120a9064fbSMasahiro Yamada		const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
12130a9064fbSMasahiro Yamada		if (id && id->flags & TF_PARAM) {
12140a9064fbSMasahiro Yamada			zconflval.id = id;
12150a9064fbSMasahiro Yamada			return id->token;
12160a9064fbSMasahiro Yamada		}
12170a9064fbSMasahiro Yamada		alloc_string(zconftext, zconfleng);
12180a9064fbSMasahiro Yamada		zconflval.string = text;
12190a9064fbSMasahiro Yamada		return T_WORD;
12200a9064fbSMasahiro Yamada	}
12210a9064fbSMasahiro Yamada	YY_BREAK
1222*bf7ab1e7SMasahiro Yamadacase 23:
12230a9064fbSMasahiro YamadaYY_RULE_SETUP
12240a9064fbSMasahiro Yamada/* comment */
12250a9064fbSMasahiro Yamada	YY_BREAK
1226*bf7ab1e7SMasahiro Yamadacase 24:
1227*bf7ab1e7SMasahiro Yamada/* rule 24 can match eol */
12280a9064fbSMasahiro YamadaYY_RULE_SETUP
12290a9064fbSMasahiro Yamadacurrent_file->lineno++;
12300a9064fbSMasahiro Yamada	YY_BREAK
1231*bf7ab1e7SMasahiro Yamadacase 25:
12320a9064fbSMasahiro YamadaYY_RULE_SETUP
12330a9064fbSMasahiro Yamada
12340a9064fbSMasahiro Yamada	YY_BREAK
1235*bf7ab1e7SMasahiro Yamadacase 26:
1236*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1237*bf7ab1e7SMasahiro Yamadawarn_ignored_character(*zconftext);
1238*bf7ab1e7SMasahiro Yamada	YY_BREAK
12390a9064fbSMasahiro Yamadacase YY_STATE_EOF(PARAM):
12400a9064fbSMasahiro Yamada{
12410a9064fbSMasahiro Yamada		BEGIN(INITIAL);
12420a9064fbSMasahiro Yamada	}
12430a9064fbSMasahiro Yamada	YY_BREAK
12440a9064fbSMasahiro Yamada
12450a9064fbSMasahiro Yamadacase 27:
1246*bf7ab1e7SMasahiro Yamada/* rule 27 can match eol */
1247*bf7ab1e7SMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
1248*bf7ab1e7SMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1;
1249*bf7ab1e7SMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */
1250*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1251*bf7ab1e7SMasahiro Yamada{
1252*bf7ab1e7SMasahiro Yamada		append_string(zconftext, zconfleng);
1253*bf7ab1e7SMasahiro Yamada		zconflval.string = text;
1254*bf7ab1e7SMasahiro Yamada		return T_WORD_QUOTE;
1255*bf7ab1e7SMasahiro Yamada	}
1256*bf7ab1e7SMasahiro Yamada	YY_BREAK
1257*bf7ab1e7SMasahiro Yamadacase 28:
1258*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1259*bf7ab1e7SMasahiro Yamada{
1260*bf7ab1e7SMasahiro Yamada		append_string(zconftext, zconfleng);
1261*bf7ab1e7SMasahiro Yamada	}
1262*bf7ab1e7SMasahiro Yamada	YY_BREAK
1263*bf7ab1e7SMasahiro Yamadacase 29:
1264*bf7ab1e7SMasahiro Yamada/* rule 29 can match eol */
1265*bf7ab1e7SMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
1266*bf7ab1e7SMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1;
1267*bf7ab1e7SMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */
1268*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1269*bf7ab1e7SMasahiro Yamada{
1270*bf7ab1e7SMasahiro Yamada		append_string(zconftext + 1, zconfleng - 1);
1271*bf7ab1e7SMasahiro Yamada		zconflval.string = text;
1272*bf7ab1e7SMasahiro Yamada		return T_WORD_QUOTE;
1273*bf7ab1e7SMasahiro Yamada	}
1274*bf7ab1e7SMasahiro Yamada	YY_BREAK
1275*bf7ab1e7SMasahiro Yamadacase 30:
1276*bf7ab1e7SMasahiro YamadaYY_RULE_SETUP
1277*bf7ab1e7SMasahiro Yamada{
1278*bf7ab1e7SMasahiro Yamada		append_string(zconftext + 1, zconfleng - 1);
1279*bf7ab1e7SMasahiro Yamada	}
1280*bf7ab1e7SMasahiro Yamada	YY_BREAK
1281*bf7ab1e7SMasahiro Yamadacase 31:
12820a9064fbSMasahiro YamadaYY_RULE_SETUP
12830a9064fbSMasahiro Yamada{
12840a9064fbSMasahiro Yamada		if (str == zconftext[0]) {
12850a9064fbSMasahiro Yamada			BEGIN(PARAM);
12860a9064fbSMasahiro Yamada			zconflval.string = text;
12870a9064fbSMasahiro Yamada			return T_WORD_QUOTE;
12880a9064fbSMasahiro Yamada		} else
12890a9064fbSMasahiro Yamada			append_string(zconftext, 1);
12900a9064fbSMasahiro Yamada	}
12910a9064fbSMasahiro Yamada	YY_BREAK
1292*bf7ab1e7SMasahiro Yamadacase 32:
1293*bf7ab1e7SMasahiro Yamada/* rule 32 can match eol */
12940a9064fbSMasahiro YamadaYY_RULE_SETUP
12950a9064fbSMasahiro Yamada{
12960a9064fbSMasahiro Yamada		printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
12970a9064fbSMasahiro Yamada		current_file->lineno++;
12980a9064fbSMasahiro Yamada		BEGIN(INITIAL);
12990a9064fbSMasahiro Yamada		return T_EOL;
13000a9064fbSMasahiro Yamada	}
13010a9064fbSMasahiro Yamada	YY_BREAK
13020a9064fbSMasahiro Yamadacase YY_STATE_EOF(STRING):
13030a9064fbSMasahiro Yamada{
13040a9064fbSMasahiro Yamada		BEGIN(INITIAL);
13050a9064fbSMasahiro Yamada	}
13060a9064fbSMasahiro Yamada	YY_BREAK
13070a9064fbSMasahiro Yamada
1308*bf7ab1e7SMasahiro Yamadacase 33:
13090a9064fbSMasahiro YamadaYY_RULE_SETUP
13100a9064fbSMasahiro Yamada{
13110a9064fbSMasahiro Yamada		ts = 0;
13120a9064fbSMasahiro Yamada		for (i = 0; i < zconfleng; i++) {
13130a9064fbSMasahiro Yamada			if (zconftext[i] == '\t')
13140a9064fbSMasahiro Yamada				ts = (ts & ~7) + 8;
13150a9064fbSMasahiro Yamada			else
13160a9064fbSMasahiro Yamada				ts++;
13170a9064fbSMasahiro Yamada		}
13180a9064fbSMasahiro Yamada		last_ts = ts;
13190a9064fbSMasahiro Yamada		if (first_ts) {
13200a9064fbSMasahiro Yamada			if (ts < first_ts) {
13210a9064fbSMasahiro Yamada				zconf_endhelp();
13220a9064fbSMasahiro Yamada				return T_HELPTEXT;
13230a9064fbSMasahiro Yamada			}
13240a9064fbSMasahiro Yamada			ts -= first_ts;
13250a9064fbSMasahiro Yamada			while (ts > 8) {
13260a9064fbSMasahiro Yamada				append_string("        ", 8);
13270a9064fbSMasahiro Yamada				ts -= 8;
13280a9064fbSMasahiro Yamada			}
13290a9064fbSMasahiro Yamada			append_string("        ", ts);
13300a9064fbSMasahiro Yamada		}
13310a9064fbSMasahiro Yamada	}
13320a9064fbSMasahiro Yamada	YY_BREAK
1333*bf7ab1e7SMasahiro Yamadacase 34:
1334*bf7ab1e7SMasahiro Yamada/* rule 34 can match eol */
13350a9064fbSMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
13360a9064fbSMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1;
13370a9064fbSMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */
13380a9064fbSMasahiro YamadaYY_RULE_SETUP
13390a9064fbSMasahiro Yamada{
13400a9064fbSMasahiro Yamada		current_file->lineno++;
13410a9064fbSMasahiro Yamada		zconf_endhelp();
13420a9064fbSMasahiro Yamada		return T_HELPTEXT;
13430a9064fbSMasahiro Yamada	}
13440a9064fbSMasahiro Yamada	YY_BREAK
1345*bf7ab1e7SMasahiro Yamadacase 35:
1346*bf7ab1e7SMasahiro Yamada/* rule 35 can match eol */
13470a9064fbSMasahiro YamadaYY_RULE_SETUP
13480a9064fbSMasahiro Yamada{
13490a9064fbSMasahiro Yamada		current_file->lineno++;
13500a9064fbSMasahiro Yamada		append_string("\n", 1);
13510a9064fbSMasahiro Yamada	}
13520a9064fbSMasahiro Yamada	YY_BREAK
1353*bf7ab1e7SMasahiro Yamadacase 36:
13540a9064fbSMasahiro YamadaYY_RULE_SETUP
13550a9064fbSMasahiro Yamada{
13560a9064fbSMasahiro Yamada		while (zconfleng) {
13570a9064fbSMasahiro Yamada			if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
13580a9064fbSMasahiro Yamada				break;
13590a9064fbSMasahiro Yamada			zconfleng--;
13600a9064fbSMasahiro Yamada		}
13610a9064fbSMasahiro Yamada		append_string(zconftext, zconfleng);
13620a9064fbSMasahiro Yamada		if (!first_ts)
13630a9064fbSMasahiro Yamada			first_ts = last_ts;
13640a9064fbSMasahiro Yamada	}
13650a9064fbSMasahiro Yamada	YY_BREAK
13660a9064fbSMasahiro Yamadacase YY_STATE_EOF(HELP):
13670a9064fbSMasahiro Yamada{
13680a9064fbSMasahiro Yamada		zconf_endhelp();
13690a9064fbSMasahiro Yamada		return T_HELPTEXT;
13700a9064fbSMasahiro Yamada	}
13710a9064fbSMasahiro Yamada	YY_BREAK
13720a9064fbSMasahiro Yamada
13730a9064fbSMasahiro Yamadacase YY_STATE_EOF(INITIAL):
13740a9064fbSMasahiro Yamadacase YY_STATE_EOF(COMMAND):
13750a9064fbSMasahiro Yamada{
13760a9064fbSMasahiro Yamada	if (current_file) {
13770a9064fbSMasahiro Yamada		zconf_endfile();
13780a9064fbSMasahiro Yamada		return T_EOL;
13790a9064fbSMasahiro Yamada	}
13800a9064fbSMasahiro Yamada	fclose(zconfin);
13810a9064fbSMasahiro Yamada	yyterminate();
13820a9064fbSMasahiro Yamada}
13830a9064fbSMasahiro Yamada	YY_BREAK
1384*bf7ab1e7SMasahiro Yamadacase 37:
13850a9064fbSMasahiro YamadaYY_RULE_SETUP
13860a9064fbSMasahiro YamadaYY_FATAL_ERROR( "flex scanner jammed" );
13870a9064fbSMasahiro Yamada	YY_BREAK
13880a9064fbSMasahiro Yamada
13890a9064fbSMasahiro Yamada	case YY_END_OF_BUFFER:
13900a9064fbSMasahiro Yamada		{
13910a9064fbSMasahiro Yamada		/* Amount of text matched not including the EOB char. */
13920a9064fbSMasahiro Yamada		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
13930a9064fbSMasahiro Yamada
13940a9064fbSMasahiro Yamada		/* Undo the effects of YY_DO_BEFORE_ACTION. */
13950a9064fbSMasahiro Yamada		*yy_cp = (yy_hold_char);
13960a9064fbSMasahiro Yamada		YY_RESTORE_YY_MORE_OFFSET
13970a9064fbSMasahiro Yamada
13980a9064fbSMasahiro Yamada		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
13990a9064fbSMasahiro Yamada			{
14000a9064fbSMasahiro Yamada			/* We're scanning a new file or input source.  It's
14010a9064fbSMasahiro Yamada			 * possible that this happened because the user
14020a9064fbSMasahiro Yamada			 * just pointed zconfin at a new source and called
14030a9064fbSMasahiro Yamada			 * zconflex().  If so, then we have to assure
14040a9064fbSMasahiro Yamada			 * consistency between YY_CURRENT_BUFFER and our
14050a9064fbSMasahiro Yamada			 * globals.  Here is the right place to do so, because
14060a9064fbSMasahiro Yamada			 * this is the first action (other than possibly a
14070a9064fbSMasahiro Yamada			 * back-up) that will match for the new input source.
14080a9064fbSMasahiro Yamada			 */
14090a9064fbSMasahiro Yamada			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
14100a9064fbSMasahiro Yamada			YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
14110a9064fbSMasahiro Yamada			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
14120a9064fbSMasahiro Yamada			}
14130a9064fbSMasahiro Yamada
14140a9064fbSMasahiro Yamada		/* Note that here we test for yy_c_buf_p "<=" to the position
14150a9064fbSMasahiro Yamada		 * of the first EOB in the buffer, since yy_c_buf_p will
14160a9064fbSMasahiro Yamada		 * already have been incremented past the NUL character
14170a9064fbSMasahiro Yamada		 * (since all states make transitions on EOB to the
14180a9064fbSMasahiro Yamada		 * end-of-buffer state).  Contrast this with the test
14190a9064fbSMasahiro Yamada		 * in input().
14200a9064fbSMasahiro Yamada		 */
14210a9064fbSMasahiro Yamada		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
14220a9064fbSMasahiro Yamada			{ /* This was really a NUL. */
14230a9064fbSMasahiro Yamada			yy_state_type yy_next_state;
14240a9064fbSMasahiro Yamada
14250a9064fbSMasahiro Yamada			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
14260a9064fbSMasahiro Yamada
14270a9064fbSMasahiro Yamada			yy_current_state = yy_get_previous_state(  );
14280a9064fbSMasahiro Yamada
14290a9064fbSMasahiro Yamada			/* Okay, we're now positioned to make the NUL
14300a9064fbSMasahiro Yamada			 * transition.  We couldn't have
14310a9064fbSMasahiro Yamada			 * yy_get_previous_state() go ahead and do it
14320a9064fbSMasahiro Yamada			 * for us because it doesn't know how to deal
14330a9064fbSMasahiro Yamada			 * with the possibility of jamming (and we don't
14340a9064fbSMasahiro Yamada			 * want to build jamming into it because then it
14350a9064fbSMasahiro Yamada			 * will run more slowly).
14360a9064fbSMasahiro Yamada			 */
14370a9064fbSMasahiro Yamada
14380a9064fbSMasahiro Yamada			yy_next_state = yy_try_NUL_trans( yy_current_state );
14390a9064fbSMasahiro Yamada
14400a9064fbSMasahiro Yamada			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
14410a9064fbSMasahiro Yamada
14420a9064fbSMasahiro Yamada			if ( yy_next_state )
14430a9064fbSMasahiro Yamada				{
14440a9064fbSMasahiro Yamada				/* Consume the NUL. */
14450a9064fbSMasahiro Yamada				yy_cp = ++(yy_c_buf_p);
14460a9064fbSMasahiro Yamada				yy_current_state = yy_next_state;
14470a9064fbSMasahiro Yamada				goto yy_match;
14480a9064fbSMasahiro Yamada				}
14490a9064fbSMasahiro Yamada
14500a9064fbSMasahiro Yamada			else
14510a9064fbSMasahiro Yamada				{
14520a9064fbSMasahiro Yamada				yy_cp = (yy_c_buf_p);
14530a9064fbSMasahiro Yamada				goto yy_find_action;
14540a9064fbSMasahiro Yamada				}
14550a9064fbSMasahiro Yamada			}
14560a9064fbSMasahiro Yamada
14570a9064fbSMasahiro Yamada		else switch ( yy_get_next_buffer(  ) )
14580a9064fbSMasahiro Yamada			{
14590a9064fbSMasahiro Yamada			case EOB_ACT_END_OF_FILE:
14600a9064fbSMasahiro Yamada				{
14610a9064fbSMasahiro Yamada				(yy_did_buffer_switch_on_eof) = 0;
14620a9064fbSMasahiro Yamada
14630a9064fbSMasahiro Yamada				if ( zconfwrap( ) )
14640a9064fbSMasahiro Yamada					{
14650a9064fbSMasahiro Yamada					/* Note: because we've taken care in
14660a9064fbSMasahiro Yamada					 * yy_get_next_buffer() to have set up
14670a9064fbSMasahiro Yamada					 * zconftext, we can now set up
14680a9064fbSMasahiro Yamada					 * yy_c_buf_p so that if some total
14690a9064fbSMasahiro Yamada					 * hoser (like flex itself) wants to
14700a9064fbSMasahiro Yamada					 * call the scanner after we return the
14710a9064fbSMasahiro Yamada					 * YY_NULL, it'll still work - another
14720a9064fbSMasahiro Yamada					 * YY_NULL will get returned.
14730a9064fbSMasahiro Yamada					 */
14740a9064fbSMasahiro Yamada					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
14750a9064fbSMasahiro Yamada
14760a9064fbSMasahiro Yamada					yy_act = YY_STATE_EOF(YY_START);
14770a9064fbSMasahiro Yamada					goto do_action;
14780a9064fbSMasahiro Yamada					}
14790a9064fbSMasahiro Yamada
14800a9064fbSMasahiro Yamada				else
14810a9064fbSMasahiro Yamada					{
14820a9064fbSMasahiro Yamada					if ( ! (yy_did_buffer_switch_on_eof) )
14830a9064fbSMasahiro Yamada						YY_NEW_FILE;
14840a9064fbSMasahiro Yamada					}
14850a9064fbSMasahiro Yamada				break;
14860a9064fbSMasahiro Yamada				}
14870a9064fbSMasahiro Yamada
14880a9064fbSMasahiro Yamada			case EOB_ACT_CONTINUE_SCAN:
14890a9064fbSMasahiro Yamada				(yy_c_buf_p) =
14900a9064fbSMasahiro Yamada					(yytext_ptr) + yy_amount_of_matched_text;
14910a9064fbSMasahiro Yamada
14920a9064fbSMasahiro Yamada				yy_current_state = yy_get_previous_state(  );
14930a9064fbSMasahiro Yamada
14940a9064fbSMasahiro Yamada				yy_cp = (yy_c_buf_p);
14950a9064fbSMasahiro Yamada				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
14960a9064fbSMasahiro Yamada				goto yy_match;
14970a9064fbSMasahiro Yamada
14980a9064fbSMasahiro Yamada			case EOB_ACT_LAST_MATCH:
14990a9064fbSMasahiro Yamada				(yy_c_buf_p) =
15000a9064fbSMasahiro Yamada				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
15010a9064fbSMasahiro Yamada
15020a9064fbSMasahiro Yamada				yy_current_state = yy_get_previous_state(  );
15030a9064fbSMasahiro Yamada
15040a9064fbSMasahiro Yamada				yy_cp = (yy_c_buf_p);
15050a9064fbSMasahiro Yamada				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
15060a9064fbSMasahiro Yamada				goto yy_find_action;
15070a9064fbSMasahiro Yamada			}
15080a9064fbSMasahiro Yamada		break;
15090a9064fbSMasahiro Yamada		}
15100a9064fbSMasahiro Yamada
15110a9064fbSMasahiro Yamada	default:
15120a9064fbSMasahiro Yamada		YY_FATAL_ERROR(
15130a9064fbSMasahiro Yamada			"fatal flex scanner internal error--no action found" );
15140a9064fbSMasahiro Yamada	} /* end of action switch */
15150a9064fbSMasahiro Yamada		} /* end of scanning one token */
15160a9064fbSMasahiro Yamada} /* end of zconflex */
15170a9064fbSMasahiro Yamada
15180a9064fbSMasahiro Yamada/* yy_get_next_buffer - try to read in a new buffer
15190a9064fbSMasahiro Yamada *
15200a9064fbSMasahiro Yamada * Returns a code representing an action:
15210a9064fbSMasahiro Yamada *	EOB_ACT_LAST_MATCH -
15220a9064fbSMasahiro Yamada *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
15230a9064fbSMasahiro Yamada *	EOB_ACT_END_OF_FILE - end of file
15240a9064fbSMasahiro Yamada */
15250a9064fbSMasahiro Yamadastatic int yy_get_next_buffer (void)
15260a9064fbSMasahiro Yamada{
15270a9064fbSMasahiro Yamada    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
15280a9064fbSMasahiro Yamada	register char *source = (yytext_ptr);
15290a9064fbSMasahiro Yamada	register int number_to_move, i;
15300a9064fbSMasahiro Yamada	int ret_val;
15310a9064fbSMasahiro Yamada
15320a9064fbSMasahiro Yamada	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
15330a9064fbSMasahiro Yamada		YY_FATAL_ERROR(
15340a9064fbSMasahiro Yamada		"fatal flex scanner internal error--end of buffer missed" );
15350a9064fbSMasahiro Yamada
15360a9064fbSMasahiro Yamada	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
15370a9064fbSMasahiro Yamada		{ /* Don't try to fill the buffer, so this is an EOF. */
15380a9064fbSMasahiro Yamada		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
15390a9064fbSMasahiro Yamada			{
15400a9064fbSMasahiro Yamada			/* We matched a single character, the EOB, so
15410a9064fbSMasahiro Yamada			 * treat this as a final EOF.
15420a9064fbSMasahiro Yamada			 */
15430a9064fbSMasahiro Yamada			return EOB_ACT_END_OF_FILE;
15440a9064fbSMasahiro Yamada			}
15450a9064fbSMasahiro Yamada
15460a9064fbSMasahiro Yamada		else
15470a9064fbSMasahiro Yamada			{
15480a9064fbSMasahiro Yamada			/* We matched some text prior to the EOB, first
15490a9064fbSMasahiro Yamada			 * process it.
15500a9064fbSMasahiro Yamada			 */
15510a9064fbSMasahiro Yamada			return EOB_ACT_LAST_MATCH;
15520a9064fbSMasahiro Yamada			}
15530a9064fbSMasahiro Yamada		}
15540a9064fbSMasahiro Yamada
15550a9064fbSMasahiro Yamada	/* Try to read more data. */
15560a9064fbSMasahiro Yamada
15570a9064fbSMasahiro Yamada	/* First move last chars to start of buffer. */
15580a9064fbSMasahiro Yamada	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
15590a9064fbSMasahiro Yamada
15600a9064fbSMasahiro Yamada	for ( i = 0; i < number_to_move; ++i )
15610a9064fbSMasahiro Yamada		*(dest++) = *(source++);
15620a9064fbSMasahiro Yamada
15630a9064fbSMasahiro Yamada	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
15640a9064fbSMasahiro Yamada		/* don't do the read, it's not guaranteed to return an EOF,
15650a9064fbSMasahiro Yamada		 * just force an EOF
15660a9064fbSMasahiro Yamada		 */
15670a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
15680a9064fbSMasahiro Yamada
15690a9064fbSMasahiro Yamada	else
15700a9064fbSMasahiro Yamada		{
15710a9064fbSMasahiro Yamada			int num_to_read =
15720a9064fbSMasahiro Yamada			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
15730a9064fbSMasahiro Yamada
15740a9064fbSMasahiro Yamada		while ( num_to_read <= 0 )
15750a9064fbSMasahiro Yamada			{ /* Not enough room in the buffer - grow it. */
15760a9064fbSMasahiro Yamada
15770a9064fbSMasahiro Yamada			/* just a shorter name for the current buffer */
15780a9064fbSMasahiro Yamada			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
15790a9064fbSMasahiro Yamada
15800a9064fbSMasahiro Yamada			int yy_c_buf_p_offset =
15810a9064fbSMasahiro Yamada				(int) ((yy_c_buf_p) - b->yy_ch_buf);
15820a9064fbSMasahiro Yamada
15830a9064fbSMasahiro Yamada			if ( b->yy_is_our_buffer )
15840a9064fbSMasahiro Yamada				{
15850a9064fbSMasahiro Yamada				int new_size = b->yy_buf_size * 2;
15860a9064fbSMasahiro Yamada
15870a9064fbSMasahiro Yamada				if ( new_size <= 0 )
15880a9064fbSMasahiro Yamada					b->yy_buf_size += b->yy_buf_size / 8;
15890a9064fbSMasahiro Yamada				else
15900a9064fbSMasahiro Yamada					b->yy_buf_size *= 2;
15910a9064fbSMasahiro Yamada
15920a9064fbSMasahiro Yamada				b->yy_ch_buf = (char *)
15930a9064fbSMasahiro Yamada					/* Include room in for 2 EOB chars. */
15940a9064fbSMasahiro Yamada					zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
15950a9064fbSMasahiro Yamada				}
15960a9064fbSMasahiro Yamada			else
15970a9064fbSMasahiro Yamada				/* Can't grow it, we don't own it. */
15980a9064fbSMasahiro Yamada				b->yy_ch_buf = 0;
15990a9064fbSMasahiro Yamada
16000a9064fbSMasahiro Yamada			if ( ! b->yy_ch_buf )
16010a9064fbSMasahiro Yamada				YY_FATAL_ERROR(
16020a9064fbSMasahiro Yamada				"fatal error - scanner input buffer overflow" );
16030a9064fbSMasahiro Yamada
16040a9064fbSMasahiro Yamada			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
16050a9064fbSMasahiro Yamada
16060a9064fbSMasahiro Yamada			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
16070a9064fbSMasahiro Yamada						number_to_move - 1;
16080a9064fbSMasahiro Yamada
16090a9064fbSMasahiro Yamada			}
16100a9064fbSMasahiro Yamada
16110a9064fbSMasahiro Yamada		if ( num_to_read > YY_READ_BUF_SIZE )
16120a9064fbSMasahiro Yamada			num_to_read = YY_READ_BUF_SIZE;
16130a9064fbSMasahiro Yamada
16140a9064fbSMasahiro Yamada		/* Read in more data. */
16150a9064fbSMasahiro Yamada		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
16160a9064fbSMasahiro Yamada			(yy_n_chars), (size_t) num_to_read );
16170a9064fbSMasahiro Yamada
16180a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
16190a9064fbSMasahiro Yamada		}
16200a9064fbSMasahiro Yamada
16210a9064fbSMasahiro Yamada	if ( (yy_n_chars) == 0 )
16220a9064fbSMasahiro Yamada		{
16230a9064fbSMasahiro Yamada		if ( number_to_move == YY_MORE_ADJ )
16240a9064fbSMasahiro Yamada			{
16250a9064fbSMasahiro Yamada			ret_val = EOB_ACT_END_OF_FILE;
16260a9064fbSMasahiro Yamada			zconfrestart(zconfin  );
16270a9064fbSMasahiro Yamada			}
16280a9064fbSMasahiro Yamada
16290a9064fbSMasahiro Yamada		else
16300a9064fbSMasahiro Yamada			{
16310a9064fbSMasahiro Yamada			ret_val = EOB_ACT_LAST_MATCH;
16320a9064fbSMasahiro Yamada			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
16330a9064fbSMasahiro Yamada				YY_BUFFER_EOF_PENDING;
16340a9064fbSMasahiro Yamada			}
16350a9064fbSMasahiro Yamada		}
16360a9064fbSMasahiro Yamada
16370a9064fbSMasahiro Yamada	else
16380a9064fbSMasahiro Yamada		ret_val = EOB_ACT_CONTINUE_SCAN;
16390a9064fbSMasahiro Yamada
16400a9064fbSMasahiro Yamada	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
16410a9064fbSMasahiro Yamada		/* Extend the array by 50%, plus the number we really need. */
16420a9064fbSMasahiro Yamada		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
16430a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
16440a9064fbSMasahiro Yamada		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
16450a9064fbSMasahiro Yamada			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
16460a9064fbSMasahiro Yamada	}
16470a9064fbSMasahiro Yamada
16480a9064fbSMasahiro Yamada	(yy_n_chars) += number_to_move;
16490a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
16500a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
16510a9064fbSMasahiro Yamada
16520a9064fbSMasahiro Yamada	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
16530a9064fbSMasahiro Yamada
16540a9064fbSMasahiro Yamada	return ret_val;
16550a9064fbSMasahiro Yamada}
16560a9064fbSMasahiro Yamada
16570a9064fbSMasahiro Yamada/* yy_get_previous_state - get the state just before the EOB char was reached */
16580a9064fbSMasahiro Yamada
16590a9064fbSMasahiro Yamada    static yy_state_type yy_get_previous_state (void)
16600a9064fbSMasahiro Yamada{
16610a9064fbSMasahiro Yamada	register yy_state_type yy_current_state;
16620a9064fbSMasahiro Yamada	register char *yy_cp;
16630a9064fbSMasahiro Yamada
16640a9064fbSMasahiro Yamada	yy_current_state = (yy_start);
16650a9064fbSMasahiro Yamada
16660a9064fbSMasahiro Yamada	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
16670a9064fbSMasahiro Yamada		{
16680a9064fbSMasahiro Yamada		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
16690a9064fbSMasahiro Yamada		}
16700a9064fbSMasahiro Yamada
16710a9064fbSMasahiro Yamada	return yy_current_state;
16720a9064fbSMasahiro Yamada}
16730a9064fbSMasahiro Yamada
16740a9064fbSMasahiro Yamada/* yy_try_NUL_trans - try to make a transition on the NUL character
16750a9064fbSMasahiro Yamada *
16760a9064fbSMasahiro Yamada * synopsis
16770a9064fbSMasahiro Yamada *	next_state = yy_try_NUL_trans( current_state );
16780a9064fbSMasahiro Yamada */
16790a9064fbSMasahiro Yamada    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
16800a9064fbSMasahiro Yamada{
16810a9064fbSMasahiro Yamada	register int yy_is_jam;
16820a9064fbSMasahiro Yamada
16830a9064fbSMasahiro Yamada	yy_current_state = yy_nxt[yy_current_state][1];
16840a9064fbSMasahiro Yamada	yy_is_jam = (yy_current_state <= 0);
16850a9064fbSMasahiro Yamada
16860a9064fbSMasahiro Yamada	return yy_is_jam ? 0 : yy_current_state;
16870a9064fbSMasahiro Yamada}
16880a9064fbSMasahiro Yamada
16890a9064fbSMasahiro Yamada    static void yyunput (int c, register char * yy_bp )
16900a9064fbSMasahiro Yamada{
16910a9064fbSMasahiro Yamada	register char *yy_cp;
16920a9064fbSMasahiro Yamada
16930a9064fbSMasahiro Yamada    yy_cp = (yy_c_buf_p);
16940a9064fbSMasahiro Yamada
16950a9064fbSMasahiro Yamada	/* undo effects of setting up zconftext */
16960a9064fbSMasahiro Yamada	*yy_cp = (yy_hold_char);
16970a9064fbSMasahiro Yamada
16980a9064fbSMasahiro Yamada	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
16990a9064fbSMasahiro Yamada		{ /* need to shift things up to make room */
17000a9064fbSMasahiro Yamada		/* +2 for EOB chars. */
17010a9064fbSMasahiro Yamada		register int number_to_move = (yy_n_chars) + 2;
17020a9064fbSMasahiro Yamada		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
17030a9064fbSMasahiro Yamada					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
17040a9064fbSMasahiro Yamada		register char *source =
17050a9064fbSMasahiro Yamada				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
17060a9064fbSMasahiro Yamada
17070a9064fbSMasahiro Yamada		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
17080a9064fbSMasahiro Yamada			*--dest = *--source;
17090a9064fbSMasahiro Yamada
17100a9064fbSMasahiro Yamada		yy_cp += (int) (dest - source);
17110a9064fbSMasahiro Yamada		yy_bp += (int) (dest - source);
17120a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
17130a9064fbSMasahiro Yamada			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
17140a9064fbSMasahiro Yamada
17150a9064fbSMasahiro Yamada		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
17160a9064fbSMasahiro Yamada			YY_FATAL_ERROR( "flex scanner push-back overflow" );
17170a9064fbSMasahiro Yamada		}
17180a9064fbSMasahiro Yamada
17190a9064fbSMasahiro Yamada	*--yy_cp = (char) c;
17200a9064fbSMasahiro Yamada
17210a9064fbSMasahiro Yamada	(yytext_ptr) = yy_bp;
17220a9064fbSMasahiro Yamada	(yy_hold_char) = *yy_cp;
17230a9064fbSMasahiro Yamada	(yy_c_buf_p) = yy_cp;
17240a9064fbSMasahiro Yamada}
17250a9064fbSMasahiro Yamada
17260a9064fbSMasahiro Yamada#ifndef YY_NO_INPUT
17270a9064fbSMasahiro Yamada#ifdef __cplusplus
17280a9064fbSMasahiro Yamada    static int yyinput (void)
17290a9064fbSMasahiro Yamada#else
17300a9064fbSMasahiro Yamada    static int input  (void)
17310a9064fbSMasahiro Yamada#endif
17320a9064fbSMasahiro Yamada
17330a9064fbSMasahiro Yamada{
17340a9064fbSMasahiro Yamada	int c;
17350a9064fbSMasahiro Yamada
17360a9064fbSMasahiro Yamada	*(yy_c_buf_p) = (yy_hold_char);
17370a9064fbSMasahiro Yamada
17380a9064fbSMasahiro Yamada	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
17390a9064fbSMasahiro Yamada		{
17400a9064fbSMasahiro Yamada		/* yy_c_buf_p now points to the character we want to return.
17410a9064fbSMasahiro Yamada		 * If this occurs *before* the EOB characters, then it's a
17420a9064fbSMasahiro Yamada		 * valid NUL; if not, then we've hit the end of the buffer.
17430a9064fbSMasahiro Yamada		 */
17440a9064fbSMasahiro Yamada		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
17450a9064fbSMasahiro Yamada			/* This was really a NUL. */
17460a9064fbSMasahiro Yamada			*(yy_c_buf_p) = '\0';
17470a9064fbSMasahiro Yamada
17480a9064fbSMasahiro Yamada		else
17490a9064fbSMasahiro Yamada			{ /* need more input */
17500a9064fbSMasahiro Yamada			int offset = (yy_c_buf_p) - (yytext_ptr);
17510a9064fbSMasahiro Yamada			++(yy_c_buf_p);
17520a9064fbSMasahiro Yamada
17530a9064fbSMasahiro Yamada			switch ( yy_get_next_buffer(  ) )
17540a9064fbSMasahiro Yamada				{
17550a9064fbSMasahiro Yamada				case EOB_ACT_LAST_MATCH:
17560a9064fbSMasahiro Yamada					/* This happens because yy_g_n_b()
17570a9064fbSMasahiro Yamada					 * sees that we've accumulated a
17580a9064fbSMasahiro Yamada					 * token and flags that we need to
17590a9064fbSMasahiro Yamada					 * try matching the token before
17600a9064fbSMasahiro Yamada					 * proceeding.  But for input(),
17610a9064fbSMasahiro Yamada					 * there's no matching to consider.
17620a9064fbSMasahiro Yamada					 * So convert the EOB_ACT_LAST_MATCH
17630a9064fbSMasahiro Yamada					 * to EOB_ACT_END_OF_FILE.
17640a9064fbSMasahiro Yamada					 */
17650a9064fbSMasahiro Yamada
17660a9064fbSMasahiro Yamada					/* Reset buffer status. */
17670a9064fbSMasahiro Yamada					zconfrestart(zconfin );
17680a9064fbSMasahiro Yamada
17690a9064fbSMasahiro Yamada					/*FALLTHROUGH*/
17700a9064fbSMasahiro Yamada
17710a9064fbSMasahiro Yamada				case EOB_ACT_END_OF_FILE:
17720a9064fbSMasahiro Yamada					{
17730a9064fbSMasahiro Yamada					if ( zconfwrap( ) )
17740a9064fbSMasahiro Yamada						return EOF;
17750a9064fbSMasahiro Yamada
17760a9064fbSMasahiro Yamada					if ( ! (yy_did_buffer_switch_on_eof) )
17770a9064fbSMasahiro Yamada						YY_NEW_FILE;
17780a9064fbSMasahiro Yamada#ifdef __cplusplus
17790a9064fbSMasahiro Yamada					return yyinput();
17800a9064fbSMasahiro Yamada#else
17810a9064fbSMasahiro Yamada					return input();
17820a9064fbSMasahiro Yamada#endif
17830a9064fbSMasahiro Yamada					}
17840a9064fbSMasahiro Yamada
17850a9064fbSMasahiro Yamada				case EOB_ACT_CONTINUE_SCAN:
17860a9064fbSMasahiro Yamada					(yy_c_buf_p) = (yytext_ptr) + offset;
17870a9064fbSMasahiro Yamada					break;
17880a9064fbSMasahiro Yamada				}
17890a9064fbSMasahiro Yamada			}
17900a9064fbSMasahiro Yamada		}
17910a9064fbSMasahiro Yamada
17920a9064fbSMasahiro Yamada	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
17930a9064fbSMasahiro Yamada	*(yy_c_buf_p) = '\0';	/* preserve zconftext */
17940a9064fbSMasahiro Yamada	(yy_hold_char) = *++(yy_c_buf_p);
17950a9064fbSMasahiro Yamada
17960a9064fbSMasahiro Yamada	return c;
17970a9064fbSMasahiro Yamada}
17980a9064fbSMasahiro Yamada#endif	/* ifndef YY_NO_INPUT */
17990a9064fbSMasahiro Yamada
18000a9064fbSMasahiro Yamada/** Immediately switch to a different input stream.
18010a9064fbSMasahiro Yamada * @param input_file A readable stream.
18020a9064fbSMasahiro Yamada *
18030a9064fbSMasahiro Yamada * @note This function does not reset the start condition to @c INITIAL .
18040a9064fbSMasahiro Yamada */
18050a9064fbSMasahiro Yamada    void zconfrestart  (FILE * input_file )
18060a9064fbSMasahiro Yamada{
18070a9064fbSMasahiro Yamada
18080a9064fbSMasahiro Yamada	if ( ! YY_CURRENT_BUFFER ){
18090a9064fbSMasahiro Yamada        zconfensure_buffer_stack ();
18100a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE =
18110a9064fbSMasahiro Yamada            zconf_create_buffer(zconfin,YY_BUF_SIZE );
18120a9064fbSMasahiro Yamada	}
18130a9064fbSMasahiro Yamada
18140a9064fbSMasahiro Yamada	zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
18150a9064fbSMasahiro Yamada	zconf_load_buffer_state( );
18160a9064fbSMasahiro Yamada}
18170a9064fbSMasahiro Yamada
18180a9064fbSMasahiro Yamada/** Switch to a different input buffer.
18190a9064fbSMasahiro Yamada * @param new_buffer The new input buffer.
18200a9064fbSMasahiro Yamada *
18210a9064fbSMasahiro Yamada */
18220a9064fbSMasahiro Yamada    void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
18230a9064fbSMasahiro Yamada{
18240a9064fbSMasahiro Yamada
18250a9064fbSMasahiro Yamada	/* TODO. We should be able to replace this entire function body
18260a9064fbSMasahiro Yamada	 * with
18270a9064fbSMasahiro Yamada	 *		zconfpop_buffer_state();
18280a9064fbSMasahiro Yamada	 *		zconfpush_buffer_state(new_buffer);
18290a9064fbSMasahiro Yamada     */
18300a9064fbSMasahiro Yamada	zconfensure_buffer_stack ();
18310a9064fbSMasahiro Yamada	if ( YY_CURRENT_BUFFER == new_buffer )
18320a9064fbSMasahiro Yamada		return;
18330a9064fbSMasahiro Yamada
18340a9064fbSMasahiro Yamada	if ( YY_CURRENT_BUFFER )
18350a9064fbSMasahiro Yamada		{
18360a9064fbSMasahiro Yamada		/* Flush out information for old buffer. */
18370a9064fbSMasahiro Yamada		*(yy_c_buf_p) = (yy_hold_char);
18380a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
18390a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
18400a9064fbSMasahiro Yamada		}
18410a9064fbSMasahiro Yamada
18420a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE = new_buffer;
18430a9064fbSMasahiro Yamada	zconf_load_buffer_state( );
18440a9064fbSMasahiro Yamada
18450a9064fbSMasahiro Yamada	/* We don't actually know whether we did this switch during
18460a9064fbSMasahiro Yamada	 * EOF (zconfwrap()) processing, but the only time this flag
18470a9064fbSMasahiro Yamada	 * is looked at is after zconfwrap() is called, so it's safe
18480a9064fbSMasahiro Yamada	 * to go ahead and always set it.
18490a9064fbSMasahiro Yamada	 */
18500a9064fbSMasahiro Yamada	(yy_did_buffer_switch_on_eof) = 1;
18510a9064fbSMasahiro Yamada}
18520a9064fbSMasahiro Yamada
18530a9064fbSMasahiro Yamadastatic void zconf_load_buffer_state  (void)
18540a9064fbSMasahiro Yamada{
18550a9064fbSMasahiro Yamada    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
18560a9064fbSMasahiro Yamada	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
18570a9064fbSMasahiro Yamada	zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
18580a9064fbSMasahiro Yamada	(yy_hold_char) = *(yy_c_buf_p);
18590a9064fbSMasahiro Yamada}
18600a9064fbSMasahiro Yamada
18610a9064fbSMasahiro Yamada/** Allocate and initialize an input buffer state.
18620a9064fbSMasahiro Yamada * @param file A readable stream.
18630a9064fbSMasahiro Yamada * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
18640a9064fbSMasahiro Yamada *
18650a9064fbSMasahiro Yamada * @return the allocated buffer state.
18660a9064fbSMasahiro Yamada */
18670a9064fbSMasahiro Yamada    YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size )
18680a9064fbSMasahiro Yamada{
18690a9064fbSMasahiro Yamada	YY_BUFFER_STATE b;
18700a9064fbSMasahiro Yamada
18710a9064fbSMasahiro Yamada	b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
18720a9064fbSMasahiro Yamada	if ( ! b )
18730a9064fbSMasahiro Yamada		YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
18740a9064fbSMasahiro Yamada
18750a9064fbSMasahiro Yamada	b->yy_buf_size = size;
18760a9064fbSMasahiro Yamada
18770a9064fbSMasahiro Yamada	/* yy_ch_buf has to be 2 characters longer than the size given because
18780a9064fbSMasahiro Yamada	 * we need to put in 2 end-of-buffer characters.
18790a9064fbSMasahiro Yamada	 */
18800a9064fbSMasahiro Yamada	b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  );
18810a9064fbSMasahiro Yamada	if ( ! b->yy_ch_buf )
18820a9064fbSMasahiro Yamada		YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
18830a9064fbSMasahiro Yamada
18840a9064fbSMasahiro Yamada	b->yy_is_our_buffer = 1;
18850a9064fbSMasahiro Yamada
18860a9064fbSMasahiro Yamada	zconf_init_buffer(b,file );
18870a9064fbSMasahiro Yamada
18880a9064fbSMasahiro Yamada	return b;
18890a9064fbSMasahiro Yamada}
18900a9064fbSMasahiro Yamada
18910a9064fbSMasahiro Yamada/** Destroy the buffer.
18920a9064fbSMasahiro Yamada * @param b a buffer created with zconf_create_buffer()
18930a9064fbSMasahiro Yamada *
18940a9064fbSMasahiro Yamada */
18950a9064fbSMasahiro Yamada    void zconf_delete_buffer (YY_BUFFER_STATE  b )
18960a9064fbSMasahiro Yamada{
18970a9064fbSMasahiro Yamada
18980a9064fbSMasahiro Yamada	if ( ! b )
18990a9064fbSMasahiro Yamada		return;
19000a9064fbSMasahiro Yamada
19010a9064fbSMasahiro Yamada	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
19020a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
19030a9064fbSMasahiro Yamada
19040a9064fbSMasahiro Yamada	if ( b->yy_is_our_buffer )
19050a9064fbSMasahiro Yamada		zconffree((void *) b->yy_ch_buf  );
19060a9064fbSMasahiro Yamada
19070a9064fbSMasahiro Yamada	zconffree((void *) b  );
19080a9064fbSMasahiro Yamada}
19090a9064fbSMasahiro Yamada
19100a9064fbSMasahiro Yamada/* Initializes or reinitializes a buffer.
19110a9064fbSMasahiro Yamada * This function is sometimes called more than once on the same buffer,
19120a9064fbSMasahiro Yamada * such as during a zconfrestart() or at EOF.
19130a9064fbSMasahiro Yamada */
19140a9064fbSMasahiro Yamada    static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
19150a9064fbSMasahiro Yamada
19160a9064fbSMasahiro Yamada{
19170a9064fbSMasahiro Yamada	int oerrno = errno;
19180a9064fbSMasahiro Yamada
19190a9064fbSMasahiro Yamada	zconf_flush_buffer(b );
19200a9064fbSMasahiro Yamada
19210a9064fbSMasahiro Yamada	b->yy_input_file = file;
19220a9064fbSMasahiro Yamada	b->yy_fill_buffer = 1;
19230a9064fbSMasahiro Yamada
19240a9064fbSMasahiro Yamada    /* If b is the current buffer, then zconf_init_buffer was _probably_
19250a9064fbSMasahiro Yamada     * called from zconfrestart() or through yy_get_next_buffer.
19260a9064fbSMasahiro Yamada     * In that case, we don't want to reset the lineno or column.
19270a9064fbSMasahiro Yamada     */
19280a9064fbSMasahiro Yamada    if (b != YY_CURRENT_BUFFER){
19290a9064fbSMasahiro Yamada        b->yy_bs_lineno = 1;
19300a9064fbSMasahiro Yamada        b->yy_bs_column = 0;
19310a9064fbSMasahiro Yamada    }
19320a9064fbSMasahiro Yamada
19330a9064fbSMasahiro Yamada        b->yy_is_interactive = 0;
19340a9064fbSMasahiro Yamada
19350a9064fbSMasahiro Yamada	errno = oerrno;
19360a9064fbSMasahiro Yamada}
19370a9064fbSMasahiro Yamada
19380a9064fbSMasahiro Yamada/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
19390a9064fbSMasahiro Yamada * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
19400a9064fbSMasahiro Yamada *
19410a9064fbSMasahiro Yamada */
19420a9064fbSMasahiro Yamada    void zconf_flush_buffer (YY_BUFFER_STATE  b )
19430a9064fbSMasahiro Yamada{
19440a9064fbSMasahiro Yamada    	if ( ! b )
19450a9064fbSMasahiro Yamada		return;
19460a9064fbSMasahiro Yamada
19470a9064fbSMasahiro Yamada	b->yy_n_chars = 0;
19480a9064fbSMasahiro Yamada
19490a9064fbSMasahiro Yamada	/* We always need two end-of-buffer characters.  The first causes
19500a9064fbSMasahiro Yamada	 * a transition to the end-of-buffer state.  The second causes
19510a9064fbSMasahiro Yamada	 * a jam in that state.
19520a9064fbSMasahiro Yamada	 */
19530a9064fbSMasahiro Yamada	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
19540a9064fbSMasahiro Yamada	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
19550a9064fbSMasahiro Yamada
19560a9064fbSMasahiro Yamada	b->yy_buf_pos = &b->yy_ch_buf[0];
19570a9064fbSMasahiro Yamada
19580a9064fbSMasahiro Yamada	b->yy_at_bol = 1;
19590a9064fbSMasahiro Yamada	b->yy_buffer_status = YY_BUFFER_NEW;
19600a9064fbSMasahiro Yamada
19610a9064fbSMasahiro Yamada	if ( b == YY_CURRENT_BUFFER )
19620a9064fbSMasahiro Yamada		zconf_load_buffer_state( );
19630a9064fbSMasahiro Yamada}
19640a9064fbSMasahiro Yamada
19650a9064fbSMasahiro Yamada/** Pushes the new state onto the stack. The new state becomes
19660a9064fbSMasahiro Yamada *  the current state. This function will allocate the stack
19670a9064fbSMasahiro Yamada *  if necessary.
19680a9064fbSMasahiro Yamada *  @param new_buffer The new state.
19690a9064fbSMasahiro Yamada *
19700a9064fbSMasahiro Yamada */
19710a9064fbSMasahiro Yamadavoid zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
19720a9064fbSMasahiro Yamada{
19730a9064fbSMasahiro Yamada    	if (new_buffer == NULL)
19740a9064fbSMasahiro Yamada		return;
19750a9064fbSMasahiro Yamada
19760a9064fbSMasahiro Yamada	zconfensure_buffer_stack();
19770a9064fbSMasahiro Yamada
19780a9064fbSMasahiro Yamada	/* This block is copied from zconf_switch_to_buffer. */
19790a9064fbSMasahiro Yamada	if ( YY_CURRENT_BUFFER )
19800a9064fbSMasahiro Yamada		{
19810a9064fbSMasahiro Yamada		/* Flush out information for old buffer. */
19820a9064fbSMasahiro Yamada		*(yy_c_buf_p) = (yy_hold_char);
19830a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
19840a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
19850a9064fbSMasahiro Yamada		}
19860a9064fbSMasahiro Yamada
19870a9064fbSMasahiro Yamada	/* Only push if top exists. Otherwise, replace top. */
19880a9064fbSMasahiro Yamada	if (YY_CURRENT_BUFFER)
19890a9064fbSMasahiro Yamada		(yy_buffer_stack_top)++;
19900a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE = new_buffer;
19910a9064fbSMasahiro Yamada
19920a9064fbSMasahiro Yamada	/* copied from zconf_switch_to_buffer. */
19930a9064fbSMasahiro Yamada	zconf_load_buffer_state( );
19940a9064fbSMasahiro Yamada	(yy_did_buffer_switch_on_eof) = 1;
19950a9064fbSMasahiro Yamada}
19960a9064fbSMasahiro Yamada
19970a9064fbSMasahiro Yamada/** Removes and deletes the top of the stack, if present.
19980a9064fbSMasahiro Yamada *  The next element becomes the new top.
19990a9064fbSMasahiro Yamada *
20000a9064fbSMasahiro Yamada */
20010a9064fbSMasahiro Yamadavoid zconfpop_buffer_state (void)
20020a9064fbSMasahiro Yamada{
20030a9064fbSMasahiro Yamada    	if (!YY_CURRENT_BUFFER)
20040a9064fbSMasahiro Yamada		return;
20050a9064fbSMasahiro Yamada
20060a9064fbSMasahiro Yamada	zconf_delete_buffer(YY_CURRENT_BUFFER );
20070a9064fbSMasahiro Yamada	YY_CURRENT_BUFFER_LVALUE = NULL;
20080a9064fbSMasahiro Yamada	if ((yy_buffer_stack_top) > 0)
20090a9064fbSMasahiro Yamada		--(yy_buffer_stack_top);
20100a9064fbSMasahiro Yamada
20110a9064fbSMasahiro Yamada	if (YY_CURRENT_BUFFER) {
20120a9064fbSMasahiro Yamada		zconf_load_buffer_state( );
20130a9064fbSMasahiro Yamada		(yy_did_buffer_switch_on_eof) = 1;
20140a9064fbSMasahiro Yamada	}
20150a9064fbSMasahiro Yamada}
20160a9064fbSMasahiro Yamada
20170a9064fbSMasahiro Yamada/* Allocates the stack if it does not exist.
20180a9064fbSMasahiro Yamada *  Guarantees space for at least one push.
20190a9064fbSMasahiro Yamada */
20200a9064fbSMasahiro Yamadastatic void zconfensure_buffer_stack (void)
20210a9064fbSMasahiro Yamada{
20220a9064fbSMasahiro Yamada	int num_to_alloc;
20230a9064fbSMasahiro Yamada
20240a9064fbSMasahiro Yamada	if (!(yy_buffer_stack)) {
20250a9064fbSMasahiro Yamada
20260a9064fbSMasahiro Yamada		/* First allocation is just for 2 elements, since we don't know if this
20270a9064fbSMasahiro Yamada		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
20280a9064fbSMasahiro Yamada		 * immediate realloc on the next call.
20290a9064fbSMasahiro Yamada         */
20300a9064fbSMasahiro Yamada		num_to_alloc = 1;
20310a9064fbSMasahiro Yamada		(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
20320a9064fbSMasahiro Yamada								(num_to_alloc * sizeof(struct yy_buffer_state*)
20330a9064fbSMasahiro Yamada								);
20340a9064fbSMasahiro Yamada		if ( ! (yy_buffer_stack) )
20350a9064fbSMasahiro Yamada			YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
20360a9064fbSMasahiro Yamada
20370a9064fbSMasahiro Yamada		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
20380a9064fbSMasahiro Yamada
20390a9064fbSMasahiro Yamada		(yy_buffer_stack_max) = num_to_alloc;
20400a9064fbSMasahiro Yamada		(yy_buffer_stack_top) = 0;
20410a9064fbSMasahiro Yamada		return;
20420a9064fbSMasahiro Yamada	}
20430a9064fbSMasahiro Yamada
20440a9064fbSMasahiro Yamada	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
20450a9064fbSMasahiro Yamada
20460a9064fbSMasahiro Yamada		/* Increase the buffer to prepare for a possible push. */
20470a9064fbSMasahiro Yamada		int grow_size = 8 /* arbitrary grow size */;
20480a9064fbSMasahiro Yamada
20490a9064fbSMasahiro Yamada		num_to_alloc = (yy_buffer_stack_max) + grow_size;
20500a9064fbSMasahiro Yamada		(yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
20510a9064fbSMasahiro Yamada								((yy_buffer_stack),
20520a9064fbSMasahiro Yamada								num_to_alloc * sizeof(struct yy_buffer_state*)
20530a9064fbSMasahiro Yamada								);
20540a9064fbSMasahiro Yamada		if ( ! (yy_buffer_stack) )
20550a9064fbSMasahiro Yamada			YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
20560a9064fbSMasahiro Yamada
20570a9064fbSMasahiro Yamada		/* zero only the new slots.*/
20580a9064fbSMasahiro Yamada		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
20590a9064fbSMasahiro Yamada		(yy_buffer_stack_max) = num_to_alloc;
20600a9064fbSMasahiro Yamada	}
20610a9064fbSMasahiro Yamada}
20620a9064fbSMasahiro Yamada
20630a9064fbSMasahiro Yamada/** Setup the input buffer state to scan directly from a user-specified character buffer.
20640a9064fbSMasahiro Yamada * @param base the character buffer
20650a9064fbSMasahiro Yamada * @param size the size in bytes of the character buffer
20660a9064fbSMasahiro Yamada *
20670a9064fbSMasahiro Yamada * @return the newly allocated buffer state object.
20680a9064fbSMasahiro Yamada */
20690a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size )
20700a9064fbSMasahiro Yamada{
20710a9064fbSMasahiro Yamada	YY_BUFFER_STATE b;
20720a9064fbSMasahiro Yamada
20730a9064fbSMasahiro Yamada	if ( size < 2 ||
20740a9064fbSMasahiro Yamada	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
20750a9064fbSMasahiro Yamada	     base[size-1] != YY_END_OF_BUFFER_CHAR )
20760a9064fbSMasahiro Yamada		/* They forgot to leave room for the EOB's. */
20770a9064fbSMasahiro Yamada		return 0;
20780a9064fbSMasahiro Yamada
20790a9064fbSMasahiro Yamada	b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
20800a9064fbSMasahiro Yamada	if ( ! b )
20810a9064fbSMasahiro Yamada		YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
20820a9064fbSMasahiro Yamada
20830a9064fbSMasahiro Yamada	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
20840a9064fbSMasahiro Yamada	b->yy_buf_pos = b->yy_ch_buf = base;
20850a9064fbSMasahiro Yamada	b->yy_is_our_buffer = 0;
20860a9064fbSMasahiro Yamada	b->yy_input_file = 0;
20870a9064fbSMasahiro Yamada	b->yy_n_chars = b->yy_buf_size;
20880a9064fbSMasahiro Yamada	b->yy_is_interactive = 0;
20890a9064fbSMasahiro Yamada	b->yy_at_bol = 1;
20900a9064fbSMasahiro Yamada	b->yy_fill_buffer = 0;
20910a9064fbSMasahiro Yamada	b->yy_buffer_status = YY_BUFFER_NEW;
20920a9064fbSMasahiro Yamada
20930a9064fbSMasahiro Yamada	zconf_switch_to_buffer(b  );
20940a9064fbSMasahiro Yamada
20950a9064fbSMasahiro Yamada	return b;
20960a9064fbSMasahiro Yamada}
20970a9064fbSMasahiro Yamada
20980a9064fbSMasahiro Yamada/** Setup the input buffer state to scan a string. The next call to zconflex() will
20990a9064fbSMasahiro Yamada * scan from a @e copy of @a str.
21000a9064fbSMasahiro Yamada * @param yystr a NUL-terminated string to scan
21010a9064fbSMasahiro Yamada *
21020a9064fbSMasahiro Yamada * @return the newly allocated buffer state object.
21030a9064fbSMasahiro Yamada * @note If you want to scan bytes that may contain NUL values, then use
21040a9064fbSMasahiro Yamada *       zconf_scan_bytes() instead.
21050a9064fbSMasahiro Yamada */
21060a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
21070a9064fbSMasahiro Yamada{
21080a9064fbSMasahiro Yamada
21090a9064fbSMasahiro Yamada	return zconf_scan_bytes(yystr,strlen(yystr) );
21100a9064fbSMasahiro Yamada}
21110a9064fbSMasahiro Yamada
21120a9064fbSMasahiro Yamada/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
21130a9064fbSMasahiro Yamada * scan from a @e copy of @a bytes.
2114*bf7ab1e7SMasahiro Yamada * @param yybytes the byte buffer to scan
2115*bf7ab1e7SMasahiro Yamada * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
21160a9064fbSMasahiro Yamada *
21170a9064fbSMasahiro Yamada * @return the newly allocated buffer state object.
21180a9064fbSMasahiro Yamada */
21190a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
21200a9064fbSMasahiro Yamada{
21210a9064fbSMasahiro Yamada	YY_BUFFER_STATE b;
21220a9064fbSMasahiro Yamada	char *buf;
21230a9064fbSMasahiro Yamada	yy_size_t n;
21240a9064fbSMasahiro Yamada	int i;
21250a9064fbSMasahiro Yamada
21260a9064fbSMasahiro Yamada	/* Get memory for full buffer, including space for trailing EOB's. */
21270a9064fbSMasahiro Yamada	n = _yybytes_len + 2;
21280a9064fbSMasahiro Yamada	buf = (char *) zconfalloc(n  );
21290a9064fbSMasahiro Yamada	if ( ! buf )
21300a9064fbSMasahiro Yamada		YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
21310a9064fbSMasahiro Yamada
21320a9064fbSMasahiro Yamada	for ( i = 0; i < _yybytes_len; ++i )
21330a9064fbSMasahiro Yamada		buf[i] = yybytes[i];
21340a9064fbSMasahiro Yamada
21350a9064fbSMasahiro Yamada	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
21360a9064fbSMasahiro Yamada
21370a9064fbSMasahiro Yamada	b = zconf_scan_buffer(buf,n );
21380a9064fbSMasahiro Yamada	if ( ! b )
21390a9064fbSMasahiro Yamada		YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
21400a9064fbSMasahiro Yamada
21410a9064fbSMasahiro Yamada	/* It's okay to grow etc. this buffer, and we should throw it
21420a9064fbSMasahiro Yamada	 * away when we're done.
21430a9064fbSMasahiro Yamada	 */
21440a9064fbSMasahiro Yamada	b->yy_is_our_buffer = 1;
21450a9064fbSMasahiro Yamada
21460a9064fbSMasahiro Yamada	return b;
21470a9064fbSMasahiro Yamada}
21480a9064fbSMasahiro Yamada
21490a9064fbSMasahiro Yamada#ifndef YY_EXIT_FAILURE
21500a9064fbSMasahiro Yamada#define YY_EXIT_FAILURE 2
21510a9064fbSMasahiro Yamada#endif
21520a9064fbSMasahiro Yamada
21530a9064fbSMasahiro Yamadastatic void yy_fatal_error (yyconst char* msg )
21540a9064fbSMasahiro Yamada{
21550a9064fbSMasahiro Yamada    	(void) fprintf( stderr, "%s\n", msg );
21560a9064fbSMasahiro Yamada	exit( YY_EXIT_FAILURE );
21570a9064fbSMasahiro Yamada}
21580a9064fbSMasahiro Yamada
21590a9064fbSMasahiro Yamada/* Redefine yyless() so it works in section 3 code. */
21600a9064fbSMasahiro Yamada
21610a9064fbSMasahiro Yamada#undef yyless
21620a9064fbSMasahiro Yamada#define yyless(n) \
21630a9064fbSMasahiro Yamada	do \
21640a9064fbSMasahiro Yamada		{ \
21650a9064fbSMasahiro Yamada		/* Undo effects of setting up zconftext. */ \
21660a9064fbSMasahiro Yamada        int yyless_macro_arg = (n); \
21670a9064fbSMasahiro Yamada        YY_LESS_LINENO(yyless_macro_arg);\
21680a9064fbSMasahiro Yamada		zconftext[zconfleng] = (yy_hold_char); \
21690a9064fbSMasahiro Yamada		(yy_c_buf_p) = zconftext + yyless_macro_arg; \
21700a9064fbSMasahiro Yamada		(yy_hold_char) = *(yy_c_buf_p); \
21710a9064fbSMasahiro Yamada		*(yy_c_buf_p) = '\0'; \
21720a9064fbSMasahiro Yamada		zconfleng = yyless_macro_arg; \
21730a9064fbSMasahiro Yamada		} \
21740a9064fbSMasahiro Yamada	while ( 0 )
21750a9064fbSMasahiro Yamada
21760a9064fbSMasahiro Yamada/* Accessor  methods (get/set functions) to struct members. */
21770a9064fbSMasahiro Yamada
21780a9064fbSMasahiro Yamada/** Get the current line number.
21790a9064fbSMasahiro Yamada *
21800a9064fbSMasahiro Yamada */
21810a9064fbSMasahiro Yamadaint zconfget_lineno  (void)
21820a9064fbSMasahiro Yamada{
21830a9064fbSMasahiro Yamada
21840a9064fbSMasahiro Yamada    return zconflineno;
21850a9064fbSMasahiro Yamada}
21860a9064fbSMasahiro Yamada
21870a9064fbSMasahiro Yamada/** Get the input stream.
21880a9064fbSMasahiro Yamada *
21890a9064fbSMasahiro Yamada */
21900a9064fbSMasahiro YamadaFILE *zconfget_in  (void)
21910a9064fbSMasahiro Yamada{
21920a9064fbSMasahiro Yamada        return zconfin;
21930a9064fbSMasahiro Yamada}
21940a9064fbSMasahiro Yamada
21950a9064fbSMasahiro Yamada/** Get the output stream.
21960a9064fbSMasahiro Yamada *
21970a9064fbSMasahiro Yamada */
21980a9064fbSMasahiro YamadaFILE *zconfget_out  (void)
21990a9064fbSMasahiro Yamada{
22000a9064fbSMasahiro Yamada        return zconfout;
22010a9064fbSMasahiro Yamada}
22020a9064fbSMasahiro Yamada
22030a9064fbSMasahiro Yamada/** Get the length of the current token.
22040a9064fbSMasahiro Yamada *
22050a9064fbSMasahiro Yamada */
22060a9064fbSMasahiro Yamadaint zconfget_leng  (void)
22070a9064fbSMasahiro Yamada{
22080a9064fbSMasahiro Yamada        return zconfleng;
22090a9064fbSMasahiro Yamada}
22100a9064fbSMasahiro Yamada
22110a9064fbSMasahiro Yamada/** Get the current token.
22120a9064fbSMasahiro Yamada *
22130a9064fbSMasahiro Yamada */
22140a9064fbSMasahiro Yamada
22150a9064fbSMasahiro Yamadachar *zconfget_text  (void)
22160a9064fbSMasahiro Yamada{
22170a9064fbSMasahiro Yamada        return zconftext;
22180a9064fbSMasahiro Yamada}
22190a9064fbSMasahiro Yamada
22200a9064fbSMasahiro Yamada/** Set the current line number.
22210a9064fbSMasahiro Yamada * @param line_number
22220a9064fbSMasahiro Yamada *
22230a9064fbSMasahiro Yamada */
22240a9064fbSMasahiro Yamadavoid zconfset_lineno (int  line_number )
22250a9064fbSMasahiro Yamada{
22260a9064fbSMasahiro Yamada
22270a9064fbSMasahiro Yamada    zconflineno = line_number;
22280a9064fbSMasahiro Yamada}
22290a9064fbSMasahiro Yamada
22300a9064fbSMasahiro Yamada/** Set the input stream. This does not discard the current
22310a9064fbSMasahiro Yamada * input buffer.
22320a9064fbSMasahiro Yamada * @param in_str A readable stream.
22330a9064fbSMasahiro Yamada *
22340a9064fbSMasahiro Yamada * @see zconf_switch_to_buffer
22350a9064fbSMasahiro Yamada */
22360a9064fbSMasahiro Yamadavoid zconfset_in (FILE *  in_str )
22370a9064fbSMasahiro Yamada{
22380a9064fbSMasahiro Yamada        zconfin = in_str ;
22390a9064fbSMasahiro Yamada}
22400a9064fbSMasahiro Yamada
22410a9064fbSMasahiro Yamadavoid zconfset_out (FILE *  out_str )
22420a9064fbSMasahiro Yamada{
22430a9064fbSMasahiro Yamada        zconfout = out_str ;
22440a9064fbSMasahiro Yamada}
22450a9064fbSMasahiro Yamada
22460a9064fbSMasahiro Yamadaint zconfget_debug  (void)
22470a9064fbSMasahiro Yamada{
22480a9064fbSMasahiro Yamada        return zconf_flex_debug;
22490a9064fbSMasahiro Yamada}
22500a9064fbSMasahiro Yamada
22510a9064fbSMasahiro Yamadavoid zconfset_debug (int  bdebug )
22520a9064fbSMasahiro Yamada{
22530a9064fbSMasahiro Yamada        zconf_flex_debug = bdebug ;
22540a9064fbSMasahiro Yamada}
22550a9064fbSMasahiro Yamada
22560a9064fbSMasahiro Yamadastatic int yy_init_globals (void)
22570a9064fbSMasahiro Yamada{
22580a9064fbSMasahiro Yamada        /* Initialization is the same as for the non-reentrant scanner.
22590a9064fbSMasahiro Yamada     * This function is called from zconflex_destroy(), so don't allocate here.
22600a9064fbSMasahiro Yamada     */
22610a9064fbSMasahiro Yamada
22620a9064fbSMasahiro Yamada    (yy_buffer_stack) = 0;
22630a9064fbSMasahiro Yamada    (yy_buffer_stack_top) = 0;
22640a9064fbSMasahiro Yamada    (yy_buffer_stack_max) = 0;
22650a9064fbSMasahiro Yamada    (yy_c_buf_p) = (char *) 0;
22660a9064fbSMasahiro Yamada    (yy_init) = 0;
22670a9064fbSMasahiro Yamada    (yy_start) = 0;
22680a9064fbSMasahiro Yamada
22690a9064fbSMasahiro Yamada/* Defined in main.c */
22700a9064fbSMasahiro Yamada#ifdef YY_STDINIT
22710a9064fbSMasahiro Yamada    zconfin = stdin;
22720a9064fbSMasahiro Yamada    zconfout = stdout;
22730a9064fbSMasahiro Yamada#else
22740a9064fbSMasahiro Yamada    zconfin = (FILE *) 0;
22750a9064fbSMasahiro Yamada    zconfout = (FILE *) 0;
22760a9064fbSMasahiro Yamada#endif
22770a9064fbSMasahiro Yamada
22780a9064fbSMasahiro Yamada    /* For future reference: Set errno on error, since we are called by
22790a9064fbSMasahiro Yamada     * zconflex_init()
22800a9064fbSMasahiro Yamada     */
22810a9064fbSMasahiro Yamada    return 0;
22820a9064fbSMasahiro Yamada}
22830a9064fbSMasahiro Yamada
22840a9064fbSMasahiro Yamada/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
22850a9064fbSMasahiro Yamadaint zconflex_destroy  (void)
22860a9064fbSMasahiro Yamada{
22870a9064fbSMasahiro Yamada
22880a9064fbSMasahiro Yamada    /* Pop the buffer stack, destroying each element. */
22890a9064fbSMasahiro Yamada	while(YY_CURRENT_BUFFER){
22900a9064fbSMasahiro Yamada		zconf_delete_buffer(YY_CURRENT_BUFFER  );
22910a9064fbSMasahiro Yamada		YY_CURRENT_BUFFER_LVALUE = NULL;
22920a9064fbSMasahiro Yamada		zconfpop_buffer_state();
22930a9064fbSMasahiro Yamada	}
22940a9064fbSMasahiro Yamada
22950a9064fbSMasahiro Yamada	/* Destroy the stack itself. */
22960a9064fbSMasahiro Yamada	zconffree((yy_buffer_stack) );
22970a9064fbSMasahiro Yamada	(yy_buffer_stack) = NULL;
22980a9064fbSMasahiro Yamada
22990a9064fbSMasahiro Yamada    /* Reset the globals. This is important in a non-reentrant scanner so the next time
23000a9064fbSMasahiro Yamada     * zconflex() is called, initialization will occur. */
23010a9064fbSMasahiro Yamada    yy_init_globals( );
23020a9064fbSMasahiro Yamada
23030a9064fbSMasahiro Yamada    return 0;
23040a9064fbSMasahiro Yamada}
23050a9064fbSMasahiro Yamada
23060a9064fbSMasahiro Yamada/*
23070a9064fbSMasahiro Yamada * Internal utility routines.
23080a9064fbSMasahiro Yamada */
23090a9064fbSMasahiro Yamada
23100a9064fbSMasahiro Yamada#ifndef yytext_ptr
23110a9064fbSMasahiro Yamadastatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
23120a9064fbSMasahiro Yamada{
23130a9064fbSMasahiro Yamada	register int i;
23140a9064fbSMasahiro Yamada	for ( i = 0; i < n; ++i )
23150a9064fbSMasahiro Yamada		s1[i] = s2[i];
23160a9064fbSMasahiro Yamada}
23170a9064fbSMasahiro Yamada#endif
23180a9064fbSMasahiro Yamada
23190a9064fbSMasahiro Yamada#ifdef YY_NEED_STRLEN
23200a9064fbSMasahiro Yamadastatic int yy_flex_strlen (yyconst char * s )
23210a9064fbSMasahiro Yamada{
23220a9064fbSMasahiro Yamada	register int n;
23230a9064fbSMasahiro Yamada	for ( n = 0; s[n]; ++n )
23240a9064fbSMasahiro Yamada		;
23250a9064fbSMasahiro Yamada
23260a9064fbSMasahiro Yamada	return n;
23270a9064fbSMasahiro Yamada}
23280a9064fbSMasahiro Yamada#endif
23290a9064fbSMasahiro Yamada
23300a9064fbSMasahiro Yamadavoid *zconfalloc (yy_size_t  size )
23310a9064fbSMasahiro Yamada{
23320a9064fbSMasahiro Yamada	return (void *) malloc( size );
23330a9064fbSMasahiro Yamada}
23340a9064fbSMasahiro Yamada
23350a9064fbSMasahiro Yamadavoid *zconfrealloc  (void * ptr, yy_size_t  size )
23360a9064fbSMasahiro Yamada{
23370a9064fbSMasahiro Yamada	/* The cast to (char *) in the following accommodates both
23380a9064fbSMasahiro Yamada	 * implementations that use char* generic pointers, and those
23390a9064fbSMasahiro Yamada	 * that use void* generic pointers.  It works with the latter
23400a9064fbSMasahiro Yamada	 * because both ANSI C and C++ allow castless assignment from
23410a9064fbSMasahiro Yamada	 * any pointer type to void*, and deal with argument conversions
23420a9064fbSMasahiro Yamada	 * as though doing an assignment.
23430a9064fbSMasahiro Yamada	 */
23440a9064fbSMasahiro Yamada	return (void *) realloc( (char *) ptr, size );
23450a9064fbSMasahiro Yamada}
23460a9064fbSMasahiro Yamada
23470a9064fbSMasahiro Yamadavoid zconffree (void * ptr )
23480a9064fbSMasahiro Yamada{
23490a9064fbSMasahiro Yamada	free( (char *) ptr );	/* see zconfrealloc() for (char *) cast */
23500a9064fbSMasahiro Yamada}
23510a9064fbSMasahiro Yamada
23520a9064fbSMasahiro Yamada#define YYTABLES_NAME "yytables"
23530a9064fbSMasahiro Yamada
23540a9064fbSMasahiro Yamadavoid zconf_starthelp(void)
23550a9064fbSMasahiro Yamada{
23560a9064fbSMasahiro Yamada	new_string();
23570a9064fbSMasahiro Yamada	last_ts = first_ts = 0;
23580a9064fbSMasahiro Yamada	BEGIN(HELP);
23590a9064fbSMasahiro Yamada}
23600a9064fbSMasahiro Yamada
23610a9064fbSMasahiro Yamadastatic void zconf_endhelp(void)
23620a9064fbSMasahiro Yamada{
23630a9064fbSMasahiro Yamada	zconflval.string = text;
23640a9064fbSMasahiro Yamada	BEGIN(INITIAL);
23650a9064fbSMasahiro Yamada}
23660a9064fbSMasahiro Yamada
23670a9064fbSMasahiro Yamada/*
23680a9064fbSMasahiro Yamada * Try to open specified file with following names:
23690a9064fbSMasahiro Yamada * ./name
23700a9064fbSMasahiro Yamada * $(srctree)/name
23710a9064fbSMasahiro Yamada * The latter is used when srctree is separate from objtree
23720a9064fbSMasahiro Yamada * when compiling the kernel.
23730a9064fbSMasahiro Yamada * Return NULL if file is not found.
23740a9064fbSMasahiro Yamada */
23750a9064fbSMasahiro YamadaFILE *zconf_fopen(const char *name)
23760a9064fbSMasahiro Yamada{
23770a9064fbSMasahiro Yamada	char *env, fullname[PATH_MAX+1];
23780a9064fbSMasahiro Yamada	FILE *f;
23790a9064fbSMasahiro Yamada
23800a9064fbSMasahiro Yamada	f = fopen(name, "r");
23810a9064fbSMasahiro Yamada	if (!f && name != NULL && name[0] != '/') {
23820a9064fbSMasahiro Yamada		env = getenv(SRCTREE);
23830a9064fbSMasahiro Yamada		if (env) {
23840a9064fbSMasahiro Yamada			sprintf(fullname, "%s/%s", env, name);
23850a9064fbSMasahiro Yamada			f = fopen(fullname, "r");
23860a9064fbSMasahiro Yamada		}
23870a9064fbSMasahiro Yamada	}
23880a9064fbSMasahiro Yamada	return f;
23890a9064fbSMasahiro Yamada}
23900a9064fbSMasahiro Yamada
23910a9064fbSMasahiro Yamadavoid zconf_initscan(const char *name)
23920a9064fbSMasahiro Yamada{
23930a9064fbSMasahiro Yamada	zconfin = zconf_fopen(name);
23940a9064fbSMasahiro Yamada	if (!zconfin) {
23950a9064fbSMasahiro Yamada		printf("can't find file %s\n", name);
23960a9064fbSMasahiro Yamada		exit(1);
23970a9064fbSMasahiro Yamada	}
23980a9064fbSMasahiro Yamada
23990a9064fbSMasahiro Yamada	current_buf = xmalloc(sizeof(*current_buf));
24000a9064fbSMasahiro Yamada	memset(current_buf, 0, sizeof(*current_buf));
24010a9064fbSMasahiro Yamada
24020a9064fbSMasahiro Yamada	current_file = file_lookup(name);
24030a9064fbSMasahiro Yamada	current_file->lineno = 1;
24040a9064fbSMasahiro Yamada}
24050a9064fbSMasahiro Yamada
24060a9064fbSMasahiro Yamadavoid zconf_nextfile(const char *name)
24070a9064fbSMasahiro Yamada{
24080a9064fbSMasahiro Yamada	struct file *iter;
24090a9064fbSMasahiro Yamada	struct file *file = file_lookup(name);
24100a9064fbSMasahiro Yamada	struct buffer *buf = xmalloc(sizeof(*buf));
24110a9064fbSMasahiro Yamada	memset(buf, 0, sizeof(*buf));
24120a9064fbSMasahiro Yamada
24130a9064fbSMasahiro Yamada	current_buf->state = YY_CURRENT_BUFFER;
24140a9064fbSMasahiro Yamada	zconfin = zconf_fopen(file->name);
24150a9064fbSMasahiro Yamada	if (!zconfin) {
24160a9064fbSMasahiro Yamada		printf("%s:%d: can't open file \"%s\"\n",
24170a9064fbSMasahiro Yamada		    zconf_curname(), zconf_lineno(), file->name);
24180a9064fbSMasahiro Yamada		exit(1);
24190a9064fbSMasahiro Yamada	}
24200a9064fbSMasahiro Yamada	zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
24210a9064fbSMasahiro Yamada	buf->parent = current_buf;
24220a9064fbSMasahiro Yamada	current_buf = buf;
24230a9064fbSMasahiro Yamada
24240a9064fbSMasahiro Yamada	for (iter = current_file->parent; iter; iter = iter->parent ) {
24250a9064fbSMasahiro Yamada		if (!strcmp(current_file->name,iter->name) ) {
24260a9064fbSMasahiro Yamada			printf("%s:%d: recursive inclusion detected. "
24270a9064fbSMasahiro Yamada			       "Inclusion path:\n  current file : '%s'\n",
24280a9064fbSMasahiro Yamada			       zconf_curname(), zconf_lineno(),
24290a9064fbSMasahiro Yamada			       zconf_curname());
24300a9064fbSMasahiro Yamada			iter = current_file->parent;
24310a9064fbSMasahiro Yamada			while (iter && \
24320a9064fbSMasahiro Yamada			       strcmp(iter->name,current_file->name)) {
24330a9064fbSMasahiro Yamada				printf("  included from: '%s:%d'\n",
24340a9064fbSMasahiro Yamada				       iter->name, iter->lineno-1);
24350a9064fbSMasahiro Yamada				iter = iter->parent;
24360a9064fbSMasahiro Yamada			}
24370a9064fbSMasahiro Yamada			if (iter)
24380a9064fbSMasahiro Yamada				printf("  included from: '%s:%d'\n",
24390a9064fbSMasahiro Yamada				       iter->name, iter->lineno+1);
24400a9064fbSMasahiro Yamada			exit(1);
24410a9064fbSMasahiro Yamada		}
24420a9064fbSMasahiro Yamada	}
24430a9064fbSMasahiro Yamada	file->lineno = 1;
24440a9064fbSMasahiro Yamada	file->parent = current_file;
24450a9064fbSMasahiro Yamada	current_file = file;
24460a9064fbSMasahiro Yamada}
24470a9064fbSMasahiro Yamada
24480a9064fbSMasahiro Yamadastatic void zconf_endfile(void)
24490a9064fbSMasahiro Yamada{
24500a9064fbSMasahiro Yamada	struct buffer *parent;
24510a9064fbSMasahiro Yamada
24520a9064fbSMasahiro Yamada	current_file = current_file->parent;
24530a9064fbSMasahiro Yamada
24540a9064fbSMasahiro Yamada	parent = current_buf->parent;
24550a9064fbSMasahiro Yamada	if (parent) {
24560a9064fbSMasahiro Yamada		fclose(zconfin);
24570a9064fbSMasahiro Yamada		zconf_delete_buffer(YY_CURRENT_BUFFER);
24580a9064fbSMasahiro Yamada		zconf_switch_to_buffer(parent->state);
24590a9064fbSMasahiro Yamada	}
24600a9064fbSMasahiro Yamada	free(current_buf);
24610a9064fbSMasahiro Yamada	current_buf = parent;
24620a9064fbSMasahiro Yamada}
24630a9064fbSMasahiro Yamada
24640a9064fbSMasahiro Yamadaint zconf_lineno(void)
24650a9064fbSMasahiro Yamada{
24660a9064fbSMasahiro Yamada	return current_pos.lineno;
24670a9064fbSMasahiro Yamada}
24680a9064fbSMasahiro Yamada
24690a9064fbSMasahiro Yamadaconst char *zconf_curname(void)
24700a9064fbSMasahiro Yamada{
24710a9064fbSMasahiro Yamada	return current_pos.file ? current_pos.file->name : "<none>";
24720a9064fbSMasahiro Yamada}
24730a9064fbSMasahiro Yamada
2474