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