PageRenderTime 39ms CodeModel.GetById 22ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/scripts/kconfig/zconf.tab.c_shipped

http://github.com/mirrors/linux
Unknown | 2580 lines | 2177 code | 403 blank | 0 comment | 0 complexity | 4ee248b519834ae8564ae342097bac7f MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1/* A Bison parser, made by GNU Bison 2.5.1.  */
   2
   3/* Bison implementation for Yacc-like parsers in C
   4   
   5      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
   6   
   7   This program is free software: you can redistribute it and/or modify
   8   it under the terms of the GNU General Public License as published by
   9   the Free Software Foundation, either version 3 of the License, or
  10   (at your option) any later version.
  11   
  12   This program is distributed in the hope that it will be useful,
  13   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15   GNU General Public License for more details.
  16   
  17   You should have received a copy of the GNU General Public License
  18   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
  19
  20/* As a special exception, you may create a larger work that contains
  21   part or all of the Bison parser skeleton and distribute that work
  22   under terms of your choice, so long as that work isn't itself a
  23   parser generator using the skeleton or a modified version thereof
  24   as a parser skeleton.  Alternatively, if you modify or redistribute
  25   the parser skeleton itself, you may (at your option) remove this
  26   special exception, which will cause the skeleton and the resulting
  27   Bison output files to be licensed under the GNU General Public
  28   License without this special exception.
  29   
  30   This special exception was added by the Free Software Foundation in
  31   version 2.2 of Bison.  */
  32
  33/* C LALR(1) parser skeleton written by Richard Stallman, by
  34   simplifying the original so-called "semantic" parser.  */
  35
  36/* All symbols defined below should begin with yy or YY, to avoid
  37   infringing on user name space.  This should be done even for local
  38   variables, as they might otherwise be expanded by user macros.
  39   There are some unavoidable exceptions within include files to
  40   define necessary library symbols; they are noted "INFRINGES ON
  41   USER NAME SPACE" below.  */
  42
  43/* Identify Bison output.  */
  44#define YYBISON 1
  45
  46/* Bison version.  */
  47#define YYBISON_VERSION "2.5.1"
  48
  49/* Skeleton name.  */
  50#define YYSKELETON_NAME "yacc.c"
  51
  52/* Pure parsers.  */
  53#define YYPURE 0
  54
  55/* Push parsers.  */
  56#define YYPUSH 0
  57
  58/* Pull parsers.  */
  59#define YYPULL 1
  60
  61/* Using locations.  */
  62#define YYLSP_NEEDED 0
  63
  64/* Substitute the variable and function names.  */
  65#define yyparse         zconfparse
  66#define yylex           zconflex
  67#define yyerror         zconferror
  68#define yylval          zconflval
  69#define yychar          zconfchar
  70#define yydebug         zconfdebug
  71#define yynerrs         zconfnerrs
  72
  73
  74/* Copy the first part of user declarations.  */
  75
  76
  77/*
  78 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
  79 * Released under the terms of the GNU GPL v2.0.
  80 */
  81
  82#include <ctype.h>
  83#include <stdarg.h>
  84#include <stdio.h>
  85#include <stdlib.h>
  86#include <string.h>
  87#include <stdbool.h>
  88
  89#include "lkc.h"
  90
  91#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
  92
  93#define PRINTD		0x0001
  94#define DEBUG_PARSE	0x0002
  95
  96int cdebug = PRINTD;
  97
  98extern int zconflex(void);
  99static void zconfprint(const char *err, ...);
 100static void zconf_error(const char *err, ...);
 101static void zconferror(const char *err);
 102static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken);
 103
 104struct symbol *symbol_hash[SYMBOL_HASHSIZE];
 105
 106static struct menu *current_menu, *current_entry;
 107
 108
 109
 110
 111# ifndef YY_NULL
 112#  if defined __cplusplus && 201103L <= __cplusplus
 113#   define YY_NULL nullptr
 114#  else
 115#   define YY_NULL 0
 116#  endif
 117# endif
 118
 119/* Enabling traces.  */
 120#ifndef YYDEBUG
 121# define YYDEBUG 1
 122#endif
 123
 124/* Enabling verbose error messages.  */
 125#ifdef YYERROR_VERBOSE
 126# undef YYERROR_VERBOSE
 127# define YYERROR_VERBOSE 1
 128#else
 129# define YYERROR_VERBOSE 0
 130#endif
 131
 132/* Enabling the token table.  */
 133#ifndef YYTOKEN_TABLE
 134# define YYTOKEN_TABLE 0
 135#endif
 136
 137
 138/* Tokens.  */
 139#ifndef YYTOKENTYPE
 140# define YYTOKENTYPE
 141   /* Put the tokens into the symbol table, so that GDB and other debuggers
 142      know about them.  */
 143   enum yytokentype {
 144     T_MAINMENU = 258,
 145     T_MENU = 259,
 146     T_ENDMENU = 260,
 147     T_SOURCE = 261,
 148     T_CHOICE = 262,
 149     T_ENDCHOICE = 263,
 150     T_COMMENT = 264,
 151     T_CONFIG = 265,
 152     T_MENUCONFIG = 266,
 153     T_HELP = 267,
 154     T_HELPTEXT = 268,
 155     T_IF = 269,
 156     T_ENDIF = 270,
 157     T_DEPENDS = 271,
 158     T_OPTIONAL = 272,
 159     T_PROMPT = 273,
 160     T_TYPE = 274,
 161     T_DEFAULT = 275,
 162     T_SELECT = 276,
 163     T_RANGE = 277,
 164     T_VISIBLE = 278,
 165     T_OPTION = 279,
 166     T_ON = 280,
 167     T_WORD = 281,
 168     T_WORD_QUOTE = 282,
 169     T_UNEQUAL = 283,
 170     T_LESS = 284,
 171     T_LESS_EQUAL = 285,
 172     T_GREATER = 286,
 173     T_GREATER_EQUAL = 287,
 174     T_CLOSE_PAREN = 288,
 175     T_OPEN_PAREN = 289,
 176     T_EOL = 290,
 177     T_OR = 291,
 178     T_AND = 292,
 179     T_EQUAL = 293,
 180     T_NOT = 294
 181   };
 182#endif
 183
 184
 185
 186#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 187typedef union YYSTYPE
 188{
 189
 190
 191	char *string;
 192	struct file *file;
 193	struct symbol *symbol;
 194	struct expr *expr;
 195	struct menu *menu;
 196	const struct kconf_id *id;
 197
 198
 199
 200} YYSTYPE;
 201# define YYSTYPE_IS_TRIVIAL 1
 202# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 203# define YYSTYPE_IS_DECLARED 1
 204#endif
 205
 206
 207/* Copy the second part of user declarations.  */
 208
 209
 210/* Include zconf.hash.c here so it can see the token constants. */
 211#include "zconf.hash.c"
 212
 213
 214
 215#ifdef short
 216# undef short
 217#endif
 218
 219#ifdef YYTYPE_UINT8
 220typedef YYTYPE_UINT8 yytype_uint8;
 221#else
 222typedef unsigned char yytype_uint8;
 223#endif
 224
 225#ifdef YYTYPE_INT8
 226typedef YYTYPE_INT8 yytype_int8;
 227#elif (defined __STDC__ || defined __C99__FUNC__ \
 228     || defined __cplusplus || defined _MSC_VER)
 229typedef signed char yytype_int8;
 230#else
 231typedef short int yytype_int8;
 232#endif
 233
 234#ifdef YYTYPE_UINT16
 235typedef YYTYPE_UINT16 yytype_uint16;
 236#else
 237typedef unsigned short int yytype_uint16;
 238#endif
 239
 240#ifdef YYTYPE_INT16
 241typedef YYTYPE_INT16 yytype_int16;
 242#else
 243typedef short int yytype_int16;
 244#endif
 245
 246#ifndef YYSIZE_T
 247# ifdef __SIZE_TYPE__
 248#  define YYSIZE_T __SIZE_TYPE__
 249# elif defined size_t
 250#  define YYSIZE_T size_t
 251# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
 252     || defined __cplusplus || defined _MSC_VER)
 253#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 254#  define YYSIZE_T size_t
 255# else
 256#  define YYSIZE_T unsigned int
 257# endif
 258#endif
 259
 260#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 261
 262#ifndef YY_
 263# if defined YYENABLE_NLS && YYENABLE_NLS
 264#  if ENABLE_NLS
 265#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 266#   define YY_(msgid) dgettext ("bison-runtime", msgid)
 267#  endif
 268# endif
 269# ifndef YY_
 270#  define YY_(msgid) msgid
 271# endif
 272#endif
 273
 274/* Suppress unused-variable warnings by "using" E.  */
 275#if ! defined lint || defined __GNUC__
 276# define YYUSE(e) ((void) (e))
 277#else
 278# define YYUSE(e) /* empty */
 279#endif
 280
 281/* Identity function, used to suppress warnings about constant conditions.  */
 282#ifndef lint
 283# define YYID(n) (n)
 284#else
 285#if (defined __STDC__ || defined __C99__FUNC__ \
 286     || defined __cplusplus || defined _MSC_VER)
 287static int
 288YYID (int yyi)
 289#else
 290static int
 291YYID (yyi)
 292    int yyi;
 293#endif
 294{
 295  return yyi;
 296}
 297#endif
 298
 299#if ! defined yyoverflow || YYERROR_VERBOSE
 300
 301/* The parser invokes alloca or malloc; define the necessary symbols.  */
 302
 303# ifdef YYSTACK_USE_ALLOCA
 304#  if YYSTACK_USE_ALLOCA
 305#   ifdef __GNUC__
 306#    define YYSTACK_ALLOC __builtin_alloca
 307#   elif defined __BUILTIN_VA_ARG_INCR
 308#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
 309#   elif defined _AIX
 310#    define YYSTACK_ALLOC __alloca
 311#   elif defined _MSC_VER
 312#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
 313#    define alloca _alloca
 314#   else
 315#    define YYSTACK_ALLOC alloca
 316#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
 317     || defined __cplusplus || defined _MSC_VER)
 318#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 319      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 320#     ifndef EXIT_SUCCESS
 321#      define EXIT_SUCCESS 0
 322#     endif
 323#    endif
 324#   endif
 325#  endif
 326# endif
 327
 328# ifdef YYSTACK_ALLOC
 329   /* Pacify GCC's `empty if-body' warning.  */
 330#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 331#  ifndef YYSTACK_ALLOC_MAXIMUM
 332    /* The OS might guarantee only one guard page at the bottom of the stack,
 333       and a page size can be as small as 4096 bytes.  So we cannot safely
 334       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
 335       to allow for a few compiler-allocated temporary stack slots.  */
 336#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
 337#  endif
 338# else
 339#  define YYSTACK_ALLOC YYMALLOC
 340#  define YYSTACK_FREE YYFREE
 341#  ifndef YYSTACK_ALLOC_MAXIMUM
 342#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 343#  endif
 344#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
 345       && ! ((defined YYMALLOC || defined malloc) \
 346	     && (defined YYFREE || defined free)))
 347#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 348#   ifndef EXIT_SUCCESS
 349#    define EXIT_SUCCESS 0
 350#   endif
 351#  endif
 352#  ifndef YYMALLOC
 353#   define YYMALLOC malloc
 354#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
 355     || defined __cplusplus || defined _MSC_VER)
 356void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 357#   endif
 358#  endif
 359#  ifndef YYFREE
 360#   define YYFREE free
 361#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
 362     || defined __cplusplus || defined _MSC_VER)
 363void free (void *); /* INFRINGES ON USER NAME SPACE */
 364#   endif
 365#  endif
 366# endif
 367#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
 368
 369
 370#if (! defined yyoverflow \
 371     && (! defined __cplusplus \
 372	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 373
 374/* A type that is properly aligned for any stack member.  */
 375union yyalloc
 376{
 377  yytype_int16 yyss_alloc;
 378  YYSTYPE yyvs_alloc;
 379};
 380
 381/* The size of the maximum gap between one aligned stack and the next.  */
 382# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 383
 384/* The size of an array large to enough to hold all stacks, each with
 385   N elements.  */
 386# define YYSTACK_BYTES(N) \
 387     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
 388      + YYSTACK_GAP_MAXIMUM)
 389
 390# define YYCOPY_NEEDED 1
 391
 392/* Relocate STACK from its old location to the new one.  The
 393   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 394   elements in the stack, and YYPTR gives the new location of the
 395   stack.  Advance YYPTR to a properly aligned location for the next
 396   stack.  */
 397# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
 398    do									\
 399      {									\
 400	YYSIZE_T yynewbytes;						\
 401	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
 402	Stack = &yyptr->Stack_alloc;					\
 403	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 404	yyptr += yynewbytes / sizeof (*yyptr);				\
 405      }									\
 406    while (YYID (0))
 407
 408#endif
 409
 410#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
 411/* Copy COUNT objects from SRC to DST.  The source and destination do
 412   not overlap.  */
 413# ifndef YYCOPY
 414#  if defined __GNUC__ && 1 < __GNUC__
 415#   define YYCOPY(Dst, Src, Count) \
 416      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
 417#  else
 418#   define YYCOPY(Dst, Src, Count)              \
 419      do                                        \
 420        {                                       \
 421          YYSIZE_T yyi;                         \
 422          for (yyi = 0; yyi < (Count); yyi++)   \
 423            (Dst)[yyi] = (Src)[yyi];            \
 424        }                                       \
 425      while (YYID (0))
 426#  endif
 427# endif
 428#endif /* !YYCOPY_NEEDED */
 429
 430/* YYFINAL -- State number of the termination state.  */
 431#define YYFINAL  11
 432/* YYLAST -- Last index in YYTABLE.  */
 433#define YYLAST   298
 434
 435/* YYNTOKENS -- Number of terminals.  */
 436#define YYNTOKENS  40
 437/* YYNNTS -- Number of nonterminals.  */
 438#define YYNNTS  50
 439/* YYNRULES -- Number of rules.  */
 440#define YYNRULES  122
 441/* YYNRULES -- Number of states.  */
 442#define YYNSTATES  199
 443
 444/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 445#define YYUNDEFTOK  2
 446#define YYMAXUTOK   294
 447
 448#define YYTRANSLATE(YYX)						\
 449  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 450
 451/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 452static const yytype_uint8 yytranslate[] =
 453{
 454       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 455       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 456       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 457       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 458       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 459       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 460       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 461       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 462       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 463       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 464       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 465       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 466       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 467       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 468       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 469       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 470       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 471       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 472       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 473       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 474       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 475       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 476       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 477       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 478       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 479       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
 480       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 481      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 482      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 483      35,    36,    37,    38,    39
 484};
 485
 486#if YYDEBUG
 487/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
 488   YYRHS.  */
 489static const yytype_uint16 yyprhs[] =
 490{
 491       0,     0,     3,     6,     8,    11,    13,    14,    17,    20,
 492      23,    26,    31,    36,    40,    42,    44,    46,    48,    50,
 493      52,    54,    56,    58,    60,    62,    64,    66,    68,    72,
 494      75,    79,    82,    86,    89,    90,    93,    96,    99,   102,
 495     105,   108,   112,   117,   122,   127,   133,   137,   138,   142,
 496     143,   146,   150,   153,   155,   159,   160,   163,   166,   169,
 497     172,   175,   180,   184,   187,   192,   193,   196,   200,   202,
 498     206,   207,   210,   213,   216,   220,   224,   228,   230,   234,
 499     235,   238,   241,   244,   248,   252,   255,   258,   261,   262,
 500     265,   268,   271,   276,   277,   280,   283,   286,   287,   290,
 501     292,   294,   297,   300,   303,   305,   308,   309,   312,   314,
 502     318,   322,   326,   330,   334,   338,   342,   345,   349,   353,
 503     355,   357,   358
 504};
 505
 506/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 507static const yytype_int8 yyrhs[] =
 508{
 509      41,     0,    -1,    85,    42,    -1,    42,    -1,    67,    43,
 510      -1,    43,    -1,    -1,    43,    45,    -1,    43,    59,    -1,
 511      43,    71,    -1,    43,    84,    -1,    43,    26,     1,    35,
 512      -1,    43,    44,     1,    35,    -1,    43,     1,    35,    -1,
 513      16,    -1,    18,    -1,    19,    -1,    21,    -1,    17,    -1,
 514      22,    -1,    20,    -1,    23,    -1,    35,    -1,    65,    -1,
 515      75,    -1,    48,    -1,    50,    -1,    73,    -1,    26,     1,
 516      35,    -1,     1,    35,    -1,    10,    26,    35,    -1,    47,
 517      51,    -1,    11,    26,    35,    -1,    49,    51,    -1,    -1,
 518      51,    52,    -1,    51,    53,    -1,    51,    79,    -1,    51,
 519      77,    -1,    51,    46,    -1,    51,    35,    -1,    19,    82,
 520      35,    -1,    18,    83,    86,    35,    -1,    20,    87,    86,
 521      35,    -1,    21,    26,    86,    35,    -1,    22,    88,    88,
 522      86,    35,    -1,    24,    54,    35,    -1,    -1,    54,    26,
 523      55,    -1,    -1,    38,    83,    -1,     7,    89,    35,    -1,
 524      56,    60,    -1,    84,    -1,    57,    62,    58,    -1,    -1,
 525      60,    61,    -1,    60,    79,    -1,    60,    77,    -1,    60,
 526      35,    -1,    60,    46,    -1,    18,    83,    86,    35,    -1,
 527      19,    82,    35,    -1,    17,    35,    -1,    20,    26,    86,
 528      35,    -1,    -1,    62,    45,    -1,    14,    87,    85,    -1,
 529      84,    -1,    63,    66,    64,    -1,    -1,    66,    45,    -1,
 530      66,    71,    -1,    66,    59,    -1,     3,    83,    85,    -1,
 531       4,    83,    35,    -1,    68,    80,    78,    -1,    84,    -1,
 532      69,    72,    70,    -1,    -1,    72,    45,    -1,    72,    71,
 533      -1,    72,    59,    -1,     6,    83,    35,    -1,     9,    83,
 534      35,    -1,    74,    78,    -1,    12,    35,    -1,    76,    13,
 535      -1,    -1,    78,    79,    -1,    78,    35,    -1,    78,    46,
 536      -1,    16,    25,    87,    35,    -1,    -1,    80,    81,    -1,
 537      80,    35,    -1,    23,    86,    -1,    -1,    83,    86,    -1,
 538      26,    -1,    27,    -1,     5,    35,    -1,     8,    35,    -1,
 539      15,    35,    -1,    35,    -1,    85,    35,    -1,    -1,    14,
 540      87,    -1,    88,    -1,    88,    29,    88,    -1,    88,    30,
 541      88,    -1,    88,    31,    88,    -1,    88,    32,    88,    -1,
 542      88,    38,    88,    -1,    88,    28,    88,    -1,    34,    87,
 543      33,    -1,    39,    87,    -1,    87,    36,    87,    -1,    87,
 544      37,    87,    -1,    26,    -1,    27,    -1,    -1,    26,    -1
 545};
 546
 547/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 548static const yytype_uint16 yyrline[] =
 549{
 550       0,   108,   108,   108,   110,   110,   112,   114,   115,   116,
 551     117,   118,   119,   123,   127,   127,   127,   127,   127,   127,
 552     127,   127,   131,   132,   133,   134,   135,   136,   140,   141,
 553     147,   155,   161,   169,   179,   181,   182,   183,   184,   185,
 554     186,   189,   197,   203,   213,   219,   225,   228,   230,   241,
 555     242,   247,   256,   261,   269,   272,   274,   275,   276,   277,
 556     278,   281,   287,   298,   304,   314,   316,   321,   329,   337,
 557     340,   342,   343,   344,   349,   356,   363,   368,   376,   379,
 558     381,   382,   383,   386,   394,   401,   408,   414,   421,   423,
 559     424,   425,   428,   436,   438,   439,   442,   449,   451,   456,
 560     457,   460,   461,   462,   466,   467,   470,   471,   474,   475,
 561     476,   477,   478,   479,   480,   481,   482,   483,   484,   487,
 562     488,   491,   492
 563};
 564#endif
 565
 566#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 567/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
 568   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 569static const char *const yytname[] =
 570{
 571  "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
 572  "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
 573  "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
 574  "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
 575  "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
 576  "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL",
 577  "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
 578  "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
 579  "common_stmt", "option_error", "config_entry_start", "config_stmt",
 580  "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
 581  "config_option", "symbol_option", "symbol_option_list",
 582  "symbol_option_arg", "choice", "choice_entry", "choice_end",
 583  "choice_stmt", "choice_option_list", "choice_option", "choice_block",
 584  "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu",
 585  "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
 586  "comment", "comment_stmt", "help_start", "help", "depends_list",
 587  "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
 588  "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULL
 589};
 590#endif
 591
 592# ifdef YYPRINT
 593/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
 594   token YYLEX-NUM.  */
 595static const yytype_uint16 yytoknum[] =
 596{
 597       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 598     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 599     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 600     285,   286,   287,   288,   289,   290,   291,   292,   293,   294
 601};
 602# endif
 603
 604/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 605static const yytype_uint8 yyr1[] =
 606{
 607       0,    40,    41,    41,    42,    42,    43,    43,    43,    43,
 608      43,    43,    43,    43,    44,    44,    44,    44,    44,    44,
 609      44,    44,    45,    45,    45,    45,    45,    45,    46,    46,
 610      47,    48,    49,    50,    51,    51,    51,    51,    51,    51,
 611      51,    52,    52,    52,    52,    52,    53,    54,    54,    55,
 612      55,    56,    57,    58,    59,    60,    60,    60,    60,    60,
 613      60,    61,    61,    61,    61,    62,    62,    63,    64,    65,
 614      66,    66,    66,    66,    67,    68,    69,    70,    71,    72,
 615      72,    72,    72,    73,    74,    75,    76,    77,    78,    78,
 616      78,    78,    79,    80,    80,    80,    81,    82,    82,    83,
 617      83,    84,    84,    84,    85,    85,    86,    86,    87,    87,
 618      87,    87,    87,    87,    87,    87,    87,    87,    87,    88,
 619      88,    89,    89
 620};
 621
 622/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 623static const yytype_uint8 yyr2[] =
 624{
 625       0,     2,     2,     1,     2,     1,     0,     2,     2,     2,
 626       2,     4,     4,     3,     1,     1,     1,     1,     1,     1,
 627       1,     1,     1,     1,     1,     1,     1,     1,     3,     2,
 628       3,     2,     3,     2,     0,     2,     2,     2,     2,     2,
 629       2,     3,     4,     4,     4,     5,     3,     0,     3,     0,
 630       2,     3,     2,     1,     3,     0,     2,     2,     2,     2,
 631       2,     4,     3,     2,     4,     0,     2,     3,     1,     3,
 632       0,     2,     2,     2,     3,     3,     3,     1,     3,     0,
 633       2,     2,     2,     3,     3,     2,     2,     2,     0,     2,
 634       2,     2,     4,     0,     2,     2,     2,     0,     2,     1,
 635       1,     2,     2,     2,     1,     2,     0,     2,     1,     3,
 636       3,     3,     3,     3,     3,     3,     2,     3,     3,     1,
 637       1,     0,     1
 638};
 639
 640/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
 641   Performed when YYTABLE doesn't specify something else to do.  Zero
 642   means the default is an error.  */
 643static const yytype_uint8 yydefact[] =
 644{
 645       6,     0,   104,     0,     3,     0,     6,     6,    99,   100,
 646       0,     1,     0,     0,     0,     0,   121,     0,     0,     0,
 647       0,     0,     0,    14,    18,    15,    16,    20,    17,    19,
 648      21,     0,    22,     0,     7,    34,    25,    34,    26,    55,
 649      65,     8,    70,    23,    93,    79,     9,    27,    88,    24,
 650      10,     0,   105,     2,    74,    13,     0,   101,     0,   122,
 651       0,   102,     0,     0,     0,   119,   120,     0,     0,     0,
 652     108,   103,     0,     0,     0,     0,     0,     0,     0,    88,
 653       0,     0,    75,    83,    51,    84,    30,    32,     0,   116,
 654       0,     0,    67,     0,     0,     0,     0,     0,     0,    11,
 655      12,     0,     0,     0,     0,    97,     0,     0,     0,    47,
 656       0,    40,    39,    35,    36,     0,    38,    37,     0,     0,
 657      97,     0,    59,    60,    56,    58,    57,    66,    54,    53,
 658      71,    73,    69,    72,    68,   106,    95,     0,    94,    80,
 659      82,    78,    81,    77,    90,    91,    89,   115,   117,   118,
 660     114,   109,   110,   111,   112,   113,    29,    86,     0,   106,
 661       0,   106,   106,   106,     0,     0,     0,    87,    63,   106,
 662       0,   106,     0,    96,     0,     0,    41,    98,     0,     0,
 663     106,    49,    46,    28,     0,    62,     0,   107,    92,    42,
 664      43,    44,     0,     0,    48,    61,    64,    45,    50
 665};
 666
 667/* YYDEFGOTO[NTERM-NUM].  */
 668static const yytype_int16 yydefgoto[] =
 669{
 670      -1,     3,     4,     5,    33,    34,   112,    35,    36,    37,
 671      38,    74,   113,   114,   165,   194,    39,    40,   128,    41,
 672      76,   124,    77,    42,   132,    43,    78,     6,    44,    45,
 673     141,    46,    80,    47,    48,    49,   115,   116,    81,   117,
 674      79,   138,   160,   161,    50,     7,   173,    69,    70,    60
 675};
 676
 677/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 678   STATE-NUM.  */
 679#define YYPACT_NINF -91
 680static const yytype_int16 yypact[] =
 681{
 682      19,    37,   -91,    13,   -91,    79,   -91,    20,   -91,   -91,
 683     -16,   -91,    21,    37,    25,    37,    41,    36,    37,    78,
 684      83,    31,    56,   -91,   -91,   -91,   -91,   -91,   -91,   -91,
 685     -91,   116,   -91,   127,   -91,   -91,   -91,   -91,   -91,   -91,
 686     -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,
 687     -91,   147,   -91,   -91,   105,   -91,   109,   -91,   111,   -91,
 688     114,   -91,   136,   137,   142,   -91,   -91,    31,    31,    76,
 689     254,   -91,   143,   146,    27,   115,   207,   258,   243,   -14,
 690     243,   179,   -91,   -91,   -91,   -91,   -91,   -91,    -7,   -91,
 691      31,    31,   105,    51,    51,    51,    51,    51,    51,   -91,
 692     -91,   156,   168,   181,    37,    37,    31,   178,    51,   -91,
 693     206,   -91,   -91,   -91,   -91,   196,   -91,   -91,   175,    37,
 694      37,   185,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,
 695     -91,   -91,   -91,   -91,   -91,   214,   -91,   230,   -91,   -91,
 696     -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   183,   -91,
 697     -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,    31,   214,
 698     194,   214,    45,   214,    51,    26,   195,   -91,   -91,   214,
 699     197,   214,    31,   -91,   139,   208,   -91,   -91,   220,   224,
 700     214,   222,   -91,   -91,   226,   -91,   227,   123,   -91,   -91,
 701     -91,   -91,   235,    37,   -91,   -91,   -91,   -91,   -91
 702};
 703
 704/* YYPGOTO[NTERM-NUM].  */
 705static const yytype_int16 yypgoto[] =
 706{
 707     -91,   -91,   264,   268,   -91,    30,   -65,   -91,   -91,   -91,
 708     -91,   238,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -12,
 709     -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,
 710     -91,    -5,   -91,   -91,   -91,   -91,   -91,   200,   209,   -61,
 711     -91,   -91,   170,    -1,    65,     0,   118,   -66,   -90,   -91
 712};
 713
 714/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 715   positive, shift that token.  If negative, reduce the rule which
 716   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 717#define YYTABLE_NINF -86
 718static const yytype_int16 yytable[] =
 719{
 720      10,    88,    89,   150,   151,   152,   153,   154,   155,   135,
 721      54,   123,    56,    11,    58,   126,   145,    62,   164,     2,
 722     146,   136,     1,     1,   148,   149,   147,   -31,   101,    90,
 723      91,   -31,   -31,   -31,   -31,   -31,   -31,   -31,   -31,   102,
 724     162,   -31,   -31,   103,   -31,   104,   105,   106,   107,   108,
 725     -31,   109,   181,   110,     2,    52,    55,    65,    66,   172,
 726      57,   182,   111,     8,     9,    67,   131,    59,   140,    92,
 727      68,    61,   145,   133,   180,   142,   146,    65,    66,    -5,
 728      12,    90,    91,    13,    14,    15,    16,    17,    18,    19,
 729      20,    71,   174,    21,    22,    23,    24,    25,    26,    27,
 730      28,    29,    30,   159,    63,    31,   187,   127,   130,    64,
 731     139,     2,    90,    91,    32,   -33,   101,    72,   169,   -33,
 732     -33,   -33,   -33,   -33,   -33,   -33,   -33,   102,    73,   -33,
 733     -33,   103,   -33,   104,   105,   106,   107,   108,   -33,   109,
 734      52,   110,   129,   134,    82,   143,    83,    -4,    12,    84,
 735     111,    13,    14,    15,    16,    17,    18,    19,    20,    90,
 736      91,    21,    22,    23,    24,    25,    26,    27,    28,    29,
 737      30,    85,    86,    31,   188,    90,    91,    87,    99,   -85,
 738     101,   100,    32,   -85,   -85,   -85,   -85,   -85,   -85,   -85,
 739     -85,   156,   198,   -85,   -85,   103,   -85,   -85,   -85,   -85,
 740     -85,   -85,   -85,   157,   163,   110,   158,   166,   101,   167,
 741     168,   171,   -52,   -52,   144,   -52,   -52,   -52,   -52,   102,
 742      91,   -52,   -52,   103,   118,   119,   120,   121,   172,   176,
 743     183,   101,   185,   110,   -76,   -76,   -76,   -76,   -76,   -76,
 744     -76,   -76,   122,   189,   -76,   -76,   103,    13,    14,    15,
 745      16,    17,    18,    19,    20,   190,   110,    21,    22,   191,
 746     193,   195,   196,    14,    15,   144,    17,    18,    19,    20,
 747     197,    53,    21,    22,    51,    75,   125,   175,    32,   177,
 748     178,   179,    93,    94,    95,    96,    97,   184,   137,   186,
 749     170,     0,    98,    32,     0,     0,     0,     0,   192
 750};
 751
 752#define yypact_value_is_default(yystate) \
 753  ((yystate) == (-91))
 754
 755#define yytable_value_is_error(yytable_value) \
 756  YYID (0)
 757
 758static const yytype_int16 yycheck[] =
 759{
 760       1,    67,    68,    93,    94,    95,    96,    97,    98,    23,
 761      10,    76,    13,     0,    15,    76,    81,    18,   108,    35,
 762      81,    35,     3,     3,    90,    91,    33,     0,     1,    36,
 763      37,     4,     5,     6,     7,     8,     9,    10,    11,    12,
 764     106,    14,    15,    16,    17,    18,    19,    20,    21,    22,
 765      23,    24,    26,    26,    35,    35,    35,    26,    27,    14,
 766      35,    35,    35,    26,    27,    34,    78,    26,    80,    69,
 767      39,    35,   137,    78,   164,    80,   137,    26,    27,     0,
 768       1,    36,    37,     4,     5,     6,     7,     8,     9,    10,
 769      11,    35,   158,    14,    15,    16,    17,    18,    19,    20,
 770      21,    22,    23,   104,    26,    26,   172,    77,    78,    26,
 771      80,    35,    36,    37,    35,     0,     1,     1,   119,     4,
 772       5,     6,     7,     8,     9,    10,    11,    12,     1,    14,
 773      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 774      35,    26,    77,    78,    35,    80,    35,     0,     1,    35,
 775      35,     4,     5,     6,     7,     8,     9,    10,    11,    36,
 776      37,    14,    15,    16,    17,    18,    19,    20,    21,    22,
 777      23,    35,    35,    26,    35,    36,    37,    35,    35,     0,
 778       1,    35,    35,     4,     5,     6,     7,     8,     9,    10,
 779      11,    35,   193,    14,    15,    16,    17,    18,    19,    20,
 780      21,    22,    23,    35,    26,    26,    25,     1,     1,    13,
 781      35,    26,     5,     6,    35,     8,     9,    10,    11,    12,
 782      37,    14,    15,    16,    17,    18,    19,    20,    14,    35,
 783      35,     1,    35,    26,     4,     5,     6,     7,     8,     9,
 784      10,    11,    35,    35,    14,    15,    16,     4,     5,     6,
 785       7,     8,     9,    10,    11,    35,    26,    14,    15,    35,
 786      38,    35,    35,     5,     6,    35,     8,     9,    10,    11,
 787      35,     7,    14,    15,     6,    37,    76,   159,    35,   161,
 788     162,   163,    28,    29,    30,    31,    32,   169,    79,   171,
 789     120,    -1,    38,    35,    -1,    -1,    -1,    -1,   180
 790};
 791
 792/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 793   symbol of state STATE-NUM.  */
 794static const yytype_uint8 yystos[] =
 795{
 796       0,     3,    35,    41,    42,    43,    67,    85,    26,    27,
 797      83,     0,     1,     4,     5,     6,     7,     8,     9,    10,
 798      11,    14,    15,    16,    17,    18,    19,    20,    21,    22,
 799      23,    26,    35,    44,    45,    47,    48,    49,    50,    56,
 800      57,    59,    63,    65,    68,    69,    71,    73,    74,    75,
 801      84,    43,    35,    42,    85,    35,    83,    35,    83,    26,
 802      89,    35,    83,    26,    26,    26,    27,    34,    39,    87,
 803      88,    35,     1,     1,    51,    51,    60,    62,    66,    80,
 804      72,    78,    35,    35,    35,    35,    35,    35,    87,    87,
 805      36,    37,    85,    28,    29,    30,    31,    32,    38,    35,
 806      35,     1,    12,    16,    18,    19,    20,    21,    22,    24,
 807      26,    35,    46,    52,    53,    76,    77,    79,    17,    18,
 808      19,    20,    35,    46,    61,    77,    79,    45,    58,    84,
 809      45,    59,    64,    71,    84,    23,    35,    78,    81,    45,
 810      59,    70,    71,    84,    35,    46,    79,    33,    87,    87,
 811      88,    88,    88,    88,    88,    88,    35,    35,    25,    83,
 812      82,    83,    87,    26,    88,    54,     1,    13,    35,    83,
 813      82,    26,    14,    86,    87,    86,    35,    86,    86,    86,
 814      88,    26,    35,    35,    86,    35,    86,    87,    35,    35,
 815      35,    35,    86,    38,    55,    35,    35,    35,    83
 816};
 817
 818#define yyerrok		(yyerrstatus = 0)
 819#define yyclearin	(yychar = YYEMPTY)
 820#define YYEMPTY		(-2)
 821#define YYEOF		0
 822
 823#define YYACCEPT	goto yyacceptlab
 824#define YYABORT		goto yyabortlab
 825#define YYERROR		goto yyerrorlab
 826
 827
 828/* Like YYERROR except do call yyerror.  This remains here temporarily
 829   to ease the transition to the new meaning of YYERROR, for GCC.
 830   Once GCC version 2 has supplanted version 1, this can go.  However,
 831   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
 832   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
 833   discussed.  */
 834
 835#define YYFAIL		goto yyerrlab
 836#if defined YYFAIL
 837  /* This is here to suppress warnings from the GCC cpp's
 838     -Wunused-macros.  Normally we don't worry about that warning, but
 839     some users do, and we want to make it easy for users to remove
 840     YYFAIL uses, which will produce warnings from Bison 2.5.  */
 841#endif
 842
 843#define YYRECOVERING()  (!!yyerrstatus)
 844
 845#define YYBACKUP(Token, Value)                                  \
 846do                                                              \
 847  if (yychar == YYEMPTY)                                        \
 848    {                                                           \
 849      yychar = (Token);                                         \
 850      yylval = (Value);                                         \
 851      YYPOPSTACK (yylen);                                       \
 852      yystate = *yyssp;                                         \
 853      goto yybackup;                                            \
 854    }                                                           \
 855  else                                                          \
 856    {                                                           \
 857      yyerror (YY_("syntax error: cannot back up")); \
 858      YYERROR;							\
 859    }								\
 860while (YYID (0))
 861
 862
 863#define YYTERROR	1
 864#define YYERRCODE	256
 865
 866
 867/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
 868   If N is 0, then set CURRENT to the empty location which ends
 869   the previous symbol: RHS[0] (always defined).  */
 870
 871#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 872#ifndef YYLLOC_DEFAULT
 873# define YYLLOC_DEFAULT(Current, Rhs, N)				\
 874    do									\
 875      if (YYID (N))                                                    \
 876	{								\
 877	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
 878	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
 879	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
 880	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
 881	}								\
 882      else								\
 883	{								\
 884	  (Current).first_line   = (Current).last_line   =		\
 885	    YYRHSLOC (Rhs, 0).last_line;				\
 886	  (Current).first_column = (Current).last_column =		\
 887	    YYRHSLOC (Rhs, 0).last_column;				\
 888	}								\
 889    while (YYID (0))
 890#endif
 891
 892
 893/* This macro is provided for backward compatibility. */
 894
 895#ifndef YY_LOCATION_PRINT
 896# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 897#endif
 898
 899
 900/* YYLEX -- calling `yylex' with the right arguments.  */
 901
 902#ifdef YYLEX_PARAM
 903# define YYLEX yylex (YYLEX_PARAM)
 904#else
 905# define YYLEX yylex ()
 906#endif
 907
 908/* Enable debugging if requested.  */
 909#if YYDEBUG
 910
 911# ifndef YYFPRINTF
 912#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 913#  define YYFPRINTF fprintf
 914# endif
 915
 916# define YYDPRINTF(Args)			\
 917do {						\
 918  if (yydebug)					\
 919    YYFPRINTF Args;				\
 920} while (YYID (0))
 921
 922# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
 923do {									  \
 924  if (yydebug)								  \
 925    {									  \
 926      YYFPRINTF (stderr, "%s ", Title);					  \
 927      yy_symbol_print (stderr,						  \
 928		  Type, Value); \
 929      YYFPRINTF (stderr, "\n");						  \
 930    }									  \
 931} while (YYID (0))
 932
 933
 934/*--------------------------------.
 935| Print this symbol on YYOUTPUT.  |
 936`--------------------------------*/
 937
 938/*ARGSUSED*/
 939#if (defined __STDC__ || defined __C99__FUNC__ \
 940     || defined __cplusplus || defined _MSC_VER)
 941static void
 942yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
 943#else
 944static void
 945yy_symbol_value_print (yyoutput, yytype, yyvaluep)
 946    FILE *yyoutput;
 947    int yytype;
 948    YYSTYPE const * const yyvaluep;
 949#endif
 950{
 951  FILE *yyo = yyoutput;
 952  YYUSE (yyo);
 953  if (!yyvaluep)
 954    return;
 955# ifdef YYPRINT
 956  if (yytype < YYNTOKENS)
 957    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 958# else
 959  YYUSE (yyoutput);
 960# endif
 961  switch (yytype)
 962    {
 963      default:
 964	break;
 965    }
 966}
 967
 968
 969/*--------------------------------.
 970| Print this symbol on YYOUTPUT.  |
 971`--------------------------------*/
 972
 973#if (defined __STDC__ || defined __C99__FUNC__ \
 974     || defined __cplusplus || defined _MSC_VER)
 975static void
 976yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
 977#else
 978static void
 979yy_symbol_print (yyoutput, yytype, yyvaluep)
 980    FILE *yyoutput;
 981    int yytype;
 982    YYSTYPE const * const yyvaluep;
 983#endif
 984{
 985  if (yytype < YYNTOKENS)
 986    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 987  else
 988    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 989
 990  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
 991  YYFPRINTF (yyoutput, ")");
 992}
 993
 994/*------------------------------------------------------------------.
 995| yy_stack_print -- Print the state stack from its BOTTOM up to its |
 996| TOP (included).                                                   |
 997`------------------------------------------------------------------*/
 998
 999#if (defined __STDC__ || defined __C99__FUNC__ \
