diff options
Diffstat (limited to 'scripts/kconfig_parser')
| -rw-r--r-- | scripts/kconfig_parser/.gitignore | 3 | ||||
| -rw-r--r-- | scripts/kconfig_parser/kconfig/zconf.hash.c | 289 | ||||
| -rw-r--r-- | scripts/kconfig_parser/kconfig/zconf.lex.c | 2421 | ||||
| -rw-r--r-- | scripts/kconfig_parser/kconfig/zconf.tab.c | 2416 | 
4 files changed, 3 insertions, 5126 deletions
| diff --git a/scripts/kconfig_parser/.gitignore b/scripts/kconfig_parser/.gitignore index 763d456..f6b4225 100644 --- a/scripts/kconfig_parser/.gitignore +++ b/scripts/kconfig_parser/.gitignore @@ -1 +1,4 @@  parser +kconfig/zconf.hash.c +kconfig/zconf.lex.c +kconfig/zconf.tab.c diff --git a/scripts/kconfig_parser/kconfig/zconf.hash.c b/scripts/kconfig_parser/kconfig/zconf.hash.c deleted file mode 100644 index b8c1dfb..0000000 --- a/scripts/kconfig_parser/kconfig/zconf.hash.c +++ /dev/null @@ -1,289 +0,0 @@ -/* ANSI-C code produced by gperf version 3.0.4 */ -/* Command-line: gperf -t --output-file kconfig/zconf.hash.c -a -C -E -g -k '1,3,$' -p -t kconfig/zconf.gperf  */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ -      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ -      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ -      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ -      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ -      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ -      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ -      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ -      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ -      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ -      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ -      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ -      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ -      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ -      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ -      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ -      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ -      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ -      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ -      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ -      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ -      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ -      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646.  */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." -#endif - -#line 10 "kconfig/zconf.gperf" -struct kconf_id; - -static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len); -/* maximum key range = 71, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -kconf_id_hash (register const char *str, register unsigned int len) -{ -  static const unsigned char asso_values[] = -    { -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73,  5, 25, 25, -       0,  0,  0,  5,  0,  0, 73, 73,  5,  0, -      10,  5, 45, 73, 20, 20,  0, 15, 15, 73, -      20,  5, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73, 73, 73, 73, 73, -      73, 73, 73, 73, 73, 73 -    }; -  register int hval = len; - -  switch (hval) -    { -      default: -        hval += asso_values[(unsigned char)str[2]]; -      /*FALLTHROUGH*/ -      case 2: -      case 1: -        hval += asso_values[(unsigned char)str[0]]; -        break; -    } -  return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct kconf_id_strings_t -  { -    char kconf_id_strings_str2[sizeof("if")]; -    char kconf_id_strings_str3[sizeof("int")]; -    char kconf_id_strings_str5[sizeof("endif")]; -    char kconf_id_strings_str7[sizeof("default")]; -    char kconf_id_strings_str8[sizeof("tristate")]; -    char kconf_id_strings_str9[sizeof("endchoice")]; -    char kconf_id_strings_str12[sizeof("def_tristate")]; -    char kconf_id_strings_str13[sizeof("def_bool")]; -    char kconf_id_strings_str14[sizeof("defconfig_list")]; -    char kconf_id_strings_str17[sizeof("on")]; -    char kconf_id_strings_str18[sizeof("optional")]; -    char kconf_id_strings_str21[sizeof("option")]; -    char kconf_id_strings_str22[sizeof("endmenu")]; -    char kconf_id_strings_str23[sizeof("mainmenu")]; -    char kconf_id_strings_str25[sizeof("menuconfig")]; -    char kconf_id_strings_str27[sizeof("modules")]; -    char kconf_id_strings_str28[sizeof("allnoconfig_y")]; -    char kconf_id_strings_str29[sizeof("menu")]; -    char kconf_id_strings_str31[sizeof("select")]; -    char kconf_id_strings_str32[sizeof("comment")]; -    char kconf_id_strings_str33[sizeof("env")]; -    char kconf_id_strings_str35[sizeof("range")]; -    char kconf_id_strings_str36[sizeof("choice")]; -    char kconf_id_strings_str39[sizeof("bool")]; -    char kconf_id_strings_str41[sizeof("source")]; -    char kconf_id_strings_str42[sizeof("visible")]; -    char kconf_id_strings_str43[sizeof("hex")]; -    char kconf_id_strings_str46[sizeof("config")]; -    char kconf_id_strings_str47[sizeof("boolean")]; -    char kconf_id_strings_str51[sizeof("string")]; -    char kconf_id_strings_str54[sizeof("help")]; -    char kconf_id_strings_str56[sizeof("prompt")]; -    char kconf_id_strings_str72[sizeof("depends")]; -  }; -static const struct kconf_id_strings_t kconf_id_strings_contents = -  { -    "if", -    "int", -    "endif", -    "default", -    "tristate", -    "endchoice", -    "def_tristate", -    "def_bool", -    "defconfig_list", -    "on", -    "optional", -    "option", -    "endmenu", -    "mainmenu", -    "menuconfig", -    "modules", -    "allnoconfig_y", -    "menu", -    "select", -    "comment", -    "env", -    "range", -    "choice", -    "bool", -    "source", -    "visible", -    "hex", -    "config", -    "boolean", -    "string", -    "help", -    "prompt", -    "depends" -  }; -#define kconf_id_strings ((const char *) &kconf_id_strings_contents) -#ifdef __GNUC__ -__inline -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -__attribute__ ((__gnu_inline__)) -#endif -#endif -const struct kconf_id * -kconf_id_lookup (register const char *str, register unsigned int len) -{ -  enum -    { -      TOTAL_KEYWORDS = 33, -      MIN_WORD_LENGTH = 2, -      MAX_WORD_LENGTH = 14, -      MIN_HASH_VALUE = 2, -      MAX_HASH_VALUE = 72 -    }; - -  static const struct kconf_id wordlist[] = -    { -      {-1}, {-1}, -#line 25 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2,		T_IF,		TF_COMMAND|TF_PARAM}, -#line 36 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3,		T_TYPE,		TF_COMMAND, S_INT}, -      {-1}, -#line 26 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5,		T_ENDIF,	TF_COMMAND}, -      {-1}, -#line 29 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7,	T_DEFAULT,	TF_COMMAND, S_UNKNOWN}, -#line 31 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8,	T_TYPE,		TF_COMMAND, S_TRISTATE}, -#line 20 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9,	T_ENDCHOICE,	TF_COMMAND}, -      {-1}, {-1}, -#line 32 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12,	T_DEFAULT,	TF_COMMAND, S_TRISTATE}, -#line 35 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13,	T_DEFAULT,	TF_COMMAND, S_BOOLEAN}, -#line 45 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14,	T_OPT_DEFCONFIG_LIST,TF_OPTION}, -      {-1}, {-1}, -#line 43 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17,		T_ON,		TF_PARAM}, -#line 28 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18,	T_OPTIONAL,	TF_COMMAND}, -      {-1}, {-1}, -#line 42 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21,		T_OPTION,	TF_COMMAND}, -#line 17 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22,	T_ENDMENU,	TF_COMMAND}, -#line 15 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23,	T_MAINMENU,	TF_COMMAND}, -      {-1}, -#line 23 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25,	T_MENUCONFIG,	TF_COMMAND}, -      {-1}, -#line 44 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27,	T_OPT_MODULES,	TF_OPTION}, -#line 47 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28,	T_OPT_ALLNOCONFIG_Y,TF_OPTION}, -#line 16 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29,		T_MENU,		TF_COMMAND}, -      {-1}, -#line 39 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31,		T_SELECT,	TF_COMMAND}, -#line 21 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32,	T_COMMENT,	TF_COMMAND}, -#line 46 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33,		T_OPT_ENV,	TF_OPTION}, -      {-1}, -#line 40 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35,		T_RANGE,	TF_COMMAND}, -#line 19 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36,		T_CHOICE,	TF_COMMAND}, -      {-1}, {-1}, -#line 33 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39,		T_TYPE,		TF_COMMAND, S_BOOLEAN}, -      {-1}, -#line 18 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41,		T_SOURCE,	TF_COMMAND}, -#line 41 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42,	T_VISIBLE,	TF_COMMAND}, -#line 37 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43,		T_TYPE,		TF_COMMAND, S_HEX}, -      {-1}, {-1}, -#line 22 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46,		T_CONFIG,	TF_COMMAND}, -#line 34 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47,	T_TYPE,		TF_COMMAND, S_BOOLEAN}, -      {-1}, {-1}, {-1}, -#line 38 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51,		T_TYPE,		TF_COMMAND, S_STRING}, -      {-1}, {-1}, -#line 24 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54,		T_HELP,		TF_COMMAND}, -      {-1}, -#line 30 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56,		T_PROMPT,	TF_COMMAND}, -      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 27 "kconfig/zconf.gperf" -      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72,	T_DEPENDS,	TF_COMMAND} -    }; - -  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) -    { -      register int key = kconf_id_hash (str, len); - -      if (key <= MAX_HASH_VALUE && key >= 0) -        { -          register int o = wordlist[key].name; -          if (o >= 0) -            { -              register const char *s = o + kconf_id_strings; - -              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') -                return &wordlist[key]; -            } -        } -    } -  return 0; -} -#line 48 "kconfig/zconf.gperf" - diff --git a/scripts/kconfig_parser/kconfig/zconf.lex.c b/scripts/kconfig_parser/kconfig/zconf.lex.c deleted file mode 100644 index e3b33bd..0000000 --- a/scripts/kconfig_parser/kconfig/zconf.lex.c +++ /dev/null @@ -1,2421 +0,0 @@ - -#line 3 "kconfig/zconf.lex.c" - -#define  YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer zconf_create_buffer -#define yy_delete_buffer zconf_delete_buffer -#define yy_flex_debug zconf_flex_debug -#define yy_init_buffer zconf_init_buffer -#define yy_flush_buffer zconf_flush_buffer -#define yy_load_buffer_state zconf_load_buffer_state -#define yy_switch_to_buffer zconf_switch_to_buffer -#define yyin zconfin -#define yyleng zconfleng -#define yylex zconflex -#define yylineno zconflineno -#define yyout zconfout -#define yyrestart zconfrestart -#define yytext zconftext -#define yywrap zconfwrap -#define yyalloc zconfalloc -#define yyrealloc zconfrealloc -#define yyfree zconffree - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with  platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <stdlib.h> - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types.  - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include <inttypes.h> -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t;  -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN               (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN              (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN              (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX               (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX              (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX              (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX              (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX             (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX             (4294967295U) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else	/* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif	/* defined (__STDC__) */ -#endif	/* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index.  If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition.  This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state.  The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE zconfrestart(zconfin  ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern yy_size_t zconfleng; - -extern FILE *zconfin, *zconfout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - -    #define YY_LESS_LINENO(n) -     -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ -	do \ -		{ \ -		/* Undo effects of setting up zconftext. */ \ -        int yyless_macro_arg = (n); \ -        YY_LESS_LINENO(yyless_macro_arg);\ -		*yy_cp = (yy_hold_char); \ -		YY_RESTORE_YY_MORE_OFFSET \ -		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ -		YY_DO_BEFORE_ACTION; /* set up zconftext again */ \ -		} \ -	while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr)  ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state -	{ -	FILE *yy_input_file; - -	char *yy_ch_buf;		/* input buffer */ -	char *yy_buf_pos;		/* current position in input buffer */ - -	/* Size of input buffer in bytes, not including room for EOB -	 * characters. -	 */ -	yy_size_t yy_buf_size; - -	/* Number of characters read into yy_ch_buf, not including EOB -	 * characters. -	 */ -	yy_size_t yy_n_chars; - -	/* Whether we "own" the buffer - i.e., we know we created it, -	 * and can realloc() it to grow it, and should free() it to -	 * delete it. -	 */ -	int yy_is_our_buffer; - -	/* Whether this is an "interactive" input source; if so, and -	 * if we're using stdio for input, then we want to use getc() -	 * instead of fread(), to make sure we stop fetching input after -	 * each newline. -	 */ -	int yy_is_interactive; - -	/* Whether we're considered to be at the beginning of a line. -	 * If so, '^' rules will be active on the next match, otherwise -	 * not. -	 */ -	int yy_at_bol; - -    int yy_bs_lineno; /**< The line count. */ -    int yy_bs_column; /**< The column count. */ -     -	/* Whether to try to fill the input buffer when we reach the -	 * end of it. -	 */ -	int yy_fill_buffer; - -	int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 -	/* When an EOF's been seen but there's still some text to process -	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we -	 * shouldn't try reading from the input source any more.  We might -	 * still have a bunch of tokens to match, though, because of -	 * possible backing-up. -	 * -	 * When we actually see the EOF, we change the status to "new" -	 * (via zconfrestart()), so that the user can continue scanning by -	 * just pointing zconfin at a new input file. -	 */ -#define YY_BUFFER_EOF_PENDING 2 - -	}; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ -                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ -                          : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when zconftext is formed. */ -static char yy_hold_char; -static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */ -yy_size_t zconfleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0;		/* whether we need to initialize */ -static int yy_start = 0;	/* start state number */ - -/* Flag which is used to allow zconfwrap()'s to do buffer switches - * instead of setting up a fresh zconfin.  A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void zconfrestart (FILE *input_file  ); -void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  ); -YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  ); -void zconf_delete_buffer (YY_BUFFER_STATE b  ); -void zconf_flush_buffer (YY_BUFFER_STATE b  ); -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  ); -void zconfpop_buffer_state (void ); - -static void zconfensure_buffer_stack (void ); -static void zconf_load_buffer_state (void ); -static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  ); - -#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  ); -YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  ); -YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,yy_size_t len  ); - -void *zconfalloc (yy_size_t  ); -void *zconfrealloc (void *,yy_size_t  ); -void zconffree (void *  ); - -#define yy_new_buffer zconf_create_buffer - -#define yy_set_interactive(is_interactive) \ -	{ \ -	if ( ! YY_CURRENT_BUFFER ){ \ -        zconfensure_buffer_stack (); \ -		YY_CURRENT_BUFFER_LVALUE =    \ -            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ -	} \ -	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ -	} - -#define yy_set_bol(at_bol) \ -	{ \ -	if ( ! YY_CURRENT_BUFFER ){\ -        zconfensure_buffer_stack (); \ -		YY_CURRENT_BUFFER_LVALUE =    \ -            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ -	} \ -	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ -	} - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -#define zconfwrap() 1 -#define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; - -FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0; - -typedef int yy_state_type; - -extern int zconflineno; - -int zconflineno = 1; - -extern char *zconftext; -#define yytext_ptr zconftext -static yyconst flex_int16_t yy_nxt[][17] = -    { -    { -        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -        0,    0,    0,    0,    0,    0,    0 -    }, - -    { -       11,   12,   13,   14,   12,   12,   15,   12,   12,   12, -       12,   12,   12,   12,   12,   12,   12 -    }, - -    { -       11,   12,   13,   14,   12,   12,   15,   12,   12,   12, -       12,   12,   12,   12,   12,   12,   12 -    }, - -    { -       11,   16,   16,   17,   16,   16,   16,   16,   16,   16, -       16,   16,   16,   18,   16,   16,   16 -    }, - -    { -       11,   16,   16,   17,   16,   16,   16,   16,   16,   16, -       16,   16,   16,   18,   16,   16,   16 - -    }, - -    { -       11,   19,   20,   21,   19,   19,   19,   19,   19,   19, -       19,   19,   19,   19,   19,   19,   19 -    }, - -    { -       11,   19,   20,   21,   19,   19,   19,   19,   19,   19, -       19,   19,   19,   19,   19,   19,   19 -    }, - -    { -       11,   22,   22,   23,   22,   24,   22,   22,   24,   22, -       22,   22,   22,   22,   22,   25,   22 -    }, - -    { -       11,   22,   22,   23,   22,   24,   22,   22,   24,   22, -       22,   22,   22,   22,   22,   25,   22 -    }, - -    { -       11,   26,   26,   27,   28,   29,   30,   31,   29,   32, -       33,   34,   35,   35,   36,   37,   38 - -    }, - -    { -       11,   26,   26,   27,   28,   29,   30,   31,   29,   32, -       33,   34,   35,   35,   36,   37,   38 -    }, - -    { -      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11, -      -11,  -11,  -11,  -11,  -11,  -11,  -11 -    }, - -    { -       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12, -      -12,  -12,  -12,  -12,  -12,  -12,  -12 -    }, - -    { -       11,  -13,   39,   40,  -13,  -13,   41,  -13,  -13,  -13, -      -13,  -13,  -13,  -13,  -13,  -13,  -13 -    }, - -    { -       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14, -      -14,  -14,  -14,  -14,  -14,  -14,  -14 - -    }, - -    { -       11,   42,   42,   43,   42,   42,   42,   42,   42,   42, -       42,   42,   42,   42,   42,   42,   42 -    }, - -    { -       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, -      -16,  -16,  -16,  -16,  -16,  -16,  -16 -    }, - -    { -       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17, -      -17,  -17,  -17,  -17,  -17,  -17,  -17 -    }, - -    { -       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18, -      -18,  -18,  -18,   44,  -18,  -18,  -18 -    }, - -    { -       11,   45,   45,  -19,   45,   45,   45,   45,   45,   45, -       45,   45,   45,   45,   45,   45,   45 - -    }, - -    { -       11,  -20,   46,   47,  -20,  -20,  -20,  -20,  -20,  -20, -      -20,  -20,  -20,  -20,  -20,  -20,  -20 -    }, - -    { -       11,   48,  -21,  -21,   48,   48,   48,   48,   48,   48, -       48,   48,   48,   48,   48,   48,   48 -    }, - -    { -       11,   49,   49,   50,   49,  -22,   49,   49,  -22,   49, -       49,   49,   49,   49,   49,  -22,   49 -    }, - -    { -       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23, -      -23,  -23,  -23,  -23,  -23,  -23,  -23 -    }, - -    { -       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24, -      -24,  -24,  -24,  -24,  -24,  -24,  -24 - -    }, - -    { -       11,   51,   51,   52,   51,   51,   51,   51,   51,   51, -       51,   51,   51,   51,   51,   51,   51 -    }, - -    { -       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26, -      -26,  -26,  -26,  -26,  -26,  -26,  -26 -    }, - -    { -       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27, -      -27,  -27,  -27,  -27,  -27,  -27,  -27 -    }, - -    { -       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, -      -28,  -28,  -28,  -28,   53,  -28,  -28 -    }, - -    { -       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29, -      -29,  -29,  -29,  -29,  -29,  -29,  -29 - -    }, - -    { -       11,   54,   54,  -30,   54,   54,   54,   54,   54,   54, -       54,   54,   54,   54,   54,   54,   54 -    }, - -    { -       11,  -31,  -31,  -31,  -31,  -31,  -31,   55,  -31,  -31, -      -31,  -31,  -31,  -31,  -31,  -31,  -31 -    }, - -    { -       11,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32, -      -32,  -32,  -32,  -32,  -32,  -32,  -32 -    }, - -    { -       11,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33, -      -33,  -33,  -33,  -33,  -33,  -33,  -33 -    }, - -    { -       11,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34, -      -34,   56,   57,   57,  -34,  -34,  -34 - -    }, - -    { -       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35, -      -35,   57,   57,   57,  -35,  -35,  -35 -    }, - -    { -       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, -      -36,  -36,  -36,  -36,  -36,  -36,  -36 -    }, - -    { -       11,  -37,  -37,   58,  -37,  -37,  -37,  -37,  -37,  -37, -      -37,  -37,  -37,  -37,  -37,  -37,  -37 -    }, - -    { -       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38, -      -38,  -38,  -38,  -38,  -38,  -38,   59 -    }, - -    { -       11,  -39,   39,   40,  -39,  -39,   41,  -39,  -39,  -39, -      -39,  -39,  -39,  -39,  -39,  -39,  -39 - -    }, - -    { -       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40, -      -40,  -40,  -40,  -40,  -40,  -40,  -40 -    }, - -    { -       11,   42,   42,   43,   42,   42,   42,   42,   42,   42, -       42,   42,   42,   42,   42,   42,   42 -    }, - -    { -       11,   42,   42,   43,   42,   42,   42,   42,   42,   42, -       42,   42,   42,   42,   42,   42,   42 -    }, - -    { -       11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43, -      -43,  -43,  -43,  -43,  -43,  -43,  -43 -    }, - -    { -       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44, -      -44,  -44,  -44,   44,  -44,  -44,  -44 - -    }, - -    { -       11,   45,   45,  -45,   45,   45,   45,   45,   45,   45, -       45,   45,   45,   45,   45,   45,   45 -    }, - -    { -       11,  -46,   46,   47,  -46,  -46,  -46,  -46,  -46,  -46, -      -46,  -46,  -46,  -46,  -46,  -46,  -46 -    }, - -    { -       11,   48,  -47,  -47,   48,   48,   48,   48,   48,   48, -       48,   48,   48,   48,   48,   48,   48 -    }, - -    { -       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, -      -48,  -48,  -48,  -48,  -48,  -48,  -48 -    }, - -    { -       11,   49,   49,   50,   49,  -49,   49,   49,  -49,   49, -       49,   49,   49,   49,   49,  -49,   49 - -    }, - -    { -       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50, -      -50,  -50,  -50,  -50,  -50,  -50,  -50 -    }, - -    { -       11,  -51,  -51,   52,  -51,  -51,  -51,  -51,  -51,  -51, -      -51,  -51,  -51,  -51,  -51,  -51,  -51 -    }, - -    { -       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52, -      -52,  -52,  -52,  -52,  -52,  -52,  -52 -    }, - -    { -       11,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, -      -53,  -53,  -53,  -53,  -53,  -53,  -53 -    }, - -    { -       11,   54,   54,  -54,   54,   54,   54,   54,   54,   54, -       54,   54,   54,   54,   54,   54,   54 - -    }, - -    { -       11,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55, -      -55,  -55,  -55,  -55,  -55,  -55,  -55 -    }, - -    { -       11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56, -      -56,   60,   57,   57,  -56,  -56,  -56 -    }, - -    { -       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57, -      -57,   57,   57,   57,  -57,  -57,  -57 -    }, - -    { -       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58, -      -58,  -58,  -58,  -58,  -58,  -58,  -58 -    }, - -    { -       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59, -      -59,  -59,  -59,  -59,  -59,  -59,  -59 - -    }, - -    { -       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60, -      -60,   57,   57,   57,  -60,  -60,  -60 -    }, - -    } ; - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[]  ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up zconftext. - */ -#define YY_DO_BEFORE_ACTION \ -	(yytext_ptr) = yy_bp; \ -	zconfleng = (size_t) (yy_cp - yy_bp); \ -	(yy_hold_char) = *yy_cp; \ -	*yy_cp = '\0'; \ -	(yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 33 -#define YY_END_OF_BUFFER 34 -/* This struct is not used in this scanner, -   but its presence is necessary. */ -struct yy_trans_info -	{ -	flex_int32_t yy_verify; -	flex_int32_t yy_nxt; -	}; -static yyconst flex_int16_t yy_accept[61] = -    {   0, -        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -       34,    5,    4,    2,    3,    7,    8,    6,   32,   29, -       31,   24,   28,   27,   26,   22,   17,   13,   16,   20, -       22,   11,   12,   19,   19,   14,   22,   22,    4,    2, -        3,    3,    1,    6,   32,   29,   31,   30,   24,   23, -       26,   25,   15,   20,    9,   19,   19,   21,   10,   18 -    } ; - -static yyconst flex_int32_t yy_ec[256] = -    {   0, -        1,    1,    1,    1,    1,    1,    1,    1,    2,    3, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    2,    4,    5,    6,    1,    1,    7,    8,    9, -       10,    1,    1,    1,   11,   12,   12,   13,   13,   13, -       13,   13,   13,   13,   13,   13,   13,    1,    1,    1, -       14,    1,    1,    1,   13,   13,   13,   13,   13,   13, -       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, -       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, -        1,   15,    1,    1,   13,    1,   13,   13,   13,   13, - -       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, -       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, -       13,   13,    1,   16,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, - -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1 -    } ; - -extern int zconf_flex_debug; -int zconf_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *zconftext; -#define YY_NO_INPUT 1 - -/* - * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> - * Released under the terms of the GNU GPL v2.0. - */ - -#include <limits.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include "lkc.h" - -#define START_STRSIZE	16 - -static struct { -	struct file *file; -	int lineno; -} current_pos; - -static char *text; -static int text_size, text_asize; - -struct buffer { -	struct buffer *parent; -	YY_BUFFER_STATE state; -}; - -struct buffer *current_buf; - -static int last_ts, first_ts; - -static void zconf_endhelp(void); -static void zconf_endfile(void); - -static void new_string(void) -{ -	text = xmalloc(START_STRSIZE); -	text_asize = START_STRSIZE; -	text_size = 0; -	*text = 0; -} - -static void append_string(const char *str, int size) -{ -	int new_size = text_size + size + 1; -	if (new_size > text_asize) { -		new_size += START_STRSIZE - 1; -		new_size &= -START_STRSIZE; -		text = realloc(text, new_size); -		text_asize = new_size; -	} -	memcpy(text + text_size, str, size); -	text_size += size; -	text[text_size] = 0; -} - -static void alloc_string(const char *str, int size) -{ -	text = xmalloc(size + 1); -	memcpy(text, str, size); -	text[size] = 0; -} - -#define INITIAL 0 -#define COMMAND 1 -#define HELP 2 -#define STRING 3 -#define PARAM 4 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include <unistd.h> -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. -   These are made visible to non-reentrant scanners for convenience. */ - -int zconflex_destroy (void ); - -int zconfget_debug (void ); - -void zconfset_debug (int debug_flag  ); - -YY_EXTRA_TYPE zconfget_extra (void ); - -void zconfset_extra (YY_EXTRA_TYPE user_defined  ); - -FILE *zconfget_in (void ); - -void zconfset_in  (FILE * in_str  ); - -FILE *zconfget_out (void ); - -void zconfset_out  (FILE * out_str  ); - -yy_size_t zconfget_leng (void ); - -char *zconfget_text (void ); - -int zconfget_lineno (void ); - -void zconfset_lineno (int line_number  ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int zconfwrap (void ); -#else -extern int zconfwrap (void ); -#endif -#endif - -    static void yyunput (int c,char *buf_ptr  ); -     -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0) -#endif - -/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ -	errno=0; \ -	while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \ -	{ \ -		if( errno != EINTR) \ -		{ \ -			YY_FATAL_ERROR( "input in flex scanner failed" ); \ -			break; \ -		} \ -		errno=0; \ -		clearerr(zconfin); \ -	}\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int zconflex (void); - -#define YY_DECL int zconflex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after zconftext and zconfleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ -	YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ -	register yy_state_type yy_current_state; -	register char *yy_cp, *yy_bp; -	register int yy_act; -     -	int str = 0; -	int ts, i; - -	if ( !(yy_init) ) -		{ -		(yy_init) = 1; - -#ifdef YY_USER_INIT -		YY_USER_INIT; -#endif - -		if ( ! (yy_start) ) -			(yy_start) = 1;	/* first start state */ - -		if ( ! zconfin ) -			zconfin = stdin; - -		if ( ! zconfout ) -			zconfout = stdout; - -		if ( ! YY_CURRENT_BUFFER ) { -			zconfensure_buffer_stack (); -			YY_CURRENT_BUFFER_LVALUE = -				zconf_create_buffer(zconfin,YY_BUF_SIZE ); -		} - -		zconf_load_buffer_state( ); -		} - -	while ( 1 )		/* loops until end-of-file is reached */ -		{ -		yy_cp = (yy_c_buf_p); - -		/* Support of zconftext. */ -		*yy_cp = (yy_hold_char); - -		/* yy_bp points to the position in yy_ch_buf of the start of -		 * the current run. -		 */ -		yy_bp = yy_cp; - -		yy_current_state = (yy_start); -yy_match: -		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 ) -			++yy_cp; - -		yy_current_state = -yy_current_state; - -yy_find_action: -		yy_act = yy_accept[yy_current_state]; - -		YY_DO_BEFORE_ACTION; - -do_action:	/* This label is used only to access EOF actions. */ - -		switch ( yy_act ) -	{ /* beginning of action switch */ -case 1: -/* rule 1 can match eol */ -case 2: -/* rule 2 can match eol */ -YY_RULE_SETUP -{ -	current_file->lineno++; -	return T_EOL; -} -	YY_BREAK -case 3: -YY_RULE_SETUP - -	YY_BREAK -case 4: -YY_RULE_SETUP -{ -	BEGIN(COMMAND); -} -	YY_BREAK -case 5: -YY_RULE_SETUP -{ -	unput(zconftext[0]); -	BEGIN(COMMAND); -} -	YY_BREAK - -case 6: -YY_RULE_SETUP -{ -		const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); -		BEGIN(PARAM); -		current_pos.file = current_file; -		current_pos.lineno = current_file->lineno; -		if (id && id->flags & TF_COMMAND) { -			zconflval.id = id; -			return id->token; -		} -		alloc_string(zconftext, zconfleng); -		zconflval.string = text; -		return T_WORD; -	} -	YY_BREAK -case 7: -YY_RULE_SETUP - -	YY_BREAK -case 8: -/* rule 8 can match eol */ -YY_RULE_SETUP -{ -		BEGIN(INITIAL); -		current_file->lineno++; -		return T_EOL; -	} -	YY_BREAK - -case 9: -YY_RULE_SETUP -return T_AND; -	YY_BREAK -case 10: -YY_RULE_SETUP -return T_OR; -	YY_BREAK -case 11: -YY_RULE_SETUP -return T_OPEN_PAREN; -	YY_BREAK -case 12: -YY_RULE_SETUP -return T_CLOSE_PAREN; -	YY_BREAK -case 13: -YY_RULE_SETUP -return T_NOT; -	YY_BREAK -case 14: -YY_RULE_SETUP -return T_EQUAL; -	YY_BREAK -case 15: -YY_RULE_SETUP -return T_UNEQUAL; -	YY_BREAK -case 16: -YY_RULE_SETUP -{ -		str = zconftext[0]; -		new_string(); -		BEGIN(STRING); -	} -	YY_BREAK -case 17: -/* rule 17 can match eol */ -YY_RULE_SETUP -BEGIN(INITIAL); current_file->lineno++; return T_EOL; -	YY_BREAK -case 18: -YY_RULE_SETUP -/* ignore */ -	YY_BREAK -case 19: -YY_RULE_SETUP -{ -		const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); -		if (id && id->flags & TF_PARAM) { -			zconflval.id = id; -			return id->token; -		} -		alloc_string(zconftext, zconfleng); -		zconflval.string = text; -		return T_WORD; -	} -	YY_BREAK -case 20: -YY_RULE_SETUP -/* comment */ -	YY_BREAK -case 21: -/* rule 21 can match eol */ -YY_RULE_SETUP -current_file->lineno++; -	YY_BREAK -case 22: -YY_RULE_SETUP - -	YY_BREAK -case YY_STATE_EOF(PARAM): -{ -		BEGIN(INITIAL); -	} -	YY_BREAK - -case 23: -/* rule 23 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ -		append_string(zconftext, zconfleng); -		zconflval.string = text; -		return T_WORD_QUOTE; -	} -	YY_BREAK -case 24: -YY_RULE_SETUP -{ -		append_string(zconftext, zconfleng); -	} -	YY_BREAK -case 25: -/* rule 25 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ -		append_string(zconftext + 1, zconfleng - 1); -		zconflval.string = text; -		return T_WORD_QUOTE; -	} -	YY_BREAK -case 26: -YY_RULE_SETUP -{ -		append_string(zconftext + 1, zconfleng - 1); -	} -	YY_BREAK -case 27: -YY_RULE_SETUP -{ -		if (str == zconftext[0]) { -			BEGIN(PARAM); -			zconflval.string = text; -			return T_WORD_QUOTE; -		} else -			append_string(zconftext, 1); -	} -	YY_BREAK -case 28: -/* rule 28 can match eol */ -YY_RULE_SETUP -{ -		printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); -		current_file->lineno++; -		BEGIN(INITIAL); -		return T_EOL; -	} -	YY_BREAK -case YY_STATE_EOF(STRING): -{ -		BEGIN(INITIAL); -	} -	YY_BREAK - -case 29: -YY_RULE_SETUP -{ -		ts = 0; -		for (i = 0; i < zconfleng; i++) { -			if (zconftext[i] == '\t') -				ts = (ts & ~7) + 8; -			else -				ts++; -		} -		last_ts = ts; -		if (first_ts) { -			if (ts < first_ts) { -				zconf_endhelp(); -				return T_HELPTEXT; -			} -			ts -= first_ts; -			while (ts > 8) { -				append_string("        ", 8); -				ts -= 8; -			} -			append_string("        ", ts); -		} -	} -	YY_BREAK -case 30: -/* rule 30 can match eol */ -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ -(yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up zconftext again */ -YY_RULE_SETUP -{ -		current_file->lineno++; -		zconf_endhelp(); -		return T_HELPTEXT; -	} -	YY_BREAK -case 31: -/* rule 31 can match eol */ -YY_RULE_SETUP -{ -		current_file->lineno++; -		append_string("\n", 1); -	} -	YY_BREAK -case 32: -YY_RULE_SETUP -{ -		while (zconfleng) { -			if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t')) -				break; -			zconfleng--; -		} -		append_string(zconftext, zconfleng); -		if (!first_ts) -			first_ts = last_ts; -	} -	YY_BREAK -case YY_STATE_EOF(HELP): -{ -		zconf_endhelp(); -		return T_HELPTEXT; -	} -	YY_BREAK - -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(COMMAND): -{ -	if (current_file) { -		zconf_endfile(); -		return T_EOL; -	} -	fclose(zconfin); -	yyterminate(); -} -	YY_BREAK -case 33: -YY_RULE_SETUP -YY_FATAL_ERROR( "flex scanner jammed" ); -	YY_BREAK - -	case YY_END_OF_BUFFER: -		{ -		/* Amount of text matched not including the EOB char. */ -		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - -		/* Undo the effects of YY_DO_BEFORE_ACTION. */ -		*yy_cp = (yy_hold_char); -		YY_RESTORE_YY_MORE_OFFSET - -		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) -			{ -			/* We're scanning a new file or input source.  It's -			 * possible that this happened because the user -			 * just pointed zconfin at a new source and called -			 * zconflex().  If so, then we have to assure -			 * consistency between YY_CURRENT_BUFFER and our -			 * globals.  Here is the right place to do so, because -			 * this is the first action (other than possibly a -			 * back-up) that will match for the new input source. -			 */ -			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; -			YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin; -			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; -			} - -		/* Note that here we test for yy_c_buf_p "<=" to the position -		 * of the first EOB in the buffer, since yy_c_buf_p will -		 * already have been incremented past the NUL character -		 * (since all states make transitions on EOB to the -		 * end-of-buffer state).  Contrast this with the test -		 * in input(). -		 */ -		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) -			{ /* This was really a NUL. */ -			yy_state_type yy_next_state; - -			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - -			yy_current_state = yy_get_previous_state(  ); - -			/* Okay, we're now positioned to make the NUL -			 * transition.  We couldn't have -			 * yy_get_previous_state() go ahead and do it -			 * for us because it doesn't know how to deal -			 * with the possibility of jamming (and we don't -			 * want to build jamming into it because then it -			 * will run more slowly). -			 */ - -			yy_next_state = yy_try_NUL_trans( yy_current_state ); - -			yy_bp = (yytext_ptr) + YY_MORE_ADJ; - -			if ( yy_next_state ) -				{ -				/* Consume the NUL. */ -				yy_cp = ++(yy_c_buf_p); -				yy_current_state = yy_next_state; -				goto yy_match; -				} - -			else -				{ -				yy_cp = (yy_c_buf_p); -				goto yy_find_action; -				} -			} - -		else switch ( yy_get_next_buffer(  ) ) -			{ -			case EOB_ACT_END_OF_FILE: -				{ -				(yy_did_buffer_switch_on_eof) = 0; - -				if ( zconfwrap( ) ) -					{ -					/* Note: because we've taken care in -					 * yy_get_next_buffer() to have set up -					 * zconftext, we can now set up -					 * yy_c_buf_p so that if some total -					 * hoser (like flex itself) wants to -					 * call the scanner after we return the -					 * YY_NULL, it'll still work - another -					 * YY_NULL will get returned. -					 */ -					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - -					yy_act = YY_STATE_EOF(YY_START); -					goto do_action; -					} - -				else -					{ -					if ( ! (yy_did_buffer_switch_on_eof) ) -						YY_NEW_FILE; -					} -				break; -				} - -			case EOB_ACT_CONTINUE_SCAN: -				(yy_c_buf_p) = -					(yytext_ptr) + yy_amount_of_matched_text; - -				yy_current_state = yy_get_previous_state(  ); - -				yy_cp = (yy_c_buf_p); -				yy_bp = (yytext_ptr) + YY_MORE_ADJ; -				goto yy_match; - -			case EOB_ACT_LAST_MATCH: -				(yy_c_buf_p) = -				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - -				yy_current_state = yy_get_previous_state(  ); - -				yy_cp = (yy_c_buf_p); -				yy_bp = (yytext_ptr) + YY_MORE_ADJ; -				goto yy_find_action; -			} -		break; -		} - -	default: -		YY_FATAL_ERROR( -			"fatal flex scanner internal error--no action found" ); -	} /* end of action switch */ -		} /* end of scanning one token */ -} /* end of zconflex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - *	EOB_ACT_LAST_MATCH - - *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position - *	EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ -    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; -	register char *source = (yytext_ptr); -	register int number_to_move, i; -	int ret_val; - -	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) -		YY_FATAL_ERROR( -		"fatal flex scanner internal error--end of buffer missed" ); - -	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) -		{ /* Don't try to fill the buffer, so this is an EOF. */ -		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) -			{ -			/* We matched a single character, the EOB, so -			 * treat this as a final EOF. -			 */ -			return EOB_ACT_END_OF_FILE; -			} - -		else -			{ -			/* We matched some text prior to the EOB, first -			 * process it. -			 */ -			return EOB_ACT_LAST_MATCH; -			} -		} - -	/* Try to read more data. */ - -	/* First move last chars to start of buffer. */ -	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - -	for ( i = 0; i < number_to_move; ++i ) -		*(dest++) = *(source++); - -	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) -		/* don't do the read, it's not guaranteed to return an EOF, -		 * just force an EOF -		 */ -		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - -	else -		{ -			yy_size_t num_to_read = -			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - -		while ( num_to_read <= 0 ) -			{ /* Not enough room in the buffer - grow it. */ - -			/* just a shorter name for the current buffer */ -			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - -			int yy_c_buf_p_offset = -				(int) ((yy_c_buf_p) - b->yy_ch_buf); - -			if ( b->yy_is_our_buffer ) -				{ -				yy_size_t new_size = b->yy_buf_size * 2; - -				if ( new_size <= 0 ) -					b->yy_buf_size += b->yy_buf_size / 8; -				else -					b->yy_buf_size *= 2; - -				b->yy_ch_buf = (char *) -					/* Include room in for 2 EOB chars. */ -					zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  ); -				} -			else -				/* Can't grow it, we don't own it. */ -				b->yy_ch_buf = 0; - -			if ( ! b->yy_ch_buf ) -				YY_FATAL_ERROR( -				"fatal error - scanner input buffer overflow" ); - -			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - -			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - -						number_to_move - 1; - -			} - -		if ( num_to_read > YY_READ_BUF_SIZE ) -			num_to_read = YY_READ_BUF_SIZE; - -		/* Read in more data. */ -		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), -			(yy_n_chars), num_to_read ); - -		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); -		} - -	if ( (yy_n_chars) == 0 ) -		{ -		if ( number_to_move == YY_MORE_ADJ ) -			{ -			ret_val = EOB_ACT_END_OF_FILE; -			zconfrestart(zconfin  ); -			} - -		else -			{ -			ret_val = EOB_ACT_LAST_MATCH; -			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = -				YY_BUFFER_EOF_PENDING; -			} -		} - -	else -		ret_val = EOB_ACT_CONTINUE_SCAN; - -	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { -		/* Extend the array by 50%, plus the number we really need. */ -		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); -		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  ); -		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) -			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); -	} - -	(yy_n_chars) += number_to_move; -	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; -	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - -	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - -	return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - -    static yy_state_type yy_get_previous_state (void) -{ -	register yy_state_type yy_current_state; -	register char *yy_cp; -     -	yy_current_state = (yy_start); - -	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) -		{ -		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)]; -		} - -	return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - *	next_state = yy_try_NUL_trans( current_state ); - */ -    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state ) -{ -	register int yy_is_jam; -     -	yy_current_state = yy_nxt[yy_current_state][1]; -	yy_is_jam = (yy_current_state <= 0); - -		return yy_is_jam ? 0 : yy_current_state; -} - -    static void yyunput (int c, register char * yy_bp ) -{ -	register char *yy_cp; -     -    yy_cp = (yy_c_buf_p); - -	/* undo effects of setting up zconftext */ -	*yy_cp = (yy_hold_char); - -	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) -		{ /* need to shift things up to make room */ -		/* +2 for EOB chars. */ -		register yy_size_t number_to_move = (yy_n_chars) + 2; -		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ -					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; -		register char *source = -				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - -		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) -			*--dest = *--source; - -		yy_cp += (int) (dest - source); -		yy_bp += (int) (dest - source); -		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = -			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - -		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) -			YY_FATAL_ERROR( "flex scanner push-back overflow" ); -		} - -	*--yy_cp = (char) c; - -	(yytext_ptr) = yy_bp; -	(yy_hold_char) = *yy_cp; -	(yy_c_buf_p) = yy_cp; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -    static int yyinput (void) -#else -    static int input  (void) -#endif - -{ -	int c; -     -	*(yy_c_buf_p) = (yy_hold_char); - -	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) -		{ -		/* yy_c_buf_p now points to the character we want to return. -		 * If this occurs *before* the EOB characters, then it's a -		 * valid NUL; if not, then we've hit the end of the buffer. -		 */ -		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) -			/* This was really a NUL. */ -			*(yy_c_buf_p) = '\0'; - -		else -			{ /* need more input */ -			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); -			++(yy_c_buf_p); - -			switch ( yy_get_next_buffer(  ) ) -				{ -				case EOB_ACT_LAST_MATCH: -					/* This happens because yy_g_n_b() -					 * sees that we've accumulated a -					 * token and flags that we need to -					 * try matching the token before -					 * proceeding.  But for input(), -					 * there's no matching to consider. -					 * So convert the EOB_ACT_LAST_MATCH -					 * to EOB_ACT_END_OF_FILE. -					 */ - -					/* Reset buffer status. */ -					zconfrestart(zconfin ); - -					/*FALLTHROUGH*/ - -				case EOB_ACT_END_OF_FILE: -					{ -					if ( zconfwrap( ) ) -						return EOF; - -					if ( ! (yy_did_buffer_switch_on_eof) ) -						YY_NEW_FILE; -#ifdef __cplusplus -					return yyinput(); -#else -					return input(); -#endif -					} - -				case EOB_ACT_CONTINUE_SCAN: -					(yy_c_buf_p) = (yytext_ptr) + offset; -					break; -				} -			} -		} - -	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */ -	*(yy_c_buf_p) = '\0';	/* preserve zconftext */ -	(yy_hold_char) = *++(yy_c_buf_p); - -	return c; -} -#endif	/* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - *  - * @note This function does not reset the start condition to @c INITIAL . - */ -    void zconfrestart  (FILE * input_file ) -{ -     -	if ( ! YY_CURRENT_BUFFER ){ -        zconfensure_buffer_stack (); -		YY_CURRENT_BUFFER_LVALUE = -            zconf_create_buffer(zconfin,YY_BUF_SIZE ); -	} - -	zconf_init_buffer(YY_CURRENT_BUFFER,input_file ); -	zconf_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - *  - */ -    void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer ) -{ -     -	/* TODO. We should be able to replace this entire function body -	 * with -	 *		zconfpop_buffer_state(); -	 *		zconfpush_buffer_state(new_buffer); -     */ -	zconfensure_buffer_stack (); -	if ( YY_CURRENT_BUFFER == new_buffer ) -		return; - -	if ( YY_CURRENT_BUFFER ) -		{ -		/* Flush out information for old buffer. */ -		*(yy_c_buf_p) = (yy_hold_char); -		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); -		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); -		} - -	YY_CURRENT_BUFFER_LVALUE = new_buffer; -	zconf_load_buffer_state( ); - -	/* We don't actually know whether we did this switch during -	 * EOF (zconfwrap()) processing, but the only time this flag -	 * is looked at is after zconfwrap() is called, so it's safe -	 * to go ahead and always set it. -	 */ -	(yy_did_buffer_switch_on_eof) = 1; -} - -static void zconf_load_buffer_state  (void) -{ -    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; -	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; -	zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; -	(yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - *  - * @return the allocated buffer state. - */ -    YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size ) -{ -	YY_BUFFER_STATE b; -     -	b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  ); -	if ( ! b ) -		YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); - -	b->yy_buf_size = size; - -	/* yy_ch_buf has to be 2 characters longer than the size given because -	 * we need to put in 2 end-of-buffer characters. -	 */ -	b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  ); -	if ( ! b->yy_ch_buf ) -		YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); - -	b->yy_is_our_buffer = 1; - -	zconf_init_buffer(b,file ); - -	return b; -} - -/** Destroy the buffer. - * @param b a buffer created with zconf_create_buffer() - *  - */ -    void zconf_delete_buffer (YY_BUFFER_STATE  b ) -{ -     -	if ( ! b ) -		return; - -	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ -		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - -	if ( b->yy_is_our_buffer ) -		zconffree((void *) b->yy_ch_buf  ); - -	zconffree((void *) b  ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a zconfrestart() or at EOF. - */ -    static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file ) - -{ -	int oerrno = errno; -     -	zconf_flush_buffer(b ); - -	b->yy_input_file = file; -	b->yy_fill_buffer = 1; - -    /* If b is the current buffer, then zconf_init_buffer was _probably_ -     * called from zconfrestart() or through yy_get_next_buffer. -     * In that case, we don't want to reset the lineno or column. -     */ -    if (b != YY_CURRENT_BUFFER){ -        b->yy_bs_lineno = 1; -        b->yy_bs_column = 0; -    } - -        b->yy_is_interactive = 0; -     -	errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - *  - */ -    void zconf_flush_buffer (YY_BUFFER_STATE  b ) -{ -    	if ( ! b ) -		return; - -	b->yy_n_chars = 0; - -	/* We always need two end-of-buffer characters.  The first causes -	 * a transition to the end-of-buffer state.  The second causes -	 * a jam in that state. -	 */ -	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; -	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - -	b->yy_buf_pos = &b->yy_ch_buf[0]; - -	b->yy_at_bol = 1; -	b->yy_buffer_status = YY_BUFFER_NEW; - -	if ( b == YY_CURRENT_BUFFER ) -		zconf_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - *  the current state. This function will allocate the stack - *  if necessary. - *  @param new_buffer The new state. - *   - */ -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ -    	if (new_buffer == NULL) -		return; - -	zconfensure_buffer_stack(); - -	/* This block is copied from zconf_switch_to_buffer. */ -	if ( YY_CURRENT_BUFFER ) -		{ -		/* Flush out information for old buffer. */ -		*(yy_c_buf_p) = (yy_hold_char); -		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); -		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); -		} - -	/* Only push if top exists. Otherwise, replace top. */ -	if (YY_CURRENT_BUFFER) -		(yy_buffer_stack_top)++; -	YY_CURRENT_BUFFER_LVALUE = new_buffer; - -	/* copied from zconf_switch_to_buffer. */ -	zconf_load_buffer_state( ); -	(yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - *  The next element becomes the new top. - *   - */ -void zconfpop_buffer_state (void) -{ -    	if (!YY_CURRENT_BUFFER) -		return; - -	zconf_delete_buffer(YY_CURRENT_BUFFER ); -	YY_CURRENT_BUFFER_LVALUE = NULL; -	if ((yy_buffer_stack_top) > 0) -		--(yy_buffer_stack_top); - -	if (YY_CURRENT_BUFFER) { -		zconf_load_buffer_state( ); -		(yy_did_buffer_switch_on_eof) = 1; -	} -} - -/* Allocates the stack if it does not exist. - *  Guarantees space for at least one push. - */ -static void zconfensure_buffer_stack (void) -{ -	yy_size_t num_to_alloc; -     -	if (!(yy_buffer_stack)) { - -		/* First allocation is just for 2 elements, since we don't know if this -		 * scanner will even need a stack. We use 2 instead of 1 to avoid an -		 * immediate realloc on the next call. -         */ -		num_to_alloc = 1; -		(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc -								(num_to_alloc * sizeof(struct yy_buffer_state*) -								); -		if ( ! (yy_buffer_stack) ) -			YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); -								   -		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); -				 -		(yy_buffer_stack_max) = num_to_alloc; -		(yy_buffer_stack_top) = 0; -		return; -	} - -	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - -		/* Increase the buffer to prepare for a possible push. */ -		int grow_size = 8 /* arbitrary grow size */; - -		num_to_alloc = (yy_buffer_stack_max) + grow_size; -		(yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc -								((yy_buffer_stack), -								num_to_alloc * sizeof(struct yy_buffer_state*) -								); -		if ( ! (yy_buffer_stack) ) -			YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); - -		/* zero only the new slots.*/ -		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); -		(yy_buffer_stack_max) = num_to_alloc; -	} -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - *  - * @return the newly allocated buffer state object.  - */ -YY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size ) -{ -	YY_BUFFER_STATE b; -     -	if ( size < 2 || -	     base[size-2] != YY_END_OF_BUFFER_CHAR || -	     base[size-1] != YY_END_OF_BUFFER_CHAR ) -		/* They forgot to leave room for the EOB's. */ -		return 0; - -	b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  ); -	if ( ! b ) -		YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" ); - -	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */ -	b->yy_buf_pos = b->yy_ch_buf = base; -	b->yy_is_our_buffer = 0; -	b->yy_input_file = 0; -	b->yy_n_chars = b->yy_buf_size; -	b->yy_is_interactive = 0; -	b->yy_at_bol = 1; -	b->yy_fill_buffer = 0; -	b->yy_buffer_status = YY_BUFFER_NEW; - -	zconf_switch_to_buffer(b  ); - -	return b; -} - -/** Setup the input buffer state to scan a string. The next call to zconflex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - *  - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - *       zconf_scan_bytes() instead. - */ -YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr ) -{ -     -	return zconf_scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - *  - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE zconf_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len ) -{ -	YY_BUFFER_STATE b; -	char *buf; -	yy_size_t n; -	yy_size_t i; -     -	/* Get memory for full buffer, including space for trailing EOB's. */ -	n = _yybytes_len + 2; -	buf = (char *) zconfalloc(n  ); -	if ( ! buf ) -		YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" ); - -	for ( i = 0; i < _yybytes_len; ++i ) -		buf[i] = yybytes[i]; - -	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - -	b = zconf_scan_buffer(buf,n ); -	if ( ! b ) -		YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" ); - -	/* It's okay to grow etc. this buffer, and we should throw it -	 * away when we're done. -	 */ -	b->yy_is_our_buffer = 1; - -	return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ -    	(void) fprintf( stderr, "%s\n", msg ); -	exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ -	do \ -		{ \ -		/* Undo effects of setting up zconftext. */ \ -        int yyless_macro_arg = (n); \ -        YY_LESS_LINENO(yyless_macro_arg);\ -		zconftext[zconfleng] = (yy_hold_char); \ -		(yy_c_buf_p) = zconftext + yyless_macro_arg; \ -		(yy_hold_char) = *(yy_c_buf_p); \ -		*(yy_c_buf_p) = '\0'; \ -		zconfleng = yyless_macro_arg; \ -		} \ -	while ( 0 ) - -/* Accessor  methods (get/set functions) to struct members. */ - -/** Get the current line number. - *  - */ -int zconfget_lineno  (void) -{ -         -    return zconflineno; -} - -/** Get the input stream. - *  - */ -FILE *zconfget_in  (void) -{ -        return zconfin; -} - -/** Get the output stream. - *  - */ -FILE *zconfget_out  (void) -{ -        return zconfout; -} - -/** Get the length of the current token. - *  - */ -yy_size_t zconfget_leng  (void) -{ -        return zconfleng; -} - -/** Get the current token. - *  - */ - -char *zconfget_text  (void) -{ -        return zconftext; -} - -/** Set the current line number. - * @param line_number - *  - */ -void zconfset_lineno (int  line_number ) -{ -     -    zconflineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - *  - * @see zconf_switch_to_buffer - */ -void zconfset_in (FILE *  in_str ) -{ -        zconfin = in_str ; -} - -void zconfset_out (FILE *  out_str ) -{ -        zconfout = out_str ; -} - -int zconfget_debug  (void) -{ -        return zconf_flex_debug; -} - -void zconfset_debug (int  bdebug ) -{ -        zconf_flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ -        /* Initialization is the same as for the non-reentrant scanner. -     * This function is called from zconflex_destroy(), so don't allocate here. -     */ - -    (yy_buffer_stack) = 0; -    (yy_buffer_stack_top) = 0; -    (yy_buffer_stack_max) = 0; -    (yy_c_buf_p) = (char *) 0; -    (yy_init) = 0; -    (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT -    zconfin = stdin; -    zconfout = stdout; -#else -    zconfin = (FILE *) 0; -    zconfout = (FILE *) 0; -#endif - -    /* For future reference: Set errno on error, since we are called by -     * zconflex_init() -     */ -    return 0; -} - -/* zconflex_destroy is for both reentrant and non-reentrant scanners. */ -int zconflex_destroy  (void) -{ -     -    /* Pop the buffer stack, destroying each element. */ -	while(YY_CURRENT_BUFFER){ -		zconf_delete_buffer(YY_CURRENT_BUFFER  ); -		YY_CURRENT_BUFFER_LVALUE = NULL; -		zconfpop_buffer_state(); -	} - -	/* Destroy the stack itself. */ -	zconffree((yy_buffer_stack) ); -	(yy_buffer_stack) = NULL; - -    /* Reset the globals. This is important in a non-reentrant scanner so the next time -     * zconflex() is called, initialization will occur. */ -    yy_init_globals( ); - -    return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ -	register int i; -	for ( i = 0; i < n; ++i ) -		s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ -	register int n; -	for ( n = 0; s[n]; ++n ) -		; - -	return n; -} -#endif - -void *zconfalloc (yy_size_t  size ) -{ -	return (void *) malloc( size ); -} - -void *zconfrealloc  (void * ptr, yy_size_t  size ) -{ -	/* The cast to (char *) in the following accommodates both -	 * implementations that use char* generic pointers, and those -	 * that use void* generic pointers.  It works with the latter -	 * because both ANSI C and C++ allow castless assignment from -	 * any pointer type to void*, and deal with argument conversions -	 * as though doing an assignment. -	 */ -	return (void *) realloc( (char *) ptr, size ); -} - -void zconffree (void * ptr ) -{ -	free( (char *) ptr );	/* see zconfrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -void zconf_starthelp(void) -{ -	new_string(); -	last_ts = first_ts = 0; -	BEGIN(HELP); -} - -static void zconf_endhelp(void) -{ -	zconflval.string = text; -	BEGIN(INITIAL); -} - -/* - * Try to open specified file with following names: - * ./name - * $(srctree)/name - * The latter is used when srctree is separate from objtree - * when compiling the kernel. - * Return NULL if file is not found. - */ -FILE *zconf_fopen(const char *name) -{ -	char *env, fullname[PATH_MAX+1]; -	FILE *f; - -	f = fopen(name, "r"); -	if (!f && name != NULL && name[0] != '/') { -		env = getenv(SRCTREE); -		if (env) { -			sprintf(fullname, "%s/%s", env, name); -			f = fopen(fullname, "r"); -		} -	} -	return f; -} - -void zconf_initscan(const char *name) -{ -	zconfin = zconf_fopen(name); -	if (!zconfin) { -		printf("can't find file %s\n", name); -		exit(1); -	} - -	current_buf = xmalloc(sizeof(*current_buf)); -	memset(current_buf, 0, sizeof(*current_buf)); - -	current_file = file_lookup(name); -	current_file->lineno = 1; -} - -void zconf_nextfile(const char *name) -{ -	struct file *iter; -	struct file *file = file_lookup(name); -	struct buffer *buf = xmalloc(sizeof(*buf)); -	memset(buf, 0, sizeof(*buf)); - -	current_buf->state = YY_CURRENT_BUFFER; -	zconfin = zconf_fopen(file->name); -	if (!zconfin) { -		printf("%s:%d: can't open file \"%s\"\n", -		    zconf_curname(), zconf_lineno(), file->name); -		exit(1); -	} -	zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE)); -	buf->parent = current_buf; -	current_buf = buf; - -	for (iter = current_file->parent; iter; iter = iter->parent ) { -		if (!strcmp(current_file->name,iter->name) ) { -			printf("%s:%d: recursive inclusion detected. " -			       "Inclusion path:\n  current file : '%s'\n", -			       zconf_curname(), zconf_lineno(), -			       zconf_curname()); -			iter = current_file->parent; -			while (iter && \ -			       strcmp(iter->name,current_file->name)) { -				printf("  included from: '%s:%d'\n", -				       iter->name, iter->lineno-1); -				iter = iter->parent; -			} -			if (iter) -				printf("  included from: '%s:%d'\n", -				       iter->name, iter->lineno+1); -			exit(1); -		} -	} -	file->lineno = 1; -	file->parent = current_file; -	current_file = file; -} - -static void zconf_endfile(void) -{ -	struct buffer *parent; - -	current_file = current_file->parent; - -	parent = current_buf->parent; -	if (parent) { -		fclose(zconfin); -		zconf_delete_buffer(YY_CURRENT_BUFFER); -		zconf_switch_to_buffer(parent->state); -	} -	free(current_buf); -	current_buf = parent; -} - -int zconf_lineno(void) -{ -	return current_pos.lineno; -} - -const char *zconf_curname(void) -{ -	return current_pos.file ? current_pos.file->name : "<none>"; -} - diff --git a/scripts/kconfig_parser/kconfig/zconf.tab.c b/scripts/kconfig_parser/kconfig/zconf.tab.c deleted file mode 100644 index 0864c7d..0000000 --- a/scripts/kconfig_parser/kconfig/zconf.tab.c +++ /dev/null @@ -1,2416 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0.2.  */ - -/* Bison implementation for Yacc-like parsers in C - -   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - -   This program is free software: you can redistribute it and/or modify -   it under the terms of the GNU General Public License as published by -   the Free Software Foundation, either version 3 of the License, or -   (at your option) any later version. - -   This program is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ - -/* As a special exception, you may create a larger work that contains -   part or all of the Bison parser skeleton and distribute that work -   under terms of your choice, so long as that work isn't itself a -   parser generator using the skeleton or a modified version thereof -   as a parser skeleton.  Alternatively, if you modify or redistribute -   the parser skeleton itself, you may (at your option) remove this -   special exception, which will cause the skeleton and the resulting -   Bison output files to be licensed under the GNU General Public -   License without this special exception. - -   This special exception was added by the Free Software Foundation in -   version 2.2 of Bison.  */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by -   simplifying the original so-called "semantic" parser.  */ - -/* All symbols defined below should begin with yy or YY, to avoid -   infringing on user name space.  This should be done even for local -   variables, as they might otherwise be expanded by user macros. -   There are some unavoidable exceptions within include files to -   define necessary library symbols; they are noted "INFRINGES ON -   USER NAME SPACE" below.  */ - -/* Identify Bison output.  */ -#define YYBISON 1 - -/* Bison version.  */ -#define YYBISON_VERSION "3.0.2" - -/* Skeleton name.  */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers.  */ -#define YYPURE 0 - -/* Push parsers.  */ -#define YYPUSH 0 - -/* Pull parsers.  */ -#define YYPULL 1 - - -/* Substitute the variable and function names.  */ -#define yyparse         zconfparse -#define yylex           zconflex -#define yyerror         zconferror -#define yydebug         zconfdebug -#define yynerrs         zconfnerrs - -#define yylval          zconflval -#define yychar          zconfchar - -/* Copy the first part of user declarations.  */ - - -/* - * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> - * Released under the terms of the GNU GPL v2.0. - */ - -#include <ctype.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdbool.h> - -#include "lkc.h" - -#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt) - -#define PRINTD		0x0001 -#define DEBUG_PARSE	0x0002 - -int cdebug = PRINTD; - -extern int zconflex(void); -static void zconfprint(const char *err, ...); -static void zconf_error(const char *err, ...); -static void zconferror(const char *err); -static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken); - -struct symbol *symbol_hash[SYMBOL_HASHSIZE]; - -static struct menu *current_menu, *current_entry; - - - - -# ifndef YY_NULLPTR -#  if defined __cplusplus && 201103L <= __cplusplus -#   define YY_NULLPTR nullptr -#  else -#   define YY_NULLPTR 0 -#  endif -# endif - -/* Enabling verbose error messages.  */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - - -/* Debug traces.  */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif -#if YYDEBUG -extern int zconfdebug; -#endif - -/* Token type.  */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE -  enum yytokentype -  { -    T_MAINMENU = 258, -    T_MENU = 259, -    T_ENDMENU = 260, -    T_SOURCE = 261, -    T_CHOICE = 262, -    T_ENDCHOICE = 263, -    T_COMMENT = 264, -    T_CONFIG = 265, -    T_MENUCONFIG = 266, -    T_HELP = 267, -    T_HELPTEXT = 268, -    T_IF = 269, -    T_ENDIF = 270, -    T_DEPENDS = 271, -    T_OPTIONAL = 272, -    T_PROMPT = 273, -    T_TYPE = 274, -    T_DEFAULT = 275, -    T_SELECT = 276, -    T_RANGE = 277, -    T_VISIBLE = 278, -    T_OPTION = 279, -    T_ON = 280, -    T_WORD = 281, -    T_WORD_QUOTE = 282, -    T_UNEQUAL = 283, -    T_CLOSE_PAREN = 284, -    T_OPEN_PAREN = 285, -    T_EOL = 286, -    T_OR = 287, -    T_AND = 288, -    T_EQUAL = 289, -    T_NOT = 290 -  }; -#endif - -/* Value type.  */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; -union YYSTYPE -{ - - -	char *string; -	struct file *file; -	struct symbol *symbol; -	struct expr *expr; -	struct menu *menu; -	const struct kconf_id *id; - - -}; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE zconflval; - -int zconfparse (void); - - - -/* Copy the second part of user declarations.  */ - - -/* Include zconf.hash.c here so it can see the token constants. */ -#include "zconf.hash.c" - - - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -#  define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -#  define YYSIZE_T size_t -# elif ! defined YYSIZE_T -#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -#  define YYSIZE_T size_t -# else -#  define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -#  if ENABLE_NLS -#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -#   define YY_(Msgid) dgettext ("bison-runtime", Msgid) -#  endif -# endif -# ifndef YY_ -#  define YY_(Msgid) Msgid -# endif -#endif - -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__                                               \ -      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \ -     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -#  define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -#  define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__)) -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -#endif - -#if !defined _Noreturn \ -     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -#  define _Noreturn __declspec (noreturn) -# else -#  define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - -/* Suppress unused-variable warnings by "using" E.  */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) -#else -# define YYUSE(E) /* empty */ -#endif - -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized.  */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ -    _Pragma ("GCC diagnostic push") \ -    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ -    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ -    _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols.  */ - -# ifdef YYSTACK_USE_ALLOCA -#  if YYSTACK_USE_ALLOCA -#   ifdef __GNUC__ -#    define YYSTACK_ALLOC __builtin_alloca -#   elif defined __BUILTIN_VA_ARG_INCR -#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */ -#   elif defined _AIX -#    define YYSTACK_ALLOC __alloca -#   elif defined _MSC_VER -#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */ -#    define alloca _alloca -#   else -#    define YYSTACK_ALLOC alloca -#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */ -#     ifndef EXIT_SUCCESS -#      define EXIT_SUCCESS 0 -#     endif -#    endif -#   endif -#  endif -# endif - -# ifdef YYSTACK_ALLOC -   /* Pacify GCC's 'empty if-body' warning.  */ -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -#  ifndef YYSTACK_ALLOC_MAXIMUM -    /* The OS might guarantee only one guard page at the bottom of the stack, -       and a page size can be as small as 4096 bytes.  So we cannot safely -       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number -       to allow for a few compiler-allocated temporary stack slots.  */ -#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -#  endif -# else -#  define YYSTACK_ALLOC YYMALLOC -#  define YYSTACK_FREE YYFREE -#  ifndef YYSTACK_ALLOC_MAXIMUM -#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -#  endif -#  if (defined __cplusplus && ! defined EXIT_SUCCESS \ -       && ! ((defined YYMALLOC || defined malloc) \ -             && (defined YYFREE || defined free))) -#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -#   ifndef EXIT_SUCCESS -#    define EXIT_SUCCESS 0 -#   endif -#  endif -#  ifndef YYMALLOC -#   define YYMALLOC malloc -#   if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -#   endif -#  endif -#  ifndef YYFREE -#   define YYFREE free -#   if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -#   endif -#  endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ -     && (! defined __cplusplus \ -         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member.  */ -union yyalloc -{ -  yytype_int16 yyss_alloc; -  YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next.  */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with -   N elements.  */ -# define YYSTACK_BYTES(N) \ -     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ -      + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one.  The -   local variables YYSIZE and YYSTACKSIZE give the old and new number of -   elements in the stack, and YYPTR gives the new location of the -   stack.  Advance YYPTR to a properly aligned location for the next -   stack.  */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \ -    do                                                                  \ -      {                                                                 \ -        YYSIZE_T yynewbytes;                                            \ -        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \ -        Stack = &yyptr->Stack_alloc;                                    \ -        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -        yyptr += yynewbytes / sizeof (*yyptr);                          \ -      }                                                                 \ -    while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST.  The source and destination do -   not overlap.  */ -# ifndef YYCOPY -#  if defined __GNUC__ && 1 < __GNUC__ -#   define YYCOPY(Dst, Src, Count) \ -      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) -#  else -#   define YYCOPY(Dst, Src, Count)              \ -      do                                        \ -        {                                       \ -          YYSIZE_T yyi;                         \ -          for (yyi = 0; yyi < (Count); yyi++)   \ -            (Dst)[yyi] = (Src)[yyi];            \ -        }                                       \ -      while (0) -#  endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state.  */ -#define YYFINAL  11 -/* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   290 - -/* YYNTOKENS -- Number of terminals.  */ -#define YYNTOKENS  36 -/* YYNNTS -- Number of nonterminals.  */ -#define YYNNTS  50 -/* YYNRULES -- Number of rules.  */ -#define YYNRULES  118 -/* YYNSTATES -- Number of states.  */ -#define YYNSTATES  191 - -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned -   by yylex, with out-of-bounds checking.  */ -#define YYUNDEFTOK  2 -#define YYMAXUTOK   290 - -#define YYTRANSLATE(YYX)                                                \ -  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM -   as returned by yylex, without out-of-bounds checking.  */ -static const yytype_uint8 yytranslate[] = -{ -       0,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     1,     2,     3,     4, -       5,     6,     7,     8,     9,    10,    11,    12,    13,    14, -      15,    16,    17,    18,    19,    20,    21,    22,    23,    24, -      25,    26,    27,    28,    29,    30,    31,    32,    33,    34, -      35 -}; - -#if YYDEBUG -  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */ -static const yytype_uint16 yyrline[] = -{ -       0,   103,   103,   103,   105,   105,   107,   109,   110,   111, -     112,   113,   114,   118,   122,   122,   122,   122,   122,   122, -     122,   122,   126,   127,   128,   129,   130,   131,   135,   136, -     142,   150,   156,   164,   174,   176,   177,   178,   179,   180, -     181,   184,   192,   198,   208,   214,   220,   223,   225,   236, -     237,   242,   251,   256,   264,   267,   269,   270,   271,   272, -     273,   276,   282,   293,   299,   309,   311,   316,   324,   332, -     335,   337,   338,   339,   344,   351,   358,   363,   371,   374, -     376,   377,   378,   381,   389,   396,   403,   409,   416,   418, -     419,   420,   423,   431,   433,   434,   437,   444,   446,   451, -     452,   455,   456,   457,   461,   462,   465,   466,   469,   470, -     471,   472,   473,   474,   475,   478,   479,   482,   483 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || 0 -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. -   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */ -static const char *const yytname[] = -{ -  "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", -  "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", -  "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", -  "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE", -  "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", -  "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", -  "T_NOT", "$accept", "input", "start", "stmt_list", "option_name", -  "common_stmt", "option_error", "config_entry_start", "config_stmt", -  "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", -  "config_option", "symbol_option", "symbol_option_list", -  "symbol_option_arg", "choice", "choice_entry", "choice_end", -  "choice_stmt", "choice_option_list", "choice_option", "choice_block", -  "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu", -  "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt", -  "comment", "comment_stmt", "help_start", "help", "depends_list", -  "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt", -  "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULLPTR -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the -   (internal) symbol number NUM (which must be that of a token).  */ -static const yytype_uint16 yytoknum[] = -{ -       0,   256,   257,   258,   259,   260,   261,   262,   263,   264, -     265,   266,   267,   268,   269,   270,   271,   272,   273,   274, -     275,   276,   277,   278,   279,   280,   281,   282,   283,   284, -     285,   286,   287,   288,   289,   290 -}; -# endif - -#define YYPACT_NINF -90 - -#define yypact_value_is_default(Yystate) \ -  (!!((Yystate) == (-90))) - -#define YYTABLE_NINF -86 - -#define yytable_value_is_error(Yytable_value) \ -  0 - -  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -     STATE-NUM.  */ -static const yytype_int16 yypact[] = -{ -       4,    42,   -90,    96,   -90,   111,   -90,    15,   -90,   -90, -      75,   -90,    82,    42,   104,    42,   110,   107,    42,   115, -     125,    -4,   121,   -90,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   162,   -90,   163,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   139,   -90,   -90,   138,   -90,   142,   -90,   143,   -90, -     152,   -90,   164,   167,   168,   -90,   -90,    -4,    -4,    77, -     -18,   -90,   177,   185,    33,    71,   195,   247,   236,    -2, -     236,   171,   -90,   -90,   -90,   -90,   -90,   -90,    41,   -90, -      -4,    -4,   138,    97,    97,   -90,   -90,   186,   187,   194, -      42,    42,    -4,   196,    97,   -90,   219,   -90,   -90,   -90, -     -90,   210,   -90,   -90,   204,    42,    42,   199,   -90,   -90, -     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   222,   -90,   223,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   -90,   -90,   -90,   215,   -90,   -90,   -90,   -90,   -90, -      -4,   222,   228,   222,    -5,   222,    97,    35,   229,   -90, -     -90,   222,   232,   222,    -4,   -90,   135,   233,   -90,   -90, -     234,   235,   222,   240,   -90,   -90,   237,   -90,   239,   -13, -     -90,   -90,   -90,   -90,   244,    42,   -90,   -90,   -90,   -90, -     -90 -}; - -  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. -     Performed when YYTABLE does not specify something else to do.  Zero -     means the default is an error.  */ -static const yytype_uint8 yydefact[] = -{ -       6,     0,   104,     0,     3,     0,     6,     6,    99,   100, -       0,     1,     0,     0,     0,     0,   117,     0,     0,     0, -       0,     0,     0,    14,    18,    15,    16,    20,    17,    19, -      21,     0,    22,     0,     7,    34,    25,    34,    26,    55, -      65,     8,    70,    23,    93,    79,     9,    27,    88,    24, -      10,     0,   105,     2,    74,    13,     0,   101,     0,   118, -       0,   102,     0,     0,     0,   115,   116,     0,     0,     0, -     108,   103,     0,     0,     0,     0,     0,     0,     0,    88, -       0,     0,    75,    83,    51,    84,    30,    32,     0,   112, -       0,     0,    67,     0,     0,    11,    12,     0,     0,     0, -       0,    97,     0,     0,     0,    47,     0,    40,    39,    35, -      36,     0,    38,    37,     0,     0,    97,     0,    59,    60, -      56,    58,    57,    66,    54,    53,    71,    73,    69,    72, -      68,   106,    95,     0,    94,    80,    82,    78,    81,    77, -      90,    91,    89,   111,   113,   114,   110,   109,    29,    86, -       0,   106,     0,   106,   106,   106,     0,     0,     0,    87, -      63,   106,     0,   106,     0,    96,     0,     0,    41,    98, -       0,     0,   106,    49,    46,    28,     0,    62,     0,   107, -      92,    42,    43,    44,     0,     0,    48,    61,    64,    45, -      50 -}; - -  /* YYPGOTO[NTERM-NUM].  */ -static const yytype_int16 yypgoto[] = -{ -     -90,   -90,   269,   271,   -90,    23,   -70,   -90,   -90,   -90, -     -90,   243,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -48, -     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90, -     -90,   -20,   -90,   -90,   -90,   -90,   -90,   206,   205,   -68, -     -90,   -90,   169,    -1,    27,    -7,   118,   -66,   -89,   -90 -}; - -  /* YYDEFGOTO[NTERM-NUM].  */ -static const yytype_int16 yydefgoto[] = -{ -      -1,     3,     4,     5,    33,    34,   108,    35,    36,    37, -      38,    74,   109,   110,   157,   186,    39,    40,   124,    41, -      76,   120,    77,    42,   128,    43,    78,     6,    44,    45, -     137,    46,    80,    47,    48,    49,   111,   112,    81,   113, -      79,   134,   152,   153,    50,     7,   165,    69,    70,    60 -}; - -  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If -     positive, shift that token.  If negative, reduce the rule whose -     number is the opposite.  If YYTABLE_NINF, syntax error.  */ -static const yytype_int16 yytable[] = -{ -      10,    88,    89,    54,   146,   147,   119,     1,   122,   164, -      93,   141,    56,   142,    58,   156,    94,    62,     1,    90, -      91,   131,    65,    66,   144,   145,    67,    90,    91,   132, -     127,    68,   136,   -31,    97,     2,   154,   -31,   -31,   -31, -     -31,   -31,   -31,   -31,   -31,    98,    52,   -31,   -31,    99, -     -31,   100,   101,   102,   103,   104,   -31,   105,   129,   106, -     138,   173,    92,   141,   107,   142,   174,   172,     8,     9, -     143,   -33,    97,    90,    91,   -33,   -33,   -33,   -33,   -33, -     -33,   -33,   -33,    98,   166,   -33,   -33,    99,   -33,   100, -     101,   102,   103,   104,   -33,   105,    11,   106,   179,   151, -     123,   126,   107,   135,   125,   130,     2,   139,     2,    90, -      91,    -5,    12,    55,   161,    13,    14,    15,    16,    17, -      18,    19,    20,    65,    66,    21,    22,    23,    24,    25, -      26,    27,    28,    29,    30,    57,    59,    31,    61,    -4, -      12,    63,    32,    13,    14,    15,    16,    17,    18,    19, -      20,    64,    71,    21,    22,    23,    24,    25,    26,    27, -      28,    29,    30,    72,    73,    31,   180,    90,    91,    52, -      32,   -85,    97,    82,    83,   -85,   -85,   -85,   -85,   -85, -     -85,   -85,   -85,    84,   190,   -85,   -85,    99,   -85,   -85, -     -85,   -85,   -85,   -85,   -85,    85,    97,   106,    86,    87, -     -52,   -52,   140,   -52,   -52,   -52,   -52,    98,    95,   -52, -     -52,    99,   114,   115,   116,   117,    96,   148,   149,   150, -     158,   106,   155,   159,    97,   163,   118,   -76,   -76,   -76, -     -76,   -76,   -76,   -76,   -76,   160,   164,   -76,   -76,    99, -      13,    14,    15,    16,    17,    18,    19,    20,    91,   106, -      21,    22,    14,    15,   140,    17,    18,    19,    20,   168, -     175,    21,    22,   177,   181,   182,   183,    32,   187,   167, -     188,   169,   170,   171,   185,   189,    53,    51,    32,   176, -      75,   178,   121,     0,   133,   162,     0,     0,     0,     0, -     184 -}; - -static const yytype_int16 yycheck[] = -{ -       1,    67,    68,    10,    93,    94,    76,     3,    76,    14, -      28,    81,    13,    81,    15,   104,    34,    18,     3,    32, -      33,    23,    26,    27,    90,    91,    30,    32,    33,    31, -      78,    35,    80,     0,     1,    31,   102,     4,     5,     6, -       7,     8,     9,    10,    11,    12,    31,    14,    15,    16, -      17,    18,    19,    20,    21,    22,    23,    24,    78,    26, -      80,    26,    69,   133,    31,   133,    31,   156,    26,    27, -      29,     0,     1,    32,    33,     4,     5,     6,     7,     8, -       9,    10,    11,    12,   150,    14,    15,    16,    17,    18, -      19,    20,    21,    22,    23,    24,     0,    26,   164,   100, -      77,    78,    31,    80,    77,    78,    31,    80,    31,    32, -      33,     0,     1,    31,   115,     4,     5,     6,     7,     8, -       9,    10,    11,    26,    27,    14,    15,    16,    17,    18, -      19,    20,    21,    22,    23,    31,    26,    26,    31,     0, -       1,    26,    31,     4,     5,     6,     7,     8,     9,    10, -      11,    26,    31,    14,    15,    16,    17,    18,    19,    20, -      21,    22,    23,     1,     1,    26,    31,    32,    33,    31, -      31,     0,     1,    31,    31,     4,     5,     6,     7,     8, -       9,    10,    11,    31,   185,    14,    15,    16,    17,    18, -      19,    20,    21,    22,    23,    31,     1,    26,    31,    31, -       5,     6,    31,     8,     9,    10,    11,    12,    31,    14, -      15,    16,    17,    18,    19,    20,    31,    31,    31,    25, -       1,    26,    26,    13,     1,    26,    31,     4,     5,     6, -       7,     8,     9,    10,    11,    31,    14,    14,    15,    16, -       4,     5,     6,     7,     8,     9,    10,    11,    33,    26, -      14,    15,     5,     6,    31,     8,     9,    10,    11,    31, -      31,    14,    15,    31,    31,    31,    31,    31,    31,   151, -      31,   153,   154,   155,    34,    31,     7,     6,    31,   161, -      37,   163,    76,    -1,    79,   116,    -1,    -1,    -1,    -1, -     172 -}; - -  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -     symbol of state STATE-NUM.  */ -static const yytype_uint8 yystos[] = -{ -       0,     3,    31,    37,    38,    39,    63,    81,    26,    27, -      79,     0,     1,     4,     5,     6,     7,     8,     9,    10, -      11,    14,    15,    16,    17,    18,    19,    20,    21,    22, -      23,    26,    31,    40,    41,    43,    44,    45,    46,    52, -      53,    55,    59,    61,    64,    65,    67,    69,    70,    71, -      80,    39,    31,    38,    81,    31,    79,    31,    79,    26, -      85,    31,    79,    26,    26,    26,    27,    30,    35,    83, -      84,    31,     1,     1,    47,    47,    56,    58,    62,    76, -      68,    74,    31,    31,    31,    31,    31,    31,    83,    83, -      32,    33,    81,    28,    34,    31,    31,     1,    12,    16, -      18,    19,    20,    21,    22,    24,    26,    31,    42,    48, -      49,    72,    73,    75,    17,    18,    19,    20,    31,    42, -      57,    73,    75,    41,    54,    80,    41,    55,    60,    67, -      80,    23,    31,    74,    77,    41,    55,    66,    67,    80, -      31,    42,    75,    29,    83,    83,    84,    84,    31,    31, -      25,    79,    78,    79,    83,    26,    84,    50,     1,    13, -      31,    79,    78,    26,    14,    82,    83,    82,    31,    82, -      82,    82,    84,    26,    31,    31,    82,    31,    82,    83, -      31,    31,    31,    31,    82,    34,    51,    31,    31,    31, -      79 -}; - -  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ -static const yytype_uint8 yyr1[] = -{ -       0,    36,    37,    37,    38,    38,    39,    39,    39,    39, -      39,    39,    39,    39,    40,    40,    40,    40,    40,    40, -      40,    40,    41,    41,    41,    41,    41,    41,    42,    42, -      43,    44,    45,    46,    47,    47,    47,    47,    47,    47, -      47,    48,    48,    48,    48,    48,    49,    50,    50,    51, -      51,    52,    53,    54,    55,    56,    56,    56,    56,    56, -      56,    57,    57,    57,    57,    58,    58,    59,    60,    61, -      62,    62,    62,    62,    63,    64,    65,    66,    67,    68, -      68,    68,    68,    69,    70,    71,    72,    73,    74,    74, -      74,    74,    75,    76,    76,    76,    77,    78,    78,    79, -      79,    80,    80,    80,    81,    81,    82,    82,    83,    83, -      83,    83,    83,    83,    83,    84,    84,    85,    85 -}; - -  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */ -static const yytype_uint8 yyr2[] = -{ -       0,     2,     2,     1,     2,     1,     0,     2,     2,     2, -       2,     4,     4,     3,     1,     1,     1,     1,     1,     1, -       1,     1,     1,     1,     1,     1,     1,     1,     3,     2, -       3,     2,     3,     2,     0,     2,     2,     2,     2,     2, -       2,     3,     4,     4,     4,     5,     3,     0,     3,     0, -       2,     3,     2,     1,     3,     0,     2,     2,     2,     2, -       2,     4,     3,     2,     4,     0,     2,     3,     1,     3, -       0,     2,     2,     2,     3,     3,     3,     1,     3,     0, -       2,     2,     2,     3,     3,     2,     2,     2,     0,     2, -       2,     2,     4,     0,     2,     2,     2,     0,     2,     1, -       1,     2,     2,     2,     1,     2,     0,     2,     1,     3, -       3,     3,     2,     3,     3,     1,     1,     0,     1 -}; - - -#define yyerrok         (yyerrstatus = 0) -#define yyclearin       (yychar = YYEMPTY) -#define YYEMPTY         (-2) -#define YYEOF           0 - -#define YYACCEPT        goto yyacceptlab -#define YYABORT         goto yyabortlab -#define YYERROR         goto yyerrorlab - - -#define YYRECOVERING()  (!!yyerrstatus) - -#define YYBACKUP(Token, Value)                                  \ -do                                                              \ -  if (yychar == YYEMPTY)                                        \ -    {                                                           \ -      yychar = (Token);                                         \ -      yylval = (Value);                                         \ -      YYPOPSTACK (yylen);                                       \ -      yystate = *yyssp;                                         \ -      goto yybackup;                                            \ -    }                                                           \ -  else                                                          \ -    {                                                           \ -      yyerror (YY_("syntax error: cannot back up")); \ -      YYERROR;                                                  \ -    }                                                           \ -while (0) - -/* Error token number */ -#define YYTERROR        1 -#define YYERRCODE       256 - - - -/* Enable debugging if requested.  */ -#if YYDEBUG - -# ifndef YYFPRINTF -#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -#  define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args)                        \ -do {                                            \ -  if (yydebug)                                  \ -    YYFPRINTF Args;                             \ -} while (0) - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ -do {                                                                      \ -  if (yydebug)                                                            \ -    {                                                                     \ -      YYFPRINTF (stderr, "%s ", Title);                                   \ -      yy_symbol_print (stderr,                                            \ -                  Type, Value); \ -      YYFPRINTF (stderr, "\n");                                           \ -    }                                                                     \ -} while (0) - - -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT.  | -`----------------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -{ -  FILE *yyo = yyoutput; -  YYUSE (yyo); -  if (!yyvaluep) -    return; -# ifdef YYPRINT -  if (yytype < YYNTOKENS) -    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif -  YYUSE (yytype); -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT.  | -`--------------------------------*/ - -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -{ -  YYFPRINTF (yyoutput, "%s %s (", -             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - -  yy_symbol_value_print (yyoutput, yytype, yyvaluep); -  YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included).                                                   | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -{ -  YYFPRINTF (stderr, "Stack now"); -  for (; yybottom <= yytop; yybottom++) -    { -      int yybot = *yybottom; -      YYFPRINTF (stderr, " %d", yybot); -    } -  YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top)                            \ -do {                                                            \ -  if (yydebug)                                                  \ -    yy_stack_print ((Bottom), (Top));                           \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced.  | -`------------------------------------------------*/ - -static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) -{ -  unsigned long int yylno = yyrline[yyrule]; -  int yynrhs = yyr2[yyrule]; -  int yyi; -  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", -             yyrule - 1, yylno); -  /* The symbols being reduced.  */ -  for (yyi = 0; yyi < yynrhs; yyi++) -    { -      YYFPRINTF (stderr, "   $%d = ", yyi + 1); -      yy_symbol_print (stderr, -                       yystos[yyssp[yyi + 1 - yynrhs]], -                       &(yyvsp[(yyi + 1) - (yynrhs)]) -                                              ); -      YYFPRINTF (stderr, "\n"); -    } -} - -# define YY_REDUCE_PRINT(Rule)          \ -do {                                    \ -  if (yydebug)                          \ -    yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace.  It is left uninitialized so that -   multiple parsers can coexist.  */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks.  */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only -   if the built-in stack extension method is used). - -   Do not make this value too large; the results are undefined if -   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) -   evaluated with infinite-precision integer arithmetic.  */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -#  if defined __GLIBC__ && defined _STRING_H -#   define yystrlen strlen -#  else -/* Return the length of YYSTR.  */ -static YYSIZE_T -yystrlen (const char *yystr) -{ -  YYSIZE_T yylen; -  for (yylen = 0; yystr[yylen]; yylen++) -    continue; -  return yylen; -} -#  endif -# endif - -# ifndef yystpcpy -#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -#   define yystpcpy stpcpy -#  else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in -   YYDEST.  */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ -  char *yyd = yydest; -  const char *yys = yysrc; - -  while ((*yyd++ = *yys++) != '\0') -    continue; - -  return yyd - 1; -} -#  endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary -   quotes and backslashes, so that it's suitable for yyerror.  The -   heuristic is that double-quoting is unnecessary unless the string -   contains an apostrophe, a comma, or backslash (other than -   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is -   null, do not copy; instead, return the length of what the result -   would have been.  */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ -  if (*yystr == '"') -    { -      YYSIZE_T yyn = 0; -      char const *yyp = yystr; - -      for (;;) -        switch (*++yyp) -          { -          case '\'': -          case ',': -            goto do_not_strip_quotes; - -          case '\\': -            if (*++yyp != '\\') -              goto do_not_strip_quotes; -            /* Fall through.  */ -          default: -            if (yyres) -              yyres[yyn] = *yyp; -            yyn++; -            break; - -          case '"': -            if (yyres) -              yyres[yyn] = '\0'; -            return yyn; -          } -    do_not_strip_quotes: ; -    } - -  if (! yyres) -    return yystrlen (yystr); - -  return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message -   about the unexpected token YYTOKEN for the state stack whose top is -   YYSSP. - -   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is -   not large enough to hold the message.  In that case, also set -   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the -   required number of bytes is too large to store.  */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, -                yytype_int16 *yyssp, int yytoken) -{ -  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); -  YYSIZE_T yysize = yysize0; -  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; -  /* Internationalized format string. */ -  const char *yyformat = YY_NULLPTR; -  /* Arguments of yyformat. */ -  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; -  /* Number of reported tokens (one for the "unexpected", one per -     "expected"). */ -  int yycount = 0; - -  /* There are many possibilities here to consider: -     - If this state is a consistent state with a default action, then -       the only way this function was invoked is if the default action -       is an error action.  In that case, don't check for expected -       tokens because there are none. -     - The only way there can be no lookahead present (in yychar) is if -       this state is a consistent state with a default action.  Thus, -       detecting the absence of a lookahead is sufficient to determine -       that there is no unexpected or expected token to report.  In that -       case, just report a simple "syntax error". -     - Don't assume there isn't a lookahead just because this state is a -       consistent state with a default action.  There might have been a -       previous inconsistent state, consistent state with a non-default -       action, or user semantic action that manipulated yychar. -     - Of course, the expected token list depends on states to have -       correct lookahead information, and it depends on the parser not -       to perform extra reductions after fetching a lookahead from the -       scanner and before detecting a syntax error.  Thus, state merging -       (from LALR or IELR) and default reductions corrupt the expected -       token list.  However, the list is correct for canonical LR with -       one exception: it will still contain any token that will not be -       accepted due to an error action in a later state. -  */ -  if (yytoken != YYEMPTY) -    { -      int yyn = yypact[*yyssp]; -      yyarg[yycount++] = yytname[yytoken]; -      if (!yypact_value_is_default (yyn)) -        { -          /* Start YYX at -YYN if negative to avoid negative indexes in -             YYCHECK.  In other words, skip the first -YYN actions for -             this state because they are default actions.  */ -          int yyxbegin = yyn < 0 ? -yyn : 0; -          /* Stay within bounds of both yycheck and yytname.  */ -          int yychecklim = YYLAST - yyn + 1; -          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; -          int yyx; - -          for (yyx = yyxbegin; yyx < yyxend; ++yyx) -            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR -                && !yytable_value_is_error (yytable[yyx + yyn])) -              { -                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) -                  { -                    yycount = 1; -                    yysize = yysize0; -                    break; -                  } -                yyarg[yycount++] = yytname[yyx]; -                { -                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); -                  if (! (yysize <= yysize1 -                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -                    return 2; -                  yysize = yysize1; -                } -              } -        } -    } - -  switch (yycount) -    { -# define YYCASE_(N, S)                      \ -      case N:                               \ -        yyformat = S;                       \ -      break -      YYCASE_(0, YY_("syntax error")); -      YYCASE_(1, YY_("syntax error, unexpected %s")); -      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); -      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); -      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); -      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ -    } - -  { -    YYSIZE_T yysize1 = yysize + yystrlen (yyformat); -    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -      return 2; -    yysize = yysize1; -  } - -  if (*yymsg_alloc < yysize) -    { -      *yymsg_alloc = 2 * yysize; -      if (! (yysize <= *yymsg_alloc -             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) -        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; -      return 1; -    } - -  /* Avoid sprintf, as that infringes on the user's name space. -     Don't have undefined behavior even if the translation -     produced a string with the wrong number of "%s"s.  */ -  { -    char *yyp = *yymsg; -    int yyi = 0; -    while ((*yyp = *yyformat) != '\0') -      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) -        { -          yyp += yytnamerr (yyp, yyarg[yyi++]); -          yyformat += 2; -        } -      else -        { -          yyp++; -          yyformat++; -        } -  } -  return 0; -} -#endif /* YYERROR_VERBOSE */ - -/*-----------------------------------------------. -| Release the memory associated to this symbol.  | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -{ -  YYUSE (yyvaluep); -  if (!yymsg) -    yymsg = "Deleting"; -  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - -  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -  switch (yytype) -    { -          case 53: /* choice_entry  */ - -      { -	fprintf(stderr, "%s:%d: missing end statement for this entry\n", -		((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); -	if (current_menu == ((*yyvaluep).menu)) -		menu_end_menu(); -} - -        break; - -    case 59: /* if_entry  */ - -      { -	fprintf(stderr, "%s:%d: missing end statement for this entry\n", -		((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); -	if (current_menu == ((*yyvaluep).menu)) -		menu_end_menu(); -} - -        break; - -    case 65: /* menu_entry  */ - -      { -	fprintf(stderr, "%s:%d: missing end statement for this entry\n", -		((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno); -	if (current_menu == ((*yyvaluep).menu)) -		menu_end_menu(); -} - -        break; - - -      default: -        break; -    } -  YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - - - -/* The lookahead symbol.  */ -int yychar; - -/* The semantic value of the lookahead symbol.  */ -YYSTYPE yylval; -/* Number of syntax errors so far.  */ -int yynerrs; - - -/*----------. -| yyparse.  | -`----------*/ - -int -yyparse (void) -{ -    int yystate; -    /* Number of tokens to shift before error messages enabled.  */ -    int yyerrstatus; - -    /* The stacks and their tools: -       'yyss': related to states. -       'yyvs': related to semantic values. - -       Refer to the stacks through separate pointers, to allow yyoverflow -       to reallocate them elsewhere.  */ - -    /* The state stack.  */ -    yytype_int16 yyssa[YYINITDEPTH]; -    yytype_int16 *yyss; -    yytype_int16 *yyssp; - -    /* The semantic value stack.  */ -    YYSTYPE yyvsa[YYINITDEPTH]; -    YYSTYPE *yyvs; -    YYSTYPE *yyvsp; - -    YYSIZE_T yystacksize; - -  int yyn; -  int yyresult; -  /* Lookahead token as an internal (translated) token number.  */ -  int yytoken = 0; -  /* The variables used to return semantic value and location from the -     action routines.  */ -  YYSTYPE yyval; - -#if YYERROR_VERBOSE -  /* Buffer for error messages, and its allocated size.  */ -  char yymsgbuf[128]; -  char *yymsg = yymsgbuf; -  YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)) - -  /* The number of symbols on the RHS of the reduced rule. -     Keep to zero when no symbol should be popped.  */ -  int yylen = 0; - -  yyssp = yyss = yyssa; -  yyvsp = yyvs = yyvsa; -  yystacksize = YYINITDEPTH; - -  YYDPRINTF ((stderr, "Starting parse\n")); - -  yystate = 0; -  yyerrstatus = 0; -  yynerrs = 0; -  yychar = YYEMPTY; /* Cause a token to be read.  */ -  goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate.  | -`------------------------------------------------------------*/ - yynewstate: -  /* In all cases, when you get here, the value and location stacks -     have just been pushed.  So pushing a state here evens the stacks.  */ -  yyssp++; - - yysetstate: -  *yyssp = yystate; - -  if (yyss + yystacksize - 1 <= yyssp) -    { -      /* Get the current used size of the three stacks, in elements.  */ -      YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow -      { -        /* Give user a chance to reallocate the stack.  Use copies of -           these so that the &'s don't force the real ones into -           memory.  */ -        YYSTYPE *yyvs1 = yyvs; -        yytype_int16 *yyss1 = yyss; - -        /* Each stack pointer address is followed by the size of the -           data in use in that stack, in bytes.  This used to be a -           conditional around just the two extra args, but that might -           be undefined if yyoverflow is a macro.  */ -        yyoverflow (YY_("memory exhausted"), -                    &yyss1, yysize * sizeof (*yyssp), -                    &yyvs1, yysize * sizeof (*yyvsp), -                    &yystacksize); - -        yyss = yyss1; -        yyvs = yyvs1; -      } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE -      goto yyexhaustedlab; -# else -      /* Extend the stack our own way.  */ -      if (YYMAXDEPTH <= yystacksize) -        goto yyexhaustedlab; -      yystacksize *= 2; -      if (YYMAXDEPTH < yystacksize) -        yystacksize = YYMAXDEPTH; - -      { -        yytype_int16 *yyss1 = yyss; -        union yyalloc *yyptr = -          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -        if (! yyptr) -          goto yyexhaustedlab; -        YYSTACK_RELOCATE (yyss_alloc, yyss); -        YYSTACK_RELOCATE (yyvs_alloc, yyvs); -#  undef YYSTACK_RELOCATE -        if (yyss1 != yyssa) -          YYSTACK_FREE (yyss1); -      } -# endif -#endif /* no yyoverflow */ - -      yyssp = yyss + yysize - 1; -      yyvsp = yyvs + yysize - 1; - -      YYDPRINTF ((stderr, "Stack size increased to %lu\n", -                  (unsigned long int) yystacksize)); - -      if (yyss + yystacksize - 1 <= yyssp) -        YYABORT; -    } - -  YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - -  if (yystate == YYFINAL) -    YYACCEPT; - -  goto yybackup; - -/*-----------. -| yybackup.  | -`-----------*/ -yybackup: - -  /* Do appropriate processing given the current state.  Read a -     lookahead token if we need one and don't already have one.  */ - -  /* First try to decide what to do without reference to lookahead token.  */ -  yyn = yypact[yystate]; -  if (yypact_value_is_default (yyn)) -    goto yydefault; - -  /* Not known => get a lookahead token if don't already have one.  */ - -  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */ -  if (yychar == YYEMPTY) -    { -      YYDPRINTF ((stderr, "Reading a token: ")); -      yychar = yylex (); -    } - -  if (yychar <= YYEOF) -    { -      yychar = yytoken = YYEOF; -      YYDPRINTF ((stderr, "Now at end of input.\n")); -    } -  else -    { -      yytoken = YYTRANSLATE (yychar); -      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); -    } - -  /* If the proper action on seeing token YYTOKEN is to reduce or to -     detect an error, take that action.  */ -  yyn += yytoken; -  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) -    goto yydefault; -  yyn = yytable[yyn]; -  if (yyn <= 0) -    { -      if (yytable_value_is_error (yyn)) -        goto yyerrlab; -      yyn = -yyn; -      goto yyreduce; -    } - -  /* Count tokens shifted since error; after three, turn off error -     status.  */ -  if (yyerrstatus) -    yyerrstatus--; - -  /* Shift the lookahead token.  */ -  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - -  /* Discard the shifted token.  */ -  yychar = YYEMPTY; - -  yystate = yyn; -  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -  *++yyvsp = yylval; -  YY_IGNORE_MAYBE_UNINITIALIZED_END - -  goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state.  | -`-----------------------------------------------------------*/ -yydefault: -  yyn = yydefact[yystate]; -  if (yyn == 0) -    goto yyerrlab; -  goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction.  | -`-----------------------------*/ -yyreduce: -  /* yyn is the number of a rule to reduce with.  */ -  yylen = yyr2[yyn]; - -  /* If YYLEN is nonzero, implement the default value of the action: -     '$$ = $1'. - -     Otherwise, the following line sets YYVAL to garbage. -     This behavior is undocumented and Bison -     users should not rely upon it.  Assigning to YYVAL -     unconditionally makes the parser a bit smaller, and it avoids a -     GCC warning that YYVAL may be used uninitialized.  */ -  yyval = yyvsp[1-yylen]; - - -  YY_REDUCE_PRINT (yyn); -  switch (yyn) -    { -        case 10: - -    { zconf_error("unexpected end statement"); } - -    break; - -  case 11: - -    { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); } - -    break; - -  case 12: - -    { -	zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name); -} - -    break; - -  case 13: - -    { zconf_error("invalid statement"); } - -    break; - -  case 28: - -    { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); } - -    break; - -  case 29: - -    { zconf_error("invalid option"); } - -    break; - -  case 30: - -    { -	struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); -	sym->flags |= SYMBOL_OPTIONAL; -	menu_add_entry(sym); -	printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); -} - -    break; - -  case 31: - -    { -	menu_end_entry(); -	printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 32: - -    { -	struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); -	sym->flags |= SYMBOL_OPTIONAL; -	menu_add_entry(sym); -	printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); -} - -    break; - -  case 33: - -    { -	if (current_entry->prompt) -		current_entry->prompt->type = P_MENU; -	else -		zconfprint("warning: menuconfig statement without prompt"); -	menu_end_entry(); -	printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 41: - -    { -	menu_set_type((yyvsp[-2].id)->stype); -	printd(DEBUG_PARSE, "%s:%d:type(%u)\n", -		zconf_curname(), zconf_lineno(), -		(yyvsp[-2].id)->stype); -} - -    break; - -  case 42: - -    { -	menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); -	printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 43: - -    { -	menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); -	if ((yyvsp[-3].id)->stype != S_UNKNOWN) -		menu_set_type((yyvsp[-3].id)->stype); -	printd(DEBUG_PARSE, "%s:%d:default(%u)\n", -		zconf_curname(), zconf_lineno(), -		(yyvsp[-3].id)->stype); -} - -    break; - -  case 44: - -    { -	menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); -	printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 45: - -    { -	menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); -	printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 48: - -    { -	const struct kconf_id *id = kconf_id_lookup((yyvsp[-1].string), strlen((yyvsp[-1].string))); -	if (id && id->flags & TF_OPTION) -		menu_add_option(id->token, (yyvsp[0].string)); -	else -		zconfprint("warning: ignoring unknown option %s", (yyvsp[-1].string)); -	free((yyvsp[-1].string)); -} - -    break; - -  case 49: - -    { (yyval.string) = NULL; } - -    break; - -  case 50: - -    { (yyval.string) = (yyvsp[0].string); } - -    break; - -  case 51: - -    { -	struct symbol *sym = sym_lookup((yyvsp[-1].string), SYMBOL_CHOICE); -	sym->flags |= SYMBOL_AUTO; -	menu_add_entry(sym); -	menu_add_expr(P_CHOICE, NULL, NULL); -	printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 52: - -    { -	(yyval.menu) = menu_add_menu(); -} - -    break; - -  case 53: - -    { -	if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) { -		menu_end_menu(); -		printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); -	} -} - -    break; - -  case 61: - -    { -	menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); -	printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 62: - -    { -	if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) { -		menu_set_type((yyvsp[-2].id)->stype); -		printd(DEBUG_PARSE, "%s:%d:type(%u)\n", -			zconf_curname(), zconf_lineno(), -			(yyvsp[-2].id)->stype); -	} else -		YYERROR; -} - -    break; - -  case 63: - -    { -	current_entry->sym->flags |= SYMBOL_OPTIONAL; -	printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 64: - -    { -	if ((yyvsp[-3].id)->stype == S_UNKNOWN) { -		menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); -		printd(DEBUG_PARSE, "%s:%d:default\n", -			zconf_curname(), zconf_lineno()); -	} else -		YYERROR; -} - -    break; - -  case 67: - -    { -	printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); -	menu_add_entry(NULL); -	menu_add_dep((yyvsp[-1].expr)); -	(yyval.menu) = menu_add_menu(); -} - -    break; - -  case 68: - -    { -	if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) { -		menu_end_menu(); -		printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); -	} -} - -    break; - -  case 74: - -    { -	menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL); -} - -    break; - -  case 75: - -    { -	menu_add_entry(NULL); -	menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL); -	printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 76: - -    { -	(yyval.menu) = menu_add_menu(); -} - -    break; - -  case 77: - -    { -	if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) { -		menu_end_menu(); -		printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); -	} -} - -    break; - -  case 83: - -    { -	printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); -	zconf_nextfile((yyvsp[-1].string)); -} - -    break; - -  case 84: - -    { -	menu_add_entry(NULL); -	menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL); -	printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 85: - -    { -	menu_end_entry(); -} - -    break; - -  case 86: - -    { -	printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); -	zconf_starthelp(); -} - -    break; - -  case 87: - -    { -	current_entry->help = (yyvsp[0].string); -} - -    break; - -  case 92: - -    { -	menu_add_dep((yyvsp[-1].expr)); -	printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); -} - -    break; - -  case 96: - -    { -	menu_add_visibility((yyvsp[0].expr)); -} - -    break; - -  case 98: - -    { -	menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); -} - -    break; - -  case 101: - -    { (yyval.id) = (yyvsp[-1].id); } - -    break; - -  case 102: - -    { (yyval.id) = (yyvsp[-1].id); } - -    break; - -  case 103: - -    { (yyval.id) = (yyvsp[-1].id); } - -    break; - -  case 106: - -    { (yyval.expr) = NULL; } - -    break; - -  case 107: - -    { (yyval.expr) = (yyvsp[0].expr); } - -    break; - -  case 108: - -    { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); } - -    break; - -  case 109: - -    { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } - -    break; - -  case 110: - -    { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); } - -    break; - -  case 111: - -    { (yyval.expr) = (yyvsp[-1].expr); } - -    break; - -  case 112: - -    { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); } - -    break; - -  case 113: - -    { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); } - -    break; - -  case 114: - -    { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } - -    break; - -  case 115: - -    { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); } - -    break; - -  case 116: - -    { (yyval.symbol) = sym_lookup((yyvsp[0].string), SYMBOL_CONST); free((yyvsp[0].string)); } - -    break; - -  case 117: - -    { (yyval.string) = NULL; } - -    break; - - - -      default: break; -    } -  /* User semantic actions sometimes alter yychar, and that requires -     that yytoken be updated with the new translation.  We take the -     approach of translating immediately before every use of yytoken. -     One alternative is translating here after every semantic action, -     but that translation would be missed if the semantic action invokes -     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or -     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an -     incorrect destructor might then be invoked immediately.  In the -     case of YYERROR or YYBACKUP, subsequent parser actions might lead -     to an incorrect destructor call or verbose syntax error message -     before the lookahead is translated.  */ -  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - -  YYPOPSTACK (yylen); -  yylen = 0; -  YY_STACK_PRINT (yyss, yyssp); - -  *++yyvsp = yyval; - -  /* Now 'shift' the result of the reduction.  Determine what state -     that goes to, based on the state we popped back to and the rule -     number reduced by.  */ - -  yyn = yyr1[yyn]; - -  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; -  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) -    yystate = yytable[yystate]; -  else -    yystate = yydefgoto[yyn - YYNTOKENS]; - -  goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error.  | -`--------------------------------------*/ -yyerrlab: -  /* Make sure we have latest lookahead translation.  See comments at -     user semantic actions for why this is necessary.  */ -  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - -  /* If not already recovering from an error, report this error.  */ -  if (!yyerrstatus) -    { -      ++yynerrs; -#if ! YYERROR_VERBOSE -      yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ -                                        yyssp, yytoken) -      { -        char const *yymsgp = YY_("syntax error"); -        int yysyntax_error_status; -        yysyntax_error_status = YYSYNTAX_ERROR; -        if (yysyntax_error_status == 0) -          yymsgp = yymsg; -        else if (yysyntax_error_status == 1) -          { -            if (yymsg != yymsgbuf) -              YYSTACK_FREE (yymsg); -            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); -            if (!yymsg) -              { -                yymsg = yymsgbuf; -                yymsg_alloc = sizeof yymsgbuf; -                yysyntax_error_status = 2; -              } -            else -              { -                yysyntax_error_status = YYSYNTAX_ERROR; -                yymsgp = yymsg; -              } -          } -        yyerror (yymsgp); -        if (yysyntax_error_status == 2) -          goto yyexhaustedlab; -      } -# undef YYSYNTAX_ERROR -#endif -    } - - - -  if (yyerrstatus == 3) -    { -      /* If just tried and failed to reuse lookahead token after an -         error, discard it.  */ - -      if (yychar <= YYEOF) -        { -          /* Return failure if at end of input.  */ -          if (yychar == YYEOF) -            YYABORT; -        } -      else -        { -          yydestruct ("Error: discarding", -                      yytoken, &yylval); -          yychar = YYEMPTY; -        } -    } - -  /* Else will try to reuse lookahead token after shifting the error -     token.  */ -  goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR.  | -`---------------------------------------------------*/ -yyerrorlab: - -  /* Pacify compilers like GCC when the user code never invokes -     YYERROR and the label yyerrorlab therefore never appears in user -     code.  */ -  if (/*CONSTCOND*/ 0) -     goto yyerrorlab; - -  /* Do not reclaim the symbols of the rule whose action triggered -     this YYERROR.  */ -  YYPOPSTACK (yylen); -  yylen = 0; -  YY_STACK_PRINT (yyss, yyssp); -  yystate = *yyssp; -  goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR.  | -`-------------------------------------------------------------*/ -yyerrlab1: -  yyerrstatus = 3;      /* Each real token shifted decrements this.  */ - -  for (;;) -    { -      yyn = yypact[yystate]; -      if (!yypact_value_is_default (yyn)) -        { -          yyn += YYTERROR; -          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -            { -              yyn = yytable[yyn]; -              if (0 < yyn) -                break; -            } -        } - -      /* Pop the current state because it cannot handle the error token.  */ -      if (yyssp == yyss) -        YYABORT; - - -      yydestruct ("Error: popping", -                  yystos[yystate], yyvsp); -      YYPOPSTACK (1); -      yystate = *yyssp; -      YY_STACK_PRINT (yyss, yyssp); -    } - -  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -  *++yyvsp = yylval; -  YY_IGNORE_MAYBE_UNINITIALIZED_END - - -  /* Shift the error token.  */ -  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - -  yystate = yyn; -  goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here.  | -`-------------------------------------*/ -yyacceptlab: -  yyresult = 0; -  goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here.  | -`-----------------------------------*/ -yyabortlab: -  yyresult = 1; -  goto yyreturn; - -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here.  | -`-------------------------------------------------*/ -yyexhaustedlab: -  yyerror (YY_("memory exhausted")); -  yyresult = 2; -  /* Fall through.  */ -#endif - -yyreturn: -  if (yychar != YYEMPTY) -    { -      /* Make sure we have latest lookahead translation.  See comments at -         user semantic actions for why this is necessary.  */ -      yytoken = YYTRANSLATE (yychar); -      yydestruct ("Cleanup: discarding lookahead", -                  yytoken, &yylval); -    } -  /* Do not reclaim the symbols of the rule whose action triggered -     this YYABORT or YYACCEPT.  */ -  YYPOPSTACK (yylen); -  YY_STACK_PRINT (yyss, yyssp); -  while (yyssp != yyss) -    { -      yydestruct ("Cleanup: popping", -                  yystos[*yyssp], yyvsp); -      YYPOPSTACK (1); -    } -#ifndef yyoverflow -  if (yyss != yyssa) -    YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE -  if (yymsg != yymsgbuf) -    YYSTACK_FREE (yymsg); -#endif -  return yyresult; -} - - - -void conf_parse(const char *name) -{ -	struct symbol *sym; -	int i; - -	zconf_initscan(name); - -	sym_init(); -	_menu_init(); -	rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); - -	if (getenv("ZCONF_DEBUG")) -		zconfdebug = 1; -	zconfparse(); -	if (zconfnerrs) -		exit(1); -	if (!modules_sym) -		modules_sym = sym_find( "n" ); - -	rootmenu.prompt->text = _(rootmenu.prompt->text); -	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text); - -	menu_finalize(&rootmenu); -	for_all_symbols(i, sym) { -		if (sym_check_deps(sym)) -			zconfnerrs++; -	} -	if (zconfnerrs) -		exit(1); -	sym_set_change_count(1); -} - -static const char *zconf_tokenname(int token) -{ -	switch (token) { -	case T_MENU:		return "menu"; -	case T_ENDMENU:		return "endmenu"; -	case T_CHOICE:		return "choice"; -	case T_ENDCHOICE:	return "endchoice"; -	case T_IF:		return "if"; -	case T_ENDIF:		return "endif"; -	case T_DEPENDS:		return "depends"; -	case T_VISIBLE:		return "visible"; -	} -	return "<token>"; -} - -static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken) -{ -	if (id->token != endtoken) { -		zconf_error("unexpected '%s' within %s block", -			kconf_id_strings + id->name, zconf_tokenname(starttoken)); -		zconfnerrs++; -		return false; -	} -	if (current_menu->file != current_file) { -		zconf_error("'%s' in different file than '%s'", -			kconf_id_strings + id->name, zconf_tokenname(starttoken)); -		fprintf(stderr, "%s:%d: location of the '%s'\n", -			current_menu->file->name, current_menu->lineno, -			zconf_tokenname(starttoken)); -		zconfnerrs++; -		return false; -	} -	return true; -} - -static void zconfprint(const char *err, ...) -{ -	va_list ap; - -	fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); -	va_start(ap, err); -	vfprintf(stderr, err, ap); -	va_end(ap); -	fprintf(stderr, "\n"); -} - -static void zconf_error(const char *err, ...) -{ -	va_list ap; - -	zconfnerrs++; -	fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); -	va_start(ap, err); -	vfprintf(stderr, err, ap); -	va_end(ap); -	fprintf(stderr, "\n"); -} - -static void zconferror(const char *err) -{ -	fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); -} - -static void print_quoted_string(FILE *out, const char *str) -{ -	const char *p; -	int len; - -	putc('"', out); -	while ((p = strchr(str, '"'))) { -		len = p - str; -		if (len) -			fprintf(out, "%.*s", len, str); -		fputs("\\\"", out); -		str = p + 1; -	} -	fputs(str, out); -	putc('"', out); -} - -static void print_symbol(FILE *out, struct menu *menu) -{ -	struct symbol *sym = menu->sym; -	struct property *prop; - -	if (sym_is_choice(sym)) -		fprintf(out, "\nchoice\n"); -	else -		fprintf(out, "\nconfig %s\n", sym->name); -	switch (sym->type) { -	case S_BOOLEAN: -		fputs("  boolean\n", out); -		break; -	case S_TRISTATE: -		fputs("  tristate\n", out); -		break; -	case S_STRING: -		fputs("  string\n", out); -		break; -	case S_INT: -		fputs("  integer\n", out); -		break; -	case S_HEX: -		fputs("  hex\n", out); -		break; -	default: -		fputs("  ???\n", out); -		break; -	} -	for (prop = sym->prop; prop; prop = prop->next) { -		if (prop->menu != menu) -			continue; -		switch (prop->type) { -		case P_PROMPT: -			fputs("  prompt ", out); -			print_quoted_string(out, prop->text); -			if (!expr_is_yes(prop->visible.expr)) { -				fputs(" if ", out); -				expr_fprint(prop->visible.expr, out); -			} -			fputc('\n', out); -			break; -		case P_DEFAULT: -			fputs( "  default ", out); -			expr_fprint(prop->expr, out); -			if (!expr_is_yes(prop->visible.expr)) { -				fputs(" if ", out); -				expr_fprint(prop->visible.expr, out); -			} -			fputc('\n', out); -			break; -		case P_CHOICE: -			fputs("  #choice value\n", out); -			break; -		case P_SELECT: -			fputs( "  select ", out); -			expr_fprint(prop->expr, out); -			fputc('\n', out); -			break; -		case P_RANGE: -			fputs( "  range ", out); -			expr_fprint(prop->expr, out); -			fputc('\n', out); -			break; -		case P_MENU: -			fputs( "  menu ", out); -			print_quoted_string(out, prop->text); -			fputc('\n', out); -			break; -		default: -			fprintf(out, "  unknown prop %d!\n", prop->type); -			break; -		} -	} -	if (menu->help) { -		int len = strlen(menu->help); -		while (menu->help[--len] == '\n') -			menu->help[len] = 0; -		fprintf(out, "  help\n%s\n", menu->help); -	} -} - -void zconfdump(FILE *out) -{ -	struct property *prop; -	struct symbol *sym; -	struct menu *menu; - -	menu = rootmenu.list; -	while (menu) { -		if ((sym = menu->sym)) -			print_symbol(out, menu); -		else if ((prop = menu->prompt)) { -			switch (prop->type) { -			case P_COMMENT: -				fputs("\ncomment ", out); -				print_quoted_string(out, prop->text); -				fputs("\n", out); -				break; -			case P_MENU: -				fputs("\nmenu ", out); -				print_quoted_string(out, prop->text); -				fputs("\n", out); -				break; -			default: -				; -			} -			if (!expr_is_yes(prop->visible.expr)) { -				fputs("  depends ", out); -				expr_fprint(prop->visible.expr, out); -				fputc('\n', out); -			} -		} - -		if (menu->list) -			menu = menu->list; -		else if (menu->next) -			menu = menu->next; -		else while ((menu = menu->parent)) { -			if (menu->prompt && menu->prompt->type == P_MENU) -				fputs("\nendmenu\n", out); -			if (menu->next) { -				menu = menu->next; -				break; -			} -		} -	} -} - -#include "zconf.lex.c" -#include "util.c" -#include "confdata.c" -#include "expr.c" -#include "symbol.c" -#include "menu.c" | 
