1305100Scy/* A Bison parser, made by GNU Bison 3.0.2. */ 2305100Scy 3305100Scy/* Bison implementation for Yacc-like parsers in C 4305100Scy 5305100Scy Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6305100Scy 7305100Scy This program is free software: you can redistribute it and/or modify 8305100Scy it under the terms of the GNU General Public License as published by 9305100Scy the Free Software Foundation, either version 3 of the License, or 10305100Scy (at your option) any later version. 11305100Scy 12305100Scy This program is distributed in the hope that it will be useful, 13305100Scy but WITHOUT ANY WARRANTY; without even the implied warranty of 14305100Scy MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15305100Scy GNU General Public License for more details. 16305100Scy 17305100Scy You should have received a copy of the GNU General Public License 18305100Scy along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19305100Scy 20305100Scy/* As a special exception, you may create a larger work that contains 21305100Scy part or all of the Bison parser skeleton and distribute that work 22305100Scy under terms of your choice, so long as that work isn't itself a 23305100Scy parser generator using the skeleton or a modified version thereof 24305100Scy as a parser skeleton. Alternatively, if you modify or redistribute 25305100Scy the parser skeleton itself, you may (at your option) remove this 26305100Scy special exception, which will cause the skeleton and the resulting 27305100Scy Bison output files to be licensed under the GNU General Public 28305100Scy License without this special exception. 29305100Scy 30305100Scy This special exception was added by the Free Software Foundation in 31305100Scy version 2.2 of Bison. */ 32305100Scy 33305100Scy/* C LALR(1) parser skeleton written by Richard Stallman, by 34305100Scy simplifying the original so-called "semantic" parser. */ 35305100Scy 36305100Scy/* All symbols defined below should begin with yy or YY, to avoid 37305100Scy infringing on user name space. This should be done even for local 38305100Scy variables, as they might otherwise be expanded by user macros. 39305100Scy There are some unavoidable exceptions within include files to 40305100Scy define necessary library symbols; they are noted "INFRINGES ON 41305100Scy USER NAME SPACE" below. */ 42305100Scy 43305100Scy/* Identify Bison output. */ 44305100Scy#define YYBISON 1 45305100Scy 46305100Scy/* Bison version. */ 47305100Scy#define YYBISON_VERSION "3.0.2" 48305100Scy 49305100Scy/* Skeleton name. */ 50305100Scy#define YYSKELETON_NAME "yacc.c" 51305100Scy 52305100Scy/* Pure parsers. */ 53305100Scy#define YYPURE 0 54305100Scy 55305100Scy/* Push parsers. */ 56305100Scy#define YYPUSH 0 57305100Scy 58305100Scy/* Pull parsers. */ 59305100Scy#define YYPULL 1 60305100Scy 61305100Scy 62305100Scy/* Substitute the variable and function names. */ 63305100Scy#define yyparse null_parse 64305100Scy#define yylex null_lex 65305100Scy#define yyerror null_error 66305100Scy#define yydebug null_debug 67305100Scy#define yynerrs null_nerrs 68305100Scy 69305100Scy#define yylval null_lval 70305100Scy#define yychar null_char 71305100Scy 72305100Scy/* Copy the first part of user declarations. */ 73305100Scy#line 1 "../../fsinfo/null_gram.y" /* yacc.c:339 */ 74305100Scy 75305100Scyvoid yyerror(const char *fmt, ...); 76305100Scyextern int yylex(void); 77305100Scy 78305100Scy#line 79 "null_gram.c" /* yacc.c:339 */ 79305100Scy 80305100Scy# ifndef YY_NULLPTR 81305100Scy# if defined __cplusplus && 201103L <= __cplusplus 82305100Scy# define YY_NULLPTR nullptr 83305100Scy# else 84305100Scy# define YY_NULLPTR 0 85305100Scy# endif 86305100Scy# endif 87305100Scy 88305100Scy/* Enabling verbose error messages. */ 89305100Scy#ifdef YYERROR_VERBOSE 90305100Scy# undef YYERROR_VERBOSE 91305100Scy# define YYERROR_VERBOSE 1 92305100Scy#else 93305100Scy# define YYERROR_VERBOSE 0 94305100Scy#endif 95305100Scy 96305100Scy/* In a future release of Bison, this section will be replaced 97305100Scy by #include "y.tab.h". */ 98305100Scy#ifndef YY_NULL_NULL_GRAM_H_INCLUDED 99305100Scy# define YY_NULL_NULL_GRAM_H_INCLUDED 100305100Scy/* Debug traces. */ 101305100Scy#ifndef YYDEBUG 102305100Scy# define YYDEBUG 0 103305100Scy#endif 104305100Scy#if YYDEBUG 105305100Scyextern int null_debug; 106305100Scy#endif 107305100Scy 108305100Scy 109305100Scy/* Value type. */ 110305100Scy#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 111305100Scytypedef int YYSTYPE; 112305100Scy# define YYSTYPE_IS_TRIVIAL 1 113305100Scy# define YYSTYPE_IS_DECLARED 1 114305100Scy#endif 115305100Scy 116305100Scy 117305100Scyextern YYSTYPE null_lval; 118305100Scy 119305100Scyint null_parse (void); 120305100Scy 121305100Scy#endif /* !YY_NULL_NULL_GRAM_H_INCLUDED */ 122305100Scy 123305100Scy/* Copy the second part of user declarations. */ 124305100Scy 125305100Scy#line 126 "null_gram.c" /* yacc.c:358 */ 126305100Scy 127305100Scy#ifdef short 128305100Scy# undef short 129305100Scy#endif 130305100Scy 131305100Scy#ifdef YYTYPE_UINT8 132305100Scytypedef YYTYPE_UINT8 yytype_uint8; 133305100Scy#else 134305100Scytypedef unsigned char yytype_uint8; 135305100Scy#endif 136305100Scy 137305100Scy#ifdef YYTYPE_INT8 138305100Scytypedef YYTYPE_INT8 yytype_int8; 139305100Scy#else 140305100Scytypedef signed char yytype_int8; 141305100Scy#endif 142305100Scy 143305100Scy#ifdef YYTYPE_UINT16 144305100Scytypedef YYTYPE_UINT16 yytype_uint16; 145305100Scy#else 146305100Scytypedef unsigned short int yytype_uint16; 147305100Scy#endif 148305100Scy 149305100Scy#ifdef YYTYPE_INT16 150305100Scytypedef YYTYPE_INT16 yytype_int16; 151305100Scy#else 152305100Scytypedef short int yytype_int16; 153305100Scy#endif 154305100Scy 155305100Scy#ifndef YYSIZE_T 156305100Scy# ifdef __SIZE_TYPE__ 157305100Scy# define YYSIZE_T __SIZE_TYPE__ 158305100Scy# elif defined size_t 159305100Scy# define YYSIZE_T size_t 160305100Scy# elif ! defined YYSIZE_T 161305100Scy# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 162305100Scy# define YYSIZE_T size_t 163305100Scy# else 164305100Scy# define YYSIZE_T unsigned int 165305100Scy# endif 166305100Scy#endif 167305100Scy 168305100Scy#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 169305100Scy 170305100Scy#ifndef YY_ 171305100Scy# if defined YYENABLE_NLS && YYENABLE_NLS 172305100Scy# if ENABLE_NLS 173305100Scy# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 174305100Scy# define YY_(Msgid) dgettext ("bison-runtime", Msgid) 175305100Scy# endif 176305100Scy# endif 177305100Scy# ifndef YY_ 178305100Scy# define YY_(Msgid) Msgid 179305100Scy# endif 180305100Scy#endif 181305100Scy 182305100Scy#ifndef YY_ATTRIBUTE 183305100Scy# if (defined __GNUC__ \ 184305100Scy && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 185305100Scy || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 186305100Scy# define YY_ATTRIBUTE(Spec) __attribute__(Spec) 187305100Scy# else 188305100Scy# define YY_ATTRIBUTE(Spec) /* empty */ 189305100Scy# endif 190305100Scy#endif 191305100Scy 192305100Scy#ifndef YY_ATTRIBUTE_PURE 193305100Scy# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 194305100Scy#endif 195305100Scy 196305100Scy#ifndef YY_ATTRIBUTE_UNUSED 197305100Scy# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 198305100Scy#endif 199305100Scy 200305100Scy#if !defined _Noreturn \ 201305100Scy && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 202305100Scy# if defined _MSC_VER && 1200 <= _MSC_VER 203305100Scy# define _Noreturn __declspec (noreturn) 204305100Scy# else 205305100Scy# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 206305100Scy# endif 207305100Scy#endif 208305100Scy 209305100Scy/* Suppress unused-variable warnings by "using" E. */ 210305100Scy#if ! defined lint || defined __GNUC__ 211305100Scy# define YYUSE(E) ((void) (E)) 212305100Scy#else 213305100Scy# define YYUSE(E) /* empty */ 214305100Scy#endif 215305100Scy 216305100Scy#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 217305100Scy/* Suppress an incorrect diagnostic about yylval being uninitialized. */ 218305100Scy# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 219305100Scy _Pragma ("GCC diagnostic push") \ 220305100Scy _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 221305100Scy _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 222305100Scy# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 223305100Scy _Pragma ("GCC diagnostic pop") 224305100Scy#else 225305100Scy# define YY_INITIAL_VALUE(Value) Value 226305100Scy#endif 227305100Scy#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 228305100Scy# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 229305100Scy# define YY_IGNORE_MAYBE_UNINITIALIZED_END 230305100Scy#endif 231305100Scy#ifndef YY_INITIAL_VALUE 232305100Scy# define YY_INITIAL_VALUE(Value) /* Nothing. */ 233305100Scy#endif 234305100Scy 235305100Scy 236305100Scy#if ! defined yyoverflow || YYERROR_VERBOSE 237305100Scy 238305100Scy/* The parser invokes alloca or malloc; define the necessary symbols. */ 239305100Scy 240305100Scy# ifdef YYSTACK_USE_ALLOCA 241305100Scy# if YYSTACK_USE_ALLOCA 242305100Scy# ifdef __GNUC__ 243305100Scy# define YYSTACK_ALLOC __builtin_alloca 244305100Scy# elif defined __BUILTIN_VA_ARG_INCR 245305100Scy# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 246305100Scy# elif defined _AIX 247305100Scy# define YYSTACK_ALLOC __alloca 248305100Scy# elif defined _MSC_VER 249305100Scy# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 250305100Scy# define alloca _alloca 251305100Scy# else 252305100Scy# define YYSTACK_ALLOC alloca 253305100Scy# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 254305100Scy# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 255305100Scy /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 256305100Scy# ifndef EXIT_SUCCESS 257305100Scy# define EXIT_SUCCESS 0 258305100Scy# endif 259305100Scy# endif 260305100Scy# endif 261305100Scy# endif 262305100Scy# endif 263305100Scy 264305100Scy# ifdef YYSTACK_ALLOC 265305100Scy /* Pacify GCC's 'empty if-body' warning. */ 266305100Scy# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 267305100Scy# ifndef YYSTACK_ALLOC_MAXIMUM 268305100Scy /* The OS might guarantee only one guard page at the bottom of the stack, 269305100Scy and a page size can be as small as 4096 bytes. So we cannot safely 270305100Scy invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 271305100Scy to allow for a few compiler-allocated temporary stack slots. */ 272305100Scy# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 273305100Scy# endif 274305100Scy# else 275305100Scy# define YYSTACK_ALLOC YYMALLOC 276305100Scy# define YYSTACK_FREE YYFREE 277305100Scy# ifndef YYSTACK_ALLOC_MAXIMUM 278305100Scy# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 279305100Scy# endif 280305100Scy# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 281305100Scy && ! ((defined YYMALLOC || defined malloc) \ 282305100Scy && (defined YYFREE || defined free))) 283305100Scy# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 284305100Scy# ifndef EXIT_SUCCESS 285305100Scy# define EXIT_SUCCESS 0 286305100Scy# endif 287305100Scy# endif 288305100Scy# ifndef YYMALLOC 289305100Scy# define YYMALLOC malloc 290305100Scy# if ! defined malloc && ! defined EXIT_SUCCESS 291305100Scyvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 292305100Scy# endif 293305100Scy# endif 294305100Scy# ifndef YYFREE 295305100Scy# define YYFREE free 296305100Scy# if ! defined free && ! defined EXIT_SUCCESS 297305100Scyvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 298305100Scy# endif 299305100Scy# endif 300305100Scy# endif 301305100Scy#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 302305100Scy 303305100Scy 304305100Scy#if (! defined yyoverflow \ 305305100Scy && (! defined __cplusplus \ 306305100Scy || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 307305100Scy 308305100Scy/* A type that is properly aligned for any stack member. */ 309305100Scyunion yyalloc 310305100Scy{ 311305100Scy yytype_int16 yyss_alloc; 312305100Scy YYSTYPE yyvs_alloc; 313305100Scy}; 314305100Scy 315305100Scy/* The size of the maximum gap between one aligned stack and the next. */ 316305100Scy# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 317305100Scy 318305100Scy/* The size of an array large to enough to hold all stacks, each with 319305100Scy N elements. */ 320305100Scy# define YYSTACK_BYTES(N) \ 321305100Scy ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 322305100Scy + YYSTACK_GAP_MAXIMUM) 323305100Scy 324305100Scy# define YYCOPY_NEEDED 1 325305100Scy 326305100Scy/* Relocate STACK from its old location to the new one. The 327305100Scy local variables YYSIZE and YYSTACKSIZE give the old and new number of 328305100Scy elements in the stack, and YYPTR gives the new location of the 329305100Scy stack. Advance YYPTR to a properly aligned location for the next 330305100Scy stack. */ 331305100Scy# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 332305100Scy do \ 333305100Scy { \ 334305100Scy YYSIZE_T yynewbytes; \ 335305100Scy YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 336305100Scy Stack = &yyptr->Stack_alloc; \ 337305100Scy yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 338305100Scy yyptr += yynewbytes / sizeof (*yyptr); \ 339305100Scy } \ 340305100Scy while (0) 341305100Scy 342305100Scy#endif 343305100Scy 344305100Scy#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 345305100Scy/* Copy COUNT objects from SRC to DST. The source and destination do 346305100Scy not overlap. */ 347305100Scy# ifndef YYCOPY 348305100Scy# if defined __GNUC__ && 1 < __GNUC__ 349305100Scy# define YYCOPY(Dst, Src, Count) \ 350305100Scy __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 351305100Scy# else 352305100Scy# define YYCOPY(Dst, Src, Count) \ 353305100Scy do \ 354305100Scy { \ 355305100Scy YYSIZE_T yyi; \ 356305100Scy for (yyi = 0; yyi < (Count); yyi++) \ 357305100Scy (Dst)[yyi] = (Src)[yyi]; \ 358305100Scy } \ 359305100Scy while (0) 360305100Scy# endif 361305100Scy# endif 362305100Scy#endif /* !YYCOPY_NEEDED */ 363305100Scy 364305100Scy/* YYFINAL -- State number of the termination state. */ 365305100Scy#define YYFINAL 2 366305100Scy/* YYLAST -- Last index in YYTABLE. */ 367305100Scy#define YYLAST 0 368305100Scy 369305100Scy/* YYNTOKENS -- Number of terminals. */ 370305100Scy#define YYNTOKENS 3 371305100Scy/* YYNNTS -- Number of nonterminals. */ 372305100Scy#define YYNNTS 2 373305100Scy/* YYNRULES -- Number of rules. */ 374305100Scy#define YYNRULES 2 375305100Scy/* YYNSTATES -- Number of states. */ 376305100Scy#define YYNSTATES 3 377305100Scy 378305100Scy/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 379305100Scy by yylex, with out-of-bounds checking. */ 380305100Scy#define YYUNDEFTOK 2 381305100Scy#define YYMAXUTOK 257 382305100Scy 383305100Scy#define YYTRANSLATE(YYX) \ 384305100Scy ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 385305100Scy 386305100Scy/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 387305100Scy as returned by yylex, without out-of-bounds checking. */ 388305100Scystatic const yytype_uint8 yytranslate[] = 389305100Scy{ 390305100Scy 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 391305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 392305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 393305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 394305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 395305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 396305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 397305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 398305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 399305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 400305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 401305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 402305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 403305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 404305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 405305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 406305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 407305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 408305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 409305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 410305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 411305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 412305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 413305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 414305100Scy 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 415305100Scy 2, 2, 2, 2, 2, 2, 1, 2 416305100Scy}; 417305100Scy 418305100Scy#if YYDEBUG 419305100Scy /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 420305100Scystatic const yytype_uint8 yyrline[] = 421305100Scy{ 422305100Scy 0, 8, 8 423305100Scy}; 424305100Scy#endif 425305100Scy 426305100Scy#if YYDEBUG || YYERROR_VERBOSE || 0 427305100Scy/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 428305100Scy First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 429305100Scystatic const char *const yytname[] = 430305100Scy{ 431305100Scy "$end", "error", "$undefined", "$accept", "token", YY_NULLPTR 432305100Scy}; 433305100Scy#endif 434305100Scy 435305100Scy# ifdef YYPRINT 436305100Scy/* YYTOKNUM[NUM] -- (External) token number corresponding to the 437305100Scy (internal) symbol number NUM (which must be that of a token). */ 438305100Scystatic const yytype_uint16 yytoknum[] = 439305100Scy{ 440305100Scy 0, 256, 257 441305100Scy}; 442305100Scy# endif 443305100Scy 444305100Scy#define YYPACT_NINF -1 445305100Scy 446305100Scy#define yypact_value_is_default(Yystate) \ 447305100Scy (!!((Yystate) == (-1))) 448305100Scy 449305100Scy#define YYTABLE_NINF -1 450305100Scy 451305100Scy#define yytable_value_is_error(Yytable_value) \ 452305100Scy 0 453305100Scy 454305100Scy /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 455305100Scy STATE-NUM. */ 456305100Scystatic const yytype_int8 yypact[] = 457305100Scy{ 458305100Scy -1, 0, -1 459305100Scy}; 460305100Scy 461305100Scy /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 462305100Scy Performed when YYTABLE does not specify something else to do. Zero 463305100Scy means the default is an error. */ 464305100Scystatic const yytype_uint8 yydefact[] = 465305100Scy{ 466305100Scy 2, 0, 1 467305100Scy}; 468305100Scy 469305100Scy /* YYPGOTO[NTERM-NUM]. */ 470305100Scystatic const yytype_int8 yypgoto[] = 471305100Scy{ 472305100Scy -1, -1 473305100Scy}; 474305100Scy 475305100Scy /* YYDEFGOTO[NTERM-NUM]. */ 476305100Scystatic const yytype_int8 yydefgoto[] = 477305100Scy{ 478305100Scy -1, 1 479305100Scy}; 480305100Scy 481305100Scy /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 482305100Scy positive, shift that token. If negative, reduce the rule whose 483305100Scy number is the opposite. If YYTABLE_NINF, syntax error. */ 484305100Scystatic const yytype_uint8 yytable[] = 485305100Scy{ 486305100Scy 2 487305100Scy}; 488305100Scy 489305100Scystatic const yytype_uint8 yycheck[] = 490305100Scy{ 491305100Scy 0 492305100Scy}; 493305100Scy 494305100Scy /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 495305100Scy symbol of state STATE-NUM. */ 496305100Scystatic const yytype_uint8 yystos[] = 497305100Scy{ 498305100Scy 0, 4, 0 499305100Scy}; 500305100Scy 501305100Scy /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 502305100Scystatic const yytype_uint8 yyr1[] = 503305100Scy{ 504305100Scy 0, 3, 4 505305100Scy}; 506305100Scy 507305100Scy /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 508305100Scystatic const yytype_uint8 yyr2[] = 509305100Scy{ 510305100Scy 0, 2, 0 511305100Scy}; 512305100Scy 513305100Scy 514305100Scy#define yyerrok (yyerrstatus = 0) 515305100Scy#define yyclearin (yychar = YYEMPTY) 516305100Scy#define YYEMPTY (-2) 517305100Scy#define YYEOF 0 518305100Scy 519305100Scy#define YYACCEPT goto yyacceptlab 520305100Scy#define YYABORT goto yyabortlab 521305100Scy#define YYERROR goto yyerrorlab 522305100Scy 523305100Scy 524305100Scy#define YYRECOVERING() (!!yyerrstatus) 525305100Scy 526305100Scy#define YYBACKUP(Token, Value) \ 527305100Scydo \ 528305100Scy if (yychar == YYEMPTY) \ 529305100Scy { \ 530305100Scy yychar = (Token); \ 531305100Scy yylval = (Value); \ 532305100Scy YYPOPSTACK (yylen); \ 533305100Scy yystate = *yyssp; \ 534305100Scy goto yybackup; \ 535305100Scy } \ 536305100Scy else \ 537305100Scy { \ 538305100Scy yyerror (YY_("syntax error: cannot back up")); \ 539305100Scy YYERROR; \ 540305100Scy } \ 541305100Scywhile (0) 542305100Scy 543305100Scy/* Error token number */ 544305100Scy#define YYTERROR 1 545305100Scy#define YYERRCODE 256 546305100Scy 547305100Scy 548305100Scy 549305100Scy/* Enable debugging if requested. */ 550305100Scy#if YYDEBUG 551305100Scy 552305100Scy# ifndef YYFPRINTF 553305100Scy# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 554305100Scy# define YYFPRINTF fprintf 555305100Scy# endif 556305100Scy 557305100Scy# define YYDPRINTF(Args) \ 558305100Scydo { \ 559305100Scy if (yydebug) \ 560305100Scy YYFPRINTF Args; \ 561305100Scy} while (0) 562305100Scy 563305100Scy/* This macro is provided for backward compatibility. */ 564305100Scy#ifndef YY_LOCATION_PRINT 565305100Scy# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 566305100Scy#endif 567305100Scy 568305100Scy 569305100Scy# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 570305100Scydo { \ 571305100Scy if (yydebug) \ 572305100Scy { \ 573305100Scy YYFPRINTF (stderr, "%s ", Title); \ 574305100Scy yy_symbol_print (stderr, \ 575305100Scy Type, Value); \ 576305100Scy YYFPRINTF (stderr, "\n"); \ 577305100Scy } \ 578305100Scy} while (0) 579305100Scy 580305100Scy 581305100Scy/*----------------------------------------. 582305100Scy| Print this symbol's value on YYOUTPUT. | 583305100Scy`----------------------------------------*/ 584305100Scy 585305100Scystatic void 586305100Scyyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 587305100Scy{ 588305100Scy FILE *yyo = yyoutput; 589305100Scy YYUSE (yyo); 590305100Scy if (!yyvaluep) 591305100Scy return; 592305100Scy# ifdef YYPRINT 593305100Scy if (yytype < YYNTOKENS) 594305100Scy YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 595305100Scy# endif 596305100Scy YYUSE (yytype); 597305100Scy} 598305100Scy 599305100Scy 600305100Scy/*--------------------------------. 601305100Scy| Print this symbol on YYOUTPUT. | 602305100Scy`--------------------------------*/ 603305100Scy 604305100Scystatic void 605305100Scyyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 606305100Scy{ 607305100Scy YYFPRINTF (yyoutput, "%s %s (", 608305100Scy yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 609305100Scy 610305100Scy yy_symbol_value_print (yyoutput, yytype, yyvaluep); 611305100Scy YYFPRINTF (yyoutput, ")"); 612305100Scy} 613305100Scy 614305100Scy/*------------------------------------------------------------------. 615305100Scy| yy_stack_print -- Print the state stack from its BOTTOM up to its | 616305100Scy| TOP (included). | 617305100Scy`------------------------------------------------------------------*/ 618305100Scy 619305100Scystatic void 620305100Scyyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 621305100Scy{ 622305100Scy YYFPRINTF (stderr, "Stack now"); 623305100Scy for (; yybottom <= yytop; yybottom++) 624305100Scy { 625305100Scy int yybot = *yybottom; 626305100Scy YYFPRINTF (stderr, " %d", yybot); 627305100Scy } 628305100Scy YYFPRINTF (stderr, "\n"); 629305100Scy} 630305100Scy 631305100Scy# define YY_STACK_PRINT(Bottom, Top) \ 632305100Scydo { \ 633305100Scy if (yydebug) \ 634305100Scy yy_stack_print ((Bottom), (Top)); \ 635305100Scy} while (0) 636305100Scy 637305100Scy 638305100Scy/*------------------------------------------------. 639305100Scy| Report that the YYRULE is going to be reduced. | 640305100Scy`------------------------------------------------*/ 641305100Scy 642305100Scystatic void 643305100Scyyy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 644305100Scy{ 645305100Scy unsigned long int yylno = yyrline[yyrule]; 646305100Scy int yynrhs = yyr2[yyrule]; 647305100Scy int yyi; 648305100Scy YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 649305100Scy yyrule - 1, yylno); 650305100Scy /* The symbols being reduced. */ 651305100Scy for (yyi = 0; yyi < yynrhs; yyi++) 652305100Scy { 653305100Scy YYFPRINTF (stderr, " $%d = ", yyi + 1); 654305100Scy yy_symbol_print (stderr, 655305100Scy yystos[yyssp[yyi + 1 - yynrhs]], 656305100Scy &(yyvsp[(yyi + 1) - (yynrhs)]) 657305100Scy ); 658305100Scy YYFPRINTF (stderr, "\n"); 659305100Scy } 660305100Scy} 661305100Scy 662305100Scy# define YY_REDUCE_PRINT(Rule) \ 663305100Scydo { \ 664305100Scy if (yydebug) \ 665305100Scy yy_reduce_print (yyssp, yyvsp, Rule); \ 666305100Scy} while (0) 667305100Scy 668305100Scy/* Nonzero means print parse trace. It is left uninitialized so that 669305100Scy multiple parsers can coexist. */ 670305100Scyint yydebug; 671305100Scy#else /* !YYDEBUG */ 672305100Scy# define YYDPRINTF(Args) 673305100Scy# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 674305100Scy# define YY_STACK_PRINT(Bottom, Top) 675305100Scy# define YY_REDUCE_PRINT(Rule) 676305100Scy#endif /* !YYDEBUG */ 677305100Scy 678305100Scy 679305100Scy/* YYINITDEPTH -- initial size of the parser's stacks. */ 680305100Scy#ifndef YYINITDEPTH 681305100Scy# define YYINITDEPTH 200 682305100Scy#endif 683305100Scy 684305100Scy/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 685305100Scy if the built-in stack extension method is used). 686305100Scy 687305100Scy Do not make this value too large; the results are undefined if 688305100Scy YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 689305100Scy evaluated with infinite-precision integer arithmetic. */ 690305100Scy 691305100Scy#ifndef YYMAXDEPTH 692305100Scy# define YYMAXDEPTH 10000 693305100Scy#endif 694305100Scy 695305100Scy 696305100Scy#if YYERROR_VERBOSE 697305100Scy 698305100Scy# ifndef yystrlen 699305100Scy# if defined __GLIBC__ && defined _STRING_H 700305100Scy# define yystrlen strlen 701305100Scy# else 702305100Scy/* Return the length of YYSTR. */ 703305100Scystatic YYSIZE_T 704305100Scyyystrlen (const char *yystr) 705305100Scy{ 706305100Scy YYSIZE_T yylen; 707305100Scy for (yylen = 0; yystr[yylen]; yylen++) 708305100Scy continue; 709305100Scy return yylen; 710305100Scy} 711305100Scy# endif 712305100Scy# endif 713305100Scy 714305100Scy# ifndef yystpcpy 715305100Scy# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 716305100Scy# define yystpcpy stpcpy 717305100Scy# else 718305100Scy/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 719305100Scy YYDEST. */ 720305100Scystatic char * 721305100Scyyystpcpy (char *yydest, const char *yysrc) 722305100Scy{ 723305100Scy char *yyd = yydest; 724305100Scy const char *yys = yysrc; 725305100Scy 726305100Scy while ((*yyd++ = *yys++) != '\0') 727305100Scy continue; 728305100Scy 729305100Scy return yyd - 1; 730305100Scy} 731305100Scy# endif 732305100Scy# endif 733305100Scy 734305100Scy# ifndef yytnamerr 735305100Scy/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 736305100Scy quotes and backslashes, so that it's suitable for yyerror. The 737305100Scy heuristic is that double-quoting is unnecessary unless the string 738305100Scy contains an apostrophe, a comma, or backslash (other than 739305100Scy backslash-backslash). YYSTR is taken from yytname. If YYRES is 740305100Scy null, do not copy; instead, return the length of what the result 741305100Scy would have been. */ 742305100Scystatic YYSIZE_T 743305100Scyyytnamerr (char *yyres, const char *yystr) 744305100Scy{ 745305100Scy if (*yystr == '"') 746305100Scy { 747305100Scy YYSIZE_T yyn = 0; 748305100Scy char const *yyp = yystr; 749305100Scy 750305100Scy for (;;) 751305100Scy switch (*++yyp) 752305100Scy { 753305100Scy case '\'': 754305100Scy case ',': 755305100Scy goto do_not_strip_quotes; 756305100Scy 757305100Scy case '\\': 758305100Scy if (*++yyp != '\\') 759305100Scy goto do_not_strip_quotes; 760305100Scy /* Fall through. */ 761305100Scy default: 762305100Scy if (yyres) 763305100Scy yyres[yyn] = *yyp; 764305100Scy yyn++; 765305100Scy break; 766305100Scy 767305100Scy case '"': 768305100Scy if (yyres) 769305100Scy yyres[yyn] = '\0'; 770305100Scy return yyn; 771305100Scy } 772305100Scy do_not_strip_quotes: ; 773305100Scy } 774305100Scy 775305100Scy if (! yyres) 776305100Scy return yystrlen (yystr); 777305100Scy 778305100Scy return yystpcpy (yyres, yystr) - yyres; 779305100Scy} 780305100Scy# endif 781305100Scy 782305100Scy/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 783305100Scy about the unexpected token YYTOKEN for the state stack whose top is 784305100Scy YYSSP. 785305100Scy 786305100Scy Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 787305100Scy not large enough to hold the message. In that case, also set 788305100Scy *YYMSG_ALLOC to the required number of bytes. Return 2 if the 789305100Scy required number of bytes is too large to store. */ 790305100Scystatic int 791305100Scyyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 792305100Scy yytype_int16 *yyssp, int yytoken) 793305100Scy{ 794305100Scy YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 795305100Scy YYSIZE_T yysize = yysize0; 796305100Scy enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 797305100Scy /* Internationalized format string. */ 798305100Scy const char *yyformat = YY_NULLPTR; 799305100Scy /* Arguments of yyformat. */ 800305100Scy char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 801305100Scy /* Number of reported tokens (one for the "unexpected", one per 802305100Scy "expected"). */ 803305100Scy int yycount = 0; 804305100Scy 805305100Scy /* There are many possibilities here to consider: 806305100Scy - If this state is a consistent state with a default action, then 807305100Scy the only way this function was invoked is if the default action 808305100Scy is an error action. In that case, don't check for expected 809305100Scy tokens because there are none. 810305100Scy - The only way there can be no lookahead present (in yychar) is if 811305100Scy this state is a consistent state with a default action. Thus, 812305100Scy detecting the absence of a lookahead is sufficient to determine 813305100Scy that there is no unexpected or expected token to report. In that 814305100Scy case, just report a simple "syntax error". 815305100Scy - Don't assume there isn't a lookahead just because this state is a 816305100Scy consistent state with a default action. There might have been a 817305100Scy previous inconsistent state, consistent state with a non-default 818305100Scy action, or user semantic action that manipulated yychar. 819305100Scy - Of course, the expected token list depends on states to have 820305100Scy correct lookahead information, and it depends on the parser not 821305100Scy to perform extra reductions after fetching a lookahead from the 822305100Scy scanner and before detecting a syntax error. Thus, state merging 823305100Scy (from LALR or IELR) and default reductions corrupt the expected 824305100Scy token list. However, the list is correct for canonical LR with 825305100Scy one exception: it will still contain any token that will not be 826305100Scy accepted due to an error action in a later state. 827305100Scy */ 828305100Scy if (yytoken != YYEMPTY) 829305100Scy { 830305100Scy int yyn = yypact[*yyssp]; 831305100Scy yyarg[yycount++] = yytname[yytoken]; 832305100Scy if (!yypact_value_is_default (yyn)) 833305100Scy { 834305100Scy /* Start YYX at -YYN if negative to avoid negative indexes in 835305100Scy YYCHECK. In other words, skip the first -YYN actions for 836305100Scy this state because they are default actions. */ 837305100Scy int yyxbegin = yyn < 0 ? -yyn : 0; 838305100Scy /* Stay within bounds of both yycheck and yytname. */ 839305100Scy int yychecklim = YYLAST - yyn + 1; 840305100Scy int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 841305100Scy int yyx; 842305100Scy 843305100Scy for (yyx = yyxbegin; yyx < yyxend; ++yyx) 844305100Scy if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 845305100Scy && !yytable_value_is_error (yytable[yyx + yyn])) 846305100Scy { 847305100Scy if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 848305100Scy { 849305100Scy yycount = 1; 850305100Scy yysize = yysize0; 851305100Scy break; 852305100Scy } 853305100Scy yyarg[yycount++] = yytname[yyx]; 854305100Scy { 855305100Scy YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 856305100Scy if (! (yysize <= yysize1 857305100Scy && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 858305100Scy return 2; 859305100Scy yysize = yysize1; 860305100Scy } 861305100Scy } 862305100Scy } 863305100Scy } 864305100Scy 865305100Scy switch (yycount) 866305100Scy { 867305100Scy# define YYCASE_(N, S) \ 868305100Scy case N: \ 869305100Scy yyformat = S; \ 870305100Scy break 871305100Scy YYCASE_(0, YY_("syntax error")); 872305100Scy YYCASE_(1, YY_("syntax error, unexpected %s")); 873305100Scy YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 874305100Scy YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 875305100Scy YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 876305100Scy YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 877305100Scy# undef YYCASE_ 878305100Scy } 879305100Scy 880305100Scy { 881305100Scy YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 882305100Scy if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 883305100Scy return 2; 884305100Scy yysize = yysize1; 885305100Scy } 886305100Scy 887305100Scy if (*yymsg_alloc < yysize) 888305100Scy { 889305100Scy *yymsg_alloc = 2 * yysize; 890305100Scy if (! (yysize <= *yymsg_alloc 891305100Scy && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 892305100Scy *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 893305100Scy return 1; 894305100Scy } 895305100Scy 896305100Scy /* Avoid sprintf, as that infringes on the user's name space. 897305100Scy Don't have undefined behavior even if the translation 898305100Scy produced a string with the wrong number of "%s"s. */ 899305100Scy { 900305100Scy char *yyp = *yymsg; 901305100Scy int yyi = 0; 902305100Scy while ((*yyp = *yyformat) != '\0') 903305100Scy if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 904305100Scy { 905305100Scy yyp += yytnamerr (yyp, yyarg[yyi++]); 906305100Scy yyformat += 2; 907305100Scy } 908305100Scy else 909305100Scy { 910305100Scy yyp++; 911305100Scy yyformat++; 912305100Scy } 913305100Scy } 914305100Scy return 0; 915305100Scy} 916305100Scy#endif /* YYERROR_VERBOSE */ 917305100Scy 918305100Scy/*-----------------------------------------------. 919305100Scy| Release the memory associated to this symbol. | 920305100Scy`-----------------------------------------------*/ 921305100Scy 922305100Scystatic void 923305100Scyyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 924305100Scy{ 925305100Scy YYUSE (yyvaluep); 926305100Scy if (!yymsg) 927305100Scy yymsg = "Deleting"; 928305100Scy YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 929305100Scy 930305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 931305100Scy YYUSE (yytype); 932305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_END 933305100Scy} 934305100Scy 935305100Scy 936305100Scy 937305100Scy 938305100Scy/* The lookahead symbol. */ 939305100Scyint yychar; 940305100Scy 941305100Scy/* The semantic value of the lookahead symbol. */ 942305100ScyYYSTYPE yylval; 943305100Scy/* Number of syntax errors so far. */ 944305100Scyint yynerrs; 945305100Scy 946305100Scy 947305100Scy/*----------. 948305100Scy| yyparse. | 949305100Scy`----------*/ 950305100Scy 951305100Scyint 952305100Scyyyparse (void) 953305100Scy{ 954305100Scy int yystate; 955305100Scy /* Number of tokens to shift before error messages enabled. */ 956305100Scy int yyerrstatus; 957305100Scy 958305100Scy /* The stacks and their tools: 959305100Scy 'yyss': related to states. 960305100Scy 'yyvs': related to semantic values. 961305100Scy 962305100Scy Refer to the stacks through separate pointers, to allow yyoverflow 963305100Scy to reallocate them elsewhere. */ 964305100Scy 965305100Scy /* The state stack. */ 966305100Scy yytype_int16 yyssa[YYINITDEPTH]; 967305100Scy yytype_int16 *yyss; 968305100Scy yytype_int16 *yyssp; 969305100Scy 970305100Scy /* The semantic value stack. */ 971305100Scy YYSTYPE yyvsa[YYINITDEPTH]; 972305100Scy YYSTYPE *yyvs; 973305100Scy YYSTYPE *yyvsp; 974305100Scy 975305100Scy YYSIZE_T yystacksize; 976305100Scy 977305100Scy int yyn; 978305100Scy int yyresult; 979305100Scy /* Lookahead token as an internal (translated) token number. */ 980305100Scy int yytoken = 0; 981305100Scy /* The variables used to return semantic value and location from the 982305100Scy action routines. */ 983305100Scy YYSTYPE yyval; 984305100Scy 985305100Scy#if YYERROR_VERBOSE 986305100Scy /* Buffer for error messages, and its allocated size. */ 987305100Scy char yymsgbuf[128]; 988305100Scy char *yymsg = yymsgbuf; 989305100Scy YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 990305100Scy#endif 991305100Scy 992305100Scy#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 993305100Scy 994305100Scy /* The number of symbols on the RHS of the reduced rule. 995305100Scy Keep to zero when no symbol should be popped. */ 996305100Scy int yylen = 0; 997305100Scy 998305100Scy yyssp = yyss = yyssa; 999305100Scy yyvsp = yyvs = yyvsa; 1000305100Scy yystacksize = YYINITDEPTH; 1001305100Scy 1002305100Scy YYDPRINTF ((stderr, "Starting parse\n")); 1003305100Scy 1004305100Scy yystate = 0; 1005305100Scy yyerrstatus = 0; 1006305100Scy yynerrs = 0; 1007305100Scy yychar = YYEMPTY; /* Cause a token to be read. */ 1008305100Scy goto yysetstate; 1009305100Scy 1010305100Scy/*------------------------------------------------------------. 1011305100Scy| yynewstate -- Push a new state, which is found in yystate. | 1012305100Scy`------------------------------------------------------------*/ 1013305100Scy yynewstate: 1014305100Scy /* In all cases, when you get here, the value and location stacks 1015305100Scy have just been pushed. So pushing a state here evens the stacks. */ 1016305100Scy yyssp++; 1017305100Scy 1018305100Scy yysetstate: 1019305100Scy *yyssp = yystate; 1020305100Scy 1021305100Scy if (yyss + yystacksize - 1 <= yyssp) 1022305100Scy { 1023305100Scy /* Get the current used size of the three stacks, in elements. */ 1024305100Scy YYSIZE_T yysize = yyssp - yyss + 1; 1025305100Scy 1026305100Scy#ifdef yyoverflow 1027305100Scy { 1028305100Scy /* Give user a chance to reallocate the stack. Use copies of 1029305100Scy these so that the &'s don't force the real ones into 1030305100Scy memory. */ 1031305100Scy YYSTYPE *yyvs1 = yyvs; 1032305100Scy yytype_int16 *yyss1 = yyss; 1033305100Scy 1034305100Scy /* Each stack pointer address is followed by the size of the 1035305100Scy data in use in that stack, in bytes. This used to be a 1036305100Scy conditional around just the two extra args, but that might 1037305100Scy be undefined if yyoverflow is a macro. */ 1038305100Scy yyoverflow (YY_("memory exhausted"), 1039305100Scy &yyss1, yysize * sizeof (*yyssp), 1040305100Scy &yyvs1, yysize * sizeof (*yyvsp), 1041305100Scy &yystacksize); 1042305100Scy 1043305100Scy yyss = yyss1; 1044305100Scy yyvs = yyvs1; 1045305100Scy } 1046305100Scy#else /* no yyoverflow */ 1047305100Scy# ifndef YYSTACK_RELOCATE 1048305100Scy goto yyexhaustedlab; 1049305100Scy# else 1050305100Scy /* Extend the stack our own way. */ 1051305100Scy if (YYMAXDEPTH <= yystacksize) 1052305100Scy goto yyexhaustedlab; 1053305100Scy yystacksize *= 2; 1054305100Scy if (YYMAXDEPTH < yystacksize) 1055305100Scy yystacksize = YYMAXDEPTH; 1056305100Scy 1057305100Scy { 1058305100Scy yytype_int16 *yyss1 = yyss; 1059305100Scy union yyalloc *yyptr = 1060305100Scy (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1061305100Scy if (! yyptr) 1062305100Scy goto yyexhaustedlab; 1063305100Scy YYSTACK_RELOCATE (yyss_alloc, yyss); 1064305100Scy YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1065305100Scy# undef YYSTACK_RELOCATE 1066305100Scy if (yyss1 != yyssa) 1067305100Scy YYSTACK_FREE (yyss1); 1068305100Scy } 1069305100Scy# endif 1070305100Scy#endif /* no yyoverflow */ 1071305100Scy 1072305100Scy yyssp = yyss + yysize - 1; 1073305100Scy yyvsp = yyvs + yysize - 1; 1074305100Scy 1075305100Scy YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1076305100Scy (unsigned long int) yystacksize)); 1077305100Scy 1078305100Scy if (yyss + yystacksize - 1 <= yyssp) 1079305100Scy YYABORT; 1080305100Scy } 1081305100Scy 1082305100Scy YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1083305100Scy 1084305100Scy if (yystate == YYFINAL) 1085305100Scy YYACCEPT; 1086305100Scy 1087305100Scy goto yybackup; 1088305100Scy 1089305100Scy/*-----------. 1090305100Scy| yybackup. | 1091305100Scy`-----------*/ 1092305100Scyyybackup: 1093305100Scy 1094305100Scy /* Do appropriate processing given the current state. Read a 1095305100Scy lookahead token if we need one and don't already have one. */ 1096305100Scy 1097305100Scy /* First try to decide what to do without reference to lookahead token. */ 1098305100Scy yyn = yypact[yystate]; 1099305100Scy if (yypact_value_is_default (yyn)) 1100305100Scy goto yydefault; 1101305100Scy 1102305100Scy /* Not known => get a lookahead token if don't already have one. */ 1103305100Scy 1104305100Scy /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1105305100Scy if (yychar == YYEMPTY) 1106305100Scy { 1107305100Scy YYDPRINTF ((stderr, "Reading a token: ")); 1108305100Scy yychar = yylex (); 1109305100Scy } 1110305100Scy 1111305100Scy if (yychar <= YYEOF) 1112305100Scy { 1113305100Scy yychar = yytoken = YYEOF; 1114305100Scy YYDPRINTF ((stderr, "Now at end of input.\n")); 1115305100Scy } 1116305100Scy else 1117305100Scy { 1118305100Scy yytoken = YYTRANSLATE (yychar); 1119305100Scy YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1120305100Scy } 1121305100Scy 1122305100Scy /* If the proper action on seeing token YYTOKEN is to reduce or to 1123305100Scy detect an error, take that action. */ 1124305100Scy yyn += yytoken; 1125305100Scy if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1126305100Scy goto yydefault; 1127305100Scy yyn = yytable[yyn]; 1128305100Scy if (yyn <= 0) 1129305100Scy { 1130305100Scy if (yytable_value_is_error (yyn)) 1131305100Scy goto yyerrlab; 1132305100Scy yyn = -yyn; 1133305100Scy goto yyreduce; 1134305100Scy } 1135305100Scy 1136305100Scy /* Count tokens shifted since error; after three, turn off error 1137305100Scy status. */ 1138305100Scy if (yyerrstatus) 1139305100Scy yyerrstatus--; 1140305100Scy 1141305100Scy /* Shift the lookahead token. */ 1142305100Scy YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1143305100Scy 1144305100Scy /* Discard the shifted token. */ 1145305100Scy yychar = YYEMPTY; 1146305100Scy 1147305100Scy yystate = yyn; 1148305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1149305100Scy *++yyvsp = yylval; 1150305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_END 1151305100Scy 1152305100Scy goto yynewstate; 1153305100Scy 1154305100Scy 1155305100Scy/*-----------------------------------------------------------. 1156305100Scy| yydefault -- do the default action for the current state. | 1157305100Scy`-----------------------------------------------------------*/ 1158305100Scyyydefault: 1159305100Scy yyn = yydefact[yystate]; 1160305100Scy if (yyn == 0) 1161305100Scy goto yyerrlab; 1162305100Scy goto yyreduce; 1163305100Scy 1164305100Scy 1165305100Scy/*-----------------------------. 1166305100Scy| yyreduce -- Do a reduction. | 1167305100Scy`-----------------------------*/ 1168305100Scyyyreduce: 1169305100Scy /* yyn is the number of a rule to reduce with. */ 1170305100Scy yylen = yyr2[yyn]; 1171305100Scy 1172305100Scy /* If YYLEN is nonzero, implement the default value of the action: 1173305100Scy '$$ = $1'. 1174305100Scy 1175305100Scy Otherwise, the following line sets YYVAL to garbage. 1176305100Scy This behavior is undocumented and Bison 1177305100Scy users should not rely upon it. Assigning to YYVAL 1178305100Scy unconditionally makes the parser a bit smaller, and it avoids a 1179305100Scy GCC warning that YYVAL may be used uninitialized. */ 1180305100Scy yyval = yyvsp[1-yylen]; 1181305100Scy 1182305100Scy 1183305100Scy YY_REDUCE_PRINT (yyn); 1184305100Scy switch (yyn) 1185305100Scy { 1186305100Scy 1187305100Scy#line 1188 "null_gram.c" /* yacc.c:1646 */ 1188305100Scy default: break; 1189305100Scy } 1190305100Scy /* User semantic actions sometimes alter yychar, and that requires 1191305100Scy that yytoken be updated with the new translation. We take the 1192305100Scy approach of translating immediately before every use of yytoken. 1193305100Scy One alternative is translating here after every semantic action, 1194305100Scy but that translation would be missed if the semantic action invokes 1195305100Scy YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 1196305100Scy if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 1197305100Scy incorrect destructor might then be invoked immediately. In the 1198305100Scy case of YYERROR or YYBACKUP, subsequent parser actions might lead 1199305100Scy to an incorrect destructor call or verbose syntax error message 1200305100Scy before the lookahead is translated. */ 1201305100Scy YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 1202305100Scy 1203305100Scy YYPOPSTACK (yylen); 1204305100Scy yylen = 0; 1205305100Scy YY_STACK_PRINT (yyss, yyssp); 1206305100Scy 1207305100Scy *++yyvsp = yyval; 1208305100Scy 1209305100Scy /* Now 'shift' the result of the reduction. Determine what state 1210305100Scy that goes to, based on the state we popped back to and the rule 1211305100Scy number reduced by. */ 1212305100Scy 1213305100Scy yyn = yyr1[yyn]; 1214305100Scy 1215305100Scy yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 1216305100Scy if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 1217305100Scy yystate = yytable[yystate]; 1218305100Scy else 1219305100Scy yystate = yydefgoto[yyn - YYNTOKENS]; 1220305100Scy 1221305100Scy goto yynewstate; 1222305100Scy 1223305100Scy 1224305100Scy/*--------------------------------------. 1225305100Scy| yyerrlab -- here on detecting error. | 1226305100Scy`--------------------------------------*/ 1227305100Scyyyerrlab: 1228305100Scy /* Make sure we have latest lookahead translation. See comments at 1229305100Scy user semantic actions for why this is necessary. */ 1230305100Scy yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 1231305100Scy 1232305100Scy /* If not already recovering from an error, report this error. */ 1233305100Scy if (!yyerrstatus) 1234305100Scy { 1235305100Scy ++yynerrs; 1236305100Scy#if ! YYERROR_VERBOSE 1237305100Scy yyerror (YY_("syntax error")); 1238305100Scy#else 1239305100Scy# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 1240305100Scy yyssp, yytoken) 1241305100Scy { 1242305100Scy char const *yymsgp = YY_("syntax error"); 1243305100Scy int yysyntax_error_status; 1244305100Scy yysyntax_error_status = YYSYNTAX_ERROR; 1245305100Scy if (yysyntax_error_status == 0) 1246305100Scy yymsgp = yymsg; 1247305100Scy else if (yysyntax_error_status == 1) 1248305100Scy { 1249305100Scy if (yymsg != yymsgbuf) 1250305100Scy YYSTACK_FREE (yymsg); 1251305100Scy yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 1252305100Scy if (!yymsg) 1253305100Scy { 1254305100Scy yymsg = yymsgbuf; 1255305100Scy yymsg_alloc = sizeof yymsgbuf; 1256305100Scy yysyntax_error_status = 2; 1257305100Scy } 1258305100Scy else 1259305100Scy { 1260305100Scy yysyntax_error_status = YYSYNTAX_ERROR; 1261305100Scy yymsgp = yymsg; 1262305100Scy } 1263305100Scy } 1264305100Scy yyerror (yymsgp); 1265305100Scy if (yysyntax_error_status == 2) 1266305100Scy goto yyexhaustedlab; 1267305100Scy } 1268305100Scy# undef YYSYNTAX_ERROR 1269305100Scy#endif 1270305100Scy } 1271305100Scy 1272305100Scy 1273305100Scy 1274305100Scy if (yyerrstatus == 3) 1275305100Scy { 1276305100Scy /* If just tried and failed to reuse lookahead token after an 1277305100Scy error, discard it. */ 1278305100Scy 1279305100Scy if (yychar <= YYEOF) 1280305100Scy { 1281305100Scy /* Return failure if at end of input. */ 1282305100Scy if (yychar == YYEOF) 1283305100Scy YYABORT; 1284305100Scy } 1285305100Scy else 1286305100Scy { 1287305100Scy yydestruct ("Error: discarding", 1288305100Scy yytoken, &yylval); 1289305100Scy yychar = YYEMPTY; 1290305100Scy } 1291305100Scy } 1292305100Scy 1293305100Scy /* Else will try to reuse lookahead token after shifting the error 1294305100Scy token. */ 1295305100Scy goto yyerrlab1; 1296305100Scy 1297305100Scy 1298305100Scy/*---------------------------------------------------. 1299305100Scy| yyerrorlab -- error raised explicitly by YYERROR. | 1300305100Scy`---------------------------------------------------*/ 1301305100Scyyyerrorlab: 1302305100Scy 1303305100Scy /* Pacify compilers like GCC when the user code never invokes 1304305100Scy YYERROR and the label yyerrorlab therefore never appears in user 1305305100Scy code. */ 1306305100Scy if (/*CONSTCOND*/ 0) 1307305100Scy goto yyerrorlab; 1308305100Scy 1309305100Scy /* Do not reclaim the symbols of the rule whose action triggered 1310305100Scy this YYERROR. */ 1311305100Scy YYPOPSTACK (yylen); 1312305100Scy yylen = 0; 1313305100Scy YY_STACK_PRINT (yyss, yyssp); 1314305100Scy yystate = *yyssp; 1315305100Scy goto yyerrlab1; 1316305100Scy 1317305100Scy 1318305100Scy/*-------------------------------------------------------------. 1319305100Scy| yyerrlab1 -- common code for both syntax error and YYERROR. | 1320305100Scy`-------------------------------------------------------------*/ 1321305100Scyyyerrlab1: 1322305100Scy yyerrstatus = 3; /* Each real token shifted decrements this. */ 1323305100Scy 1324305100Scy for (;;) 1325305100Scy { 1326305100Scy yyn = yypact[yystate]; 1327305100Scy if (!yypact_value_is_default (yyn)) 1328305100Scy { 1329305100Scy yyn += YYTERROR; 1330305100Scy if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1331305100Scy { 1332305100Scy yyn = yytable[yyn]; 1333305100Scy if (0 < yyn) 1334305100Scy break; 1335305100Scy } 1336305100Scy } 1337305100Scy 1338305100Scy /* Pop the current state because it cannot handle the error token. */ 1339305100Scy if (yyssp == yyss) 1340305100Scy YYABORT; 1341305100Scy 1342305100Scy 1343305100Scy yydestruct ("Error: popping", 1344305100Scy yystos[yystate], yyvsp); 1345305100Scy YYPOPSTACK (1); 1346305100Scy yystate = *yyssp; 1347305100Scy YY_STACK_PRINT (yyss, yyssp); 1348305100Scy } 1349305100Scy 1350305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1351305100Scy *++yyvsp = yylval; 1352305100Scy YY_IGNORE_MAYBE_UNINITIALIZED_END 1353305100Scy 1354305100Scy 1355305100Scy /* Shift the error token. */ 1356305100Scy YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 1357305100Scy 1358305100Scy yystate = yyn; 1359305100Scy goto yynewstate; 1360305100Scy 1361305100Scy 1362305100Scy/*-------------------------------------. 1363305100Scy| yyacceptlab -- YYACCEPT comes here. | 1364305100Scy`-------------------------------------*/ 1365305100Scyyyacceptlab: 1366305100Scy yyresult = 0; 1367305100Scy goto yyreturn; 1368305100Scy 1369305100Scy/*-----------------------------------. 1370305100Scy| yyabortlab -- YYABORT comes here. | 1371305100Scy`-----------------------------------*/ 1372305100Scyyyabortlab: 1373305100Scy yyresult = 1; 1374305100Scy goto yyreturn; 1375305100Scy 1376305100Scy#if !defined yyoverflow || YYERROR_VERBOSE 1377305100Scy/*-------------------------------------------------. 1378305100Scy| yyexhaustedlab -- memory exhaustion comes here. | 1379305100Scy`-------------------------------------------------*/ 1380305100Scyyyexhaustedlab: 1381305100Scy yyerror (YY_("memory exhausted")); 1382305100Scy yyresult = 2; 1383305100Scy /* Fall through. */ 1384305100Scy#endif 1385305100Scy 1386305100Scyyyreturn: 1387305100Scy if (yychar != YYEMPTY) 1388305100Scy { 1389305100Scy /* Make sure we have latest lookahead translation. See comments at 1390305100Scy user semantic actions for why this is necessary. */ 1391305100Scy yytoken = YYTRANSLATE (yychar); 1392305100Scy yydestruct ("Cleanup: discarding lookahead", 1393305100Scy yytoken, &yylval); 1394305100Scy } 1395305100Scy /* Do not reclaim the symbols of the rule whose action triggered 1396305100Scy this YYABORT or YYACCEPT. */ 1397305100Scy YYPOPSTACK (yylen); 1398305100Scy YY_STACK_PRINT (yyss, yyssp); 1399305100Scy while (yyssp != yyss) 1400305100Scy { 1401305100Scy yydestruct ("Cleanup: popping", 1402305100Scy yystos[*yyssp], yyvsp); 1403305100Scy YYPOPSTACK (1); 1404305100Scy } 1405305100Scy#ifndef yyoverflow 1406305100Scy if (yyss != yyssa) 1407305100Scy YYSTACK_FREE (yyss); 1408305100Scy#endif 1409305100Scy#if YYERROR_VERBOSE 1410305100Scy if (yymsg != yymsgbuf) 1411305100Scy YYSTACK_FREE (yymsg); 1412305100Scy#endif 1413305100Scy return yyresult; 1414305100Scy} 1415