kconfig/zconf.tab.c_shipped
changeset 878 aa3be56634c1
parent 877 58b374931cc7
child 879 f003b25897a1
     1.1 --- a/kconfig/zconf.tab.c_shipped	Sun Sep 28 08:14:33 2008 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,2345 +0,0 @@
     1.4 -/* A Bison parser, made by GNU Bison 2.1.  */
     1.5 -
     1.6 -/* Skeleton parser for Yacc-like parsing with Bison,
     1.7 -   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
     1.8 -
     1.9 -   This program is free software; you can redistribute it and/or modify
    1.10 -   it under the terms of the GNU General Public License as published by
    1.11 -   the Free Software Foundation; either version 2, or (at your option)
    1.12 -   any later version.
    1.13 -
    1.14 -   This program is distributed in the hope that it will be useful,
    1.15 -   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.16 -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.17 -   GNU General Public License for more details.
    1.18 -
    1.19 -   You should have received a copy of the GNU General Public License
    1.20 -   along with this program; if not, write to the Free Software
    1.21 -   Foundation, Inc., 51 Franklin Street, Fifth Floor,
    1.22 -   Boston, MA 02110-1301, USA.  */
    1.23 -
    1.24 -/* As a special exception, when this file is copied by Bison into a
    1.25 -   Bison output file, you may use that output file without restriction.
    1.26 -   This special exception was added by the Free Software Foundation
    1.27 -   in version 1.24 of Bison.  */
    1.28 -
    1.29 -/* Written by Richard Stallman by simplifying the original so called
    1.30 -   ``semantic'' parser.  */
    1.31 -
    1.32 -/* All symbols defined below should begin with yy or YY, to avoid
    1.33 -   infringing on user name space.  This should be done even for local
    1.34 -   variables, as they might otherwise be expanded by user macros.
    1.35 -   There are some unavoidable exceptions within include files to
    1.36 -   define necessary library symbols; they are noted "INFRINGES ON
    1.37 -   USER NAME SPACE" below.  */
    1.38 -
    1.39 -/* Identify Bison output.  */
    1.40 -#define YYBISON 1
    1.41 -
    1.42 -/* Bison version.  */
    1.43 -#define YYBISON_VERSION "2.1"
    1.44 -
    1.45 -/* Skeleton name.  */
    1.46 -#define YYSKELETON_NAME "yacc.c"
    1.47 -
    1.48 -/* Pure parsers.  */
    1.49 -#define YYPURE 0
    1.50 -
    1.51 -/* Using locations.  */
    1.52 -#define YYLSP_NEEDED 0
    1.53 -
    1.54 -/* Substitute the variable and function names.  */
    1.55 -#define yyparse zconfparse
    1.56 -#define yylex   zconflex
    1.57 -#define yyerror zconferror
    1.58 -#define yylval  zconflval
    1.59 -#define yychar  zconfchar
    1.60 -#define yydebug zconfdebug
    1.61 -#define yynerrs zconfnerrs
    1.62 -
    1.63 -
    1.64 -/* Tokens.  */
    1.65 -#ifndef YYTOKENTYPE
    1.66 -# define YYTOKENTYPE
    1.67 -   /* Put the tokens into the symbol table, so that GDB and other debuggers
    1.68 -      know about them.  */
    1.69 -   enum yytokentype {
    1.70 -     T_MAINMENU = 258,
    1.71 -     T_MENU = 259,
    1.72 -     T_ENDMENU = 260,
    1.73 -     T_SOURCE = 261,
    1.74 -     T_CHOICE = 262,
    1.75 -     T_ENDCHOICE = 263,
    1.76 -     T_COMMENT = 264,
    1.77 -     T_CONFIG = 265,
    1.78 -     T_MENUCONFIG = 266,
    1.79 -     T_HELP = 267,
    1.80 -     T_HELPTEXT = 268,
    1.81 -     T_IF = 269,
    1.82 -     T_ENDIF = 270,
    1.83 -     T_DEPENDS = 271,
    1.84 -     T_REQUIRES = 272,
    1.85 -     T_OPTIONAL = 273,
    1.86 -     T_PROMPT = 274,
    1.87 -     T_TYPE = 275,
    1.88 -     T_DEFAULT = 276,
    1.89 -     T_SELECT = 277,
    1.90 -     T_RANGE = 278,
    1.91 -     T_OPTION = 279,
    1.92 -     T_ON = 280,
    1.93 -     T_WORD = 281,
    1.94 -     T_WORD_QUOTE = 282,
    1.95 -     T_UNEQUAL = 283,
    1.96 -     T_CLOSE_PAREN = 284,
    1.97 -     T_OPEN_PAREN = 285,
    1.98 -     T_EOL = 286,
    1.99 -     T_OR = 287,
   1.100 -     T_AND = 288,
   1.101 -     T_EQUAL = 289,
   1.102 -     T_NOT = 290
   1.103 -   };
   1.104 -#endif
   1.105 -/* Tokens.  */
   1.106 -#define T_MAINMENU 258
   1.107 -#define T_MENU 259
   1.108 -#define T_ENDMENU 260
   1.109 -#define T_SOURCE 261
   1.110 -#define T_CHOICE 262
   1.111 -#define T_ENDCHOICE 263
   1.112 -#define T_COMMENT 264
   1.113 -#define T_CONFIG 265
   1.114 -#define T_MENUCONFIG 266
   1.115 -#define T_HELP 267
   1.116 -#define T_HELPTEXT 268
   1.117 -#define T_IF 269
   1.118 -#define T_ENDIF 270
   1.119 -#define T_DEPENDS 271
   1.120 -#define T_REQUIRES 272
   1.121 -#define T_OPTIONAL 273
   1.122 -#define T_PROMPT 274
   1.123 -#define T_TYPE 275
   1.124 -#define T_DEFAULT 276
   1.125 -#define T_SELECT 277
   1.126 -#define T_RANGE 278
   1.127 -#define T_OPTION 279
   1.128 -#define T_ON 280
   1.129 -#define T_WORD 281
   1.130 -#define T_WORD_QUOTE 282
   1.131 -#define T_UNEQUAL 283
   1.132 -#define T_CLOSE_PAREN 284
   1.133 -#define T_OPEN_PAREN 285
   1.134 -#define T_EOL 286
   1.135 -#define T_OR 287
   1.136 -#define T_AND 288
   1.137 -#define T_EQUAL 289
   1.138 -#define T_NOT 290
   1.139 -
   1.140 -
   1.141 -
   1.142 -
   1.143 -/* Copy the first part of user declarations.  */
   1.144 -
   1.145 -
   1.146 -/*
   1.147 - * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
   1.148 - * Released under the terms of the GNU GPL v2.0.
   1.149 - */
   1.150 -
   1.151 -#include <ctype.h>
   1.152 -#include <stdarg.h>
   1.153 -#include <stdio.h>
   1.154 -#include <stdlib.h>
   1.155 -#include <string.h>
   1.156 -#include <stdbool.h>
   1.157 -
   1.158 -#define LKC_DIRECT_LINK
   1.159 -#include "lkc.h"
   1.160 -
   1.161 -#include "zconf.hash.c"
   1.162 -
   1.163 -#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
   1.164 -
   1.165 -#define PRINTD		0x0001
   1.166 -#define DEBUG_PARSE	0x0002
   1.167 -
   1.168 -int cdebug = PRINTD;
   1.169 -
   1.170 -extern int zconflex(void);
   1.171 -static void zconfprint(const char *err, ...);
   1.172 -static void zconf_error(const char *err, ...);
   1.173 -static void zconferror(const char *err);
   1.174 -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
   1.175 -
   1.176 -struct symbol *symbol_hash[257];
   1.177 -
   1.178 -static struct menu *current_menu, *current_entry;
   1.179 -
   1.180 -#define YYDEBUG 0
   1.181 -#if YYDEBUG
   1.182 -#define YYERROR_VERBOSE
   1.183 -#endif
   1.184 -
   1.185 -
   1.186 -/* Enabling traces.  */
   1.187 -#ifndef YYDEBUG
   1.188 -# define YYDEBUG 0
   1.189 -#endif
   1.190 -
   1.191 -/* Enabling verbose error messages.  */
   1.192 -#ifdef YYERROR_VERBOSE
   1.193 -# undef YYERROR_VERBOSE
   1.194 -# define YYERROR_VERBOSE 1
   1.195 -#else
   1.196 -# define YYERROR_VERBOSE 0
   1.197 -#endif
   1.198 -
   1.199 -/* Enabling the token table.  */
   1.200 -#ifndef YYTOKEN_TABLE
   1.201 -# define YYTOKEN_TABLE 0
   1.202 -#endif
   1.203 -
   1.204 -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
   1.205 -
   1.206 -typedef union YYSTYPE {
   1.207 -	char *string;
   1.208 -	struct file *file;
   1.209 -	struct symbol *symbol;
   1.210 -	struct expr *expr;
   1.211 -	struct menu *menu;
   1.212 -	struct kconf_id *id;
   1.213 -} YYSTYPE;
   1.214 -/* Line 196 of yacc.c.  */
   1.215 -
   1.216 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */
   1.217 -# define YYSTYPE_IS_DECLARED 1
   1.218 -# define YYSTYPE_IS_TRIVIAL 1
   1.219 -#endif
   1.220 -
   1.221 -
   1.222 -
   1.223 -/* Copy the second part of user declarations.  */
   1.224 -
   1.225 -
   1.226 -/* Line 219 of yacc.c.  */
   1.227 -
   1.228 -
   1.229 -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
   1.230 -# define YYSIZE_T __SIZE_TYPE__
   1.231 -#endif
   1.232 -#if ! defined (YYSIZE_T) && defined (size_t)
   1.233 -# define YYSIZE_T size_t
   1.234 -#endif
   1.235 -#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
   1.236 -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
   1.237 -# define YYSIZE_T size_t
   1.238 -#endif
   1.239 -#if ! defined (YYSIZE_T)
   1.240 -# define YYSIZE_T unsigned int
   1.241 -#endif
   1.242 -
   1.243 -#ifndef YY_
   1.244 -# if YYENABLE_NLS
   1.245 -#  if ENABLE_NLS
   1.246 -#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
   1.247 -#   define YY_(msgid) dgettext ("bison-runtime", msgid)
   1.248 -#  endif
   1.249 -# endif
   1.250 -# ifndef YY_
   1.251 -#  define YY_(msgid) msgid
   1.252 -# endif
   1.253 -#endif
   1.254 -
   1.255 -#if ! defined (yyoverflow) || YYERROR_VERBOSE
   1.256 -
   1.257 -/* The parser invokes alloca or malloc; define the necessary symbols.  */
   1.258 -
   1.259 -# ifdef YYSTACK_USE_ALLOCA
   1.260 -#  if YYSTACK_USE_ALLOCA
   1.261 -#   ifdef __GNUC__
   1.262 -#    define YYSTACK_ALLOC __builtin_alloca
   1.263 -#   else
   1.264 -#    define YYSTACK_ALLOC alloca
   1.265 -#    if defined (__STDC__) || defined (__cplusplus)
   1.266 -#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   1.267 -#     define YYINCLUDED_STDLIB_H
   1.268 -#    endif
   1.269 -#   endif
   1.270 -#  endif
   1.271 -# endif
   1.272 -
   1.273 -# ifdef YYSTACK_ALLOC
   1.274 -   /* Pacify GCC's `empty if-body' warning. */
   1.275 -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
   1.276 -#  ifndef YYSTACK_ALLOC_MAXIMUM
   1.277 -    /* The OS might guarantee only one guard page at the bottom of the stack,
   1.278 -       and a page size can be as small as 4096 bytes.  So we cannot safely
   1.279 -       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
   1.280 -       to allow for a few compiler-allocated temporary stack slots.  */
   1.281 -#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
   1.282 -#  endif
   1.283 -# else
   1.284 -#  define YYSTACK_ALLOC YYMALLOC
   1.285 -#  define YYSTACK_FREE YYFREE
   1.286 -#  ifndef YYSTACK_ALLOC_MAXIMUM
   1.287 -#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
   1.288 -#  endif
   1.289 -#  ifdef __cplusplus
   1.290 -extern "C" {
   1.291 -#  endif
   1.292 -#  ifndef YYMALLOC
   1.293 -#   define YYMALLOC malloc
   1.294 -#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
   1.295 -	&& (defined (__STDC__) || defined (__cplusplus)))
   1.296 -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
   1.297 -#   endif
   1.298 -#  endif
   1.299 -#  ifndef YYFREE
   1.300 -#   define YYFREE free
   1.301 -#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
   1.302 -	&& (defined (__STDC__) || defined (__cplusplus)))
   1.303 -void free (void *); /* INFRINGES ON USER NAME SPACE */
   1.304 -#   endif
   1.305 -#  endif
   1.306 -#  ifdef __cplusplus
   1.307 -}
   1.308 -#  endif
   1.309 -# endif
   1.310 -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
   1.311 -
   1.312 -
   1.313 -#if (! defined (yyoverflow) \
   1.314 -     && (! defined (__cplusplus) \
   1.315 -	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
   1.316 -
   1.317 -/* A type that is properly aligned for any stack member.  */
   1.318 -union yyalloc
   1.319 -{
   1.320 -  short int yyss;
   1.321 -  YYSTYPE yyvs;
   1.322 -  };
   1.323 -
   1.324 -/* The size of the maximum gap between one aligned stack and the next.  */
   1.325 -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
   1.326 -
   1.327 -/* The size of an array large to enough to hold all stacks, each with
   1.328 -   N elements.  */
   1.329 -# define YYSTACK_BYTES(N) \
   1.330 -     ((N) * (sizeof (short int) + sizeof (YYSTYPE))			\
   1.331 -      + YYSTACK_GAP_MAXIMUM)
   1.332 -
   1.333 -/* Copy COUNT objects from FROM to TO.  The source and destination do
   1.334 -   not overlap.  */
   1.335 -# ifndef YYCOPY
   1.336 -#  if defined (__GNUC__) && 1 < __GNUC__
   1.337 -#   define YYCOPY(To, From, Count) \
   1.338 -      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
   1.339 -#  else
   1.340 -#   define YYCOPY(To, From, Count)		\
   1.341 -      do					\
   1.342 -	{					\
   1.343 -	  YYSIZE_T yyi;				\
   1.344 -	  for (yyi = 0; yyi < (Count); yyi++)	\
   1.345 -	    (To)[yyi] = (From)[yyi];		\
   1.346 -	}					\
   1.347 -      while (0)
   1.348 -#  endif
   1.349 -# endif
   1.350 -
   1.351 -/* Relocate STACK from its old location to the new one.  The
   1.352 -   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   1.353 -   elements in the stack, and YYPTR gives the new location of the
   1.354 -   stack.  Advance YYPTR to a properly aligned location for the next
   1.355 -   stack.  */
   1.356 -# define YYSTACK_RELOCATE(Stack)					\
   1.357 -    do									\
   1.358 -      {									\
   1.359 -	YYSIZE_T yynewbytes;						\
   1.360 -	YYCOPY (&yyptr->Stack, Stack, yysize);				\
   1.361 -	Stack = &yyptr->Stack;						\
   1.362 -	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
   1.363 -	yyptr += yynewbytes / sizeof (*yyptr);				\
   1.364 -      }									\
   1.365 -    while (0)
   1.366 -
   1.367 -#endif
   1.368 -
   1.369 -#if defined (__STDC__) || defined (__cplusplus)
   1.370 -   typedef signed char yysigned_char;
   1.371 -#else
   1.372 -   typedef short int yysigned_char;
   1.373 -#endif
   1.374 -
   1.375 -/* YYFINAL -- State number of the termination state. */
   1.376 -#define YYFINAL  3
   1.377 -/* YYLAST -- Last index in YYTABLE.  */
   1.378 -#define YYLAST   275
   1.379 -
   1.380 -/* YYNTOKENS -- Number of terminals. */
   1.381 -#define YYNTOKENS  36
   1.382 -/* YYNNTS -- Number of nonterminals. */
   1.383 -#define YYNNTS  45
   1.384 -/* YYNRULES -- Number of rules. */
   1.385 -#define YYNRULES  110
   1.386 -/* YYNRULES -- Number of states. */
   1.387 -#define YYNSTATES  183
   1.388 -
   1.389 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
   1.390 -#define YYUNDEFTOK  2
   1.391 -#define YYMAXUTOK   290
   1.392 -
   1.393 -#define YYTRANSLATE(YYX)						\
   1.394 -  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
   1.395 -
   1.396 -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
   1.397 -static const unsigned char yytranslate[] =
   1.398 -{
   1.399 -       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.400 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.401 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.402 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.403 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.404 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.405 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.406 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.407 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.408 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.409 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.410 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.411 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.412 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.413 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.414 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.415 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.416 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.417 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.418 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.419 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.420 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.421 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.422 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.423 -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1.424 -       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
   1.425 -       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   1.426 -      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   1.427 -      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   1.428 -      35
   1.429 -};
   1.430 -
   1.431 -#if YYDEBUG
   1.432 -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   1.433 -   YYRHS.  */
   1.434 -static const unsigned short int yyprhs[] =
   1.435 -{
   1.436 -       0,     0,     3,     5,     6,     9,    12,    15,    20,    23,
   1.437 -      28,    33,    37,    39,    41,    43,    45,    47,    49,    51,
   1.438 -      53,    55,    57,    59,    61,    63,    67,    70,    74,    77,
   1.439 -      81,    84,    85,    88,    91,    94,    97,   100,   103,   107,
   1.440 -     112,   117,   122,   128,   132,   133,   137,   138,   141,   144,
   1.441 -     147,   149,   153,   154,   157,   160,   163,   166,   169,   174,
   1.442 -     178,   181,   186,   187,   190,   194,   196,   200,   201,   204,
   1.443 -     207,   210,   214,   217,   219,   223,   224,   227,   230,   233,
   1.444 -     237,   241,   244,   247,   250,   251,   254,   257,   260,   265,
   1.445 -     269,   273,   274,   277,   279,   281,   284,   287,   290,   292,
   1.446 -     295,   296,   299,   301,   305,   309,   313,   316,   320,   324,
   1.447 -     326
   1.448 -};
   1.449 -
   1.450 -/* YYRHS -- A `-1'-separated list of the rules' RHS. */
   1.451 -static const yysigned_char yyrhs[] =
   1.452 -{
   1.453 -      37,     0,    -1,    38,    -1,    -1,    38,    40,    -1,    38,
   1.454 -      54,    -1,    38,    65,    -1,    38,     3,    75,    77,    -1,
   1.455 -      38,    76,    -1,    38,    26,     1,    31,    -1,    38,    39,
   1.456 -       1,    31,    -1,    38,     1,    31,    -1,    16,    -1,    19,
   1.457 -      -1,    20,    -1,    22,    -1,    18,    -1,    23,    -1,    21,
   1.458 -      -1,    31,    -1,    60,    -1,    69,    -1,    43,    -1,    45,
   1.459 -      -1,    67,    -1,    26,     1,    31,    -1,     1,    31,    -1,
   1.460 -      10,    26,    31,    -1,    42,    46,    -1,    11,    26,    31,
   1.461 -      -1,    44,    46,    -1,    -1,    46,    47,    -1,    46,    48,
   1.462 -      -1,    46,    73,    -1,    46,    71,    -1,    46,    41,    -1,
   1.463 -      46,    31,    -1,    20,    74,    31,    -1,    19,    75,    78,
   1.464 -      31,    -1,    21,    79,    78,    31,    -1,    22,    26,    78,
   1.465 -      31,    -1,    23,    80,    80,    78,    31,    -1,    24,    49,
   1.466 -      31,    -1,    -1,    49,    26,    50,    -1,    -1,    34,    75,
   1.467 -      -1,     7,    31,    -1,    51,    55,    -1,    76,    -1,    52,
   1.468 -      57,    53,    -1,    -1,    55,    56,    -1,    55,    73,    -1,
   1.469 -      55,    71,    -1,    55,    31,    -1,    55,    41,    -1,    19,
   1.470 -      75,    78,    31,    -1,    20,    74,    31,    -1,    18,    31,
   1.471 -      -1,    21,    26,    78,    31,    -1,    -1,    57,    40,    -1,
   1.472 -      14,    79,    77,    -1,    76,    -1,    58,    61,    59,    -1,
   1.473 -      -1,    61,    40,    -1,    61,    65,    -1,    61,    54,    -1,
   1.474 -       4,    75,    31,    -1,    62,    72,    -1,    76,    -1,    63,
   1.475 -      66,    64,    -1,    -1,    66,    40,    -1,    66,    65,    -1,
   1.476 -      66,    54,    -1,     6,    75,    31,    -1,     9,    75,    31,
   1.477 -      -1,    68,    72,    -1,    12,    31,    -1,    70,    13,    -1,
   1.478 -      -1,    72,    73,    -1,    72,    31,    -1,    72,    41,    -1,
   1.479 -      16,    25,    79,    31,    -1,    16,    79,    31,    -1,    17,
   1.480 -      79,    31,    -1,    -1,    75,    78,    -1,    26,    -1,    27,
   1.481 -      -1,     5,    31,    -1,     8,    31,    -1,    15,    31,    -1,
   1.482 -      31,    -1,    77,    31,    -1,    -1,    14,    79,    -1,    80,
   1.483 -      -1,    80,    34,    80,    -1,    80,    28,    80,    -1,    30,
   1.484 -      79,    29,    -1,    35,    79,    -1,    79,    32,    79,    -1,
   1.485 -      79,    33,    79,    -1,    26,    -1,    27,    -1
   1.486 -};
   1.487 -
   1.488 -/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
   1.489 -static const unsigned short int yyrline[] =
   1.490 -{
   1.491 -       0,   105,   105,   107,   109,   110,   111,   112,   113,   114,
   1.492 -     115,   119,   123,   123,   123,   123,   123,   123,   123,   127,
   1.493 -     128,   129,   130,   131,   132,   136,   137,   143,   151,   157,
   1.494 -     165,   175,   177,   178,   179,   180,   181,   182,   185,   193,
   1.495 -     199,   209,   215,   221,   224,   226,   237,   238,   243,   252,
   1.496 -     257,   265,   268,   270,   271,   272,   273,   274,   277,   283,
   1.497 -     294,   300,   310,   312,   317,   325,   333,   336,   338,   339,
   1.498 -     340,   345,   352,   357,   365,   368,   370,   371,   372,   375,
   1.499 -     383,   390,   397,   403,   410,   412,   413,   414,   417,   422,
   1.500 -     427,   435,   437,   442,   443,   446,   447,   448,   452,   453,
   1.501 -     456,   457,   460,   461,   462,   463,   464,   465,   466,   469,
   1.502 -     470
   1.503 -};
   1.504 -#endif
   1.505 -
   1.506 -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
   1.507 -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   1.508 -   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
   1.509 -static const char *const yytname[] =
   1.510 -{
   1.511 -  "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
   1.512 -  "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
   1.513 -  "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
   1.514 -  "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT",
   1.515 -  "T_SELECT", "T_RANGE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE",
   1.516 -  "T_UNEQUAL", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND",
   1.517 -  "T_EQUAL", "T_NOT", "$accept", "input", "stmt_list", "option_name",
   1.518 -  "common_stmt", "option_error", "config_entry_start", "config_stmt",
   1.519 -  "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
   1.520 -  "config_option", "symbol_option", "symbol_option_list",
   1.521 -  "symbol_option_arg", "choice", "choice_entry", "choice_end",
   1.522 -  "choice_stmt", "choice_option_list", "choice_option", "choice_block",
   1.523 -  "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
   1.524 -  "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
   1.525 -  "comment_stmt", "help_start", "help", "depends_list", "depends",
   1.526 -  "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol", 0
   1.527 -};
   1.528 -#endif
   1.529 -
   1.530 -# ifdef YYPRINT
   1.531 -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   1.532 -   token YYLEX-NUM.  */
   1.533 -static const unsigned short int yytoknum[] =
   1.534 -{
   1.535 -       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
   1.536 -     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
   1.537 -     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
   1.538 -     285,   286,   287,   288,   289,   290
   1.539 -};
   1.540 -# endif
   1.541 -
   1.542 -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
   1.543 -static const unsigned char yyr1[] =
   1.544 -{
   1.545 -       0,    36,    37,    38,    38,    38,    38,    38,    38,    38,
   1.546 -      38,    38,    39,    39,    39,    39,    39,    39,    39,    40,
   1.547 -      40,    40,    40,    40,    40,    41,    41,    42,    43,    44,
   1.548 -      45,    46,    46,    46,    46,    46,    46,    46,    47,    47,
   1.549 -      47,    47,    47,    48,    49,    49,    50,    50,    51,    52,
   1.550 -      53,    54,    55,    55,    55,    55,    55,    55,    56,    56,
   1.551 -      56,    56,    57,    57,    58,    59,    60,    61,    61,    61,
   1.552 -      61,    62,    63,    64,    65,    66,    66,    66,    66,    67,
   1.553 -      68,    69,    70,    71,    72,    72,    72,    72,    73,    73,
   1.554 -      73,    74,    74,    75,    75,    76,    76,    76,    77,    77,
   1.555 -      78,    78,    79,    79,    79,    79,    79,    79,    79,    80,
   1.556 -      80
   1.557 -};
   1.558 -
   1.559 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
   1.560 -static const unsigned char yyr2[] =
   1.561 -{
   1.562 -       0,     2,     1,     0,     2,     2,     2,     4,     2,     4,
   1.563 -       4,     3,     1,     1,     1,     1,     1,     1,     1,     1,
   1.564 -       1,     1,     1,     1,     1,     3,     2,     3,     2,     3,
   1.565 -       2,     0,     2,     2,     2,     2,     2,     2,     3,     4,
   1.566 -       4,     4,     5,     3,     0,     3,     0,     2,     2,     2,
   1.567 -       1,     3,     0,     2,     2,     2,     2,     2,     4,     3,
   1.568 -       2,     4,     0,     2,     3,     1,     3,     0,     2,     2,
   1.569 -       2,     3,     2,     1,     3,     0,     2,     2,     2,     3,
   1.570 -       3,     2,     2,     2,     0,     2,     2,     2,     4,     3,
   1.571 -       3,     0,     2,     1,     1,     2,     2,     2,     1,     2,
   1.572 -       0,     2,     1,     3,     3,     3,     2,     3,     3,     1,
   1.573 -       1
   1.574 -};
   1.575 -
   1.576 -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   1.577 -   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   1.578 -   means the default is an error.  */
   1.579 -static const unsigned char yydefact[] =
   1.580 -{
   1.581 -       3,     0,     0,     1,     0,     0,     0,     0,     0,     0,
   1.582 -       0,     0,     0,     0,     0,     0,    12,    16,    13,    14,
   1.583 -      18,    15,    17,     0,    19,     0,     4,    31,    22,    31,
   1.584 -      23,    52,    62,     5,    67,    20,    84,    75,     6,    24,
   1.585 -      84,    21,     8,    11,    93,    94,     0,     0,    95,     0,
   1.586 -      48,    96,     0,     0,     0,   109,   110,     0,     0,     0,
   1.587 -     102,    97,     0,     0,     0,     0,     0,     0,     0,     0,
   1.588 -       0,     0,    98,     7,    71,    79,    80,    27,    29,     0,
   1.589 -     106,     0,     0,    64,     0,     0,     9,    10,     0,     0,
   1.590 -       0,     0,     0,    91,     0,     0,     0,    44,     0,    37,
   1.591 -      36,    32,    33,     0,    35,    34,     0,     0,    91,     0,
   1.592 -      56,    57,    53,    55,    54,    63,    51,    50,    68,    70,
   1.593 -      66,    69,    65,    86,    87,    85,    76,    78,    74,    77,
   1.594 -      73,    99,   105,   107,   108,   104,   103,    26,    82,     0,
   1.595 -       0,     0,   100,     0,   100,   100,   100,     0,     0,     0,
   1.596 -      83,    60,   100,     0,   100,     0,    89,    90,     0,     0,
   1.597 -      38,    92,     0,     0,   100,    46,    43,    25,     0,    59,
   1.598 -       0,    88,   101,    39,    40,    41,     0,     0,    45,    58,
   1.599 -      61,    42,    47
   1.600 -};
   1.601 -
   1.602 -/* YYDEFGOTO[NTERM-NUM]. */
   1.603 -static const short int yydefgoto[] =
   1.604 -{
   1.605 -      -1,     1,     2,    25,    26,   100,    27,    28,    29,    30,
   1.606 -      64,   101,   102,   148,   178,    31,    32,   116,    33,    66,
   1.607 -     112,    67,    34,   120,    35,    68,    36,    37,   128,    38,
   1.608 -      70,    39,    40,    41,   103,   104,    69,   105,   143,   144,
   1.609 -      42,    73,   159,    59,    60
   1.610 -};
   1.611 -
   1.612 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   1.613 -   STATE-NUM.  */
   1.614 -#define YYPACT_NINF -135
   1.615 -static const short int yypact[] =
   1.616 -{
   1.617 -    -135,     2,   170,  -135,   -14,    56,    56,    -8,    56,    24,
   1.618 -      67,    56,     7,    14,    62,    97,  -135,  -135,  -135,  -135,
   1.619 -    -135,  -135,  -135,   156,  -135,   166,  -135,  -135,  -135,  -135,
   1.620 -    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
   1.621 -    -135,  -135,  -135,  -135,  -135,  -135,   138,   151,  -135,   152,
   1.622 -    -135,  -135,   163,   167,   176,  -135,  -135,    62,    62,   185,
   1.623 -     -19,  -135,   188,   190,    42,   103,   194,    85,    70,   222,
   1.624 -      70,   132,  -135,   191,  -135,  -135,  -135,  -135,  -135,   127,
   1.625 -    -135,    62,    62,   191,   104,   104,  -135,  -135,   193,   203,
   1.626 -       9,    62,    56,    56,    62,   161,   104,  -135,   196,  -135,
   1.627 -    -135,  -135,  -135,   233,  -135,  -135,   204,    56,    56,   221,
   1.628 -    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
   1.629 -    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
   1.630 -    -135,  -135,  -135,   219,  -135,  -135,  -135,  -135,  -135,    62,
   1.631 -     209,   212,   240,   224,   240,    -1,   240,   104,    41,   225,
   1.632 -    -135,  -135,   240,   226,   240,   218,  -135,  -135,    62,   227,
   1.633 -    -135,  -135,   228,   229,   240,   230,  -135,  -135,   231,  -135,
   1.634 -     232,  -135,   112,  -135,  -135,  -135,   234,    56,  -135,  -135,
   1.635 -    -135,  -135,  -135
   1.636 -};
   1.637 -
   1.638 -/* YYPGOTO[NTERM-NUM].  */
   1.639 -static const short int yypgoto[] =
   1.640 -{
   1.641 -    -135,  -135,  -135,  -135,    94,   -45,  -135,  -135,  -135,  -135,
   1.642 -     237,  -135,  -135,  -135,  -135,  -135,  -135,  -135,   -54,  -135,
   1.643 -    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,     1,
   1.644 -    -135,  -135,  -135,  -135,  -135,   195,   235,   -44,   159,    -5,
   1.645 -      98,   210,  -134,   -53,   -77
   1.646 -};
   1.647 -
   1.648 -/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   1.649 -   positive, shift that token.  If negative, reduce the rule which
   1.650 -   number is the opposite.  If zero, do what YYDEFACT says.
   1.651 -   If YYTABLE_NINF, syntax error.  */
   1.652 -#define YYTABLE_NINF -82
   1.653 -static const short int yytable[] =
   1.654 -{
   1.655 -      46,    47,     3,    49,    79,    80,    52,   135,   136,    84,
   1.656 -     161,   162,   163,   158,   119,    85,   127,    43,   168,   147,
   1.657 -     170,   111,   114,    48,   124,   125,   124,   125,   133,   134,
   1.658 -     176,    81,    82,    53,   139,    55,    56,   140,   141,    57,
   1.659 -      54,   145,   -28,    88,    58,   -28,   -28,   -28,   -28,   -28,
   1.660 -     -28,   -28,   -28,   -28,    89,    50,   -28,   -28,    90,    91,
   1.661 -     -28,    92,    93,    94,    95,    96,    97,   165,    98,   121,
   1.662 -     164,   129,   166,    99,     6,     7,     8,     9,    10,    11,
   1.663 -      12,    13,    44,    45,    14,    15,   155,   142,    55,    56,
   1.664 -       7,     8,    57,    10,    11,    12,    13,    58,    51,    14,
   1.665 -      15,    24,   152,   -30,    88,   172,   -30,   -30,   -30,   -30,
   1.666 -     -30,   -30,   -30,   -30,   -30,    89,    24,   -30,   -30,    90,
   1.667 -      91,   -30,    92,    93,    94,    95,    96,    97,    61,    98,
   1.668 -      55,    56,   -81,    88,    99,   -81,   -81,   -81,   -81,   -81,
   1.669 -     -81,   -81,   -81,   -81,    81,    82,   -81,   -81,    90,    91,
   1.670 -     -81,   -81,   -81,   -81,   -81,   -81,   132,    62,    98,    81,
   1.671 -      82,   115,   118,   123,   126,   117,   122,    63,   130,    72,
   1.672 -      -2,     4,   182,     5,     6,     7,     8,     9,    10,    11,
   1.673 -      12,    13,    74,    75,    14,    15,    16,   146,    17,    18,
   1.674 -      19,    20,    21,    22,    76,    88,    23,   149,    77,   -49,
   1.675 -     -49,    24,   -49,   -49,   -49,   -49,    89,    78,   -49,   -49,
   1.676 -      90,    91,   106,   107,   108,   109,    72,    81,    82,    86,
   1.677 -      98,    87,   131,    88,   137,   110,   -72,   -72,   -72,   -72,
   1.678 -     -72,   -72,   -72,   -72,   138,   151,   -72,   -72,    90,    91,
   1.679 -     156,    81,    82,   157,    81,    82,   150,   154,    98,   171,
   1.680 -      81,    82,    82,   123,   158,   160,   167,   169,   173,   174,
   1.681 -     175,   113,   179,   180,   177,   181,    65,   153,     0,    83,
   1.682 -       0,     0,     0,     0,     0,    71
   1.683 -};
   1.684 -
   1.685 -static const short int yycheck[] =
   1.686 -{
   1.687 -       5,     6,     0,     8,    57,    58,    11,    84,    85,    28,
   1.688 -     144,   145,   146,    14,    68,    34,    70,    31,   152,    96,
   1.689 -     154,    66,    66,    31,    69,    69,    71,    71,    81,    82,
   1.690 -     164,    32,    33,    26,    25,    26,    27,    90,    91,    30,
   1.691 -      26,    94,     0,     1,    35,     3,     4,     5,     6,     7,
   1.692 -       8,     9,    10,    11,    12,    31,    14,    15,    16,    17,
   1.693 -      18,    19,    20,    21,    22,    23,    24,    26,    26,    68,
   1.694 -     147,    70,    31,    31,     4,     5,     6,     7,     8,     9,
   1.695 -      10,    11,    26,    27,    14,    15,   139,    92,    26,    27,
   1.696 -       5,     6,    30,     8,     9,    10,    11,    35,    31,    14,
   1.697 -      15,    31,   107,     0,     1,   158,     3,     4,     5,     6,
   1.698 -       7,     8,     9,    10,    11,    12,    31,    14,    15,    16,
   1.699 -      17,    18,    19,    20,    21,    22,    23,    24,    31,    26,
   1.700 -      26,    27,     0,     1,    31,     3,     4,     5,     6,     7,
   1.701 -       8,     9,    10,    11,    32,    33,    14,    15,    16,    17,
   1.702 -      18,    19,    20,    21,    22,    23,    29,     1,    26,    32,
   1.703 -      33,    67,    68,    31,    70,    67,    68,     1,    70,    31,
   1.704 -       0,     1,   177,     3,     4,     5,     6,     7,     8,     9,
   1.705 -      10,    11,    31,    31,    14,    15,    16,    26,    18,    19,
   1.706 -      20,    21,    22,    23,    31,     1,    26,     1,    31,     5,
   1.707 -       6,    31,     8,     9,    10,    11,    12,    31,    14,    15,
   1.708 -      16,    17,    18,    19,    20,    21,    31,    32,    33,    31,
   1.709 -      26,    31,    31,     1,    31,    31,     4,     5,     6,     7,
   1.710 -       8,     9,    10,    11,    31,    31,    14,    15,    16,    17,
   1.711 -      31,    32,    33,    31,    32,    33,    13,    26,    26,    31,
   1.712 -      32,    33,    33,    31,    14,    31,    31,    31,    31,    31,
   1.713 -      31,    66,    31,    31,    34,    31,    29,   108,    -1,    59,
   1.714 -      -1,    -1,    -1,    -1,    -1,    40
   1.715 -};
   1.716 -
   1.717 -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   1.718 -   symbol of state STATE-NUM.  */
   1.719 -static const unsigned char yystos[] =
   1.720 -{
   1.721 -       0,    37,    38,     0,     1,     3,     4,     5,     6,     7,
   1.722 -       8,     9,    10,    11,    14,    15,    16,    18,    19,    20,
   1.723 -      21,    22,    23,    26,    31,    39,    40,    42,    43,    44,
   1.724 -      45,    51,    52,    54,    58,    60,    62,    63,    65,    67,
   1.725 -      68,    69,    76,    31,    26,    27,    75,    75,    31,    75,
   1.726 -      31,    31,    75,    26,    26,    26,    27,    30,    35,    79,
   1.727 -      80,    31,     1,     1,    46,    46,    55,    57,    61,    72,
   1.728 -      66,    72,    31,    77,    31,    31,    31,    31,    31,    79,
   1.729 -      79,    32,    33,    77,    28,    34,    31,    31,     1,    12,
   1.730 -      16,    17,    19,    20,    21,    22,    23,    24,    26,    31,
   1.731 -      41,    47,    48,    70,    71,    73,    18,    19,    20,    21,
   1.732 -      31,    41,    56,    71,    73,    40,    53,    76,    40,    54,
   1.733 -      59,    65,    76,    31,    41,    73,    40,    54,    64,    65,
   1.734 -      76,    31,    29,    79,    79,    80,    80,    31,    31,    25,
   1.735 -      79,    79,    75,    74,    75,    79,    26,    80,    49,     1,
   1.736 -      13,    31,    75,    74,    26,    79,    31,    31,    14,    78,
   1.737 -      31,    78,    78,    78,    80,    26,    31,    31,    78,    31,
   1.738 -      78,    31,    79,    31,    31,    31,    78,    34,    50,    31,
   1.739 -      31,    31,    75
   1.740 -};
   1.741 -
   1.742 -#define yyerrok		(yyerrstatus = 0)
   1.743 -#define yyclearin	(yychar = YYEMPTY)
   1.744 -#define YYEMPTY		(-2)
   1.745 -#define YYEOF		0
   1.746 -
   1.747 -#define YYACCEPT	goto yyacceptlab
   1.748 -#define YYABORT		goto yyabortlab
   1.749 -#define YYERROR		goto yyerrorlab
   1.750 -
   1.751 -
   1.752 -/* Like YYERROR except do call yyerror.  This remains here temporarily
   1.753 -   to ease the transition to the new meaning of YYERROR, for GCC.
   1.754 -   Once GCC version 2 has supplanted version 1, this can go.  */
   1.755 -
   1.756 -#define YYFAIL		goto yyerrlab
   1.757 -
   1.758 -#define YYRECOVERING()  (!!yyerrstatus)
   1.759 -
   1.760 -#define YYBACKUP(Token, Value)					\
   1.761 -do								\
   1.762 -  if (yychar == YYEMPTY && yylen == 1)				\
   1.763 -    {								\
   1.764 -      yychar = (Token);						\
   1.765 -      yylval = (Value);						\
   1.766 -      yytoken = YYTRANSLATE (yychar);				\
   1.767 -      YYPOPSTACK;						\
   1.768 -      goto yybackup;						\
   1.769 -    }								\
   1.770 -  else								\
   1.771 -    {								\
   1.772 -      yyerror (YY_("syntax error: cannot back up")); \
   1.773 -      YYERROR;							\
   1.774 -    }								\
   1.775 -while (0)
   1.776 -
   1.777 -
   1.778 -#define YYTERROR	1
   1.779 -#define YYERRCODE	256
   1.780 -
   1.781 -
   1.782 -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   1.783 -   If N is 0, then set CURRENT to the empty location which ends
   1.784 -   the previous symbol: RHS[0] (always defined).  */
   1.785 -
   1.786 -#define YYRHSLOC(Rhs, K) ((Rhs)[K])
   1.787 -#ifndef YYLLOC_DEFAULT
   1.788 -# define YYLLOC_DEFAULT(Current, Rhs, N)				\
   1.789 -    do									\
   1.790 -      if (N)								\
   1.791 -	{								\
   1.792 -	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
   1.793 -	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
   1.794 -	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
   1.795 -	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
   1.796 -	}								\
   1.797 -      else								\
   1.798 -	{								\
   1.799 -	  (Current).first_line   = (Current).last_line   =		\
   1.800 -	    YYRHSLOC (Rhs, 0).last_line;				\
   1.801 -	  (Current).first_column = (Current).last_column =		\
   1.802 -	    YYRHSLOC (Rhs, 0).last_column;				\
   1.803 -	}								\
   1.804 -    while (0)
   1.805 -#endif
   1.806 -
   1.807 -
   1.808 -/* YY_LOCATION_PRINT -- Print the location on the stream.
   1.809 -   This macro was not mandated originally: define only if we know
   1.810 -   we won't break user code: when these are the locations we know.  */
   1.811 -
   1.812 -#ifndef YY_LOCATION_PRINT
   1.813 -# if YYLTYPE_IS_TRIVIAL
   1.814 -#  define YY_LOCATION_PRINT(File, Loc)			\
   1.815 -     fprintf (File, "%d.%d-%d.%d",			\
   1.816 -              (Loc).first_line, (Loc).first_column,	\
   1.817 -              (Loc).last_line,  (Loc).last_column)
   1.818 -# else
   1.819 -#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
   1.820 -# endif
   1.821 -#endif
   1.822 -
   1.823 -
   1.824 -/* YYLEX -- calling `yylex' with the right arguments.  */
   1.825 -
   1.826 -#ifdef YYLEX_PARAM
   1.827 -# define YYLEX yylex (YYLEX_PARAM)
   1.828 -#else
   1.829 -# define YYLEX yylex ()
   1.830 -#endif
   1.831 -
   1.832 -/* Enable debugging if requested.  */
   1.833 -#if YYDEBUG
   1.834 -
   1.835 -# ifndef YYFPRINTF
   1.836 -#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
   1.837 -#  define YYFPRINTF fprintf
   1.838 -# endif
   1.839 -
   1.840 -# define YYDPRINTF(Args)			\
   1.841 -do {						\
   1.842 -  if (yydebug)					\
   1.843 -    YYFPRINTF Args;				\
   1.844 -} while (0)
   1.845 -
   1.846 -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
   1.847 -do {								\
   1.848 -  if (yydebug)							\
   1.849 -    {								\
   1.850 -      YYFPRINTF (stderr, "%s ", Title);				\
   1.851 -      yysymprint (stderr,					\
   1.852 -                  Type, Value);	\
   1.853 -      YYFPRINTF (stderr, "\n");					\
   1.854 -    }								\
   1.855 -} while (0)
   1.856 -
   1.857 -/*------------------------------------------------------------------.
   1.858 -| yy_stack_print -- Print the state stack from its BOTTOM up to its |
   1.859 -| TOP (included).                                                   |
   1.860 -`------------------------------------------------------------------*/
   1.861 -
   1.862 -#if defined (__STDC__) || defined (__cplusplus)
   1.863 -static void
   1.864 -yy_stack_print (short int *bottom, short int *top)
   1.865 -#else
   1.866 -static void
   1.867 -yy_stack_print (bottom, top)
   1.868 -    short int *bottom;
   1.869 -    short int *top;
   1.870 -#endif
   1.871 -{
   1.872 -  YYFPRINTF (stderr, "Stack now");
   1.873 -  for (/* Nothing. */; bottom <= top; ++bottom)
   1.874 -    YYFPRINTF (stderr, " %d", *bottom);
   1.875 -  YYFPRINTF (stderr, "\n");
   1.876 -}
   1.877 -
   1.878 -# define YY_STACK_PRINT(Bottom, Top)				\
   1.879 -do {								\
   1.880 -  if (yydebug)							\
   1.881 -    yy_stack_print ((Bottom), (Top));				\
   1.882 -} while (0)
   1.883 -
   1.884 -
   1.885 -/*------------------------------------------------.
   1.886 -| Report that the YYRULE is going to be reduced.  |
   1.887 -`------------------------------------------------*/
   1.888 -
   1.889 -#if defined (__STDC__) || defined (__cplusplus)
   1.890 -static void
   1.891 -yy_reduce_print (int yyrule)
   1.892 -#else
   1.893 -static void
   1.894 -yy_reduce_print (yyrule)
   1.895 -    int yyrule;
   1.896 -#endif
   1.897 -{
   1.898 -  int yyi;
   1.899 -  unsigned long int yylno = yyrline[yyrule];
   1.900 -  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
   1.901 -             yyrule - 1, yylno);
   1.902 -  /* Print the symbols being reduced, and their result.  */
   1.903 -  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
   1.904 -    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
   1.905 -  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
   1.906 -}
   1.907 -
   1.908 -# define YY_REDUCE_PRINT(Rule)		\
   1.909 -do {					\
   1.910 -  if (yydebug)				\
   1.911 -    yy_reduce_print (Rule);		\
   1.912 -} while (0)
   1.913 -
   1.914 -/* Nonzero means print parse trace.  It is left uninitialized so that
   1.915 -   multiple parsers can coexist.  */
   1.916 -int yydebug;
   1.917 -#else /* !YYDEBUG */
   1.918 -# define YYDPRINTF(Args)
   1.919 -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
   1.920 -# define YY_STACK_PRINT(Bottom, Top)
   1.921 -# define YY_REDUCE_PRINT(Rule)
   1.922 -#endif /* !YYDEBUG */
   1.923 -
   1.924 -
   1.925 -/* YYINITDEPTH -- initial size of the parser's stacks.  */
   1.926 -#ifndef	YYINITDEPTH
   1.927 -# define YYINITDEPTH 200
   1.928 -#endif
   1.929 -
   1.930 -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   1.931 -   if the built-in stack extension method is used).
   1.932 -
   1.933 -   Do not make this value too large; the results are undefined if
   1.934 -   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   1.935 -   evaluated with infinite-precision integer arithmetic.  */
   1.936 -
   1.937 -#ifndef YYMAXDEPTH
   1.938 -# define YYMAXDEPTH 10000
   1.939 -#endif
   1.940 -
   1.941 -
   1.942 -
   1.943 -#if YYERROR_VERBOSE
   1.944 -
   1.945 -# ifndef yystrlen
   1.946 -#  if defined (__GLIBC__) && defined (_STRING_H)
   1.947 -#   define yystrlen strlen
   1.948 -#  else
   1.949 -/* Return the length of YYSTR.  */
   1.950 -static YYSIZE_T
   1.951 -#   if defined (__STDC__) || defined (__cplusplus)
   1.952 -yystrlen (const char *yystr)
   1.953 -#   else
   1.954 -yystrlen (yystr)
   1.955 -     const char *yystr;
   1.956 -#   endif
   1.957 -{
   1.958 -  const char *yys = yystr;
   1.959 -
   1.960 -  while (*yys++ != '\0')
   1.961 -    continue;
   1.962 -
   1.963 -  return yys - yystr - 1;
   1.964 -}
   1.965 -#  endif
   1.966 -# endif
   1.967 -
   1.968 -# ifndef yystpcpy
   1.969 -#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
   1.970 -#   define yystpcpy stpcpy
   1.971 -#  else
   1.972 -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   1.973 -   YYDEST.  */
   1.974 -static char *
   1.975 -#   if defined (__STDC__) || defined (__cplusplus)
   1.976 -yystpcpy (char *yydest, const char *yysrc)
   1.977 -#   else
   1.978 -yystpcpy (yydest, yysrc)
   1.979 -     char *yydest;
   1.980 -     const char *yysrc;
   1.981 -#   endif
   1.982 -{
   1.983 -  char *yyd = yydest;
   1.984 -  const char *yys = yysrc;
   1.985 -
   1.986 -  while ((*yyd++ = *yys++) != '\0')
   1.987 -    continue;
   1.988 -
   1.989 -  return yyd - 1;
   1.990 -}
   1.991 -#  endif
   1.992 -# endif
   1.993 -
   1.994 -# ifndef yytnamerr
   1.995 -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   1.996 -   quotes and backslashes, so that it's suitable for yyerror.  The
   1.997 -   heuristic is that double-quoting is unnecessary unless the string
   1.998 -   contains an apostrophe, a comma, or backslash (other than
   1.999 -   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
  1.1000 -   null, do not copy; instead, return the length of what the result
  1.1001 -   would have been.  */
  1.1002 -static YYSIZE_T
  1.1003 -yytnamerr (char *yyres, const char *yystr)
  1.1004 -{
  1.1005 -  if (*yystr == '"')
  1.1006 -    {
  1.1007 -      size_t yyn = 0;
  1.1008 -      char const *yyp = yystr;
  1.1009 -
  1.1010 -      for (;;)
  1.1011 -	switch (*++yyp)
  1.1012 -	  {
  1.1013 -	  case '\'':
  1.1014 -	  case ',':
  1.1015 -	    goto do_not_strip_quotes;
  1.1016 -
  1.1017 -	  case '\\':
  1.1018 -	    if (*++yyp != '\\')
  1.1019 -	      goto do_not_strip_quotes;
  1.1020 -	    /* Fall through.  */
  1.1021 -	  default:
  1.1022 -	    if (yyres)
  1.1023 -	      yyres[yyn] = *yyp;
  1.1024 -	    yyn++;
  1.1025 -	    break;
  1.1026 -
  1.1027 -	  case '"':
  1.1028 -	    if (yyres)
  1.1029 -	      yyres[yyn] = '\0';
  1.1030 -	    return yyn;
  1.1031 -	  }
  1.1032 -    do_not_strip_quotes: ;
  1.1033 -    }
  1.1034 -
  1.1035 -  if (! yyres)
  1.1036 -    return yystrlen (yystr);
  1.1037 -
  1.1038 -  return yystpcpy (yyres, yystr) - yyres;
  1.1039 -}
  1.1040 -# endif
  1.1041 -
  1.1042 -#endif /* YYERROR_VERBOSE */
  1.1043 -
  1.1044 -
  1.1045 -
  1.1046 -#if YYDEBUG
  1.1047 -/*--------------------------------.
  1.1048 -| Print this symbol on YYOUTPUT.  |
  1.1049 -`--------------------------------*/
  1.1050 -
  1.1051 -#if defined (__STDC__) || defined (__cplusplus)
  1.1052 -static void
  1.1053 -yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
  1.1054 -#else
  1.1055 -static void
  1.1056 -yysymprint (yyoutput, yytype, yyvaluep)
  1.1057 -    FILE *yyoutput;
  1.1058 -    int yytype;
  1.1059 -    YYSTYPE *yyvaluep;
  1.1060 -#endif
  1.1061 -{
  1.1062 -  /* Pacify ``unused variable'' warnings.  */
  1.1063 -  (void) yyvaluep;
  1.1064 -
  1.1065 -  if (yytype < YYNTOKENS)
  1.1066 -    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  1.1067 -  else
  1.1068 -    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
  1.1069 -
  1.1070 -
  1.1071 -# ifdef YYPRINT
  1.1072 -  if (yytype < YYNTOKENS)
  1.1073 -    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
  1.1074 -# endif
  1.1075 -  switch (yytype)
  1.1076 -    {
  1.1077 -      default:
  1.1078 -        break;
  1.1079 -    }
  1.1080 -  YYFPRINTF (yyoutput, ")");
  1.1081 -}
  1.1082 -
  1.1083 -#endif /* ! YYDEBUG */
  1.1084 -/*-----------------------------------------------.
  1.1085 -| Release the memory associated to this symbol.  |
  1.1086 -`-----------------------------------------------*/
  1.1087 -
  1.1088 -#if defined (__STDC__) || defined (__cplusplus)
  1.1089 -static void
  1.1090 -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
  1.1091 -#else
  1.1092 -static void
  1.1093 -yydestruct (yymsg, yytype, yyvaluep)
  1.1094 -    const char *yymsg;
  1.1095 -    int yytype;
  1.1096 -    YYSTYPE *yyvaluep;
  1.1097 -#endif
  1.1098 -{
  1.1099 -  /* Pacify ``unused variable'' warnings.  */
  1.1100 -  (void) yyvaluep;
  1.1101 -
  1.1102 -  if (!yymsg)
  1.1103 -    yymsg = "Deleting";
  1.1104 -  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
  1.1105 -
  1.1106 -  switch (yytype)
  1.1107 -    {
  1.1108 -      case 52: /* "choice_entry" */
  1.1109 -
  1.1110 -        {
  1.1111 -	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  1.1112 -		(yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
  1.1113 -	if (current_menu == (yyvaluep->menu))
  1.1114 -		menu_end_menu();
  1.1115 -};
  1.1116 -
  1.1117 -        break;
  1.1118 -      case 58: /* "if_entry" */
  1.1119 -
  1.1120 -        {
  1.1121 -	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  1.1122 -		(yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
  1.1123 -	if (current_menu == (yyvaluep->menu))
  1.1124 -		menu_end_menu();
  1.1125 -};
  1.1126 -
  1.1127 -        break;
  1.1128 -      case 63: /* "menu_entry" */
  1.1129 -
  1.1130 -        {
  1.1131 -	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  1.1132 -		(yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
  1.1133 -	if (current_menu == (yyvaluep->menu))
  1.1134 -		menu_end_menu();
  1.1135 -};
  1.1136 -
  1.1137 -        break;
  1.1138 -
  1.1139 -      default:
  1.1140 -        break;
  1.1141 -    }
  1.1142 -}
  1.1143 -
  1.1144 -
  1.1145 -/* Prevent warnings from -Wmissing-prototypes.  */
  1.1146 -
  1.1147 -#ifdef YYPARSE_PARAM
  1.1148 -# if defined (__STDC__) || defined (__cplusplus)
  1.1149 -int yyparse (void *YYPARSE_PARAM);
  1.1150 -# else
  1.1151 -int yyparse ();
  1.1152 -# endif
  1.1153 -#else /* ! YYPARSE_PARAM */
  1.1154 -#if defined (__STDC__) || defined (__cplusplus)
  1.1155 -int yyparse (void);
  1.1156 -#else
  1.1157 -int yyparse ();
  1.1158 -#endif
  1.1159 -#endif /* ! YYPARSE_PARAM */
  1.1160 -
  1.1161 -
  1.1162 -
  1.1163 -/* The look-ahead symbol.  */
  1.1164 -int yychar;
  1.1165 -
  1.1166 -/* The semantic value of the look-ahead symbol.  */
  1.1167 -YYSTYPE yylval;
  1.1168 -
  1.1169 -/* Number of syntax errors so far.  */
  1.1170 -int yynerrs;
  1.1171 -
  1.1172 -
  1.1173 -
  1.1174 -/*----------.
  1.1175 -| yyparse.  |
  1.1176 -`----------*/
  1.1177 -
  1.1178 -#ifdef YYPARSE_PARAM
  1.1179 -# if defined (__STDC__) || defined (__cplusplus)
  1.1180 -int yyparse (void *YYPARSE_PARAM)
  1.1181 -# else
  1.1182 -int yyparse (YYPARSE_PARAM)
  1.1183 -  void *YYPARSE_PARAM;
  1.1184 -# endif
  1.1185 -#else /* ! YYPARSE_PARAM */
  1.1186 -#if defined (__STDC__) || defined (__cplusplus)
  1.1187 -int
  1.1188 -yyparse (void)
  1.1189 -#else
  1.1190 -int
  1.1191 -yyparse ()
  1.1192 -    ;
  1.1193 -#endif
  1.1194 -#endif
  1.1195 -{
  1.1196 -  
  1.1197 -  int yystate;
  1.1198 -  int yyn;
  1.1199 -  int yyresult;
  1.1200 -  /* Number of tokens to shift before error messages enabled.  */
  1.1201 -  int yyerrstatus;
  1.1202 -  /* Look-ahead token as an internal (translated) token number.  */
  1.1203 -  int yytoken = 0;
  1.1204 -
  1.1205 -  /* Three stacks and their tools:
  1.1206 -     `yyss': related to states,
  1.1207 -     `yyvs': related to semantic values,
  1.1208 -     `yyls': related to locations.
  1.1209 -
  1.1210 -     Refer to the stacks thru separate pointers, to allow yyoverflow
  1.1211 -     to reallocate them elsewhere.  */
  1.1212 -
  1.1213 -  /* The state stack.  */
  1.1214 -  short int yyssa[YYINITDEPTH];
  1.1215 -  short int *yyss = yyssa;
  1.1216 -  short int *yyssp;
  1.1217 -
  1.1218 -  /* The semantic value stack.  */
  1.1219 -  YYSTYPE yyvsa[YYINITDEPTH];
  1.1220 -  YYSTYPE *yyvs = yyvsa;
  1.1221 -  YYSTYPE *yyvsp;
  1.1222 -
  1.1223 -
  1.1224 -
  1.1225 -#define YYPOPSTACK   (yyvsp--, yyssp--)
  1.1226 -
  1.1227 -  YYSIZE_T yystacksize = YYINITDEPTH;
  1.1228 -
  1.1229 -  /* The variables used to return semantic value and location from the
  1.1230 -     action routines.  */
  1.1231 -  YYSTYPE yyval;
  1.1232 -
  1.1233 -
  1.1234 -  /* When reducing, the number of symbols on the RHS of the reduced
  1.1235 -     rule.  */
  1.1236 -  int yylen;
  1.1237 -
  1.1238 -  YYDPRINTF ((stderr, "Starting parse\n"));
  1.1239 -
  1.1240 -  yystate = 0;
  1.1241 -  yyerrstatus = 0;
  1.1242 -  yynerrs = 0;
  1.1243 -  yychar = YYEMPTY;		/* Cause a token to be read.  */
  1.1244 -
  1.1245 -  /* Initialize stack pointers.
  1.1246 -     Waste one element of value and location stack
  1.1247 -     so that they stay on the same level as the state stack.
  1.1248 -     The wasted elements are never initialized.  */
  1.1249 -
  1.1250 -  yyssp = yyss;
  1.1251 -  yyvsp = yyvs;
  1.1252 -
  1.1253 -  goto yysetstate;
  1.1254 -
  1.1255 -/*------------------------------------------------------------.
  1.1256 -| yynewstate -- Push a new state, which is found in yystate.  |
  1.1257 -`------------------------------------------------------------*/
  1.1258 - yynewstate:
  1.1259 -  /* In all cases, when you get here, the value and location stacks
  1.1260 -     have just been pushed. so pushing a state here evens the stacks.
  1.1261 -     */
  1.1262 -  yyssp++;
  1.1263 -
  1.1264 - yysetstate:
  1.1265 -  *yyssp = yystate;
  1.1266 -
  1.1267 -  if (yyss + yystacksize - 1 <= yyssp)
  1.1268 -    {
  1.1269 -      /* Get the current used size of the three stacks, in elements.  */
  1.1270 -      YYSIZE_T yysize = yyssp - yyss + 1;
  1.1271 -
  1.1272 -#ifdef yyoverflow
  1.1273 -      {
  1.1274 -	/* Give user a chance to reallocate the stack. Use copies of
  1.1275 -	   these so that the &'s don't force the real ones into
  1.1276 -	   memory.  */
  1.1277 -	YYSTYPE *yyvs1 = yyvs;
  1.1278 -	short int *yyss1 = yyss;
  1.1279 -
  1.1280 -
  1.1281 -	/* Each stack pointer address is followed by the size of the
  1.1282 -	   data in use in that stack, in bytes.  This used to be a
  1.1283 -	   conditional around just the two extra args, but that might
  1.1284 -	   be undefined if yyoverflow is a macro.  */
  1.1285 -	yyoverflow (YY_("memory exhausted"),
  1.1286 -		    &yyss1, yysize * sizeof (*yyssp),
  1.1287 -		    &yyvs1, yysize * sizeof (*yyvsp),
  1.1288 -
  1.1289 -		    &yystacksize);
  1.1290 -
  1.1291 -	yyss = yyss1;
  1.1292 -	yyvs = yyvs1;
  1.1293 -      }
  1.1294 -#else /* no yyoverflow */
  1.1295 -# ifndef YYSTACK_RELOCATE
  1.1296 -      goto yyexhaustedlab;
  1.1297 -# else
  1.1298 -      /* Extend the stack our own way.  */
  1.1299 -      if (YYMAXDEPTH <= yystacksize)
  1.1300 -	goto yyexhaustedlab;
  1.1301 -      yystacksize *= 2;
  1.1302 -      if (YYMAXDEPTH < yystacksize)
  1.1303 -	yystacksize = YYMAXDEPTH;
  1.1304 -
  1.1305 -      {
  1.1306 -	short int *yyss1 = yyss;
  1.1307 -	union yyalloc *yyptr =
  1.1308 -	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  1.1309 -	if (! yyptr)
  1.1310 -	  goto yyexhaustedlab;
  1.1311 -	YYSTACK_RELOCATE (yyss);
  1.1312 -	YYSTACK_RELOCATE (yyvs);
  1.1313 -
  1.1314 -#  undef YYSTACK_RELOCATE
  1.1315 -	if (yyss1 != yyssa)
  1.1316 -	  YYSTACK_FREE (yyss1);
  1.1317 -      }
  1.1318 -# endif
  1.1319 -#endif /* no yyoverflow */
  1.1320 -
  1.1321 -      yyssp = yyss + yysize - 1;
  1.1322 -      yyvsp = yyvs + yysize - 1;
  1.1323 -
  1.1324 -
  1.1325 -      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
  1.1326 -		  (unsigned long int) yystacksize));
  1.1327 -
  1.1328 -      if (yyss + yystacksize - 1 <= yyssp)
  1.1329 -	YYABORT;
  1.1330 -    }
  1.1331 -
  1.1332 -  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  1.1333 -
  1.1334 -  goto yybackup;
  1.1335 -
  1.1336 -/*-----------.
  1.1337 -| yybackup.  |
  1.1338 -`-----------*/
  1.1339 -yybackup:
  1.1340 -
  1.1341 -/* Do appropriate processing given the current state.  */
  1.1342 -/* Read a look-ahead token if we need one and don't already have one.  */
  1.1343 -/* yyresume: */
  1.1344 -
  1.1345 -  /* First try to decide what to do without reference to look-ahead token.  */
  1.1346 -
  1.1347 -  yyn = yypact[yystate];
  1.1348 -  if (yyn == YYPACT_NINF)
  1.1349 -    goto yydefault;
  1.1350 -
  1.1351 -  /* Not known => get a look-ahead token if don't already have one.  */
  1.1352 -
  1.1353 -  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
  1.1354 -  if (yychar == YYEMPTY)
  1.1355 -    {
  1.1356 -      YYDPRINTF ((stderr, "Reading a token: "));
  1.1357 -      yychar = YYLEX;
  1.1358 -    }
  1.1359 -
  1.1360 -  if (yychar <= YYEOF)
  1.1361 -    {
  1.1362 -      yychar = yytoken = YYEOF;
  1.1363 -      YYDPRINTF ((stderr, "Now at end of input.\n"));
  1.1364 -    }
  1.1365 -  else
  1.1366 -    {
  1.1367 -      yytoken = YYTRANSLATE (yychar);
  1.1368 -      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
  1.1369 -    }
  1.1370 -
  1.1371 -  /* If the proper action on seeing token YYTOKEN is to reduce or to
  1.1372 -     detect an error, take that action.  */
  1.1373 -  yyn += yytoken;
  1.1374 -  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  1.1375 -    goto yydefault;
  1.1376 -  yyn = yytable[yyn];
  1.1377 -  if (yyn <= 0)
  1.1378 -    {
  1.1379 -      if (yyn == 0 || yyn == YYTABLE_NINF)
  1.1380 -	goto yyerrlab;
  1.1381 -      yyn = -yyn;
  1.1382 -      goto yyreduce;
  1.1383 -    }
  1.1384 -
  1.1385 -  if (yyn == YYFINAL)
  1.1386 -    YYACCEPT;
  1.1387 -
  1.1388 -  /* Shift the look-ahead token.  */
  1.1389 -  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  1.1390 -
  1.1391 -  /* Discard the token being shifted unless it is eof.  */
  1.1392 -  if (yychar != YYEOF)
  1.1393 -    yychar = YYEMPTY;
  1.1394 -
  1.1395 -  *++yyvsp = yylval;
  1.1396 -
  1.1397 -
  1.1398 -  /* Count tokens shifted since error; after three, turn off error
  1.1399 -     status.  */
  1.1400 -  if (yyerrstatus)
  1.1401 -    yyerrstatus--;
  1.1402 -
  1.1403 -  yystate = yyn;
  1.1404 -  goto yynewstate;
  1.1405 -
  1.1406 -
  1.1407 -/*-----------------------------------------------------------.
  1.1408 -| yydefault -- do the default action for the current state.  |
  1.1409 -`-----------------------------------------------------------*/
  1.1410 -yydefault:
  1.1411 -  yyn = yydefact[yystate];
  1.1412 -  if (yyn == 0)
  1.1413 -    goto yyerrlab;
  1.1414 -  goto yyreduce;
  1.1415 -
  1.1416 -
  1.1417 -/*-----------------------------.
  1.1418 -| yyreduce -- Do a reduction.  |
  1.1419 -`-----------------------------*/
  1.1420 -yyreduce:
  1.1421 -  /* yyn is the number of a rule to reduce with.  */
  1.1422 -  yylen = yyr2[yyn];
  1.1423 -
  1.1424 -  /* If YYLEN is nonzero, implement the default value of the action:
  1.1425 -     `$$ = $1'.
  1.1426 -
  1.1427 -     Otherwise, the following line sets YYVAL to garbage.
  1.1428 -     This behavior is undocumented and Bison
  1.1429 -     users should not rely upon it.  Assigning to YYVAL
  1.1430 -     unconditionally makes the parser a bit smaller, and it avoids a
  1.1431 -     GCC warning that YYVAL may be used uninitialized.  */
  1.1432 -  yyval = yyvsp[1-yylen];
  1.1433 -
  1.1434 -
  1.1435 -  YY_REDUCE_PRINT (yyn);
  1.1436 -  switch (yyn)
  1.1437 -    {
  1.1438 -        case 8:
  1.1439 -
  1.1440 -    { zconf_error("unexpected end statement"); ;}
  1.1441 -    break;
  1.1442 -
  1.1443 -  case 9:
  1.1444 -
  1.1445 -    { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); ;}
  1.1446 -    break;
  1.1447 -
  1.1448 -  case 10:
  1.1449 -
  1.1450 -    {
  1.1451 -	zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name);
  1.1452 -;}
  1.1453 -    break;
  1.1454 -
  1.1455 -  case 11:
  1.1456 -
  1.1457 -    { zconf_error("invalid statement"); ;}
  1.1458 -    break;
  1.1459 -
  1.1460 -  case 25:
  1.1461 -
  1.1462 -    { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); ;}
  1.1463 -    break;
  1.1464 -
  1.1465 -  case 26:
  1.1466 -
  1.1467 -    { zconf_error("invalid option"); ;}
  1.1468 -    break;
  1.1469 -
  1.1470 -  case 27:
  1.1471 -
  1.1472 -    {
  1.1473 -	struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
  1.1474 -	sym->flags |= SYMBOL_OPTIONAL;
  1.1475 -	menu_add_entry(sym);
  1.1476 -	printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
  1.1477 -;}
  1.1478 -    break;
  1.1479 -
  1.1480 -  case 28:
  1.1481 -
  1.1482 -    {
  1.1483 -	menu_end_entry();
  1.1484 -	printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
  1.1485 -;}
  1.1486 -    break;
  1.1487 -
  1.1488 -  case 29:
  1.1489 -
  1.1490 -    {
  1.1491 -	struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
  1.1492 -	sym->flags |= SYMBOL_OPTIONAL;
  1.1493 -	menu_add_entry(sym);
  1.1494 -	printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
  1.1495 -;}
  1.1496 -    break;
  1.1497 -
  1.1498 -  case 30:
  1.1499 -
  1.1500 -    {
  1.1501 -	if (current_entry->prompt)
  1.1502 -		current_entry->prompt->type = P_MENU;
  1.1503 -	else
  1.1504 -		zconfprint("warning: menuconfig statement without prompt");
  1.1505 -	menu_end_entry();
  1.1506 -	printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
  1.1507 -;}
  1.1508 -    break;
  1.1509 -
  1.1510 -  case 38:
  1.1511 -
  1.1512 -    {
  1.1513 -	menu_set_type((yyvsp[-2].id)->stype);
  1.1514 -	printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
  1.1515 -		zconf_curname(), zconf_lineno(),
  1.1516 -		(yyvsp[-2].id)->stype);
  1.1517 -;}
  1.1518 -    break;
  1.1519 -
  1.1520 -  case 39:
  1.1521 -
  1.1522 -    {
  1.1523 -	menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
  1.1524 -	printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
  1.1525 -;}
  1.1526 -    break;
  1.1527 -
  1.1528 -  case 40:
  1.1529 -
  1.1530 -    {
  1.1531 -	menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
  1.1532 -	if ((yyvsp[-3].id)->stype != S_UNKNOWN)
  1.1533 -		menu_set_type((yyvsp[-3].id)->stype);
  1.1534 -	printd(DEBUG_PARSE, "%s:%d:default(%u)\n",
  1.1535 -		zconf_curname(), zconf_lineno(),
  1.1536 -		(yyvsp[-3].id)->stype);
  1.1537 -;}
  1.1538 -    break;
  1.1539 -
  1.1540 -  case 41:
  1.1541 -
  1.1542 -    {
  1.1543 -	menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
  1.1544 -	printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
  1.1545 -;}
  1.1546 -    break;
  1.1547 -
  1.1548 -  case 42:
  1.1549 -
  1.1550 -    {
  1.1551 -	menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr));
  1.1552 -	printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
  1.1553 -;}
  1.1554 -    break;
  1.1555 -
  1.1556 -  case 45:
  1.1557 -
  1.1558 -    {
  1.1559 -	struct kconf_id *id = kconf_id_lookup((yyvsp[-1].string), strlen((yyvsp[-1].string)));
  1.1560 -	if (id && id->flags & TF_OPTION)
  1.1561 -		menu_add_option(id->token, (yyvsp[0].string));
  1.1562 -	else
  1.1563 -		zconfprint("warning: ignoring unknown option %s", (yyvsp[-1].string));
  1.1564 -	free((yyvsp[-1].string));
  1.1565 -;}
  1.1566 -    break;
  1.1567 -
  1.1568 -  case 46:
  1.1569 -
  1.1570 -    { (yyval.string) = NULL; ;}
  1.1571 -    break;
  1.1572 -
  1.1573 -  case 47:
  1.1574 -
  1.1575 -    { (yyval.string) = (yyvsp[0].string); ;}
  1.1576 -    break;
  1.1577 -
  1.1578 -  case 48:
  1.1579 -
  1.1580 -    {
  1.1581 -	struct symbol *sym = sym_lookup(NULL, 0);
  1.1582 -	sym->flags |= SYMBOL_CHOICE;
  1.1583 -	menu_add_entry(sym);
  1.1584 -	menu_add_expr(P_CHOICE, NULL, NULL);
  1.1585 -	printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
  1.1586 -;}
  1.1587 -    break;
  1.1588 -
  1.1589 -  case 49:
  1.1590 -
  1.1591 -    {
  1.1592 -	(yyval.menu) = menu_add_menu();
  1.1593 -;}
  1.1594 -    break;
  1.1595 -
  1.1596 -  case 50:
  1.1597 -
  1.1598 -    {
  1.1599 -	if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) {
  1.1600 -		menu_end_menu();
  1.1601 -		printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
  1.1602 -	}
  1.1603 -;}
  1.1604 -    break;
  1.1605 -
  1.1606 -  case 58:
  1.1607 -
  1.1608 -    {
  1.1609 -	menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
  1.1610 -	printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
  1.1611 -;}
  1.1612 -    break;
  1.1613 -
  1.1614 -  case 59:
  1.1615 -
  1.1616 -    {
  1.1617 -	if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) {
  1.1618 -		menu_set_type((yyvsp[-2].id)->stype);
  1.1619 -		printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
  1.1620 -			zconf_curname(), zconf_lineno(),
  1.1621 -			(yyvsp[-2].id)->stype);
  1.1622 -	} else
  1.1623 -		YYERROR;
  1.1624 -;}
  1.1625 -    break;
  1.1626 -
  1.1627 -  case 60:
  1.1628 -
  1.1629 -    {
  1.1630 -	current_entry->sym->flags |= SYMBOL_OPTIONAL;
  1.1631 -	printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
  1.1632 -;}
  1.1633 -    break;
  1.1634 -
  1.1635 -  case 61:
  1.1636 -
  1.1637 -    {
  1.1638 -	if ((yyvsp[-3].id)->stype == S_UNKNOWN) {
  1.1639 -		menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
  1.1640 -		printd(DEBUG_PARSE, "%s:%d:default\n",
  1.1641 -			zconf_curname(), zconf_lineno());
  1.1642 -	} else
  1.1643 -		YYERROR;
  1.1644 -;}
  1.1645 -    break;
  1.1646 -
  1.1647 -  case 64:
  1.1648 -
  1.1649 -    {
  1.1650 -	printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
  1.1651 -	menu_add_entry(NULL);
  1.1652 -	menu_add_dep((yyvsp[-1].expr));
  1.1653 -	(yyval.menu) = menu_add_menu();
  1.1654 -;}
  1.1655 -    break;
  1.1656 -
  1.1657 -  case 65:
  1.1658 -
  1.1659 -    {
  1.1660 -	if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) {
  1.1661 -		menu_end_menu();
  1.1662 -		printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
  1.1663 -	}
  1.1664 -;}
  1.1665 -    break;
  1.1666 -
  1.1667 -  case 71:
  1.1668 -
  1.1669 -    {
  1.1670 -	menu_add_entry(NULL);
  1.1671 -	menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
  1.1672 -	printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
  1.1673 -;}
  1.1674 -    break;
  1.1675 -
  1.1676 -  case 72:
  1.1677 -
  1.1678 -    {
  1.1679 -	(yyval.menu) = menu_add_menu();
  1.1680 -;}
  1.1681 -    break;
  1.1682 -
  1.1683 -  case 73:
  1.1684 -
  1.1685 -    {
  1.1686 -	if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) {
  1.1687 -		menu_end_menu();
  1.1688 -		printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
  1.1689 -	}
  1.1690 -;}
  1.1691 -    break;
  1.1692 -
  1.1693 -  case 79:
  1.1694 -
  1.1695 -    {
  1.1696 -	printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
  1.1697 -	zconf_nextfile((yyvsp[-1].string));
  1.1698 -;}
  1.1699 -    break;
  1.1700 -
  1.1701 -  case 80:
  1.1702 -
  1.1703 -    {
  1.1704 -	menu_add_entry(NULL);
  1.1705 -	menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL);
  1.1706 -	printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
  1.1707 -;}
  1.1708 -    break;
  1.1709 -
  1.1710 -  case 81:
  1.1711 -
  1.1712 -    {
  1.1713 -	menu_end_entry();
  1.1714 -;}
  1.1715 -    break;
  1.1716 -
  1.1717 -  case 82:
  1.1718 -
  1.1719 -    {
  1.1720 -	printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
  1.1721 -	zconf_starthelp();
  1.1722 -;}
  1.1723 -    break;
  1.1724 -
  1.1725 -  case 83:
  1.1726 -
  1.1727 -    {
  1.1728 -	current_entry->sym->help = (yyvsp[0].string);
  1.1729 -;}
  1.1730 -    break;
  1.1731 -
  1.1732 -  case 88:
  1.1733 -
  1.1734 -    {
  1.1735 -	menu_add_dep((yyvsp[-1].expr));
  1.1736 -	printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
  1.1737 -;}
  1.1738 -    break;
  1.1739 -
  1.1740 -  case 89:
  1.1741 -
  1.1742 -    {
  1.1743 -	menu_add_dep((yyvsp[-1].expr));
  1.1744 -	printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
  1.1745 -;}
  1.1746 -    break;
  1.1747 -
  1.1748 -  case 90:
  1.1749 -
  1.1750 -    {
  1.1751 -	menu_add_dep((yyvsp[-1].expr));
  1.1752 -	printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
  1.1753 -;}
  1.1754 -    break;
  1.1755 -
  1.1756 -  case 92:
  1.1757 -
  1.1758 -    {
  1.1759 -	menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr));
  1.1760 -;}
  1.1761 -    break;
  1.1762 -
  1.1763 -  case 95:
  1.1764 -
  1.1765 -    { (yyval.id) = (yyvsp[-1].id); ;}
  1.1766 -    break;
  1.1767 -
  1.1768 -  case 96:
  1.1769 -
  1.1770 -    { (yyval.id) = (yyvsp[-1].id); ;}
  1.1771 -    break;
  1.1772 -
  1.1773 -  case 97:
  1.1774 -
  1.1775 -    { (yyval.id) = (yyvsp[-1].id); ;}
  1.1776 -    break;
  1.1777 -
  1.1778 -  case 100:
  1.1779 -
  1.1780 -    { (yyval.expr) = NULL; ;}
  1.1781 -    break;
  1.1782 -
  1.1783 -  case 101:
  1.1784 -
  1.1785 -    { (yyval.expr) = (yyvsp[0].expr); ;}
  1.1786 -    break;
  1.1787 -
  1.1788 -  case 102:
  1.1789 -
  1.1790 -    { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;}
  1.1791 -    break;
  1.1792 -
  1.1793 -  case 103:
  1.1794 -
  1.1795 -    { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
  1.1796 -    break;
  1.1797 -
  1.1798 -  case 104:
  1.1799 -
  1.1800 -    { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;}
  1.1801 -    break;
  1.1802 -
  1.1803 -  case 105:
  1.1804 -
  1.1805 -    { (yyval.expr) = (yyvsp[-1].expr); ;}
  1.1806 -    break;
  1.1807 -
  1.1808 -  case 106:
  1.1809 -
  1.1810 -    { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;}
  1.1811 -    break;
  1.1812 -
  1.1813 -  case 107:
  1.1814 -
  1.1815 -    { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
  1.1816 -    break;
  1.1817 -
  1.1818 -  case 108:
  1.1819 -
  1.1820 -    { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;}
  1.1821 -    break;
  1.1822 -
  1.1823 -  case 109:
  1.1824 -
  1.1825 -    { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;}
  1.1826 -    break;
  1.1827 -
  1.1828 -  case 110:
  1.1829 -
  1.1830 -    { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;}
  1.1831 -    break;
  1.1832 -
  1.1833 -
  1.1834 -      default: break;
  1.1835 -    }
  1.1836 -
  1.1837 -/* Line 1126 of yacc.c.  */
  1.1838 -
  1.1839 -
  1.1840 -  yyvsp -= yylen;
  1.1841 -  yyssp -= yylen;
  1.1842 -
  1.1843 -
  1.1844 -  YY_STACK_PRINT (yyss, yyssp);
  1.1845 -
  1.1846 -  *++yyvsp = yyval;
  1.1847 -
  1.1848 -
  1.1849 -  /* Now `shift' the result of the reduction.  Determine what state
  1.1850 -     that goes to, based on the state we popped back to and the rule
  1.1851 -     number reduced by.  */
  1.1852 -
  1.1853 -  yyn = yyr1[yyn];
  1.1854 -
  1.1855 -  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  1.1856 -  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  1.1857 -    yystate = yytable[yystate];
  1.1858 -  else
  1.1859 -    yystate = yydefgoto[yyn - YYNTOKENS];
  1.1860 -
  1.1861 -  goto yynewstate;
  1.1862 -
  1.1863 -
  1.1864 -/*------------------------------------.
  1.1865 -| yyerrlab -- here on detecting error |
  1.1866 -`------------------------------------*/
  1.1867 -yyerrlab:
  1.1868 -  /* If not already recovering from an error, report this error.  */
  1.1869 -  if (!yyerrstatus)
  1.1870 -    {
  1.1871 -      ++yynerrs;
  1.1872 -#if YYERROR_VERBOSE
  1.1873 -      yyn = yypact[yystate];
  1.1874 -
  1.1875 -      if (YYPACT_NINF < yyn && yyn < YYLAST)
  1.1876 -	{
  1.1877 -	  int yytype = YYTRANSLATE (yychar);
  1.1878 -	  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
  1.1879 -	  YYSIZE_T yysize = yysize0;
  1.1880 -	  YYSIZE_T yysize1;
  1.1881 -	  int yysize_overflow = 0;
  1.1882 -	  char *yymsg = 0;
  1.1883 -#	  define YYERROR_VERBOSE_ARGS_MAXIMUM 5
  1.1884 -	  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  1.1885 -	  int yyx;
  1.1886 -
  1.1887 -#if 0
  1.1888 -	  /* This is so xgettext sees the translatable formats that are
  1.1889 -	     constructed on the fly.  */
  1.1890 -	  YY_("syntax error, unexpected %s");
  1.1891 -	  YY_("syntax error, unexpected %s, expecting %s");
  1.1892 -	  YY_("syntax error, unexpected %s, expecting %s or %s");
  1.1893 -	  YY_("syntax error, unexpected %s, expecting %s or %s or %s");
  1.1894 -	  YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
  1.1895 -#endif
  1.1896 -	  char *yyfmt;
  1.1897 -	  char const *yyf;
  1.1898 -	  static char const yyunexpected[] = "syntax error, unexpected %s";
  1.1899 -	  static char const yyexpecting[] = ", expecting %s";
  1.1900 -	  static char const yyor[] = " or %s";
  1.1901 -	  char yyformat[sizeof yyunexpected
  1.1902 -			+ sizeof yyexpecting - 1
  1.1903 -			+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
  1.1904 -			   * (sizeof yyor - 1))];
  1.1905 -	  char const *yyprefix = yyexpecting;
  1.1906 -
  1.1907 -	  /* Start YYX at -YYN if negative to avoid negative indexes in
  1.1908 -	     YYCHECK.  */
  1.1909 -	  int yyxbegin = yyn < 0 ? -yyn : 0;
  1.1910 -
  1.1911 -	  /* Stay within bounds of both yycheck and yytname.  */
  1.1912 -	  int yychecklim = YYLAST - yyn;
  1.1913 -	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  1.1914 -	  int yycount = 1;
  1.1915 -
  1.1916 -	  yyarg[0] = yytname[yytype];
  1.1917 -	  yyfmt = yystpcpy (yyformat, yyunexpected);
  1.1918 -
  1.1919 -	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  1.1920 -	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
  1.1921 -	      {
  1.1922 -		if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  1.1923 -		  {
  1.1924 -		    yycount = 1;
  1.1925 -		    yysize = yysize0;
  1.1926 -		    yyformat[sizeof yyunexpected - 1] = '\0';
  1.1927 -		    break;
  1.1928 -		  }
  1.1929 -		yyarg[yycount++] = yytname[yyx];
  1.1930 -		yysize1 = yysize + yytnamerr (0, yytname[yyx]);
  1.1931 -		yysize_overflow |= yysize1 < yysize;
  1.1932 -		yysize = yysize1;
  1.1933 -		yyfmt = yystpcpy (yyfmt, yyprefix);
  1.1934 -		yyprefix = yyor;
  1.1935 -	      }
  1.1936 -
  1.1937 -	  yyf = YY_(yyformat);
  1.1938 -	  yysize1 = yysize + yystrlen (yyf);
  1.1939 -	  yysize_overflow |= yysize1 < yysize;
  1.1940 -	  yysize = yysize1;
  1.1941 -
  1.1942 -	  if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
  1.1943 -	    yymsg = (char *) YYSTACK_ALLOC (yysize);
  1.1944 -	  if (yymsg)
  1.1945 -	    {
  1.1946 -	      /* Avoid sprintf, as that infringes on the user's name space.
  1.1947 -		 Don't have undefined behavior even if the translation
  1.1948 -		 produced a string with the wrong number of "%s"s.  */
  1.1949 -	      char *yyp = yymsg;
  1.1950 -	      int yyi = 0;
  1.1951 -	      while ((*yyp = *yyf))
  1.1952 -		{
  1.1953 -		  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
  1.1954 -		    {
  1.1955 -		      yyp += yytnamerr (yyp, yyarg[yyi++]);
  1.1956 -		      yyf += 2;
  1.1957 -		    }
  1.1958 -		  else
  1.1959 -		    {
  1.1960 -		      yyp++;
  1.1961 -		      yyf++;
  1.1962 -		    }
  1.1963 -		}
  1.1964 -	      yyerror (yymsg);
  1.1965 -	      YYSTACK_FREE (yymsg);
  1.1966 -	    }
  1.1967 -	  else
  1.1968 -	    {
  1.1969 -	      yyerror (YY_("syntax error"));
  1.1970 -	      goto yyexhaustedlab;
  1.1971 -	    }
  1.1972 -	}
  1.1973 -      else
  1.1974 -#endif /* YYERROR_VERBOSE */
  1.1975 -	yyerror (YY_("syntax error"));
  1.1976 -    }
  1.1977 -
  1.1978 -
  1.1979 -
  1.1980 -  if (yyerrstatus == 3)
  1.1981 -    {
  1.1982 -      /* If just tried and failed to reuse look-ahead token after an
  1.1983 -	 error, discard it.  */
  1.1984 -
  1.1985 -      if (yychar <= YYEOF)
  1.1986 -        {
  1.1987 -	  /* Return failure if at end of input.  */
  1.1988 -	  if (yychar == YYEOF)
  1.1989 -	    YYABORT;
  1.1990 -        }
  1.1991 -      else
  1.1992 -	{
  1.1993 -	  yydestruct ("Error: discarding", yytoken, &yylval);
  1.1994 -	  yychar = YYEMPTY;
  1.1995 -	}
  1.1996 -    }
  1.1997 -
  1.1998 -  /* Else will try to reuse look-ahead token after shifting the error
  1.1999 -     token.  */
  1.2000 -  goto yyerrlab1;
  1.2001 -
  1.2002 -
  1.2003 -/*---------------------------------------------------.
  1.2004 -| yyerrorlab -- error raised explicitly by YYERROR.  |
  1.2005 -`---------------------------------------------------*/
  1.2006 -yyerrorlab:
  1.2007 -
  1.2008 -  /* Pacify compilers like GCC when the user code never invokes
  1.2009 -     YYERROR and the label yyerrorlab therefore never appears in user
  1.2010 -     code.  */
  1.2011 -  if (0)
  1.2012 -     goto yyerrorlab;
  1.2013 -
  1.2014 -yyvsp -= yylen;
  1.2015 -  yyssp -= yylen;
  1.2016 -  yystate = *yyssp;
  1.2017 -  goto yyerrlab1;
  1.2018 -
  1.2019 -
  1.2020 -/*-------------------------------------------------------------.
  1.2021 -| yyerrlab1 -- common code for both syntax error and YYERROR.  |
  1.2022 -`-------------------------------------------------------------*/
  1.2023 -yyerrlab1:
  1.2024 -  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
  1.2025 -
  1.2026 -  for (;;)
  1.2027 -    {
  1.2028 -      yyn = yypact[yystate];
  1.2029 -      if (yyn != YYPACT_NINF)
  1.2030 -	{
  1.2031 -	  yyn += YYTERROR;
  1.2032 -	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
  1.2033 -	    {
  1.2034 -	      yyn = yytable[yyn];
  1.2035 -	      if (0 < yyn)
  1.2036 -		break;
  1.2037 -	    }
  1.2038 -	}
  1.2039 -
  1.2040 -      /* Pop the current state because it cannot handle the error token.  */
  1.2041 -      if (yyssp == yyss)
  1.2042 -	YYABORT;
  1.2043 -
  1.2044 -
  1.2045 -      yydestruct ("Error: popping", yystos[yystate], yyvsp);
  1.2046 -      YYPOPSTACK;
  1.2047 -      yystate = *yyssp;
  1.2048 -      YY_STACK_PRINT (yyss, yyssp);
  1.2049 -    }
  1.2050 -
  1.2051 -  if (yyn == YYFINAL)
  1.2052 -    YYACCEPT;
  1.2053 -
  1.2054 -  *++yyvsp = yylval;
  1.2055 -
  1.2056 -
  1.2057 -  /* Shift the error token. */
  1.2058 -  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
  1.2059 -
  1.2060 -  yystate = yyn;
  1.2061 -  goto yynewstate;
  1.2062 -
  1.2063 -
  1.2064 -/*-------------------------------------.
  1.2065 -| yyacceptlab -- YYACCEPT comes here.  |
  1.2066 -`-------------------------------------*/
  1.2067 -yyacceptlab:
  1.2068 -  yyresult = 0;
  1.2069 -  goto yyreturn;
  1.2070 -
  1.2071 -/*-----------------------------------.
  1.2072 -| yyabortlab -- YYABORT comes here.  |
  1.2073 -`-----------------------------------*/
  1.2074 -yyabortlab:
  1.2075 -  yyresult = 1;
  1.2076 -  goto yyreturn;
  1.2077 -
  1.2078 -#ifndef yyoverflow
  1.2079 -/*-------------------------------------------------.
  1.2080 -| yyexhaustedlab -- memory exhaustion comes here.  |
  1.2081 -`-------------------------------------------------*/
  1.2082 -yyexhaustedlab:
  1.2083 -  yyerror (YY_("memory exhausted"));
  1.2084 -  yyresult = 2;
  1.2085 -  /* Fall through.  */
  1.2086 -#endif
  1.2087 -
  1.2088 -yyreturn:
  1.2089 -  if (yychar != YYEOF && yychar != YYEMPTY)
  1.2090 -     yydestruct ("Cleanup: discarding lookahead",
  1.2091 -		 yytoken, &yylval);
  1.2092 -  while (yyssp != yyss)
  1.2093 -    {
  1.2094 -      yydestruct ("Cleanup: popping",
  1.2095 -		  yystos[*yyssp], yyvsp);
  1.2096 -      YYPOPSTACK;
  1.2097 -    }
  1.2098 -#ifndef yyoverflow
  1.2099 -  if (yyss != yyssa)
  1.2100 -    YYSTACK_FREE (yyss);
  1.2101 -#endif
  1.2102 -  return yyresult;
  1.2103 -}
  1.2104 -
  1.2105 -
  1.2106 -
  1.2107 -
  1.2108 -
  1.2109 -void conf_parse(const char *name)
  1.2110 -{
  1.2111 -	struct symbol *sym;
  1.2112 -	int i;
  1.2113 -
  1.2114 -	zconf_initscan(name);
  1.2115 -
  1.2116 -	sym_init();
  1.2117 -	menu_init();
  1.2118 -	modules_sym = sym_lookup(NULL, 0);
  1.2119 -	modules_sym->type = S_BOOLEAN;
  1.2120 -	modules_sym->flags |= SYMBOL_AUTO;
  1.2121 -	rootmenu.prompt = menu_add_prompt(P_MENU, PROJECT_NAME" Configuration", NULL);
  1.2122 -
  1.2123 -#if YYDEBUG
  1.2124 -	if (getenv("ZCONF_DEBUG"))
  1.2125 -		zconfdebug = 1;
  1.2126 -#endif
  1.2127 -	zconfparse();
  1.2128 -	if (zconfnerrs)
  1.2129 -		exit(1);
  1.2130 -	if (!modules_sym->prop) {
  1.2131 -		struct property *prop;
  1.2132 -
  1.2133 -		prop = prop_alloc(P_DEFAULT, modules_sym);
  1.2134 -		prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
  1.2135 -	}
  1.2136 -	menu_finalize(&rootmenu);
  1.2137 -	for_all_symbols(i, sym) {
  1.2138 -		sym_check_deps(sym);
  1.2139 -        }
  1.2140 -
  1.2141 -	sym_set_change_count(1);
  1.2142 -}
  1.2143 -
  1.2144 -const char *zconf_tokenname(int token)
  1.2145 -{
  1.2146 -	switch (token) {
  1.2147 -	case T_MENU:		return "menu";
  1.2148 -	case T_ENDMENU:		return "endmenu";
  1.2149 -	case T_CHOICE:		return "choice";
  1.2150 -	case T_ENDCHOICE:	return "endchoice";
  1.2151 -	case T_IF:		return "if";
  1.2152 -	case T_ENDIF:		return "endif";
  1.2153 -	case T_DEPENDS:		return "depends";
  1.2154 -	}
  1.2155 -	return "<token>";
  1.2156 -}
  1.2157 -
  1.2158 -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
  1.2159 -{
  1.2160 -	if (id->token != endtoken) {
  1.2161 -		zconf_error("unexpected '%s' within %s block",
  1.2162 -			kconf_id_strings + id->name, zconf_tokenname(starttoken));
  1.2163 -		zconfnerrs++;
  1.2164 -		return false;
  1.2165 -	}
  1.2166 -	if (current_menu->file != current_file) {
  1.2167 -		zconf_error("'%s' in different file than '%s'",
  1.2168 -			kconf_id_strings + id->name, zconf_tokenname(starttoken));
  1.2169 -		fprintf(stderr, "%s:%d: location of the '%s'\n",
  1.2170 -			current_menu->file->name, current_menu->lineno,
  1.2171 -			zconf_tokenname(starttoken));
  1.2172 -		zconfnerrs++;
  1.2173 -		return false;
  1.2174 -	}
  1.2175 -	return true;
  1.2176 -}
  1.2177 -
  1.2178 -static void zconfprint(const char *err, ...)
  1.2179 -{
  1.2180 -	va_list ap;
  1.2181 -
  1.2182 -	fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
  1.2183 -	va_start(ap, err);
  1.2184 -	vfprintf(stderr, err, ap);
  1.2185 -	va_end(ap);
  1.2186 -	fprintf(stderr, "\n");
  1.2187 -}
  1.2188 -
  1.2189 -static void zconf_error(const char *err, ...)
  1.2190 -{
  1.2191 -	va_list ap;
  1.2192 -
  1.2193 -	zconfnerrs++;
  1.2194 -	fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
  1.2195 -	va_start(ap, err);
  1.2196 -	vfprintf(stderr, err, ap);
  1.2197 -	va_end(ap);
  1.2198 -	fprintf(stderr, "\n");
  1.2199 -}
  1.2200 -
  1.2201 -static void zconferror(const char *err)
  1.2202 -{
  1.2203 -#if YYDEBUG
  1.2204 -	fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
  1.2205 -#endif
  1.2206 -}
  1.2207 -
  1.2208 -void print_quoted_string(FILE *out, const char *str)
  1.2209 -{
  1.2210 -	const char *p;
  1.2211 -	int len;
  1.2212 -
  1.2213 -	putc('"', out);
  1.2214 -	while ((p = strchr(str, '"'))) {
  1.2215 -		len = p - str;
  1.2216 -		if (len)
  1.2217 -			fprintf(out, "%.*s", len, str);
  1.2218 -		fputs("\\\"", out);
  1.2219 -		str = p + 1;
  1.2220 -	}
  1.2221 -	fputs(str, out);
  1.2222 -	putc('"', out);
  1.2223 -}
  1.2224 -
  1.2225 -void print_symbol(FILE *out, struct menu *menu)
  1.2226 -{
  1.2227 -	struct symbol *sym = menu->sym;
  1.2228 -	struct property *prop;
  1.2229 -
  1.2230 -	if (sym_is_choice(sym))
  1.2231 -		fprintf(out, "choice\n");
  1.2232 -	else
  1.2233 -		fprintf(out, "config %s\n", sym->name);
  1.2234 -	switch (sym->type) {
  1.2235 -	case S_BOOLEAN:
  1.2236 -		fputs("  boolean\n", out);
  1.2237 -		break;
  1.2238 -	case S_TRISTATE:
  1.2239 -		fputs("  tristate\n", out);
  1.2240 -		break;
  1.2241 -	case S_STRING:
  1.2242 -		fputs("  string\n", out);
  1.2243 -		break;
  1.2244 -	case S_INT:
  1.2245 -		fputs("  integer\n", out);
  1.2246 -		break;
  1.2247 -	case S_HEX:
  1.2248 -		fputs("  hex\n", out);
  1.2249 -		break;
  1.2250 -	default:
  1.2251 -		fputs("  ???\n", out);
  1.2252 -		break;
  1.2253 -	}
  1.2254 -	for (prop = sym->prop; prop; prop = prop->next) {
  1.2255 -		if (prop->menu != menu)
  1.2256 -			continue;
  1.2257 -		switch (prop->type) {
  1.2258 -		case P_PROMPT:
  1.2259 -			fputs("  prompt ", out);
  1.2260 -			print_quoted_string(out, prop->text);
  1.2261 -			if (!expr_is_yes(prop->visible.expr)) {
  1.2262 -				fputs(" if ", out);
  1.2263 -				expr_fprint(prop->visible.expr, out);
  1.2264 -			}
  1.2265 -			fputc('\n', out);
  1.2266 -			break;
  1.2267 -		case P_DEFAULT:
  1.2268 -			fputs( "  default ", out);
  1.2269 -			expr_fprint(prop->expr, out);
  1.2270 -			if (!expr_is_yes(prop->visible.expr)) {
  1.2271 -				fputs(" if ", out);
  1.2272 -				expr_fprint(prop->visible.expr, out);
  1.2273 -			}
  1.2274 -			fputc('\n', out);
  1.2275 -			break;
  1.2276 -		case P_CHOICE:
  1.2277 -			fputs("  #choice value\n", out);
  1.2278 -			break;
  1.2279 -		default:
  1.2280 -			fprintf(out, "  unknown prop %d!\n", prop->type);
  1.2281 -			break;
  1.2282 -		}
  1.2283 -	}
  1.2284 -	if (sym->help) {
  1.2285 -		int len = strlen(sym->help);
  1.2286 -		while (sym->help[--len] == '\n')
  1.2287 -			sym->help[len] = 0;
  1.2288 -		fprintf(out, "  help\n%s\n", sym->help);
  1.2289 -	}
  1.2290 -	fputc('\n', out);
  1.2291 -}
  1.2292 -
  1.2293 -void zconfdump(FILE *out)
  1.2294 -{
  1.2295 -	struct property *prop;
  1.2296 -	struct symbol *sym;
  1.2297 -	struct menu *menu;
  1.2298 -
  1.2299 -	menu = rootmenu.list;
  1.2300 -	while (menu) {
  1.2301 -		if ((sym = menu->sym))
  1.2302 -			print_symbol(out, menu);
  1.2303 -		else if ((prop = menu->prompt)) {
  1.2304 -			switch (prop->type) {
  1.2305 -			case P_COMMENT:
  1.2306 -				fputs("\ncomment ", out);
  1.2307 -				print_quoted_string(out, prop->text);
  1.2308 -				fputs("\n", out);
  1.2309 -				break;
  1.2310 -			case P_MENU:
  1.2311 -				fputs("\nmenu ", out);
  1.2312 -				print_quoted_string(out, prop->text);
  1.2313 -				fputs("\n", out);
  1.2314 -				break;
  1.2315 -			default:
  1.2316 -				;
  1.2317 -			}
  1.2318 -			if (!expr_is_yes(prop->visible.expr)) {
  1.2319 -				fputs("  depends ", out);
  1.2320 -				expr_fprint(prop->visible.expr, out);
  1.2321 -				fputc('\n', out);
  1.2322 -			}
  1.2323 -			fputs("\n", out);
  1.2324 -		}
  1.2325 -
  1.2326 -		if (menu->list)
  1.2327 -			menu = menu->list;
  1.2328 -		else if (menu->next)
  1.2329 -			menu = menu->next;
  1.2330 -		else while ((menu = menu->parent)) {
  1.2331 -			if (menu->prompt && menu->prompt->type == P_MENU)
  1.2332 -				fputs("\nendmenu\n", out);
  1.2333 -			if (menu->next) {
  1.2334 -				menu = menu->next;
  1.2335 -				break;
  1.2336 -			}
  1.2337 -		}
  1.2338 -	}
  1.2339 -}
  1.2340 -
  1.2341 -#include "lex.zconf.c"
  1.2342 -#include "util.c"
  1.2343 -#include "confdata.c"
  1.2344 -#include "expr.c"
  1.2345 -#include "symbol.c"
  1.2346 -#include "menu.c"
  1.2347 -
  1.2348 -