1000     || defined __cplusplus || defined _MSC_VER)
1001static void
1002yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1003#else
1004static void
1005yy_stack_print (yybottom, yytop)
1006    yytype_int16 *yybottom;
1007    yytype_int16 *yytop;
1008#endif
1009{
1010  YYFPRINTF (stderr, "Stack now");
1011  for (; yybottom <= yytop; yybottom++)
1012    {
1013      int yybot = *yybottom;
1014      YYFPRINTF (stderr, " %d", yybot);
1015    }
1016  YYFPRINTF (stderr, "\n");
1017}
1018
1019# define YY_STACK_PRINT(Bottom, Top)				\
1020do {								\
1021  if (yydebug)							\
1022    yy_stack_print ((Bottom), (Top));				\
1023} while (YYID (0))
1024
1025
1026/*------------------------------------------------.
1027| Report that the YYRULE is going to be reduced.  |
1028`------------------------------------------------*/
1029
1030#if (defined __STDC__ || defined __C99__FUNC__ \
1031     || defined __cplusplus || defined _MSC_VER)
1032static void
1033yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1034#else
1035static void
1036yy_reduce_print (yyvsp, yyrule)
1037    YYSTYPE *yyvsp;
1038    int yyrule;
1039#endif
1040{
1041  int yynrhs = yyr2[yyrule];
1042  int yyi;
1043  unsigned long int yylno = yyrline[yyrule];
1044  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1045	     yyrule - 1, yylno);
1046  /* The symbols being reduced.  */
1047  for (yyi = 0; yyi < yynrhs; yyi++)
1048    {
1049      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1050      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1051		       &(yyvsp[(yyi + 1) - (yynrhs)])
1052		       		       );
1053      YYFPRINTF (stderr, "\n");
1054    }
1055}
1056
1057# define YY_REDUCE_PRINT(Rule)		\
1058do {					\
1059  if (yydebug)				\
1060    yy_reduce_print (yyvsp, Rule); \
1061} while (YYID (0))
1062
1063/* Nonzero means print parse trace.  It is left uninitialized so that
1064   multiple parsers can coexist.  */
1065int yydebug;
1066#else /* !YYDEBUG */
1067# define YYDPRINTF(Args)
1068# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1069# define YY_STACK_PRINT(Bottom, Top)
1070# define YY_REDUCE_PRINT(Rule)
1071#endif /* !YYDEBUG */
1072
1073
1074/* YYINITDEPTH -- initial size of the parser's stacks.  */
1075#ifndef	YYINITDEPTH
1076# define YYINITDEPTH 200
1077#endif
1078
1079/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1080   if the built-in stack extension method is used).
1081
1082   Do not make this value too large; the results are undefined if
1083   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1084   evaluated with infinite-precision integer arithmetic.  */
1085
1086#ifndef YYMAXDEPTH
1087# define YYMAXDEPTH 10000
1088#endif
1089
1090
1091#if YYERROR_VERBOSE
1092
1093# ifndef yystrlen
1094#  if defined __GLIBC__ && defined _STRING_H
1095#   define yystrlen strlen
1096#  else
1097/* Return the length of YYSTR.  */
1098#if (defined __STDC__ || defined __C99__FUNC__ \
1099     || defined __cplusplus || defined _MSC_VER)
1100static YYSIZE_T
1101yystrlen (const char *yystr)
1102#else
1103static YYSIZE_T
1104yystrlen (yystr)
1105    const char *yystr;
1106#endif
1107{
1108  YYSIZE_T yylen;
1109  for (yylen = 0; yystr[yylen]; yylen++)
1110    continue;
1111  return yylen;
1112}
1113#  endif
1114# endif
1115
1116# ifndef yystpcpy
1117#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1118#   define yystpcpy stpcpy
1119#  else
1120/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1121   YYDEST.  */
1122#if (defined __STDC__ || defined __C99__FUNC__ \
1123     || defined __cplusplus || defined _MSC_VER)
1124static char *
1125yystpcpy (char *yydest, const char *yysrc)
1126#else
1127static char *
1128yystpcpy (yydest, yysrc)
1129    char *yydest;
1130    const char *yysrc;
1131#endif
1132{
1133  char *yyd = yydest;
1134  const char *yys = yysrc;
1135
1136  while ((*yyd++ = *yys++) != '\0')
1137    continue;
1138
1139  return yyd - 1;
1140}
1141#  endif
1142# endif
1143
1144# ifndef yytnamerr
1145/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1146   quotes and backslashes, so that it's suitable for yyerror.  The
1147   heuristic is that double-quoting is unnecessary unless the string
1148   contains an apostrophe, a comma, or backslash (other than
1149   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1150   null, do not copy; instead, return the length of what the result
1151   would have been.  */
1152static YYSIZE_T
1153yytnamerr (char *yyres, const char *yystr)
1154{
1155  if (*yystr == '"')
1156    {
1157      YYSIZE_T yyn = 0;
1158      char const *yyp = yystr;
1159
1160      for (;;)
1161	switch (*++yyp)
1162	  {
1163	  case '\'':
1164	  case ',':
1165	    goto do_not_strip_quotes;
1166
1167	  case '\\':
1168	    if (*++yyp != '\\')
1169	      goto do_not_strip_quotes;
1170	    /* Fall through.  */
1171	  default:
1172	    if (yyres)
1173	      yyres[yyn] = *yyp;
1174	    yyn++;
1175	    break;
1176
1177	  case '"':
1178	    if (yyres)
1179	      yyres[yyn] = '\0';
1180	    return yyn;
1181	  }
1182    do_not_strip_quotes: ;
1183    }
1184
1185  if (! yyres)
1186    return yystrlen (yystr);
1187
1188  return yystpcpy (yyres, yystr) - yyres;
1189}
1190# endif
1191
1192/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1193   about the unexpected token YYTOKEN for the state stack whose top is
1194   YYSSP.
1195
1196   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1197   not large enough to hold the message.  In that case, also set
1198   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1199   required number of bytes is too large to store.  */
1200static int
1201yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1202                yytype_int16 *yyssp, int yytoken)
1203{
1204  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
1205  YYSIZE_T yysize = yysize0;
1206  YYSIZE_T yysize1;
1207  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1208  /* Internationalized format string. */
1209  const char *yyformat = YY_NULL;
1210  /* Arguments of yyformat. */
1211  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1212  /* Number of reported tokens (one for the "unexpected", one per
1213     "expected"). */
1214  int yycount = 0;
1215
1216  /* There are many possibilities here to consider:
1217     - Assume YYFAIL is not used.  It's too flawed to consider.  See
1218       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1219       for details.  YYERROR is fine as it does not invoke this
1220       function.
1221     - If this state is a consistent state with a default action, then
1222       the only way this function was invoked is if the default action
1223       is an error action.  In that case, don't check for expected
1224       tokens because there are none.
1225     - The only way there can be no lookahead present (in yychar) is if
1226       this state is a consistent state with a default action.  Thus,
1227       detecting the absence of a lookahead is sufficient to determine
1228       that there is no unexpected or expected token to report.  In that
1229       case, just report a simple "syntax error".
1230     - Don't assume there isn't a lookahead just because this state is a
1231       consistent state with a default action.  There might have been a
1232       previous inconsistent state, consistent state with a non-default
1233       action, or user semantic action that manipulated yychar.
1234     - Of course, the expected token list depends on states to have
1235       correct lookahead information, and it depends on the parser not
1236       to perform extra reductions after fetching a lookahead from the
1237       scanner and before detecting a syntax error.  Thus, state merging
1238       (from LALR or IELR) and default reductions corrupt the expected
1239       token list.  However, the list is correct for canonical LR with
1240       one exception: it will still contain any token that will not be
1241       accepted due to an error action in a later state.
1242  */
1243  if (yytoken != YYEMPTY)
1244    {
1245      int yyn = yypact[*yyssp];
1246      yyarg[yycount++] = yytname[yytoken];
1247      if (!yypact_value_is_default (yyn))
1248        {
1249          /* Start YYX at -YYN if negative to avoid negative indexes in
1250             YYCHECK.  In other words, skip the first -YYN actions for
1251             this state because they are default actions.  */
1252          int yyxbegin = yyn < 0 ? -yyn : 0;
1253          /* Stay within bounds of both yycheck and yytname.  */
1254          int yychecklim = YYLAST - yyn + 1;
1255          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1256          int yyx;
1257
1258          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1259            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1260                && !yytable_value_is_error (yytable[yyx + yyn]))
1261              {
1262                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1263                  {
1264                    yycount = 1;
1265                    yysize = yysize0;
1266                    break;
1267                  }
1268                yyarg[yycount++] = yytname[yyx];
1269                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
1270                if (! (yysize <= yysize1
1271                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1272                  return 2;
1273                yysize = yysize1;
1274              }
1275        }
1276    }
1277
1278  switch (yycount)
1279    {
1280# define YYCASE_(N, S)                      \
1281      case N:                               \
1282        yyformat = S;                       \
1283      break
1284      YYCASE_(0, YY_("syntax error"));
1285      YYCASE_(1, YY_("syntax error, unexpected %s"));
1286      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1287      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1288      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1289      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1290# undef YYCASE_
1291    }
1292
1293  yysize1 = yysize + yystrlen (yyformat);
1294  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1295    return 2;
1296  yysize = yysize1;
1297
1298  if (*yymsg_alloc < yysize)
1299    {
1300      *yymsg_alloc = 2 * yysize;
1301      if (! (yysize <= *yymsg_alloc
1302             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1303        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1304      return 1;
1305    }
1306
1307  /* Avoid sprintf, as that infringes on the user's name space.
1308     Don't have undefined behavior even if the translation
1309     produced a string with the wrong number of "%s"s.  */
1310  {
1311    char *yyp = *yymsg;
1312    int yyi = 0;
1313    while ((*yyp = *yyformat) != '\0')
1314      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1315        {
1316          yyp += yytnamerr (yyp, yyarg[yyi++]);
1317          yyformat += 2;
1318        }
1319      else
1320        {
1321          yyp++;
1322          yyformat++;
1323        }
1324  }
1325  return 0;
1326}
1327#endif /* YYERROR_VERBOSE */
1328
1329/*-----------------------------------------------.
1330| Release the memory associated to this symbol.  |
1331`-----------------------------------------------*/
1332
1333/*ARGSUSED*/
1334#if (defined __STDC__ || defined __C99__FUNC__ \
1335     || defined __cplusplus || defined _MSC_VER)
1336static void
1337yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1338#else
1339static void
1340yydestruct (yymsg, yytype, yyvaluep)
1341    const char *yymsg;
1342    int yytype;
1343    YYSTYPE *yyvaluep;
1344#endif
1345{
1346  YYUSE (yyvaluep);
1347
1348  if (!yymsg)
1349    yymsg = "Deleting";
1350  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1351
1352  switch (yytype)
1353    {
1354      case 57: /* "choice_entry" */
1355
1356	{
1357	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1358		(yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
1359	if (current_menu == (yyvaluep->menu))
1360		menu_end_menu();
1361};
1362
1363	break;
1364      case 63: /* "if_entry" */
1365
1366	{
1367	fprintf(stderr, "%s:%d: mi…

Large files files are truncated, but you can click here to view the full file