1706f2543Smrg/* A Bison parser, made by GNU Bison 2.4.3. */ 2706f2543Smrg 3706f2543Smrg/* Skeleton implementation for Bison's Yacc-like parsers in C 4706f2543Smrg 5706f2543Smrg Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 6706f2543Smrg 2009, 2010 Free Software Foundation, Inc. 7706f2543Smrg 8706f2543Smrg This program is free software: you can redistribute it and/or modify 9706f2543Smrg it under the terms of the GNU General Public License as published by 10706f2543Smrg the Free Software Foundation, either version 3 of the License, or 11706f2543Smrg (at your option) any later version. 12706f2543Smrg 13706f2543Smrg This program is distributed in the hope that it will be useful, 14706f2543Smrg but WITHOUT ANY WARRANTY; without even the implied warranty of 15706f2543Smrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16706f2543Smrg GNU General Public License for more details. 17706f2543Smrg 18706f2543Smrg You should have received a copy of the GNU General Public License 19706f2543Smrg along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20706f2543Smrg 21706f2543Smrg/* As a special exception, you may create a larger work that contains 22706f2543Smrg part or all of the Bison parser skeleton and distribute that work 23706f2543Smrg under terms of your choice, so long as that work isn't itself a 24706f2543Smrg parser generator using the skeleton or a modified version thereof 25706f2543Smrg as a parser skeleton. Alternatively, if you modify or redistribute 26706f2543Smrg the parser skeleton itself, you may (at your option) remove this 27706f2543Smrg special exception, which will cause the skeleton and the resulting 28706f2543Smrg Bison output files to be licensed under the GNU General Public 29706f2543Smrg License without this special exception. 30706f2543Smrg 31706f2543Smrg This special exception was added by the Free Software Foundation in 32706f2543Smrg version 2.2 of Bison. */ 33706f2543Smrg 34706f2543Smrg/* C LALR(1) parser skeleton written by Richard Stallman, by 35706f2543Smrg simplifying the original so-called "semantic" parser. */ 36706f2543Smrg 37706f2543Smrg/* All symbols defined below should begin with yy or YY, to avoid 38706f2543Smrg infringing on user name space. This should be done even for local 39706f2543Smrg variables, as they might otherwise be expanded by user macros. 40706f2543Smrg There are some unavoidable exceptions within include files to 41706f2543Smrg define necessary library symbols; they are noted "INFRINGES ON 42706f2543Smrg USER NAME SPACE" below. */ 43706f2543Smrg 44706f2543Smrg/* Identify Bison output. */ 45706f2543Smrg#define YYBISON 1 46706f2543Smrg 47706f2543Smrg/* Bison version. */ 48706f2543Smrg#define YYBISON_VERSION "2.4.3" 49706f2543Smrg 50706f2543Smrg/* Skeleton name. */ 51706f2543Smrg#define YYSKELETON_NAME "yacc.c" 52706f2543Smrg 53706f2543Smrg/* Pure parsers. */ 54706f2543Smrg#define YYPURE 0 55706f2543Smrg 56706f2543Smrg/* Push parsers. */ 57706f2543Smrg#define YYPUSH 0 58706f2543Smrg 59706f2543Smrg/* Pull parsers. */ 60706f2543Smrg#define YYPULL 1 61706f2543Smrg 62706f2543Smrg/* Using locations. */ 63706f2543Smrg#define YYLSP_NEEDED 0 64706f2543Smrg 65706f2543Smrg 66706f2543Smrg 67706f2543Smrg/* Copy the first part of user declarations. */ 68706f2543Smrg 69706f2543Smrg/* Line 189 of yacc.c */ 70706f2543Smrg#line 35 "parser.y" 71706f2543Smrg 72706f2543Smrg#ifdef HAVE_DMX_CONFIG_H 73706f2543Smrg#include <dmx-config.h> 74706f2543Smrg#endif 75706f2543Smrg 76706f2543Smrg#include "dmxparse.h" 77706f2543Smrg#include <string.h> 78706f2543Smrg#include <stdlib.h> 79706f2543Smrg#define YYDEBUG 1 80706f2543Smrg#define YYERROR_VERBOSE 81706f2543Smrg#define YY_USE_PROTOS 82706f2543Smrg 83706f2543SmrgDMXConfigEntryPtr dmxConfigEntry = NULL; 84706f2543Smrg#define APPEND(type, h, t) \ 85706f2543Smrg{ \ 86706f2543Smrg type pt; \ 87706f2543Smrg for (pt = h; pt->next; pt = pt->next); \ 88706f2543Smrg pt->next = t; \ 89706f2543Smrg} 90706f2543Smrg 91706f2543Smrg 92706f2543Smrg/* Line 189 of yacc.c */ 93706f2543Smrg#line 94 "parser.c" 94706f2543Smrg 95706f2543Smrg/* Enabling traces. */ 96706f2543Smrg#ifndef YYDEBUG 97706f2543Smrg# define YYDEBUG 0 98706f2543Smrg#endif 99706f2543Smrg 100706f2543Smrg/* Enabling verbose error messages. */ 101706f2543Smrg#ifdef YYERROR_VERBOSE 102706f2543Smrg# undef YYERROR_VERBOSE 103706f2543Smrg# define YYERROR_VERBOSE 1 104706f2543Smrg#else 105706f2543Smrg# define YYERROR_VERBOSE 0 106706f2543Smrg#endif 107706f2543Smrg 108706f2543Smrg/* Enabling the token table. */ 109706f2543Smrg#ifndef YYTOKEN_TABLE 110706f2543Smrg# define YYTOKEN_TABLE 0 111706f2543Smrg#endif 112706f2543Smrg 113706f2543Smrg 114706f2543Smrg/* Tokens. */ 115706f2543Smrg#ifndef YYTOKENTYPE 116706f2543Smrg# define YYTOKENTYPE 117706f2543Smrg /* Put the tokens into the symbol table, so that GDB and other debuggers 118706f2543Smrg know about them. */ 119706f2543Smrg enum yytokentype { 120706f2543Smrg T_VIRTUAL = 258, 121706f2543Smrg T_DISPLAY = 259, 122706f2543Smrg T_WALL = 260, 123706f2543Smrg T_OPTION = 261, 124706f2543Smrg T_PARAM = 262, 125706f2543Smrg T_STRING = 263, 126706f2543Smrg T_DIMENSION = 264, 127706f2543Smrg T_OFFSET = 265, 128706f2543Smrg T_ORIGIN = 266, 129706f2543Smrg T_COMMENT = 267, 130706f2543Smrg T_LINE_COMMENT = 268 131706f2543Smrg }; 132706f2543Smrg#endif 133706f2543Smrg/* Tokens. */ 134706f2543Smrg#define T_VIRTUAL 258 135706f2543Smrg#define T_DISPLAY 259 136706f2543Smrg#define T_WALL 260 137706f2543Smrg#define T_OPTION 261 138706f2543Smrg#define T_PARAM 262 139706f2543Smrg#define T_STRING 263 140706f2543Smrg#define T_DIMENSION 264 141706f2543Smrg#define T_OFFSET 265 142706f2543Smrg#define T_ORIGIN 266 143706f2543Smrg#define T_COMMENT 267 144706f2543Smrg#define T_LINE_COMMENT 268 145706f2543Smrg 146706f2543Smrg 147706f2543Smrg 148706f2543Smrg 149706f2543Smrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 150706f2543Smrgtypedef union YYSTYPE 151706f2543Smrg{ 152706f2543Smrg 153706f2543Smrg/* Line 214 of yacc.c */ 154706f2543Smrg#line 56 "parser.y" 155706f2543Smrg 156706f2543Smrg DMXConfigTokenPtr token; 157706f2543Smrg DMXConfigStringPtr string; 158706f2543Smrg DMXConfigNumberPtr number; 159706f2543Smrg DMXConfigPairPtr pair; 160706f2543Smrg DMXConfigFullDimPtr fdim; 161706f2543Smrg DMXConfigPartDimPtr pdim; 162706f2543Smrg DMXConfigDisplayPtr display; 163706f2543Smrg DMXConfigWallPtr wall; 164706f2543Smrg DMXConfigOptionPtr option; 165706f2543Smrg DMXConfigParamPtr param; 166706f2543Smrg DMXConfigCommentPtr comment; 167706f2543Smrg DMXConfigSubPtr subentry; 168706f2543Smrg DMXConfigVirtualPtr virtual; 169706f2543Smrg DMXConfigEntryPtr entry; 170706f2543Smrg 171706f2543Smrg 172706f2543Smrg 173706f2543Smrg/* Line 214 of yacc.c */ 174706f2543Smrg#line 175 "parser.c" 175706f2543Smrg} YYSTYPE; 176706f2543Smrg# define YYSTYPE_IS_TRIVIAL 1 177706f2543Smrg# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 178706f2543Smrg# define YYSTYPE_IS_DECLARED 1 179706f2543Smrg#endif 180706f2543Smrg 181706f2543Smrg 182706f2543Smrg/* Copy the second part of user declarations. */ 183706f2543Smrg 184706f2543Smrg 185706f2543Smrg/* Line 264 of yacc.c */ 186706f2543Smrg#line 187 "parser.c" 187706f2543Smrg 188706f2543Smrg#ifdef short 189706f2543Smrg# undef short 190706f2543Smrg#endif 191706f2543Smrg 192706f2543Smrg#ifdef YYTYPE_UINT8 193706f2543Smrgtypedef YYTYPE_UINT8 yytype_uint8; 194706f2543Smrg#else 195706f2543Smrgtypedef unsigned char yytype_uint8; 196706f2543Smrg#endif 197706f2543Smrg 198706f2543Smrg#ifdef YYTYPE_INT8 199706f2543Smrgtypedef YYTYPE_INT8 yytype_int8; 200706f2543Smrg#elif (defined __STDC__ || defined __C99__FUNC__ \ 201706f2543Smrg || defined __cplusplus || defined _MSC_VER) 202706f2543Smrgtypedef signed char yytype_int8; 203706f2543Smrg#else 204706f2543Smrgtypedef short int yytype_int8; 205706f2543Smrg#endif 206706f2543Smrg 207706f2543Smrg#ifdef YYTYPE_UINT16 208706f2543Smrgtypedef YYTYPE_UINT16 yytype_uint16; 209706f2543Smrg#else 210706f2543Smrgtypedef unsigned short int yytype_uint16; 211706f2543Smrg#endif 212706f2543Smrg 213706f2543Smrg#ifdef YYTYPE_INT16 214706f2543Smrgtypedef YYTYPE_INT16 yytype_int16; 215706f2543Smrg#else 216706f2543Smrgtypedef short int yytype_int16; 217706f2543Smrg#endif 218706f2543Smrg 219706f2543Smrg#ifndef YYSIZE_T 220706f2543Smrg# ifdef __SIZE_TYPE__ 221706f2543Smrg# define YYSIZE_T __SIZE_TYPE__ 222706f2543Smrg# elif defined size_t 223706f2543Smrg# define YYSIZE_T size_t 224706f2543Smrg# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 225706f2543Smrg || defined __cplusplus || defined _MSC_VER) 226706f2543Smrg# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 227706f2543Smrg# define YYSIZE_T size_t 228706f2543Smrg# else 229706f2543Smrg# define YYSIZE_T unsigned int 230706f2543Smrg# endif 231706f2543Smrg#endif 232706f2543Smrg 233706f2543Smrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 234706f2543Smrg 235706f2543Smrg#ifndef YY_ 236706f2543Smrg# if defined YYENABLE_NLS && YYENABLE_NLS 237706f2543Smrg# if ENABLE_NLS 238706f2543Smrg# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 239706f2543Smrg# define YY_(msgid) dgettext ("bison-runtime", msgid) 240706f2543Smrg# endif 241706f2543Smrg# endif 242706f2543Smrg# ifndef YY_ 243706f2543Smrg# define YY_(msgid) msgid 244706f2543Smrg# endif 245706f2543Smrg#endif 246706f2543Smrg 247706f2543Smrg/* Suppress unused-variable warnings by "using" E. */ 248706f2543Smrg#if ! defined lint || defined __GNUC__ 249706f2543Smrg# define YYUSE(e) ((void) (e)) 250706f2543Smrg#else 251706f2543Smrg# define YYUSE(e) /* empty */ 252706f2543Smrg#endif 253706f2543Smrg 254706f2543Smrg/* Identity function, used to suppress warnings about constant conditions. */ 255706f2543Smrg#ifndef lint 256706f2543Smrg# define YYID(n) (n) 257706f2543Smrg#else 258706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 259706f2543Smrg || defined __cplusplus || defined _MSC_VER) 260706f2543Smrgstatic int 261706f2543SmrgYYID (int yyi) 262706f2543Smrg#else 263706f2543Smrgstatic int 264706f2543SmrgYYID (yyi) 265706f2543Smrg int yyi; 266706f2543Smrg#endif 267706f2543Smrg{ 268706f2543Smrg return yyi; 269706f2543Smrg} 270706f2543Smrg#endif 271706f2543Smrg 272706f2543Smrg#if ! defined yyoverflow || YYERROR_VERBOSE 273706f2543Smrg 274706f2543Smrg/* The parser invokes alloca or malloc; define the necessary symbols. */ 275706f2543Smrg 276706f2543Smrg# ifdef YYSTACK_USE_ALLOCA 277706f2543Smrg# if YYSTACK_USE_ALLOCA 278706f2543Smrg# ifdef __GNUC__ 279706f2543Smrg# define YYSTACK_ALLOC __builtin_alloca 280706f2543Smrg# elif defined __BUILTIN_VA_ARG_INCR 281706f2543Smrg# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 282706f2543Smrg# elif defined _AIX 283706f2543Smrg# define YYSTACK_ALLOC __alloca 284706f2543Smrg# elif defined _MSC_VER 285706f2543Smrg# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 286706f2543Smrg# define alloca _alloca 287706f2543Smrg# else 288706f2543Smrg# define YYSTACK_ALLOC alloca 289706f2543Smrg# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 290706f2543Smrg || defined __cplusplus || defined _MSC_VER) 291706f2543Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 292706f2543Smrg# ifndef _STDLIB_H 293706f2543Smrg# define _STDLIB_H 1 294706f2543Smrg# endif 295706f2543Smrg# endif 296706f2543Smrg# endif 297706f2543Smrg# endif 298706f2543Smrg# endif 299706f2543Smrg 300706f2543Smrg# ifdef YYSTACK_ALLOC 301706f2543Smrg /* Pacify GCC's `empty if-body' warning. */ 302706f2543Smrg# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 303706f2543Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 304706f2543Smrg /* The OS might guarantee only one guard page at the bottom of the stack, 305706f2543Smrg and a page size can be as small as 4096 bytes. So we cannot safely 306706f2543Smrg invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 307706f2543Smrg to allow for a few compiler-allocated temporary stack slots. */ 308706f2543Smrg# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 309706f2543Smrg# endif 310706f2543Smrg# else 311706f2543Smrg# define YYSTACK_ALLOC YYMALLOC 312706f2543Smrg# define YYSTACK_FREE YYFREE 313706f2543Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 314706f2543Smrg# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 315706f2543Smrg# endif 316706f2543Smrg# if (defined __cplusplus && ! defined _STDLIB_H \ 317706f2543Smrg && ! ((defined YYMALLOC || defined malloc) \ 318706f2543Smrg && (defined YYFREE || defined free))) 319706f2543Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 320706f2543Smrg# ifndef _STDLIB_H 321706f2543Smrg# define _STDLIB_H 1 322706f2543Smrg# endif 323706f2543Smrg# endif 324706f2543Smrg# ifndef YYMALLOC 325706f2543Smrg# define YYMALLOC malloc 326706f2543Smrg# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 327706f2543Smrg || defined __cplusplus || defined _MSC_VER) 328706f2543Smrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 329706f2543Smrg# endif 330706f2543Smrg# endif 331706f2543Smrg# ifndef YYFREE 332706f2543Smrg# define YYFREE free 333706f2543Smrg# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 334706f2543Smrg || defined __cplusplus || defined _MSC_VER) 335706f2543Smrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 336706f2543Smrg# endif 337706f2543Smrg# endif 338706f2543Smrg# endif 339706f2543Smrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 340706f2543Smrg 341706f2543Smrg 342706f2543Smrg#if (! defined yyoverflow \ 343706f2543Smrg && (! defined __cplusplus \ 344706f2543Smrg || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 345706f2543Smrg 346706f2543Smrg/* A type that is properly aligned for any stack member. */ 347706f2543Smrgunion yyalloc 348706f2543Smrg{ 349706f2543Smrg yytype_int16 yyss_alloc; 350706f2543Smrg YYSTYPE yyvs_alloc; 351706f2543Smrg}; 352706f2543Smrg 353706f2543Smrg/* The size of the maximum gap between one aligned stack and the next. */ 354706f2543Smrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 355706f2543Smrg 356706f2543Smrg/* The size of an array large to enough to hold all stacks, each with 357706f2543Smrg N elements. */ 358706f2543Smrg# define YYSTACK_BYTES(N) \ 359706f2543Smrg ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 360706f2543Smrg + YYSTACK_GAP_MAXIMUM) 361706f2543Smrg 362706f2543Smrg/* Copy COUNT objects from FROM to TO. The source and destination do 363706f2543Smrg not overlap. */ 364706f2543Smrg# ifndef YYCOPY 365706f2543Smrg# if defined __GNUC__ && 1 < __GNUC__ 366706f2543Smrg# define YYCOPY(To, From, Count) \ 367706f2543Smrg __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 368706f2543Smrg# else 369706f2543Smrg# define YYCOPY(To, From, Count) \ 370706f2543Smrg do \ 371706f2543Smrg { \ 372706f2543Smrg YYSIZE_T yyi; \ 373706f2543Smrg for (yyi = 0; yyi < (Count); yyi++) \ 374706f2543Smrg (To)[yyi] = (From)[yyi]; \ 375706f2543Smrg } \ 376706f2543Smrg while (YYID (0)) 377706f2543Smrg# endif 378706f2543Smrg# endif 379706f2543Smrg 380706f2543Smrg/* Relocate STACK from its old location to the new one. The 381706f2543Smrg local variables YYSIZE and YYSTACKSIZE give the old and new number of 382706f2543Smrg elements in the stack, and YYPTR gives the new location of the 383706f2543Smrg stack. Advance YYPTR to a properly aligned location for the next 384706f2543Smrg stack. */ 385706f2543Smrg# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 386706f2543Smrg do \ 387706f2543Smrg { \ 388706f2543Smrg YYSIZE_T yynewbytes; \ 389706f2543Smrg YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 390706f2543Smrg Stack = &yyptr->Stack_alloc; \ 391706f2543Smrg yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 392706f2543Smrg yyptr += yynewbytes / sizeof (*yyptr); \ 393706f2543Smrg } \ 394706f2543Smrg while (YYID (0)) 395706f2543Smrg 396706f2543Smrg#endif 397706f2543Smrg 398706f2543Smrg/* YYFINAL -- State number of the termination state. */ 399706f2543Smrg#define YYFINAL 13 400706f2543Smrg/* YYLAST -- Last index in YYTABLE. */ 401706f2543Smrg#define YYLAST 106 402706f2543Smrg 403706f2543Smrg/* YYNTOKENS -- Number of terminals. */ 404706f2543Smrg#define YYNTOKENS 18 405706f2543Smrg/* YYNNTS -- Number of nonterminals. */ 406706f2543Smrg#define YYNNTS 25 407706f2543Smrg/* YYNRULES -- Number of rules. */ 408706f2543Smrg#define YYNRULES 59 409706f2543Smrg/* YYNRULES -- Number of states. */ 410706f2543Smrg#define YYNSTATES 95 411706f2543Smrg 412706f2543Smrg/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 413706f2543Smrg#define YYUNDEFTOK 2 414706f2543Smrg#define YYMAXUTOK 268 415706f2543Smrg 416706f2543Smrg#define YYTRANSLATE(YYX) \ 417706f2543Smrg ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 418706f2543Smrg 419706f2543Smrg/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 420706f2543Smrgstatic const yytype_uint8 yytranslate[] = 421706f2543Smrg{ 422706f2543Smrg 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 423706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 424706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 425706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 426706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 427706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 428706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 429706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 430706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 431706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 432706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 433706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 434706f2543Smrg 2, 2, 2, 3, 2, 4, 2, 2, 2, 2, 435706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 436706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 437706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 438706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 439706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 440706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 441706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 442706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 443706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 444706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 445706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 446706f2543Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 447706f2543Smrg 2, 2, 2, 2, 2, 2, 1, 2, 7, 8, 448706f2543Smrg 9, 10, 11, 12, 13, 14, 15, 16, 17 449706f2543Smrg}; 450706f2543Smrg 451706f2543Smrg#if YYDEBUG 452706f2543Smrg/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 453706f2543Smrg YYRHS. */ 454706f2543Smrgstatic const yytype_uint8 yyprhs[] = 455706f2543Smrg{ 456706f2543Smrg 0, 0, 3, 5, 7, 10, 12, 14, 19, 25, 457706f2543Smrg 31, 38, 40, 43, 45, 47, 49, 51, 53, 57, 458706f2543Smrg 61, 66, 68, 71, 74, 77, 79, 81, 85, 88, 459706f2543Smrg 90, 96, 101, 106, 111, 115, 119, 122, 128, 133, 460706f2543Smrg 137, 139, 142, 144, 147, 149, 152, 154, 157, 159, 461706f2543Smrg 162, 164, 167, 169, 172, 174, 177, 179, 182, 184 462706f2543Smrg}; 463706f2543Smrg 464706f2543Smrg/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 465706f2543Smrgstatic const yytype_int8 yyrhs[] = 466706f2543Smrg{ 467706f2543Smrg 19, 0, -1, 20, -1, 21, -1, 20, 21, -1, 468706f2543Smrg 22, -1, 17, -1, 7, 39, 23, 40, -1, 7, 469706f2543Smrg 35, 39, 23, 40, -1, 7, 34, 39, 23, 40, 470706f2543Smrg -1, 7, 34, 35, 39, 23, 40, -1, 24, -1, 471706f2543Smrg 23, 24, -1, 17, -1, 31, -1, 32, -1, 25, 472706f2543Smrg -1, 26, -1, 10, 42, 38, -1, 11, 42, 38, 473706f2543Smrg -1, 11, 39, 27, 40, -1, 28, -1, 27, 28, 474706f2543Smrg -1, 42, 38, -1, 35, 36, -1, 35, -1, 36, 475706f2543Smrg -1, 29, 6, 29, -1, 6, 29, -1, 29, -1, 476706f2543Smrg 33, 34, 30, 37, 38, -1, 33, 30, 37, 38, 477706f2543Smrg -1, 33, 34, 37, 38, -1, 33, 34, 30, 38, 478706f2543Smrg -1, 33, 30, 38, -1, 33, 34, 38, -1, 33, 479706f2543Smrg 38, -1, 41, 35, 35, 42, 38, -1, 41, 35, 480706f2543Smrg 42, 38, -1, 41, 42, 38, -1, 8, -1, 8, 481706f2543Smrg 16, -1, 12, -1, 12, 16, -1, 13, -1, 13, 482706f2543Smrg 16, -1, 14, -1, 14, 16, -1, 15, -1, 15, 483706f2543Smrg 16, -1, 5, -1, 5, 16, -1, 3, -1, 3, 484706f2543Smrg 16, -1, 4, -1, 4, 16, -1, 9, -1, 9, 485706f2543Smrg 16, -1, 34, -1, 42, 34, -1 486706f2543Smrg}; 487706f2543Smrg 488706f2543Smrg/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 489706f2543Smrgstatic const yytype_uint8 yyrline[] = 490706f2543Smrg{ 491706f2543Smrg 0, 95, 95, 98, 99, 102, 103, 106, 108, 110, 492706f2543Smrg 112, 116, 117, 120, 121, 122, 123, 124, 127, 131, 493706f2543Smrg 133, 139, 140, 143, 147, 149, 151, 155, 157, 159, 494706f2543Smrg 163, 165, 167, 170, 172, 174, 176, 180, 182, 184, 495706f2543Smrg 188, 189, 192, 193, 196, 197, 200, 201, 204, 205, 496706f2543Smrg 208, 209, 212, 213, 216, 217, 220, 221, 224, 225 497706f2543Smrg}; 498706f2543Smrg#endif 499706f2543Smrg 500706f2543Smrg#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 501706f2543Smrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 502706f2543Smrg First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 503706f2543Smrgstatic const char *const yytname[] = 504706f2543Smrg{ 505706f2543Smrg "$end", "error", "$undefined", "'{'", "'}'", "';'", "'/'", "T_VIRTUAL", 506706f2543Smrg "T_DISPLAY", "T_WALL", "T_OPTION", "T_PARAM", "T_STRING", "T_DIMENSION", 507706f2543Smrg "T_OFFSET", "T_ORIGIN", "T_COMMENT", "T_LINE_COMMENT", "$accept", 508706f2543Smrg "Program", "EntryList", "Entry", "Virtual", "SubList", "Sub", 509706f2543Smrg "OptionEntry", "ParamEntry", "ParamList", "Param", "PartialDim", 510706f2543Smrg "FullDim", "DisplayEntry", "WallEntry", "Display", "Name", "Dimension", 511706f2543Smrg "Offset", "Origin", "Terminal", "Open", "Close", "Wall", "NameList", 0 512706f2543Smrg}; 513706f2543Smrg#endif 514706f2543Smrg 515706f2543Smrg# ifdef YYPRINT 516706f2543Smrg/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 517706f2543Smrg token YYLEX-NUM. */ 518706f2543Smrgstatic const yytype_uint16 yytoknum[] = 519706f2543Smrg{ 520706f2543Smrg 0, 256, 257, 123, 125, 59, 47, 258, 259, 260, 521706f2543Smrg 261, 262, 263, 264, 265, 266, 267, 268 522706f2543Smrg}; 523706f2543Smrg# endif 524706f2543Smrg 525706f2543Smrg/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 526706f2543Smrgstatic const yytype_uint8 yyr1[] = 527706f2543Smrg{ 528706f2543Smrg 0, 18, 19, 20, 20, 21, 21, 22, 22, 22, 529706f2543Smrg 22, 23, 23, 24, 24, 24, 24, 24, 25, 26, 530706f2543Smrg 26, 27, 27, 28, 29, 29, 29, 30, 30, 30, 531706f2543Smrg 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 532706f2543Smrg 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 533706f2543Smrg 38, 38, 39, 39, 40, 40, 41, 41, 42, 42 534706f2543Smrg}; 535706f2543Smrg 536706f2543Smrg/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 537706f2543Smrgstatic const yytype_uint8 yyr2[] = 538706f2543Smrg{ 539706f2543Smrg 0, 2, 1, 1, 2, 1, 1, 4, 5, 5, 540706f2543Smrg 6, 1, 2, 1, 1, 1, 1, 1, 3, 3, 541706f2543Smrg 4, 1, 2, 2, 2, 1, 1, 3, 2, 1, 542706f2543Smrg 5, 4, 4, 4, 3, 3, 2, 5, 4, 3, 543706f2543Smrg 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 544706f2543Smrg 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 545706f2543Smrg}; 546706f2543Smrg 547706f2543Smrg/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 548706f2543Smrg STATE-NUM when YYTABLE doesn't specify something else to do. Zero 549706f2543Smrg means the default is an error. */ 550706f2543Smrgstatic const yytype_uint8 yydefact[] = 551706f2543Smrg{ 552706f2543Smrg 0, 0, 6, 0, 2, 3, 5, 52, 42, 44, 553706f2543Smrg 0, 0, 0, 1, 4, 53, 43, 45, 0, 0, 554706f2543Smrg 0, 40, 56, 0, 0, 13, 0, 11, 16, 17, 555706f2543Smrg 14, 15, 0, 0, 0, 0, 0, 41, 57, 58, 556706f2543Smrg 0, 0, 0, 54, 12, 7, 50, 0, 46, 29, 557706f2543Smrg 0, 0, 25, 26, 36, 0, 0, 0, 9, 8, 558706f2543Smrg 59, 18, 0, 21, 0, 19, 55, 51, 28, 47, 559706f2543Smrg 0, 48, 0, 34, 0, 0, 35, 24, 0, 0, 560706f2543Smrg 39, 10, 22, 20, 23, 27, 49, 31, 0, 33, 561706f2543Smrg 32, 0, 38, 30, 37 562706f2543Smrg}; 563706f2543Smrg 564706f2543Smrg/* YYDEFGOTO[NTERM-NUM]. */ 565706f2543Smrgstatic const yytype_int8 yydefgoto[] = 566706f2543Smrg{ 567706f2543Smrg -1, 3, 4, 5, 6, 26, 27, 28, 29, 62, 568706f2543Smrg 63, 49, 50, 30, 31, 32, 39, 52, 53, 72, 569706f2543Smrg 54, 12, 45, 33, 64 570706f2543Smrg}; 571706f2543Smrg 572706f2543Smrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 573706f2543Smrg STATE-NUM. */ 574706f2543Smrg#define YYPACT_NINF -32 575706f2543Smrgstatic const yytype_int8 yypact[] = 576706f2543Smrg{ 577706f2543Smrg -3, 41, -32, 22, -3, -32, -32, 12, 35, 46, 578706f2543Smrg 5, 62, 75, -32, -32, -32, -32, -32, 62, 75, 579706f2543Smrg 75, 51, 54, 59, 18, -32, 65, -32, -32, -32, 580706f2543Smrg -32, -32, 88, 37, 75, 65, 65, -32, -32, -32, 581706f2543Smrg 86, 59, 86, 61, -32, -32, 79, -4, 80, 28, 582706f2543Smrg 31, 74, 67, -32, -32, 37, 86, 65, -32, -32, 583706f2543Smrg -32, -32, 56, -32, 86, -32, -32, -32, -32, -32, 584706f2543Smrg -4, 81, 94, -32, 31, 94, -32, -32, 59, 86, 585706f2543Smrg -32, -32, -32, -32, -32, -32, -32, -32, 94, -32, 586706f2543Smrg -32, 86, -32, -32, -32 587706f2543Smrg}; 588706f2543Smrg 589706f2543Smrg/* YYPGOTO[NTERM-NUM]. */ 590706f2543Smrgstatic const yytype_int8 yypgoto[] = 591706f2543Smrg{ 592706f2543Smrg -32, -32, -32, 99, -32, 6, -19, -32, -32, -32, 593706f2543Smrg 42, -28, 55, -32, -32, -32, -1, 2, 53, -31, 594706f2543Smrg -27, 48, -30, -32, -22 595706f2543Smrg}; 596706f2543Smrg 597706f2543Smrg/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 598706f2543Smrg positive, shift that token. If negative, reduce the rule which 599706f2543Smrg number is the opposite. If zero, do what YYDEFACT says. 600706f2543Smrg If YYTABLE_NINF, syntax error. */ 601706f2543Smrg#define YYTABLE_NINF -1 602706f2543Smrgstatic const yytype_uint8 yytable[] = 603706f2543Smrg{ 604706f2543Smrg 10, 40, 42, 11, 1, 58, 59, 44, 7, 9, 605706f2543Smrg 48, 56, 18, 61, 2, 65, 44, 44, 9, 68, 606706f2543Smrg 75, 7, 13, 73, 76, 35, 36, 81, 15, 80, 607706f2543Smrg 8, 51, 83, 79, 70, 55, 46, 84, 44, 60, 608706f2543Smrg 57, 60, 85, 88, 7, 87, 71, 89, 90, 8, 609706f2543Smrg 9, 16, 92, 8, 9, 60, 91, 78, 19, 20, 610706f2543Smrg 43, 93, 17, 60, 94, 7, 34, 37, 8, 43, 611706f2543Smrg 38, 8, 41, 21, 22, 23, 24, 66, 60, 46, 612706f2543Smrg 47, 48, 25, 21, 22, 23, 24, 9, 48, 71, 613706f2543Smrg 60, 46, 25, 46, 47, 67, 69, 86, 8, 46, 614706f2543Smrg 8, 9, 48, 14, 82, 77, 74 615706f2543Smrg}; 616706f2543Smrg 617706f2543Smrgstatic const yytype_uint8 yycheck[] = 618706f2543Smrg{ 619706f2543Smrg 1, 23, 24, 1, 7, 35, 36, 26, 3, 13, 620706f2543Smrg 14, 33, 10, 40, 17, 42, 35, 36, 13, 47, 621706f2543Smrg 51, 3, 0, 50, 51, 19, 20, 57, 16, 56, 622706f2543Smrg 12, 32, 62, 55, 6, 33, 5, 64, 57, 40, 623706f2543Smrg 34, 42, 70, 74, 3, 72, 15, 74, 75, 12, 624706f2543Smrg 13, 16, 79, 12, 13, 56, 78, 55, 10, 11, 625706f2543Smrg 4, 88, 16, 64, 91, 3, 18, 16, 12, 4, 626706f2543Smrg 16, 12, 24, 8, 9, 10, 11, 16, 79, 5, 627706f2543Smrg 6, 14, 17, 8, 9, 10, 11, 13, 14, 15, 628706f2543Smrg 91, 5, 17, 5, 6, 16, 16, 16, 12, 5, 629706f2543Smrg 12, 13, 14, 4, 62, 52, 51 630706f2543Smrg}; 631706f2543Smrg 632706f2543Smrg/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 633706f2543Smrg symbol of state STATE-NUM. */ 634706f2543Smrgstatic const yytype_uint8 yystos[] = 635706f2543Smrg{ 636706f2543Smrg 0, 7, 17, 19, 20, 21, 22, 3, 12, 13, 637706f2543Smrg 34, 35, 39, 0, 21, 16, 16, 16, 35, 39, 638706f2543Smrg 39, 8, 9, 10, 11, 17, 23, 24, 25, 26, 639706f2543Smrg 31, 32, 33, 41, 39, 23, 23, 16, 16, 34, 640706f2543Smrg 42, 39, 42, 4, 24, 40, 5, 6, 14, 29, 641706f2543Smrg 30, 34, 35, 36, 38, 35, 42, 23, 40, 40, 642706f2543Smrg 34, 38, 27, 28, 42, 38, 16, 16, 29, 16, 643706f2543Smrg 6, 15, 37, 38, 30, 37, 38, 36, 35, 42, 644706f2543Smrg 38, 40, 28, 40, 38, 29, 16, 38, 37, 38, 645706f2543Smrg 38, 42, 38, 38, 38 646706f2543Smrg}; 647706f2543Smrg 648706f2543Smrg#define yyerrok (yyerrstatus = 0) 649706f2543Smrg#define yyclearin (yychar = YYEMPTY) 650706f2543Smrg#define YYEMPTY (-2) 651706f2543Smrg#define YYEOF 0 652706f2543Smrg 653706f2543Smrg#define YYACCEPT goto yyacceptlab 654706f2543Smrg#define YYABORT goto yyabortlab 655706f2543Smrg#define YYERROR goto yyerrorlab 656706f2543Smrg 657706f2543Smrg 658706f2543Smrg/* Like YYERROR except do call yyerror. This remains here temporarily 659706f2543Smrg to ease the transition to the new meaning of YYERROR, for GCC. 660706f2543Smrg Once GCC version 2 has supplanted version 1, this can go. However, 661706f2543Smrg YYFAIL appears to be in use. Nevertheless, it is formally deprecated 662706f2543Smrg in Bison 2.4.2's NEWS entry, where a plan to phase it out is 663706f2543Smrg discussed. */ 664706f2543Smrg 665706f2543Smrg#define YYFAIL goto yyerrlab 666706f2543Smrg#if defined YYFAIL 667706f2543Smrg /* This is here to suppress warnings from the GCC cpp's 668706f2543Smrg -Wunused-macros. Normally we don't worry about that warning, but 669706f2543Smrg some users do, and we want to make it easy for users to remove 670706f2543Smrg YYFAIL uses, which will produce warnings from Bison 2.5. */ 671706f2543Smrg#endif 672706f2543Smrg 673706f2543Smrg#define YYRECOVERING() (!!yyerrstatus) 674706f2543Smrg 675706f2543Smrg#define YYBACKUP(Token, Value) \ 676706f2543Smrgdo \ 677706f2543Smrg if (yychar == YYEMPTY && yylen == 1) \ 678706f2543Smrg { \ 679706f2543Smrg yychar = (Token); \ 680706f2543Smrg yylval = (Value); \ 681706f2543Smrg yytoken = YYTRANSLATE (yychar); \ 682706f2543Smrg YYPOPSTACK (1); \ 683706f2543Smrg goto yybackup; \ 684706f2543Smrg } \ 685706f2543Smrg else \ 686706f2543Smrg { \ 687706f2543Smrg yyerror (YY_("syntax error: cannot back up")); \ 688706f2543Smrg YYERROR; \ 689706f2543Smrg } \ 690706f2543Smrgwhile (YYID (0)) 691706f2543Smrg 692706f2543Smrg 693706f2543Smrg#define YYTERROR 1 694706f2543Smrg#define YYERRCODE 256 695706f2543Smrg 696706f2543Smrg 697706f2543Smrg/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 698706f2543Smrg If N is 0, then set CURRENT to the empty location which ends 699706f2543Smrg the previous symbol: RHS[0] (always defined). */ 700706f2543Smrg 701706f2543Smrg#define YYRHSLOC(Rhs, K) ((Rhs)[K]) 702706f2543Smrg#ifndef YYLLOC_DEFAULT 703706f2543Smrg# define YYLLOC_DEFAULT(Current, Rhs, N) \ 704706f2543Smrg do \ 705706f2543Smrg if (YYID (N)) \ 706706f2543Smrg { \ 707706f2543Smrg (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 708706f2543Smrg (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 709706f2543Smrg (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 710706f2543Smrg (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 711706f2543Smrg } \ 712706f2543Smrg else \ 713706f2543Smrg { \ 714706f2543Smrg (Current).first_line = (Current).last_line = \ 715706f2543Smrg YYRHSLOC (Rhs, 0).last_line; \ 716706f2543Smrg (Current).first_column = (Current).last_column = \ 717706f2543Smrg YYRHSLOC (Rhs, 0).last_column; \ 718706f2543Smrg } \ 719706f2543Smrg while (YYID (0)) 720706f2543Smrg#endif 721706f2543Smrg 722706f2543Smrg 723706f2543Smrg/* YY_LOCATION_PRINT -- Print the location on the stream. 724706f2543Smrg This macro was not mandated originally: define only if we know 725706f2543Smrg we won't break user code: when these are the locations we know. */ 726706f2543Smrg 727706f2543Smrg#ifndef YY_LOCATION_PRINT 728706f2543Smrg# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 729706f2543Smrg# define YY_LOCATION_PRINT(File, Loc) \ 730706f2543Smrg fprintf (File, "%d.%d-%d.%d", \ 731706f2543Smrg (Loc).first_line, (Loc).first_column, \ 732706f2543Smrg (Loc).last_line, (Loc).last_column) 733706f2543Smrg# else 734706f2543Smrg# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 735706f2543Smrg# endif 736706f2543Smrg#endif 737706f2543Smrg 738706f2543Smrg 739706f2543Smrg/* YYLEX -- calling `yylex' with the right arguments. */ 740706f2543Smrg 741706f2543Smrg#ifdef YYLEX_PARAM 742706f2543Smrg# define YYLEX yylex (YYLEX_PARAM) 743706f2543Smrg#else 744706f2543Smrg# define YYLEX yylex () 745706f2543Smrg#endif 746706f2543Smrg 747706f2543Smrg/* Enable debugging if requested. */ 748706f2543Smrg#if YYDEBUG 749706f2543Smrg 750706f2543Smrg# ifndef YYFPRINTF 751706f2543Smrg# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 752706f2543Smrg# define YYFPRINTF fprintf 753706f2543Smrg# endif 754706f2543Smrg 755706f2543Smrg# define YYDPRINTF(Args) \ 756706f2543Smrgdo { \ 757706f2543Smrg if (yydebug) \ 758706f2543Smrg YYFPRINTF Args; \ 759706f2543Smrg} while (YYID (0)) 760706f2543Smrg 761706f2543Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 762706f2543Smrgdo { \ 763706f2543Smrg if (yydebug) \ 764706f2543Smrg { \ 765706f2543Smrg YYFPRINTF (stderr, "%s ", Title); \ 766706f2543Smrg yy_symbol_print (stderr, \ 767706f2543Smrg Type, Value); \ 768706f2543Smrg YYFPRINTF (stderr, "\n"); \ 769706f2543Smrg } \ 770706f2543Smrg} while (YYID (0)) 771706f2543Smrg 772706f2543Smrg 773706f2543Smrg/*--------------------------------. 774706f2543Smrg| Print this symbol on YYOUTPUT. | 775706f2543Smrg`--------------------------------*/ 776706f2543Smrg 777706f2543Smrg/*ARGSUSED*/ 778706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 779706f2543Smrg || defined __cplusplus || defined _MSC_VER) 780706f2543Smrgstatic void 781706f2543Smrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 782706f2543Smrg#else 783706f2543Smrgstatic void 784706f2543Smrgyy_symbol_value_print (yyoutput, yytype, yyvaluep) 785706f2543Smrg FILE *yyoutput; 786706f2543Smrg int yytype; 787706f2543Smrg YYSTYPE const * const yyvaluep; 788706f2543Smrg#endif 789706f2543Smrg{ 790706f2543Smrg if (!yyvaluep) 791706f2543Smrg return; 792706f2543Smrg# ifdef YYPRINT 793706f2543Smrg if (yytype < YYNTOKENS) 794706f2543Smrg YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 795706f2543Smrg# else 796706f2543Smrg YYUSE (yyoutput); 797706f2543Smrg# endif 798706f2543Smrg switch (yytype) 799706f2543Smrg { 800706f2543Smrg default: 801706f2543Smrg break; 802706f2543Smrg } 803706f2543Smrg} 804706f2543Smrg 805706f2543Smrg 806706f2543Smrg/*--------------------------------. 807706f2543Smrg| Print this symbol on YYOUTPUT. | 808706f2543Smrg`--------------------------------*/ 809706f2543Smrg 810706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 811706f2543Smrg || defined __cplusplus || defined _MSC_VER) 812706f2543Smrgstatic void 813706f2543Smrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 814706f2543Smrg#else 815706f2543Smrgstatic void 816706f2543Smrgyy_symbol_print (yyoutput, yytype, yyvaluep) 817706f2543Smrg FILE *yyoutput; 818706f2543Smrg int yytype; 819706f2543Smrg YYSTYPE const * const yyvaluep; 820706f2543Smrg#endif 821706f2543Smrg{ 822706f2543Smrg if (yytype < YYNTOKENS) 823706f2543Smrg YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 824706f2543Smrg else 825706f2543Smrg YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 826706f2543Smrg 827706f2543Smrg yy_symbol_value_print (yyoutput, yytype, yyvaluep); 828706f2543Smrg YYFPRINTF (yyoutput, ")"); 829706f2543Smrg} 830706f2543Smrg 831706f2543Smrg/*------------------------------------------------------------------. 832706f2543Smrg| yy_stack_print -- Print the state stack from its BOTTOM up to its | 833706f2543Smrg| TOP (included). | 834706f2543Smrg`------------------------------------------------------------------*/ 835706f2543Smrg 836706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 837706f2543Smrg || defined __cplusplus || defined _MSC_VER) 838706f2543Smrgstatic void 839706f2543Smrgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 840706f2543Smrg#else 841706f2543Smrgstatic void 842706f2543Smrgyy_stack_print (yybottom, yytop) 843706f2543Smrg yytype_int16 *yybottom; 844706f2543Smrg yytype_int16 *yytop; 845706f2543Smrg#endif 846706f2543Smrg{ 847706f2543Smrg YYFPRINTF (stderr, "Stack now"); 848706f2543Smrg for (; yybottom <= yytop; yybottom++) 849706f2543Smrg { 850706f2543Smrg int yybot = *yybottom; 851706f2543Smrg YYFPRINTF (stderr, " %d", yybot); 852706f2543Smrg } 853706f2543Smrg YYFPRINTF (stderr, "\n"); 854706f2543Smrg} 855706f2543Smrg 856706f2543Smrg# define YY_STACK_PRINT(Bottom, Top) \ 857706f2543Smrgdo { \ 858706f2543Smrg if (yydebug) \ 859706f2543Smrg yy_stack_print ((Bottom), (Top)); \ 860706f2543Smrg} while (YYID (0)) 861706f2543Smrg 862706f2543Smrg 863706f2543Smrg/*------------------------------------------------. 864706f2543Smrg| Report that the YYRULE is going to be reduced. | 865706f2543Smrg`------------------------------------------------*/ 866706f2543Smrg 867706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 868706f2543Smrg || defined __cplusplus || defined _MSC_VER) 869706f2543Smrgstatic void 870706f2543Smrgyy_reduce_print (YYSTYPE *yyvsp, int yyrule) 871706f2543Smrg#else 872706f2543Smrgstatic void 873706f2543Smrgyy_reduce_print (yyvsp, yyrule) 874706f2543Smrg YYSTYPE *yyvsp; 875706f2543Smrg int yyrule; 876706f2543Smrg#endif 877706f2543Smrg{ 878706f2543Smrg int yynrhs = yyr2[yyrule]; 879706f2543Smrg int yyi; 880706f2543Smrg unsigned long int yylno = yyrline[yyrule]; 881706f2543Smrg YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 882706f2543Smrg yyrule - 1, yylno); 883706f2543Smrg /* The symbols being reduced. */ 884706f2543Smrg for (yyi = 0; yyi < yynrhs; yyi++) 885706f2543Smrg { 886706f2543Smrg YYFPRINTF (stderr, " $%d = ", yyi + 1); 887706f2543Smrg yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 888706f2543Smrg &(yyvsp[(yyi + 1) - (yynrhs)]) 889706f2543Smrg ); 890706f2543Smrg YYFPRINTF (stderr, "\n"); 891706f2543Smrg } 892706f2543Smrg} 893706f2543Smrg 894706f2543Smrg# define YY_REDUCE_PRINT(Rule) \ 895706f2543Smrgdo { \ 896706f2543Smrg if (yydebug) \ 897706f2543Smrg yy_reduce_print (yyvsp, Rule); \ 898706f2543Smrg} while (YYID (0)) 899706f2543Smrg 900706f2543Smrg/* Nonzero means print parse trace. It is left uninitialized so that 901706f2543Smrg multiple parsers can coexist. */ 902706f2543Smrgint yydebug; 903706f2543Smrg#else /* !YYDEBUG */ 904706f2543Smrg# define YYDPRINTF(Args) 905706f2543Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 906706f2543Smrg# define YY_STACK_PRINT(Bottom, Top) 907706f2543Smrg# define YY_REDUCE_PRINT(Rule) 908706f2543Smrg#endif /* !YYDEBUG */ 909706f2543Smrg 910706f2543Smrg 911706f2543Smrg/* YYINITDEPTH -- initial size of the parser's stacks. */ 912706f2543Smrg#ifndef YYINITDEPTH 913706f2543Smrg# define YYINITDEPTH 200 914706f2543Smrg#endif 915706f2543Smrg 916706f2543Smrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 917706f2543Smrg if the built-in stack extension method is used). 918706f2543Smrg 919706f2543Smrg Do not make this value too large; the results are undefined if 920706f2543Smrg YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 921706f2543Smrg evaluated with infinite-precision integer arithmetic. */ 922706f2543Smrg 923706f2543Smrg#ifndef YYMAXDEPTH 924706f2543Smrg# define YYMAXDEPTH 10000 925706f2543Smrg#endif 926706f2543Smrg 927706f2543Smrg 928706f2543Smrg 929706f2543Smrg#if YYERROR_VERBOSE 930706f2543Smrg 931706f2543Smrg# ifndef yystrlen 932706f2543Smrg# if defined __GLIBC__ && defined _STRING_H 933706f2543Smrg# define yystrlen strlen 934706f2543Smrg# else 935706f2543Smrg/* Return the length of YYSTR. */ 936706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 937706f2543Smrg || defined __cplusplus || defined _MSC_VER) 938706f2543Smrgstatic YYSIZE_T 939706f2543Smrgyystrlen (const char *yystr) 940706f2543Smrg#else 941706f2543Smrgstatic YYSIZE_T 942706f2543Smrgyystrlen (yystr) 943706f2543Smrg const char *yystr; 944706f2543Smrg#endif 945706f2543Smrg{ 946706f2543Smrg YYSIZE_T yylen; 947706f2543Smrg for (yylen = 0; yystr[yylen]; yylen++) 948706f2543Smrg continue; 949706f2543Smrg return yylen; 950706f2543Smrg} 951706f2543Smrg# endif 952706f2543Smrg# endif 953706f2543Smrg 954706f2543Smrg# ifndef yystpcpy 955706f2543Smrg# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 956706f2543Smrg# define yystpcpy stpcpy 957706f2543Smrg# else 958706f2543Smrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 959706f2543Smrg YYDEST. */ 960706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 961706f2543Smrg || defined __cplusplus || defined _MSC_VER) 962706f2543Smrgstatic char * 963706f2543Smrgyystpcpy (char *yydest, const char *yysrc) 964706f2543Smrg#else 965706f2543Smrgstatic char * 966706f2543Smrgyystpcpy (yydest, yysrc) 967706f2543Smrg char *yydest; 968706f2543Smrg const char *yysrc; 969706f2543Smrg#endif 970706f2543Smrg{ 971706f2543Smrg char *yyd = yydest; 972706f2543Smrg const char *yys = yysrc; 973706f2543Smrg 974706f2543Smrg while ((*yyd++ = *yys++) != '\0') 975706f2543Smrg continue; 976706f2543Smrg 977706f2543Smrg return yyd - 1; 978706f2543Smrg} 979706f2543Smrg# endif 980706f2543Smrg# endif 981706f2543Smrg 982706f2543Smrg# ifndef yytnamerr 983706f2543Smrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 984706f2543Smrg quotes and backslashes, so that it's suitable for yyerror. The 985706f2543Smrg heuristic is that double-quoting is unnecessary unless the string 986706f2543Smrg contains an apostrophe, a comma, or backslash (other than 987706f2543Smrg backslash-backslash). YYSTR is taken from yytname. If YYRES is 988706f2543Smrg null, do not copy; instead, return the length of what the result 989706f2543Smrg would have been. */ 990706f2543Smrgstatic YYSIZE_T 991706f2543Smrgyytnamerr (char *yyres, const char *yystr) 992706f2543Smrg{ 993706f2543Smrg if (*yystr == '"') 994706f2543Smrg { 995706f2543Smrg YYSIZE_T yyn = 0; 996706f2543Smrg char const *yyp = yystr; 997706f2543Smrg 998706f2543Smrg for (;;) 999706f2543Smrg switch (*++yyp) 1000706f2543Smrg { 1001706f2543Smrg case '\'': 1002706f2543Smrg case ',': 1003706f2543Smrg goto do_not_strip_quotes; 1004706f2543Smrg 1005706f2543Smrg case '\\': 1006706f2543Smrg if (*++yyp != '\\') 1007706f2543Smrg goto do_not_strip_quotes; 1008706f2543Smrg /* Fall through. */ 1009706f2543Smrg default: 1010706f2543Smrg if (yyres) 1011706f2543Smrg yyres[yyn] = *yyp; 1012706f2543Smrg yyn++; 1013706f2543Smrg break; 1014706f2543Smrg 1015706f2543Smrg case '"': 1016706f2543Smrg if (yyres) 1017706f2543Smrg yyres[yyn] = '\0'; 1018706f2543Smrg return yyn; 1019706f2543Smrg } 1020706f2543Smrg do_not_strip_quotes: ; 1021706f2543Smrg } 1022706f2543Smrg 1023706f2543Smrg if (! yyres) 1024706f2543Smrg return yystrlen (yystr); 1025706f2543Smrg 1026706f2543Smrg return yystpcpy (yyres, yystr) - yyres; 1027706f2543Smrg} 1028706f2543Smrg# endif 1029706f2543Smrg 1030706f2543Smrg/* Copy into YYRESULT an error message about the unexpected token 1031706f2543Smrg YYCHAR while in state YYSTATE. Return the number of bytes copied, 1032706f2543Smrg including the terminating null byte. If YYRESULT is null, do not 1033706f2543Smrg copy anything; just return the number of bytes that would be 1034706f2543Smrg copied. As a special case, return 0 if an ordinary "syntax error" 1035706f2543Smrg message will do. Return YYSIZE_MAXIMUM if overflow occurs during 1036706f2543Smrg size calculation. */ 1037706f2543Smrgstatic YYSIZE_T 1038706f2543Smrgyysyntax_error (char *yyresult, int yystate, int yychar) 1039706f2543Smrg{ 1040706f2543Smrg int yyn = yypact[yystate]; 1041706f2543Smrg 1042706f2543Smrg if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 1043706f2543Smrg return 0; 1044706f2543Smrg else 1045706f2543Smrg { 1046706f2543Smrg int yytype = YYTRANSLATE (yychar); 1047706f2543Smrg YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 1048706f2543Smrg YYSIZE_T yysize = yysize0; 1049706f2543Smrg YYSIZE_T yysize1; 1050706f2543Smrg int yysize_overflow = 0; 1051706f2543Smrg enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1052706f2543Smrg char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1053706f2543Smrg int yyx; 1054706f2543Smrg 1055706f2543Smrg# if 0 1056706f2543Smrg /* This is so xgettext sees the translatable formats that are 1057706f2543Smrg constructed on the fly. */ 1058706f2543Smrg YY_("syntax error, unexpected %s"); 1059706f2543Smrg YY_("syntax error, unexpected %s, expecting %s"); 1060706f2543Smrg YY_("syntax error, unexpected %s, expecting %s or %s"); 1061706f2543Smrg YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 1062706f2543Smrg YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 1063706f2543Smrg# endif 1064706f2543Smrg char *yyfmt; 1065706f2543Smrg char const *yyf; 1066706f2543Smrg static char const yyunexpected[] = "syntax error, unexpected %s"; 1067706f2543Smrg static char const yyexpecting[] = ", expecting %s"; 1068706f2543Smrg static char const yyor[] = " or %s"; 1069706f2543Smrg char yyformat[sizeof yyunexpected 1070706f2543Smrg + sizeof yyexpecting - 1 1071706f2543Smrg + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 1072706f2543Smrg * (sizeof yyor - 1))]; 1073706f2543Smrg char const *yyprefix = yyexpecting; 1074706f2543Smrg 1075706f2543Smrg /* Start YYX at -YYN if negative to avoid negative indexes in 1076706f2543Smrg YYCHECK. */ 1077706f2543Smrg int yyxbegin = yyn < 0 ? -yyn : 0; 1078706f2543Smrg 1079706f2543Smrg /* Stay within bounds of both yycheck and yytname. */ 1080706f2543Smrg int yychecklim = YYLAST - yyn + 1; 1081706f2543Smrg int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1082706f2543Smrg int yycount = 1; 1083706f2543Smrg 1084706f2543Smrg yyarg[0] = yytname[yytype]; 1085706f2543Smrg yyfmt = yystpcpy (yyformat, yyunexpected); 1086706f2543Smrg 1087706f2543Smrg for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1088706f2543Smrg if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1089706f2543Smrg { 1090706f2543Smrg if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1091706f2543Smrg { 1092706f2543Smrg yycount = 1; 1093706f2543Smrg yysize = yysize0; 1094706f2543Smrg yyformat[sizeof yyunexpected - 1] = '\0'; 1095706f2543Smrg break; 1096706f2543Smrg } 1097706f2543Smrg yyarg[yycount++] = yytname[yyx]; 1098706f2543Smrg yysize1 = yysize + yytnamerr (0, yytname[yyx]); 1099706f2543Smrg yysize_overflow |= (yysize1 < yysize); 1100706f2543Smrg yysize = yysize1; 1101706f2543Smrg yyfmt = yystpcpy (yyfmt, yyprefix); 1102706f2543Smrg yyprefix = yyor; 1103706f2543Smrg } 1104706f2543Smrg 1105706f2543Smrg yyf = YY_(yyformat); 1106706f2543Smrg yysize1 = yysize + yystrlen (yyf); 1107706f2543Smrg yysize_overflow |= (yysize1 < yysize); 1108706f2543Smrg yysize = yysize1; 1109706f2543Smrg 1110706f2543Smrg if (yysize_overflow) 1111706f2543Smrg return YYSIZE_MAXIMUM; 1112706f2543Smrg 1113706f2543Smrg if (yyresult) 1114706f2543Smrg { 1115706f2543Smrg /* Avoid sprintf, as that infringes on the user's name space. 1116706f2543Smrg Don't have undefined behavior even if the translation 1117706f2543Smrg produced a string with the wrong number of "%s"s. */ 1118706f2543Smrg char *yyp = yyresult; 1119706f2543Smrg int yyi = 0; 1120706f2543Smrg while ((*yyp = *yyf) != '\0') 1121706f2543Smrg { 1122706f2543Smrg if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 1123706f2543Smrg { 1124706f2543Smrg yyp += yytnamerr (yyp, yyarg[yyi++]); 1125706f2543Smrg yyf += 2; 1126706f2543Smrg } 1127706f2543Smrg else 1128706f2543Smrg { 1129706f2543Smrg yyp++; 1130706f2543Smrg yyf++; 1131706f2543Smrg } 1132706f2543Smrg } 1133706f2543Smrg } 1134706f2543Smrg return yysize; 1135706f2543Smrg } 1136706f2543Smrg} 1137706f2543Smrg#endif /* YYERROR_VERBOSE */ 1138706f2543Smrg 1139706f2543Smrg 1140706f2543Smrg/*-----------------------------------------------. 1141706f2543Smrg| Release the memory associated to this symbol. | 1142706f2543Smrg`-----------------------------------------------*/ 1143706f2543Smrg 1144706f2543Smrg/*ARGSUSED*/ 1145706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1146706f2543Smrg || defined __cplusplus || defined _MSC_VER) 1147706f2543Smrgstatic void 1148706f2543Smrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1149706f2543Smrg#else 1150706f2543Smrgstatic void 1151706f2543Smrgyydestruct (yymsg, yytype, yyvaluep) 1152706f2543Smrg const char *yymsg; 1153706f2543Smrg int yytype; 1154706f2543Smrg YYSTYPE *yyvaluep; 1155706f2543Smrg#endif 1156706f2543Smrg{ 1157706f2543Smrg YYUSE (yyvaluep); 1158706f2543Smrg 1159706f2543Smrg if (!yymsg) 1160706f2543Smrg yymsg = "Deleting"; 1161706f2543Smrg YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1162706f2543Smrg 1163706f2543Smrg switch (yytype) 1164706f2543Smrg { 1165706f2543Smrg 1166706f2543Smrg default: 1167706f2543Smrg break; 1168706f2543Smrg } 1169706f2543Smrg} 1170706f2543Smrg 1171706f2543Smrg/* Prevent warnings from -Wmissing-prototypes. */ 1172706f2543Smrg#ifdef YYPARSE_PARAM 1173706f2543Smrg#if defined __STDC__ || defined __cplusplus 1174706f2543Smrgint yyparse (void *YYPARSE_PARAM); 1175706f2543Smrg#else 1176706f2543Smrgint yyparse (); 1177706f2543Smrg#endif 1178706f2543Smrg#else /* ! YYPARSE_PARAM */ 1179706f2543Smrg#if defined __STDC__ || defined __cplusplus 1180706f2543Smrgint yyparse (void); 1181706f2543Smrg#else 1182706f2543Smrgint yyparse (); 1183706f2543Smrg#endif 1184706f2543Smrg#endif /* ! YYPARSE_PARAM */ 1185706f2543Smrg 1186706f2543Smrg 1187706f2543Smrg/* The lookahead symbol. */ 1188706f2543Smrgint yychar; 1189706f2543Smrg 1190706f2543Smrg/* The semantic value of the lookahead symbol. */ 1191706f2543SmrgYYSTYPE yylval; 1192706f2543Smrg 1193706f2543Smrg/* Number of syntax errors so far. */ 1194706f2543Smrgint yynerrs; 1195706f2543Smrg 1196706f2543Smrg 1197706f2543Smrg 1198706f2543Smrg/*-------------------------. 1199706f2543Smrg| yyparse or yypush_parse. | 1200706f2543Smrg`-------------------------*/ 1201706f2543Smrg 1202706f2543Smrg#ifdef YYPARSE_PARAM 1203706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1204706f2543Smrg || defined __cplusplus || defined _MSC_VER) 1205706f2543Smrgint 1206706f2543Smrgyyparse (void *YYPARSE_PARAM) 1207706f2543Smrg#else 1208706f2543Smrgint 1209706f2543Smrgyyparse (YYPARSE_PARAM) 1210706f2543Smrg void *YYPARSE_PARAM; 1211706f2543Smrg#endif 1212706f2543Smrg#else /* ! YYPARSE_PARAM */ 1213706f2543Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1214706f2543Smrg || defined __cplusplus || defined _MSC_VER) 1215706f2543Smrgint 1216706f2543Smrgyyparse (void) 1217706f2543Smrg#else 1218706f2543Smrgint 1219706f2543Smrgyyparse () 1220706f2543Smrg 1221706f2543Smrg#endif 1222706f2543Smrg#endif 1223706f2543Smrg{ 1224706f2543Smrg 1225706f2543Smrg 1226706f2543Smrg int yystate; 1227706f2543Smrg /* Number of tokens to shift before error messages enabled. */ 1228706f2543Smrg int yyerrstatus; 1229706f2543Smrg 1230706f2543Smrg /* The stacks and their tools: 1231706f2543Smrg `yyss': related to states. 1232706f2543Smrg `yyvs': related to semantic values. 1233706f2543Smrg 1234706f2543Smrg Refer to the stacks thru separate pointers, to allow yyoverflow 1235706f2543Smrg to reallocate them elsewhere. */ 1236706f2543Smrg 1237706f2543Smrg /* The state stack. */ 1238706f2543Smrg yytype_int16 yyssa[YYINITDEPTH]; 1239706f2543Smrg yytype_int16 *yyss; 1240706f2543Smrg yytype_int16 *yyssp; 1241706f2543Smrg 1242706f2543Smrg /* The semantic value stack. */ 1243706f2543Smrg YYSTYPE yyvsa[YYINITDEPTH]; 1244706f2543Smrg YYSTYPE *yyvs; 1245706f2543Smrg YYSTYPE *yyvsp; 1246706f2543Smrg 1247706f2543Smrg YYSIZE_T yystacksize; 1248706f2543Smrg 1249706f2543Smrg int yyn; 1250706f2543Smrg int yyresult; 1251706f2543Smrg /* Lookahead token as an internal (translated) token number. */ 1252706f2543Smrg int yytoken; 1253706f2543Smrg /* The variables used to return semantic value and location from the 1254706f2543Smrg action routines. */ 1255706f2543Smrg YYSTYPE yyval; 1256706f2543Smrg 1257706f2543Smrg#if YYERROR_VERBOSE 1258706f2543Smrg /* Buffer for error messages, and its allocated size. */ 1259706f2543Smrg char yymsgbuf[128]; 1260706f2543Smrg char *yymsg = yymsgbuf; 1261706f2543Smrg YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1262706f2543Smrg#endif 1263706f2543Smrg 1264706f2543Smrg#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1265706f2543Smrg 1266706f2543Smrg /* The number of symbols on the RHS of the reduced rule. 1267706f2543Smrg Keep to zero when no symbol should be popped. */ 1268706f2543Smrg int yylen = 0; 1269706f2543Smrg 1270706f2543Smrg yytoken = 0; 1271706f2543Smrg yyss = yyssa; 1272706f2543Smrg yyvs = yyvsa; 1273706f2543Smrg yystacksize = YYINITDEPTH; 1274706f2543Smrg 1275706f2543Smrg YYDPRINTF ((stderr, "Starting parse\n")); 1276706f2543Smrg 1277706f2543Smrg yystate = 0; 1278706f2543Smrg yyerrstatus = 0; 1279706f2543Smrg yynerrs = 0; 1280706f2543Smrg yychar = YYEMPTY; /* Cause a token to be read. */ 1281706f2543Smrg 1282706f2543Smrg /* Initialize stack pointers. 1283706f2543Smrg Waste one element of value and location stack 1284706f2543Smrg so that they stay on the same level as the state stack. 1285706f2543Smrg The wasted elements are never initialized. */ 1286706f2543Smrg yyssp = yyss; 1287706f2543Smrg yyvsp = yyvs; 1288706f2543Smrg 1289706f2543Smrg goto yysetstate; 1290706f2543Smrg 1291706f2543Smrg/*------------------------------------------------------------. 1292706f2543Smrg| yynewstate -- Push a new state, which is found in yystate. | 1293706f2543Smrg`------------------------------------------------------------*/ 1294706f2543Smrg yynewstate: 1295706f2543Smrg /* In all cases, when you get here, the value and location stacks 1296706f2543Smrg have just been pushed. So pushing a state here evens the stacks. */ 1297706f2543Smrg yyssp++; 1298706f2543Smrg 1299706f2543Smrg yysetstate: 1300706f2543Smrg *yyssp = yystate; 1301706f2543Smrg 1302706f2543Smrg if (yyss + yystacksize - 1 <= yyssp) 1303706f2543Smrg { 1304706f2543Smrg /* Get the current used size of the three stacks, in elements. */ 1305706f2543Smrg YYSIZE_T yysize = yyssp - yyss + 1; 1306706f2543Smrg 1307706f2543Smrg#ifdef yyoverflow 1308706f2543Smrg { 1309706f2543Smrg /* Give user a chance to reallocate the stack. Use copies of 1310706f2543Smrg these so that the &'s don't force the real ones into 1311706f2543Smrg memory. */ 1312706f2543Smrg YYSTYPE *yyvs1 = yyvs; 1313706f2543Smrg yytype_int16 *yyss1 = yyss; 1314706f2543Smrg 1315706f2543Smrg /* Each stack pointer address is followed by the size of the 1316706f2543Smrg data in use in that stack, in bytes. This used to be a 1317706f2543Smrg conditional around just the two extra args, but that might 1318706f2543Smrg be undefined if yyoverflow is a macro. */ 1319706f2543Smrg yyoverflow (YY_("memory exhausted"), 1320706f2543Smrg &yyss1, yysize * sizeof (*yyssp), 1321706f2543Smrg &yyvs1, yysize * sizeof (*yyvsp), 1322706f2543Smrg &yystacksize); 1323706f2543Smrg 1324706f2543Smrg yyss = yyss1; 1325706f2543Smrg yyvs = yyvs1; 1326706f2543Smrg } 1327706f2543Smrg#else /* no yyoverflow */ 1328706f2543Smrg# ifndef YYSTACK_RELOCATE 1329706f2543Smrg goto yyexhaustedlab; 1330706f2543Smrg# else 1331706f2543Smrg /* Extend the stack our own way. */ 1332706f2543Smrg if (YYMAXDEPTH <= yystacksize) 1333706f2543Smrg goto yyexhaustedlab; 1334706f2543Smrg yystacksize *= 2; 1335706f2543Smrg if (YYMAXDEPTH < yystacksize) 1336706f2543Smrg yystacksize = YYMAXDEPTH; 1337706f2543Smrg 1338706f2543Smrg { 1339706f2543Smrg yytype_int16 *yyss1 = yyss; 1340706f2543Smrg union yyalloc *yyptr = 1341706f2543Smrg (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1342706f2543Smrg if (! yyptr) 1343706f2543Smrg goto yyexhaustedlab; 1344706f2543Smrg YYSTACK_RELOCATE (yyss_alloc, yyss); 1345706f2543Smrg YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1346706f2543Smrg# undef YYSTACK_RELOCATE 1347706f2543Smrg if (yyss1 != yyssa) 1348706f2543Smrg YYSTACK_FREE (yyss1); 1349706f2543Smrg } 1350706f2543Smrg# endif 1351706f2543Smrg#endif /* no yyoverflow */ 1352706f2543Smrg 1353706f2543Smrg yyssp = yyss + yysize - 1; 1354706f2543Smrg yyvsp = yyvs + yysize - 1; 1355706f2543Smrg 1356706f2543Smrg YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1357706f2543Smrg (unsigned long int) yystacksize)); 1358706f2543Smrg 1359706f2543Smrg if (yyss + yystacksize - 1 <= yyssp) 1360706f2543Smrg YYABORT; 1361706f2543Smrg } 1362706f2543Smrg 1363706f2543Smrg YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1364706f2543Smrg 1365706f2543Smrg if (yystate == YYFINAL) 1366706f2543Smrg YYACCEPT; 1367706f2543Smrg 1368706f2543Smrg goto yybackup; 1369706f2543Smrg 1370706f2543Smrg/*-----------. 1371706f2543Smrg| yybackup. | 1372706f2543Smrg`-----------*/ 1373706f2543Smrgyybackup: 1374706f2543Smrg 1375706f2543Smrg /* Do appropriate processing given the current state. Read a 1376706f2543Smrg lookahead token if we need one and don't already have one. */ 1377706f2543Smrg 1378706f2543Smrg /* First try to decide what to do without reference to lookahead token. */ 1379706f2543Smrg yyn = yypact[yystate]; 1380706f2543Smrg if (yyn == YYPACT_NINF) 1381706f2543Smrg goto yydefault; 1382706f2543Smrg 1383706f2543Smrg /* Not known => get a lookahead token if don't already have one. */ 1384706f2543Smrg 1385706f2543Smrg /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1386706f2543Smrg if (yychar == YYEMPTY) 1387706f2543Smrg { 1388706f2543Smrg YYDPRINTF ((stderr, "Reading a token: ")); 1389706f2543Smrg yychar = YYLEX; 1390706f2543Smrg } 1391706f2543Smrg 1392706f2543Smrg if (yychar <= YYEOF) 1393706f2543Smrg { 1394706f2543Smrg yychar = yytoken = YYEOF; 1395706f2543Smrg YYDPRINTF ((stderr, "Now at end of input.\n")); 1396706f2543Smrg } 1397706f2543Smrg else 1398706f2543Smrg { 1399706f2543Smrg yytoken = YYTRANSLATE (yychar); 1400706f2543Smrg YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1401706f2543Smrg } 1402706f2543Smrg 1403706f2543Smrg /* If the proper action on seeing token YYTOKEN is to reduce or to 1404706f2543Smrg detect an error, take that action. */ 1405706f2543Smrg yyn += yytoken; 1406706f2543Smrg if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1407706f2543Smrg goto yydefault; 1408706f2543Smrg yyn = yytable[yyn]; 1409706f2543Smrg if (yyn <= 0) 1410706f2543Smrg { 1411706f2543Smrg if (yyn == 0 || yyn == YYTABLE_NINF) 1412706f2543Smrg goto yyerrlab; 1413706f2543Smrg yyn = -yyn; 1414706f2543Smrg goto yyreduce; 1415706f2543Smrg } 1416706f2543Smrg 1417706f2543Smrg /* Count tokens shifted since error; after three, turn off error 1418706f2543Smrg status. */ 1419706f2543Smrg if (yyerrstatus) 1420706f2543Smrg yyerrstatus--; 1421706f2543Smrg 1422706f2543Smrg /* Shift the lookahead token. */ 1423706f2543Smrg YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1424706f2543Smrg 1425706f2543Smrg /* Discard the shifted token. */ 1426706f2543Smrg yychar = YYEMPTY; 1427706f2543Smrg 1428706f2543Smrg yystate = yyn; 1429706f2543Smrg *++yyvsp = yylval; 1430706f2543Smrg 1431706f2543Smrg goto yynewstate; 1432706f2543Smrg 1433706f2543Smrg 1434706f2543Smrg/*-----------------------------------------------------------. 1435706f2543Smrg| yydefault -- do the default action for the current state. | 1436706f2543Smrg`-----------------------------------------------------------*/ 1437706f2543Smrgyydefault: 1438706f2543Smrg yyn = yydefact[yystate]; 1439706f2543Smrg if (yyn == 0) 1440706f2543Smrg goto yyerrlab; 1441706f2543Smrg goto yyreduce; 1442706f2543Smrg 1443706f2543Smrg 1444706f2543Smrg/*-----------------------------. 1445706f2543Smrg| yyreduce -- Do a reduction. | 1446706f2543Smrg`-----------------------------*/ 1447706f2543Smrgyyreduce: 1448706f2543Smrg /* yyn is the number of a rule to reduce with. */ 1449706f2543Smrg yylen = yyr2[yyn]; 1450706f2543Smrg 1451706f2543Smrg /* If YYLEN is nonzero, implement the default value of the action: 1452706f2543Smrg `$$ = $1'. 1453706f2543Smrg 1454706f2543Smrg Otherwise, the following line sets YYVAL to garbage. 1455706f2543Smrg This behavior is undocumented and Bison 1456706f2543Smrg users should not rely upon it. Assigning to YYVAL 1457706f2543Smrg unconditionally makes the parser a bit smaller, and it avoids a 1458706f2543Smrg GCC warning that YYVAL may be used uninitialized. */ 1459706f2543Smrg yyval = yyvsp[1-yylen]; 1460706f2543Smrg 1461706f2543Smrg 1462706f2543Smrg YY_REDUCE_PRINT (yyn); 1463706f2543Smrg switch (yyn) 1464706f2543Smrg { 1465706f2543Smrg case 2: 1466706f2543Smrg 1467706f2543Smrg/* Line 1464 of yacc.c */ 1468706f2543Smrg#line 95 "parser.y" 1469706f2543Smrg { dmxConfigEntry = (yyvsp[(1) - (1)].entry); } 1470706f2543Smrg break; 1471706f2543Smrg 1472706f2543Smrg case 4: 1473706f2543Smrg 1474706f2543Smrg/* Line 1464 of yacc.c */ 1475706f2543Smrg#line 99 "parser.y" 1476706f2543Smrg { APPEND(DMXConfigEntryPtr,(yyvsp[(1) - (2)].entry),(yyvsp[(2) - (2)].entry)); (yyval.entry) = (yyvsp[(1) - (2)].entry); } 1477706f2543Smrg break; 1478706f2543Smrg 1479706f2543Smrg case 5: 1480706f2543Smrg 1481706f2543Smrg/* Line 1464 of yacc.c */ 1482706f2543Smrg#line 102 "parser.y" 1483706f2543Smrg { (yyval.entry) = dmxConfigEntryVirtual((yyvsp[(1) - (1)].virtual)); } 1484706f2543Smrg break; 1485706f2543Smrg 1486706f2543Smrg case 6: 1487706f2543Smrg 1488706f2543Smrg/* Line 1464 of yacc.c */ 1489706f2543Smrg#line 103 "parser.y" 1490706f2543Smrg { (yyval.entry) = dmxConfigEntryComment((yyvsp[(1) - (1)].comment)); } 1491706f2543Smrg break; 1492706f2543Smrg 1493706f2543Smrg case 7: 1494706f2543Smrg 1495706f2543Smrg/* Line 1464 of yacc.c */ 1496706f2543Smrg#line 107 "parser.y" 1497706f2543Smrg { (yyval.virtual) = dmxConfigCreateVirtual((yyvsp[(1) - (4)].token), NULL, NULL, (yyvsp[(2) - (4)].token), (yyvsp[(3) - (4)].subentry), (yyvsp[(4) - (4)].token)); } 1498706f2543Smrg break; 1499706f2543Smrg 1500706f2543Smrg case 8: 1501706f2543Smrg 1502706f2543Smrg/* Line 1464 of yacc.c */ 1503706f2543Smrg#line 109 "parser.y" 1504706f2543Smrg { (yyval.virtual) = dmxConfigCreateVirtual((yyvsp[(1) - (5)].token), NULL, (yyvsp[(2) - (5)].pair), (yyvsp[(3) - (5)].token), (yyvsp[(4) - (5)].subentry), (yyvsp[(5) - (5)].token)); } 1505706f2543Smrg break; 1506706f2543Smrg 1507706f2543Smrg case 9: 1508706f2543Smrg 1509706f2543Smrg/* Line 1464 of yacc.c */ 1510706f2543Smrg#line 111 "parser.y" 1511706f2543Smrg { (yyval.virtual) = dmxConfigCreateVirtual((yyvsp[(1) - (5)].token), (yyvsp[(2) - (5)].string), NULL, (yyvsp[(3) - (5)].token), (yyvsp[(4) - (5)].subentry), (yyvsp[(5) - (5)].token)); } 1512706f2543Smrg break; 1513706f2543Smrg 1514706f2543Smrg case 10: 1515706f2543Smrg 1516706f2543Smrg/* Line 1464 of yacc.c */ 1517706f2543Smrg#line 113 "parser.y" 1518706f2543Smrg { (yyval.virtual) = dmxConfigCreateVirtual((yyvsp[(1) - (6)].token), (yyvsp[(2) - (6)].string), (yyvsp[(3) - (6)].pair), (yyvsp[(4) - (6)].token), (yyvsp[(5) - (6)].subentry), (yyvsp[(6) - (6)].token) ); } 1519706f2543Smrg break; 1520706f2543Smrg 1521706f2543Smrg case 12: 1522706f2543Smrg 1523706f2543Smrg/* Line 1464 of yacc.c */ 1524706f2543Smrg#line 117 "parser.y" 1525706f2543Smrg { APPEND(DMXConfigSubPtr,(yyvsp[(1) - (2)].subentry),(yyvsp[(2) - (2)].subentry)); (yyval.subentry) = (yyvsp[(1) - (2)].subentry); } 1526706f2543Smrg break; 1527706f2543Smrg 1528706f2543Smrg case 13: 1529706f2543Smrg 1530706f2543Smrg/* Line 1464 of yacc.c */ 1531706f2543Smrg#line 120 "parser.y" 1532706f2543Smrg { (yyval.subentry) = dmxConfigSubComment((yyvsp[(1) - (1)].comment)); } 1533706f2543Smrg break; 1534706f2543Smrg 1535706f2543Smrg case 14: 1536706f2543Smrg 1537706f2543Smrg/* Line 1464 of yacc.c */ 1538706f2543Smrg#line 121 "parser.y" 1539706f2543Smrg { (yyval.subentry) = dmxConfigSubDisplay((yyvsp[(1) - (1)].display)); } 1540706f2543Smrg break; 1541706f2543Smrg 1542706f2543Smrg case 15: 1543706f2543Smrg 1544706f2543Smrg/* Line 1464 of yacc.c */ 1545706f2543Smrg#line 122 "parser.y" 1546706f2543Smrg { (yyval.subentry) = dmxConfigSubWall((yyvsp[(1) - (1)].wall)); } 1547706f2543Smrg break; 1548706f2543Smrg 1549706f2543Smrg case 16: 1550706f2543Smrg 1551706f2543Smrg/* Line 1464 of yacc.c */ 1552706f2543Smrg#line 123 "parser.y" 1553706f2543Smrg { (yyval.subentry) = dmxConfigSubOption((yyvsp[(1) - (1)].option)); } 1554706f2543Smrg break; 1555706f2543Smrg 1556706f2543Smrg case 17: 1557706f2543Smrg 1558706f2543Smrg/* Line 1464 of yacc.c */ 1559706f2543Smrg#line 124 "parser.y" 1560706f2543Smrg { (yyval.subentry) = dmxConfigSubParam((yyvsp[(1) - (1)].param)); } 1561706f2543Smrg break; 1562706f2543Smrg 1563706f2543Smrg case 18: 1564706f2543Smrg 1565706f2543Smrg/* Line 1464 of yacc.c */ 1566706f2543Smrg#line 128 "parser.y" 1567706f2543Smrg { (yyval.option) = dmxConfigCreateOption((yyvsp[(1) - (3)].token), (yyvsp[(2) - (3)].string), (yyvsp[(3) - (3)].token)); } 1568706f2543Smrg break; 1569706f2543Smrg 1570706f2543Smrg case 19: 1571706f2543Smrg 1572706f2543Smrg/* Line 1464 of yacc.c */ 1573706f2543Smrg#line 132 "parser.y" 1574706f2543Smrg { (yyval.param) = dmxConfigCreateParam((yyvsp[(1) - (3)].token), NULL, (yyvsp[(2) - (3)].string), NULL, (yyvsp[(3) - (3)].token)); } 1575706f2543Smrg break; 1576706f2543Smrg 1577706f2543Smrg case 20: 1578706f2543Smrg 1579706f2543Smrg/* Line 1464 of yacc.c */ 1580706f2543Smrg#line 134 "parser.y" 1581706f2543Smrg { (yyval.param) = dmxConfigCreateParam((yyvsp[(1) - (4)].token), (yyvsp[(2) - (4)].token), NULL, (yyvsp[(4) - (4)].token), NULL); 1582706f2543Smrg (yyval.param)->next = (yyvsp[(3) - (4)].param); 1583706f2543Smrg } 1584706f2543Smrg break; 1585706f2543Smrg 1586706f2543Smrg case 22: 1587706f2543Smrg 1588706f2543Smrg/* Line 1464 of yacc.c */ 1589706f2543Smrg#line 140 "parser.y" 1590706f2543Smrg { APPEND(DMXConfigParamPtr,(yyvsp[(1) - (2)].param),(yyvsp[(2) - (2)].param)); (yyval.param) = (yyvsp[(1) - (2)].param); } 1591706f2543Smrg break; 1592706f2543Smrg 1593706f2543Smrg case 23: 1594706f2543Smrg 1595706f2543Smrg/* Line 1464 of yacc.c */ 1596706f2543Smrg#line 144 "parser.y" 1597706f2543Smrg { (yyval.param) = dmxConfigCreateParam(NULL, NULL, (yyvsp[(1) - (2)].string), NULL, (yyvsp[(2) - (2)].token)); } 1598706f2543Smrg break; 1599706f2543Smrg 1600706f2543Smrg case 24: 1601706f2543Smrg 1602706f2543Smrg/* Line 1464 of yacc.c */ 1603706f2543Smrg#line 148 "parser.y" 1604706f2543Smrg { (yyval.pdim) = dmxConfigCreatePartDim((yyvsp[(1) - (2)].pair), (yyvsp[(2) - (2)].pair)); } 1605706f2543Smrg break; 1606706f2543Smrg 1607706f2543Smrg case 25: 1608706f2543Smrg 1609706f2543Smrg/* Line 1464 of yacc.c */ 1610706f2543Smrg#line 150 "parser.y" 1611706f2543Smrg { (yyval.pdim) = dmxConfigCreatePartDim((yyvsp[(1) - (1)].pair), NULL); } 1612706f2543Smrg break; 1613706f2543Smrg 1614706f2543Smrg case 26: 1615706f2543Smrg 1616706f2543Smrg/* Line 1464 of yacc.c */ 1617706f2543Smrg#line 152 "parser.y" 1618706f2543Smrg { (yyval.pdim) = dmxConfigCreatePartDim(NULL, (yyvsp[(1) - (1)].pair)); } 1619706f2543Smrg break; 1620706f2543Smrg 1621706f2543Smrg case 27: 1622706f2543Smrg 1623706f2543Smrg/* Line 1464 of yacc.c */ 1624706f2543Smrg#line 156 "parser.y" 1625706f2543Smrg { (yyval.fdim) = dmxConfigCreateFullDim((yyvsp[(1) - (3)].pdim), (yyvsp[(3) - (3)].pdim)); } 1626706f2543Smrg break; 1627706f2543Smrg 1628706f2543Smrg case 28: 1629706f2543Smrg 1630706f2543Smrg/* Line 1464 of yacc.c */ 1631706f2543Smrg#line 158 "parser.y" 1632706f2543Smrg { (yyval.fdim) = dmxConfigCreateFullDim(NULL, (yyvsp[(2) - (2)].pdim)); } 1633706f2543Smrg break; 1634706f2543Smrg 1635706f2543Smrg case 29: 1636706f2543Smrg 1637706f2543Smrg/* Line 1464 of yacc.c */ 1638706f2543Smrg#line 160 "parser.y" 1639706f2543Smrg { (yyval.fdim) = dmxConfigCreateFullDim((yyvsp[(1) - (1)].pdim), NULL); } 1640706f2543Smrg break; 1641706f2543Smrg 1642706f2543Smrg case 30: 1643706f2543Smrg 1644706f2543Smrg/* Line 1464 of yacc.c */ 1645706f2543Smrg#line 164 "parser.y" 1646706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (5)].token), (yyvsp[(2) - (5)].string), (yyvsp[(3) - (5)].fdim), (yyvsp[(4) - (5)].pair), (yyvsp[(5) - (5)].token)); } 1647706f2543Smrg break; 1648706f2543Smrg 1649706f2543Smrg case 31: 1650706f2543Smrg 1651706f2543Smrg/* Line 1464 of yacc.c */ 1652706f2543Smrg#line 166 "parser.y" 1653706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (4)].token), NULL, (yyvsp[(2) - (4)].fdim), (yyvsp[(3) - (4)].pair), (yyvsp[(4) - (4)].token)); } 1654706f2543Smrg break; 1655706f2543Smrg 1656706f2543Smrg case 32: 1657706f2543Smrg 1658706f2543Smrg/* Line 1464 of yacc.c */ 1659706f2543Smrg#line 168 "parser.y" 1660706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (4)].token), (yyvsp[(2) - (4)].string), NULL, (yyvsp[(3) - (4)].pair), (yyvsp[(4) - (4)].token)); } 1661706f2543Smrg break; 1662706f2543Smrg 1663706f2543Smrg case 33: 1664706f2543Smrg 1665706f2543Smrg/* Line 1464 of yacc.c */ 1666706f2543Smrg#line 171 "parser.y" 1667706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (4)].token), (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].fdim), NULL, (yyvsp[(4) - (4)].token)); } 1668706f2543Smrg break; 1669706f2543Smrg 1670706f2543Smrg case 34: 1671706f2543Smrg 1672706f2543Smrg/* Line 1464 of yacc.c */ 1673706f2543Smrg#line 173 "parser.y" 1674706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (3)].token), NULL, (yyvsp[(2) - (3)].fdim), NULL, (yyvsp[(3) - (3)].token)); } 1675706f2543Smrg break; 1676706f2543Smrg 1677706f2543Smrg case 35: 1678706f2543Smrg 1679706f2543Smrg/* Line 1464 of yacc.c */ 1680706f2543Smrg#line 175 "parser.y" 1681706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (3)].token), (yyvsp[(2) - (3)].string), NULL, NULL, (yyvsp[(3) - (3)].token)); } 1682706f2543Smrg break; 1683706f2543Smrg 1684706f2543Smrg case 36: 1685706f2543Smrg 1686706f2543Smrg/* Line 1464 of yacc.c */ 1687706f2543Smrg#line 177 "parser.y" 1688706f2543Smrg { (yyval.display) = dmxConfigCreateDisplay((yyvsp[(1) - (2)].token), NULL, NULL, NULL, (yyvsp[(2) - (2)].token)); } 1689706f2543Smrg break; 1690706f2543Smrg 1691706f2543Smrg case 37: 1692706f2543Smrg 1693706f2543Smrg/* Line 1464 of yacc.c */ 1694706f2543Smrg#line 181 "parser.y" 1695706f2543Smrg { (yyval.wall) = dmxConfigCreateWall((yyvsp[(1) - (5)].token), (yyvsp[(2) - (5)].pair), (yyvsp[(3) - (5)].pair), (yyvsp[(4) - (5)].string), (yyvsp[(5) - (5)].token)); } 1696706f2543Smrg break; 1697706f2543Smrg 1698706f2543Smrg case 38: 1699706f2543Smrg 1700706f2543Smrg/* Line 1464 of yacc.c */ 1701706f2543Smrg#line 183 "parser.y" 1702706f2543Smrg { (yyval.wall) = dmxConfigCreateWall((yyvsp[(1) - (4)].token), (yyvsp[(2) - (4)].pair), NULL, (yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].token)); } 1703706f2543Smrg break; 1704706f2543Smrg 1705706f2543Smrg case 39: 1706706f2543Smrg 1707706f2543Smrg/* Line 1464 of yacc.c */ 1708706f2543Smrg#line 185 "parser.y" 1709706f2543Smrg { (yyval.wall) = dmxConfigCreateWall((yyvsp[(1) - (3)].token), NULL, NULL, (yyvsp[(2) - (3)].string), (yyvsp[(3) - (3)].token)); } 1710706f2543Smrg break; 1711706f2543Smrg 1712706f2543Smrg case 41: 1713706f2543Smrg 1714706f2543Smrg/* Line 1464 of yacc.c */ 1715706f2543Smrg#line 189 "parser.y" 1716706f2543Smrg { (yyval.token) = (yyvsp[(1) - (2)].token); (yyval.token)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1717706f2543Smrg break; 1718706f2543Smrg 1719706f2543Smrg case 43: 1720706f2543Smrg 1721706f2543Smrg/* Line 1464 of yacc.c */ 1722706f2543Smrg#line 193 "parser.y" 1723706f2543Smrg { (yyval.string) = (yyvsp[(1) - (2)].string); (yyval.string)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1724706f2543Smrg break; 1725706f2543Smrg 1726706f2543Smrg case 45: 1727706f2543Smrg 1728706f2543Smrg/* Line 1464 of yacc.c */ 1729706f2543Smrg#line 197 "parser.y" 1730706f2543Smrg { (yyval.pair) = (yyvsp[(1) - (2)].pair); (yyval.pair)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1731706f2543Smrg break; 1732706f2543Smrg 1733706f2543Smrg case 47: 1734706f2543Smrg 1735706f2543Smrg/* Line 1464 of yacc.c */ 1736706f2543Smrg#line 201 "parser.y" 1737706f2543Smrg { (yyval.pair) = (yyvsp[(1) - (2)].pair); (yyval.pair)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1738706f2543Smrg break; 1739706f2543Smrg 1740706f2543Smrg case 49: 1741706f2543Smrg 1742706f2543Smrg/* Line 1464 of yacc.c */ 1743706f2543Smrg#line 205 "parser.y" 1744706f2543Smrg { (yyval.pair) = (yyvsp[(1) - (2)].pair); (yyval.pair)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1745706f2543Smrg break; 1746706f2543Smrg 1747706f2543Smrg case 51: 1748706f2543Smrg 1749706f2543Smrg/* Line 1464 of yacc.c */ 1750706f2543Smrg#line 209 "parser.y" 1751706f2543Smrg { (yyval.token) = (yyvsp[(1) - (2)].token); (yyval.token)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1752706f2543Smrg break; 1753706f2543Smrg 1754706f2543Smrg case 53: 1755706f2543Smrg 1756706f2543Smrg/* Line 1464 of yacc.c */ 1757706f2543Smrg#line 213 "parser.y" 1758706f2543Smrg { (yyval.token) = (yyvsp[(1) - (2)].token); (yyval.token)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1759706f2543Smrg break; 1760706f2543Smrg 1761706f2543Smrg case 55: 1762706f2543Smrg 1763706f2543Smrg/* Line 1464 of yacc.c */ 1764706f2543Smrg#line 217 "parser.y" 1765706f2543Smrg { (yyval.token) = (yyvsp[(1) - (2)].token); (yyval.token)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1766706f2543Smrg break; 1767706f2543Smrg 1768706f2543Smrg case 57: 1769706f2543Smrg 1770706f2543Smrg/* Line 1464 of yacc.c */ 1771706f2543Smrg#line 221 "parser.y" 1772706f2543Smrg { (yyval.token) = (yyvsp[(1) - (2)].token); (yyval.token)->comment = (yyvsp[(2) - (2)].comment)->comment; } 1773706f2543Smrg break; 1774706f2543Smrg 1775706f2543Smrg case 59: 1776706f2543Smrg 1777706f2543Smrg/* Line 1464 of yacc.c */ 1778706f2543Smrg#line 225 "parser.y" 1779706f2543Smrg { APPEND(DMXConfigStringPtr, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].string)); (yyval.string) = (yyvsp[(1) - (2)].string); } 1780706f2543Smrg break; 1781706f2543Smrg 1782706f2543Smrg 1783706f2543Smrg 1784706f2543Smrg/* Line 1464 of yacc.c */ 1785706f2543Smrg#line 1786 "parser.c" 1786706f2543Smrg default: break; 1787706f2543Smrg } 1788706f2543Smrg YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 1789706f2543Smrg 1790706f2543Smrg YYPOPSTACK (yylen); 1791706f2543Smrg yylen = 0; 1792706f2543Smrg YY_STACK_PRINT (yyss, yyssp); 1793706f2543Smrg 1794706f2543Smrg *++yyvsp = yyval; 1795706f2543Smrg 1796706f2543Smrg /* Now `shift' the result of the reduction. Determine what state 1797706f2543Smrg that goes to, based on the state we popped back to and the rule 1798706f2543Smrg number reduced by. */ 1799706f2543Smrg 1800706f2543Smrg yyn = yyr1[yyn]; 1801706f2543Smrg 1802706f2543Smrg yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 1803706f2543Smrg if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 1804706f2543Smrg yystate = yytable[yystate]; 1805706f2543Smrg else 1806706f2543Smrg yystate = yydefgoto[yyn - YYNTOKENS]; 1807706f2543Smrg 1808706f2543Smrg goto yynewstate; 1809706f2543Smrg 1810706f2543Smrg 1811706f2543Smrg/*------------------------------------. 1812706f2543Smrg| yyerrlab -- here on detecting error | 1813706f2543Smrg`------------------------------------*/ 1814706f2543Smrgyyerrlab: 1815706f2543Smrg /* If not already recovering from an error, report this error. */ 1816706f2543Smrg if (!yyerrstatus) 1817706f2543Smrg { 1818706f2543Smrg ++yynerrs; 1819706f2543Smrg#if ! YYERROR_VERBOSE 1820706f2543Smrg yyerror (YY_("syntax error")); 1821706f2543Smrg#else 1822706f2543Smrg { 1823706f2543Smrg YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 1824706f2543Smrg if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 1825706f2543Smrg { 1826706f2543Smrg YYSIZE_T yyalloc = 2 * yysize; 1827706f2543Smrg if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 1828706f2543Smrg yyalloc = YYSTACK_ALLOC_MAXIMUM; 1829706f2543Smrg if (yymsg != yymsgbuf) 1830706f2543Smrg YYSTACK_FREE (yymsg); 1831706f2543Smrg yymsg = (char *) YYSTACK_ALLOC (yyalloc); 1832706f2543Smrg if (yymsg) 1833706f2543Smrg yymsg_alloc = yyalloc; 1834706f2543Smrg else 1835706f2543Smrg { 1836706f2543Smrg yymsg = yymsgbuf; 1837706f2543Smrg yymsg_alloc = sizeof yymsgbuf; 1838706f2543Smrg } 1839706f2543Smrg } 1840706f2543Smrg 1841706f2543Smrg if (0 < yysize && yysize <= yymsg_alloc) 1842706f2543Smrg { 1843706f2543Smrg (void) yysyntax_error (yymsg, yystate, yychar); 1844706f2543Smrg yyerror (yymsg); 1845706f2543Smrg } 1846706f2543Smrg else 1847706f2543Smrg { 1848706f2543Smrg yyerror (YY_("syntax error")); 1849706f2543Smrg if (yysize != 0) 1850706f2543Smrg goto yyexhaustedlab; 1851706f2543Smrg } 1852706f2543Smrg } 1853706f2543Smrg#endif 1854706f2543Smrg } 1855706f2543Smrg 1856706f2543Smrg 1857706f2543Smrg 1858706f2543Smrg if (yyerrstatus == 3) 1859706f2543Smrg { 1860706f2543Smrg /* If just tried and failed to reuse lookahead token after an 1861706f2543Smrg error, discard it. */ 1862706f2543Smrg 1863706f2543Smrg if (yychar <= YYEOF) 1864706f2543Smrg { 1865706f2543Smrg /* Return failure if at end of input. */ 1866706f2543Smrg if (yychar == YYEOF) 1867706f2543Smrg YYABORT; 1868706f2543Smrg } 1869706f2543Smrg else 1870706f2543Smrg { 1871706f2543Smrg yydestruct ("Error: discarding", 1872706f2543Smrg yytoken, &yylval); 1873706f2543Smrg yychar = YYEMPTY; 1874706f2543Smrg } 1875706f2543Smrg } 1876706f2543Smrg 1877706f2543Smrg /* Else will try to reuse lookahead token after shifting the error 1878706f2543Smrg token. */ 1879706f2543Smrg goto yyerrlab1; 1880706f2543Smrg 1881706f2543Smrg 1882706f2543Smrg/*---------------------------------------------------. 1883706f2543Smrg| yyerrorlab -- error raised explicitly by YYERROR. | 1884706f2543Smrg`---------------------------------------------------*/ 1885706f2543Smrgyyerrorlab: 1886706f2543Smrg 1887706f2543Smrg /* Pacify compilers like GCC when the user code never invokes 1888706f2543Smrg YYERROR and the label yyerrorlab therefore never appears in user 1889706f2543Smrg code. */ 1890706f2543Smrg if (/*CONSTCOND*/ 0) 1891706f2543Smrg goto yyerrorlab; 1892706f2543Smrg 1893706f2543Smrg /* Do not reclaim the symbols of the rule which action triggered 1894706f2543Smrg this YYERROR. */ 1895706f2543Smrg YYPOPSTACK (yylen); 1896706f2543Smrg yylen = 0; 1897706f2543Smrg YY_STACK_PRINT (yyss, yyssp); 1898706f2543Smrg yystate = *yyssp; 1899706f2543Smrg goto yyerrlab1; 1900706f2543Smrg 1901706f2543Smrg 1902706f2543Smrg/*-------------------------------------------------------------. 1903706f2543Smrg| yyerrlab1 -- common code for both syntax error and YYERROR. | 1904706f2543Smrg`-------------------------------------------------------------*/ 1905706f2543Smrgyyerrlab1: 1906706f2543Smrg yyerrstatus = 3; /* Each real token shifted decrements this. */ 1907706f2543Smrg 1908706f2543Smrg for (;;) 1909706f2543Smrg { 1910706f2543Smrg yyn = yypact[yystate]; 1911706f2543Smrg if (yyn != YYPACT_NINF) 1912706f2543Smrg { 1913706f2543Smrg yyn += YYTERROR; 1914706f2543Smrg if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1915706f2543Smrg { 1916706f2543Smrg yyn = yytable[yyn]; 1917706f2543Smrg if (0 < yyn) 1918706f2543Smrg break; 1919706f2543Smrg } 1920706f2543Smrg } 1921706f2543Smrg 1922706f2543Smrg /* Pop the current state because it cannot handle the error token. */ 1923706f2543Smrg if (yyssp == yyss) 1924706f2543Smrg YYABORT; 1925706f2543Smrg 1926706f2543Smrg 1927706f2543Smrg yydestruct ("Error: popping", 1928706f2543Smrg yystos[yystate], yyvsp); 1929706f2543Smrg YYPOPSTACK (1); 1930706f2543Smrg yystate = *yyssp; 1931706f2543Smrg YY_STACK_PRINT (yyss, yyssp); 1932706f2543Smrg } 1933706f2543Smrg 1934706f2543Smrg *++yyvsp = yylval; 1935706f2543Smrg 1936706f2543Smrg 1937706f2543Smrg /* Shift the error token. */ 1938706f2543Smrg YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 1939706f2543Smrg 1940706f2543Smrg yystate = yyn; 1941706f2543Smrg goto yynewstate; 1942706f2543Smrg 1943706f2543Smrg 1944706f2543Smrg/*-------------------------------------. 1945706f2543Smrg| yyacceptlab -- YYACCEPT comes here. | 1946706f2543Smrg`-------------------------------------*/ 1947706f2543Smrgyyacceptlab: 1948706f2543Smrg yyresult = 0; 1949706f2543Smrg goto yyreturn; 1950706f2543Smrg 1951706f2543Smrg/*-----------------------------------. 1952706f2543Smrg| yyabortlab -- YYABORT comes here. | 1953706f2543Smrg`-----------------------------------*/ 1954706f2543Smrgyyabortlab: 1955706f2543Smrg yyresult = 1; 1956706f2543Smrg goto yyreturn; 1957706f2543Smrg 1958706f2543Smrg#if !defined(yyoverflow) || YYERROR_VERBOSE 1959706f2543Smrg/*-------------------------------------------------. 1960706f2543Smrg| yyexhaustedlab -- memory exhaustion comes here. | 1961706f2543Smrg`-------------------------------------------------*/ 1962706f2543Smrgyyexhaustedlab: 1963706f2543Smrg yyerror (YY_("memory exhausted")); 1964706f2543Smrg yyresult = 2; 1965706f2543Smrg /* Fall through. */ 1966706f2543Smrg#endif 1967706f2543Smrg 1968706f2543Smrgyyreturn: 1969706f2543Smrg if (yychar != YYEMPTY) 1970706f2543Smrg yydestruct ("Cleanup: discarding lookahead", 1971706f2543Smrg yytoken, &yylval); 1972706f2543Smrg /* Do not reclaim the symbols of the rule which action triggered 1973706f2543Smrg this YYABORT or YYACCEPT. */ 1974706f2543Smrg YYPOPSTACK (yylen); 1975706f2543Smrg YY_STACK_PRINT (yyss, yyssp); 1976706f2543Smrg while (yyssp != yyss) 1977706f2543Smrg { 1978706f2543Smrg yydestruct ("Cleanup: popping", 1979706f2543Smrg yystos[*yyssp], yyvsp); 1980706f2543Smrg YYPOPSTACK (1); 1981706f2543Smrg } 1982706f2543Smrg#ifndef yyoverflow 1983706f2543Smrg if (yyss != yyssa) 1984706f2543Smrg YYSTACK_FREE (yyss); 1985706f2543Smrg#endif 1986706f2543Smrg#if YYERROR_VERBOSE 1987706f2543Smrg if (yymsg != yymsgbuf) 1988706f2543Smrg YYSTACK_FREE (yymsg); 1989706f2543Smrg#endif 1990706f2543Smrg /* Make sure YYID is used. */ 1991706f2543Smrg return YYID (yyresult); 1992706f2543Smrg} 1993706f2543Smrg 1994706f2543Smrg 1995706f2543Smrg 1996