gram.c revision 350952b9
1350952b9Smrg/* A Bison parser, made by GNU Bison 2.3. */ 2fd7d9bd3Smrg 3350952b9Smrg/* Skeleton implementation for Bison's Yacc-like parsers in C 4350952b9Smrg 5350952b9Smrg Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 6350952b9Smrg Free Software Foundation, Inc. 7fd7d9bd3Smrg 8fd7d9bd3Smrg This program is free software; you can redistribute it and/or modify 9fd7d9bd3Smrg it under the terms of the GNU General Public License as published by 10fd7d9bd3Smrg the Free Software Foundation; either version 2, or (at your option) 11fd7d9bd3Smrg any later version. 12fd7d9bd3Smrg 13fd7d9bd3Smrg This program is distributed in the hope that it will be useful, 14fd7d9bd3Smrg but WITHOUT ANY WARRANTY; without even the implied warranty of 15fd7d9bd3Smrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16fd7d9bd3Smrg GNU General Public License for more details. 17fd7d9bd3Smrg 18fd7d9bd3Smrg You should have received a copy of the GNU General Public License 19fd7d9bd3Smrg along with this program; if not, write to the Free Software 20350952b9Smrg Foundation, Inc., 51 Franklin Street, Fifth Floor, 21350952b9Smrg Boston, MA 02110-1301, USA. */ 22350952b9Smrg 23350952b9Smrg/* As a special exception, you may create a larger work that contains 24350952b9Smrg part or all of the Bison parser skeleton and distribute that work 25350952b9Smrg under terms of your choice, so long as that work isn't itself a 26350952b9Smrg parser generator using the skeleton or a modified version thereof 27350952b9Smrg as a parser skeleton. Alternatively, if you modify or redistribute 28350952b9Smrg the parser skeleton itself, you may (at your option) remove this 29350952b9Smrg special exception, which will cause the skeleton and the resulting 30350952b9Smrg Bison output files to be licensed under the GNU General Public 31350952b9Smrg License without this special exception. 32fd7d9bd3Smrg 33350952b9Smrg This special exception was added by the Free Software Foundation in 34350952b9Smrg version 2.2 of Bison. */ 35fd7d9bd3Smrg 36350952b9Smrg/* C LALR(1) parser skeleton written by Richard Stallman, by 37350952b9Smrg simplifying the original so-called "semantic" parser. */ 38fd7d9bd3Smrg 39fd7d9bd3Smrg/* All symbols defined below should begin with yy or YY, to avoid 40fd7d9bd3Smrg infringing on user name space. This should be done even for local 41fd7d9bd3Smrg variables, as they might otherwise be expanded by user macros. 42fd7d9bd3Smrg There are some unavoidable exceptions within include files to 43fd7d9bd3Smrg define necessary library symbols; they are noted "INFRINGES ON 44fd7d9bd3Smrg USER NAME SPACE" below. */ 45fd7d9bd3Smrg 46fd7d9bd3Smrg/* Identify Bison output. */ 47fd7d9bd3Smrg#define YYBISON 1 48fd7d9bd3Smrg 49350952b9Smrg/* Bison version. */ 50350952b9Smrg#define YYBISON_VERSION "2.3" 51350952b9Smrg 52fd7d9bd3Smrg/* Skeleton name. */ 53fd7d9bd3Smrg#define YYSKELETON_NAME "yacc.c" 54fd7d9bd3Smrg 55fd7d9bd3Smrg/* Pure parsers. */ 56fd7d9bd3Smrg#define YYPURE 0 57fd7d9bd3Smrg 58fd7d9bd3Smrg/* Using locations. */ 59fd7d9bd3Smrg#define YYLSP_NEEDED 0 60fd7d9bd3Smrg 61fd7d9bd3Smrg 62fd7d9bd3Smrg 63fd7d9bd3Smrg/* Tokens. */ 64fd7d9bd3Smrg#ifndef YYTOKENTYPE 65fd7d9bd3Smrg# define YYTOKENTYPE 66fd7d9bd3Smrg /* Put the tokens into the symbol table, so that GDB and other debuggers 67fd7d9bd3Smrg know about them. */ 68fd7d9bd3Smrg enum yytokentype { 69fd7d9bd3Smrg STRING = 258, 70fd7d9bd3Smrg NUMBER = 259, 71fd7d9bd3Smrg RUN = 260, 72fd7d9bd3Smrg FUNCTION = 261, 73fd7d9bd3Smrg FUNCTIONTYPE = 262, 74fd7d9bd3Smrg TEST = 263, 75fd7d9bd3Smrg TESTTYPE = 264, 76fd7d9bd3Smrg LINESTYLE = 265, 77fd7d9bd3Smrg LINESTYLETYPE = 266, 78fd7d9bd3Smrg CAPSTYLE = 267, 79fd7d9bd3Smrg CAPSTYLETYPE = 268, 80fd7d9bd3Smrg JOINSTYLE = 269, 81fd7d9bd3Smrg JOINSTYLETYPE = 270, 82fd7d9bd3Smrg ROUND = 271, 83fd7d9bd3Smrg SOLID = 272, 84fd7d9bd3Smrg FILLSTYLE = 273, 85fd7d9bd3Smrg FILLSTYLETYPE = 274, 86fd7d9bd3Smrg FILLRULE = 275, 87fd7d9bd3Smrg FILLRULETYPE = 276, 88fd7d9bd3Smrg ARCMODE = 277, 89fd7d9bd3Smrg ARCMODETYPE = 278, 90fd7d9bd3Smrg FOREGROUND = 279, 91fd7d9bd3Smrg BACKGROUND = 280, 92fd7d9bd3Smrg LINEWIDTH = 281, 93fd7d9bd3Smrg PLANEMASK = 282, 94fd7d9bd3Smrg DASHLIST = 283, 95fd7d9bd3Smrg PERCENT = 284, 96fd7d9bd3Smrg FONT = 285 97fd7d9bd3Smrg }; 98fd7d9bd3Smrg#endif 99350952b9Smrg/* Tokens. */ 100fd7d9bd3Smrg#define STRING 258 101fd7d9bd3Smrg#define NUMBER 259 102fd7d9bd3Smrg#define RUN 260 103fd7d9bd3Smrg#define FUNCTION 261 104fd7d9bd3Smrg#define FUNCTIONTYPE 262 105fd7d9bd3Smrg#define TEST 263 106fd7d9bd3Smrg#define TESTTYPE 264 107fd7d9bd3Smrg#define LINESTYLE 265 108fd7d9bd3Smrg#define LINESTYLETYPE 266 109fd7d9bd3Smrg#define CAPSTYLE 267 110fd7d9bd3Smrg#define CAPSTYLETYPE 268 111fd7d9bd3Smrg#define JOINSTYLE 269 112fd7d9bd3Smrg#define JOINSTYLETYPE 270 113fd7d9bd3Smrg#define ROUND 271 114fd7d9bd3Smrg#define SOLID 272 115fd7d9bd3Smrg#define FILLSTYLE 273 116fd7d9bd3Smrg#define FILLSTYLETYPE 274 117fd7d9bd3Smrg#define FILLRULE 275 118fd7d9bd3Smrg#define FILLRULETYPE 276 119fd7d9bd3Smrg#define ARCMODE 277 120fd7d9bd3Smrg#define ARCMODETYPE 278 121fd7d9bd3Smrg#define FOREGROUND 279 122fd7d9bd3Smrg#define BACKGROUND 280 123fd7d9bd3Smrg#define LINEWIDTH 281 124fd7d9bd3Smrg#define PLANEMASK 282 125fd7d9bd3Smrg#define DASHLIST 283 126fd7d9bd3Smrg#define PERCENT 284 127fd7d9bd3Smrg#define FONT 285 128fd7d9bd3Smrg 129fd7d9bd3Smrg 130fd7d9bd3Smrg 131fd7d9bd3Smrg 132fd7d9bd3Smrg/* Copy the first part of user declarations. */ 133fd7d9bd3Smrg#line 6 "gram.y" 134fd7d9bd3Smrg 135fd7d9bd3Smrg#define YYDEBUG 1 136fd7d9bd3Smrg 137fd7d9bd3Smrg#include <stdio.h> 138fd7d9bd3Smrg#include <X11/X.h> 139fd7d9bd3Smrg#include <X11/Intrinsic.h> 140fd7d9bd3Smrg#include "xgc.h" 141fd7d9bd3Smrg 142fd7d9bd3Smrgextern int yylineno; 143fd7d9bd3Smrg 144fd7d9bd3Smrg 145fd7d9bd3Smrg 146fd7d9bd3Smrg/* Enabling traces. */ 147fd7d9bd3Smrg#ifndef YYDEBUG 148fd7d9bd3Smrg# define YYDEBUG 0 149fd7d9bd3Smrg#endif 150fd7d9bd3Smrg 151fd7d9bd3Smrg/* Enabling verbose error messages. */ 152fd7d9bd3Smrg#ifdef YYERROR_VERBOSE 153fd7d9bd3Smrg# undef YYERROR_VERBOSE 154fd7d9bd3Smrg# define YYERROR_VERBOSE 1 155fd7d9bd3Smrg#else 156fd7d9bd3Smrg# define YYERROR_VERBOSE 0 157fd7d9bd3Smrg#endif 158fd7d9bd3Smrg 159350952b9Smrg/* Enabling the token table. */ 160350952b9Smrg#ifndef YYTOKEN_TABLE 161350952b9Smrg# define YYTOKEN_TABLE 0 162350952b9Smrg#endif 163350952b9Smrg 164350952b9Smrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 165350952b9Smrgtypedef union YYSTYPE 166fd7d9bd3Smrg#line 19 "gram.y" 167350952b9Smrg{ 168fd7d9bd3Smrg int num; 169fd7d9bd3Smrg char *ptr; 170350952b9Smrg} 171350952b9Smrg/* Line 187 of yacc.c. */ 172350952b9Smrg#line 173 "gram.c" 173350952b9Smrg YYSTYPE; 174fd7d9bd3Smrg# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 175fd7d9bd3Smrg# define YYSTYPE_IS_DECLARED 1 176fd7d9bd3Smrg# define YYSTYPE_IS_TRIVIAL 1 177fd7d9bd3Smrg#endif 178fd7d9bd3Smrg 179fd7d9bd3Smrg 180fd7d9bd3Smrg 181fd7d9bd3Smrg/* Copy the second part of user declarations. */ 182fd7d9bd3Smrg 183fd7d9bd3Smrg 184350952b9Smrg/* Line 216 of yacc.c. */ 185350952b9Smrg#line 186 "gram.c" 186fd7d9bd3Smrg 187350952b9Smrg#ifdef short 188350952b9Smrg# undef short 189350952b9Smrg#endif 190350952b9Smrg 191350952b9Smrg#ifdef YYTYPE_UINT8 192350952b9Smrgtypedef YYTYPE_UINT8 yytype_uint8; 193350952b9Smrg#else 194350952b9Smrgtypedef unsigned char yytype_uint8; 195350952b9Smrg#endif 196fd7d9bd3Smrg 197350952b9Smrg#ifdef YYTYPE_INT8 198350952b9Smrgtypedef YYTYPE_INT8 yytype_int8; 199350952b9Smrg#elif (defined __STDC__ || defined __C99__FUNC__ \ 200350952b9Smrg || defined __cplusplus || defined _MSC_VER) 201350952b9Smrgtypedef signed char yytype_int8; 202350952b9Smrg#else 203350952b9Smrgtypedef short int yytype_int8; 204350952b9Smrg#endif 205350952b9Smrg 206350952b9Smrg#ifdef YYTYPE_UINT16 207350952b9Smrgtypedef YYTYPE_UINT16 yytype_uint16; 208350952b9Smrg#else 209350952b9Smrgtypedef unsigned short int yytype_uint16; 210350952b9Smrg#endif 211350952b9Smrg 212350952b9Smrg#ifdef YYTYPE_INT16 213350952b9Smrgtypedef YYTYPE_INT16 yytype_int16; 214350952b9Smrg#else 215350952b9Smrgtypedef short int yytype_int16; 216350952b9Smrg#endif 217350952b9Smrg 218350952b9Smrg#ifndef YYSIZE_T 219350952b9Smrg# ifdef __SIZE_TYPE__ 220350952b9Smrg# define YYSIZE_T __SIZE_TYPE__ 221350952b9Smrg# elif defined size_t 222350952b9Smrg# define YYSIZE_T size_t 223350952b9Smrg# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 224350952b9Smrg || defined __cplusplus || defined _MSC_VER) 225350952b9Smrg# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 226350952b9Smrg# define YYSIZE_T size_t 227350952b9Smrg# else 228350952b9Smrg# define YYSIZE_T unsigned int 229fd7d9bd3Smrg# endif 230350952b9Smrg#endif 231350952b9Smrg 232350952b9Smrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 233350952b9Smrg 234350952b9Smrg#ifndef YY_ 235350952b9Smrg# if YYENABLE_NLS 236350952b9Smrg# if ENABLE_NLS 237350952b9Smrg# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 238350952b9Smrg# define YY_(msgid) dgettext ("bison-runtime", msgid) 239350952b9Smrg# endif 240350952b9Smrg# endif 241350952b9Smrg# ifndef YY_ 242350952b9Smrg# define YY_(msgid) msgid 243fd7d9bd3Smrg# endif 244350952b9Smrg#endif 245350952b9Smrg 246350952b9Smrg/* Suppress unused-variable warnings by "using" E. */ 247350952b9Smrg#if ! defined lint || defined __GNUC__ 248350952b9Smrg# define YYUSE(e) ((void) (e)) 249350952b9Smrg#else 250350952b9Smrg# define YYUSE(e) /* empty */ 251350952b9Smrg#endif 252350952b9Smrg 253350952b9Smrg/* Identity function, used to suppress warnings about constant conditions. */ 254350952b9Smrg#ifndef lint 255350952b9Smrg# define YYID(n) (n) 256350952b9Smrg#else 257350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 258350952b9Smrg || defined __cplusplus || defined _MSC_VER) 259350952b9Smrgstatic int 260350952b9SmrgYYID (int i) 261350952b9Smrg#else 262350952b9Smrgstatic int 263350952b9SmrgYYID (i) 264350952b9Smrg int i; 265350952b9Smrg#endif 266350952b9Smrg{ 267350952b9Smrg return i; 268350952b9Smrg} 269350952b9Smrg#endif 270350952b9Smrg 271350952b9Smrg#if ! defined yyoverflow || YYERROR_VERBOSE 272fd7d9bd3Smrg 273fd7d9bd3Smrg/* The parser invokes alloca or malloc; define the necessary symbols. */ 274fd7d9bd3Smrg 275fd7d9bd3Smrg# ifdef YYSTACK_USE_ALLOCA 276fd7d9bd3Smrg# if YYSTACK_USE_ALLOCA 277fd7d9bd3Smrg# ifdef __GNUC__ 278fd7d9bd3Smrg# define YYSTACK_ALLOC __builtin_alloca 279350952b9Smrg# elif defined __BUILTIN_VA_ARG_INCR 280350952b9Smrg# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 281350952b9Smrg# elif defined _AIX 282350952b9Smrg# define YYSTACK_ALLOC __alloca 283350952b9Smrg# elif defined _MSC_VER 284350952b9Smrg# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 285350952b9Smrg# define alloca _alloca 286350952b9Smrg# else 287350952b9Smrg# define YYSTACK_ALLOC alloca 288350952b9Smrg# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 289350952b9Smrg || defined __cplusplus || defined _MSC_VER) 290350952b9Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 291350952b9Smrg# ifndef _STDLIB_H 292350952b9Smrg# define _STDLIB_H 1 293350952b9Smrg# endif 294350952b9Smrg# endif 295fd7d9bd3Smrg# endif 296fd7d9bd3Smrg# endif 297fd7d9bd3Smrg# endif 298fd7d9bd3Smrg 299fd7d9bd3Smrg# ifdef YYSTACK_ALLOC 300350952b9Smrg /* Pacify GCC's `empty if-body' warning. */ 301350952b9Smrg# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 302350952b9Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 303350952b9Smrg /* The OS might guarantee only one guard page at the bottom of the stack, 304350952b9Smrg and a page size can be as small as 4096 bytes. So we cannot safely 305350952b9Smrg invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 306350952b9Smrg to allow for a few compiler-allocated temporary stack slots. */ 307350952b9Smrg# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 308fd7d9bd3Smrg# endif 309350952b9Smrg# else 310fd7d9bd3Smrg# define YYSTACK_ALLOC YYMALLOC 311fd7d9bd3Smrg# define YYSTACK_FREE YYFREE 312350952b9Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 313350952b9Smrg# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 314350952b9Smrg# endif 315350952b9Smrg# if (defined __cplusplus && ! defined _STDLIB_H \ 316350952b9Smrg && ! ((defined YYMALLOC || defined malloc) \ 317350952b9Smrg && (defined YYFREE || defined free))) 318350952b9Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 319350952b9Smrg# ifndef _STDLIB_H 320350952b9Smrg# define _STDLIB_H 1 321350952b9Smrg# endif 322350952b9Smrg# endif 323350952b9Smrg# ifndef YYMALLOC 324350952b9Smrg# define YYMALLOC malloc 325350952b9Smrg# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 326350952b9Smrg || defined __cplusplus || defined _MSC_VER) 327350952b9Smrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 328350952b9Smrg# endif 329350952b9Smrg# endif 330350952b9Smrg# ifndef YYFREE 331350952b9Smrg# define YYFREE free 332350952b9Smrg# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 333350952b9Smrg || defined __cplusplus || defined _MSC_VER) 334350952b9Smrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 335350952b9Smrg# endif 336350952b9Smrg# endif 337fd7d9bd3Smrg# endif 338350952b9Smrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 339fd7d9bd3Smrg 340fd7d9bd3Smrg 341350952b9Smrg#if (! defined yyoverflow \ 342350952b9Smrg && (! defined __cplusplus \ 343350952b9Smrg || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 344fd7d9bd3Smrg 345fd7d9bd3Smrg/* A type that is properly aligned for any stack member. */ 346fd7d9bd3Smrgunion yyalloc 347fd7d9bd3Smrg{ 348350952b9Smrg yytype_int16 yyss; 349fd7d9bd3Smrg YYSTYPE yyvs; 350fd7d9bd3Smrg }; 351fd7d9bd3Smrg 352fd7d9bd3Smrg/* The size of the maximum gap between one aligned stack and the next. */ 353fd7d9bd3Smrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 354fd7d9bd3Smrg 355fd7d9bd3Smrg/* The size of an array large to enough to hold all stacks, each with 356fd7d9bd3Smrg N elements. */ 357fd7d9bd3Smrg# define YYSTACK_BYTES(N) \ 358350952b9Smrg ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 359fd7d9bd3Smrg + YYSTACK_GAP_MAXIMUM) 360fd7d9bd3Smrg 361fd7d9bd3Smrg/* Copy COUNT objects from FROM to TO. The source and destination do 362fd7d9bd3Smrg not overlap. */ 363fd7d9bd3Smrg# ifndef YYCOPY 364350952b9Smrg# if defined __GNUC__ && 1 < __GNUC__ 365fd7d9bd3Smrg# define YYCOPY(To, From, Count) \ 366fd7d9bd3Smrg __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 367fd7d9bd3Smrg# else 368fd7d9bd3Smrg# define YYCOPY(To, From, Count) \ 369fd7d9bd3Smrg do \ 370fd7d9bd3Smrg { \ 371350952b9Smrg YYSIZE_T yyi; \ 372fd7d9bd3Smrg for (yyi = 0; yyi < (Count); yyi++) \ 373fd7d9bd3Smrg (To)[yyi] = (From)[yyi]; \ 374fd7d9bd3Smrg } \ 375350952b9Smrg while (YYID (0)) 376fd7d9bd3Smrg# endif 377fd7d9bd3Smrg# endif 378fd7d9bd3Smrg 379fd7d9bd3Smrg/* Relocate STACK from its old location to the new one. The 380fd7d9bd3Smrg local variables YYSIZE and YYSTACKSIZE give the old and new number of 381fd7d9bd3Smrg elements in the stack, and YYPTR gives the new location of the 382fd7d9bd3Smrg stack. Advance YYPTR to a properly aligned location for the next 383fd7d9bd3Smrg stack. */ 384fd7d9bd3Smrg# define YYSTACK_RELOCATE(Stack) \ 385fd7d9bd3Smrg do \ 386fd7d9bd3Smrg { \ 387fd7d9bd3Smrg YYSIZE_T yynewbytes; \ 388fd7d9bd3Smrg YYCOPY (&yyptr->Stack, Stack, yysize); \ 389fd7d9bd3Smrg Stack = &yyptr->Stack; \ 390fd7d9bd3Smrg yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 391fd7d9bd3Smrg yyptr += yynewbytes / sizeof (*yyptr); \ 392fd7d9bd3Smrg } \ 393350952b9Smrg while (YYID (0)) 394fd7d9bd3Smrg 395fd7d9bd3Smrg#endif 396fd7d9bd3Smrg 397350952b9Smrg/* YYFINAL -- State number of the termination state. */ 398fd7d9bd3Smrg#define YYFINAL 3 399fd7d9bd3Smrg/* YYLAST -- Last index in YYTABLE. */ 400fd7d9bd3Smrg#define YYLAST 40 401fd7d9bd3Smrg 402350952b9Smrg/* YYNTOKENS -- Number of terminals. */ 403fd7d9bd3Smrg#define YYNTOKENS 32 404350952b9Smrg/* YYNNTS -- Number of nonterminals. */ 405fd7d9bd3Smrg#define YYNNTS 4 406350952b9Smrg/* YYNRULES -- Number of rules. */ 407fd7d9bd3Smrg#define YYNRULES 26 408350952b9Smrg/* YYNRULES -- Number of states. */ 409fd7d9bd3Smrg#define YYNSTATES 43 410fd7d9bd3Smrg 411fd7d9bd3Smrg/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 412fd7d9bd3Smrg#define YYUNDEFTOK 2 413fd7d9bd3Smrg#define YYMAXUTOK 285 414fd7d9bd3Smrg 415350952b9Smrg#define YYTRANSLATE(YYX) \ 416fd7d9bd3Smrg ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 417fd7d9bd3Smrg 418fd7d9bd3Smrg/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 419350952b9Smrgstatic const yytype_uint8 yytranslate[] = 420fd7d9bd3Smrg{ 421fd7d9bd3Smrg 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 422fd7d9bd3Smrg 31, 2, 2, 2, 2, 2, 2, 2, 2, 2, 423fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 424fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 425fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 426fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 427fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 428fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 429fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 430fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 431fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 432fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 433fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 434fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 435fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 436fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 437fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 438fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 439fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 440fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 441fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 442fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 443fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 444fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 445fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 446fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 447fd7d9bd3Smrg 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 448fd7d9bd3Smrg 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 449fd7d9bd3Smrg 25, 26, 27, 28, 29, 30 450fd7d9bd3Smrg}; 451fd7d9bd3Smrg 452fd7d9bd3Smrg#if YYDEBUG 453fd7d9bd3Smrg/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 454fd7d9bd3Smrg YYRHS. */ 455350952b9Smrgstatic const yytype_uint8 yyprhs[] = 456fd7d9bd3Smrg{ 457fd7d9bd3Smrg 0, 0, 3, 5, 6, 9, 13, 15, 17, 20, 458fd7d9bd3Smrg 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 459fd7d9bd3Smrg 53, 56, 59, 62, 65, 68, 71 460fd7d9bd3Smrg}; 461fd7d9bd3Smrg 462350952b9Smrg/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 463350952b9Smrgstatic const yytype_int8 yyrhs[] = 464fd7d9bd3Smrg{ 465fd7d9bd3Smrg 33, 0, -1, 34, -1, -1, 34, 31, -1, 34, 466fd7d9bd3Smrg 35, 31, -1, 1, -1, 5, -1, 8, 9, -1, 467fd7d9bd3Smrg 6, 7, -1, 10, 11, -1, 10, 17, -1, 12, 468fd7d9bd3Smrg 13, -1, 12, 16, -1, 14, 15, -1, 14, 16, 469fd7d9bd3Smrg -1, 18, 19, -1, 18, 17, -1, 20, 21, -1, 470fd7d9bd3Smrg 22, 23, -1, 24, 4, -1, 25, 4, -1, 26, 471fd7d9bd3Smrg 4, -1, 27, 4, -1, 28, 4, -1, 30, 3, 472fd7d9bd3Smrg -1, 29, 4, -1 473fd7d9bd3Smrg}; 474fd7d9bd3Smrg 475fd7d9bd3Smrg/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 476350952b9Smrgstatic const yytype_uint8 yyrline[] = 477fd7d9bd3Smrg{ 478fd7d9bd3Smrg 0, 41, 41, 44, 45, 46, 49, 50, 52, 54, 479fd7d9bd3Smrg 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 480fd7d9bd3Smrg 76, 78, 80, 82, 84, 86, 88 481fd7d9bd3Smrg}; 482fd7d9bd3Smrg#endif 483fd7d9bd3Smrg 484350952b9Smrg#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 485350952b9Smrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 486350952b9Smrg First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 487fd7d9bd3Smrgstatic const char *const yytname[] = 488fd7d9bd3Smrg{ 489fd7d9bd3Smrg "$end", "error", "$undefined", "STRING", "NUMBER", "RUN", "FUNCTION", 490fd7d9bd3Smrg "FUNCTIONTYPE", "TEST", "TESTTYPE", "LINESTYLE", "LINESTYLETYPE", 491fd7d9bd3Smrg "CAPSTYLE", "CAPSTYLETYPE", "JOINSTYLE", "JOINSTYLETYPE", "ROUND", 492fd7d9bd3Smrg "SOLID", "FILLSTYLE", "FILLSTYLETYPE", "FILLRULE", "FILLRULETYPE", 493fd7d9bd3Smrg "ARCMODE", "ARCMODETYPE", "FOREGROUND", "BACKGROUND", "LINEWIDTH", 494fd7d9bd3Smrg "PLANEMASK", "DASHLIST", "PERCENT", "FONT", "'\\n'", "$accept", "all", 495fd7d9bd3Smrg "stmts", "stmt", 0 496fd7d9bd3Smrg}; 497fd7d9bd3Smrg#endif 498fd7d9bd3Smrg 499fd7d9bd3Smrg# ifdef YYPRINT 500fd7d9bd3Smrg/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 501fd7d9bd3Smrg token YYLEX-NUM. */ 502350952b9Smrgstatic const yytype_uint16 yytoknum[] = 503fd7d9bd3Smrg{ 504fd7d9bd3Smrg 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 505fd7d9bd3Smrg 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 506fd7d9bd3Smrg 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 507fd7d9bd3Smrg 285, 10 508fd7d9bd3Smrg}; 509fd7d9bd3Smrg# endif 510fd7d9bd3Smrg 511fd7d9bd3Smrg/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 512350952b9Smrgstatic const yytype_uint8 yyr1[] = 513fd7d9bd3Smrg{ 514fd7d9bd3Smrg 0, 32, 33, 34, 34, 34, 35, 35, 35, 35, 515fd7d9bd3Smrg 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 516fd7d9bd3Smrg 35, 35, 35, 35, 35, 35, 35 517fd7d9bd3Smrg}; 518fd7d9bd3Smrg 519fd7d9bd3Smrg/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 520350952b9Smrgstatic const yytype_uint8 yyr2[] = 521fd7d9bd3Smrg{ 522fd7d9bd3Smrg 0, 2, 1, 0, 2, 3, 1, 1, 2, 2, 523fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 524fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2 525fd7d9bd3Smrg}; 526fd7d9bd3Smrg 527fd7d9bd3Smrg/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 528fd7d9bd3Smrg STATE-NUM when YYTABLE doesn't specify something else to do. Zero 529fd7d9bd3Smrg means the default is an error. */ 530350952b9Smrgstatic const yytype_uint8 yydefact[] = 531fd7d9bd3Smrg{ 532fd7d9bd3Smrg 3, 0, 0, 1, 6, 7, 0, 0, 0, 0, 533fd7d9bd3Smrg 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534fd7d9bd3Smrg 0, 4, 0, 9, 8, 10, 11, 12, 13, 14, 535fd7d9bd3Smrg 15, 17, 16, 18, 19, 20, 21, 22, 23, 24, 536fd7d9bd3Smrg 26, 25, 5 537fd7d9bd3Smrg}; 538fd7d9bd3Smrg 539350952b9Smrg/* YYDEFGOTO[NTERM-NUM]. */ 540350952b9Smrgstatic const yytype_int8 yydefgoto[] = 541fd7d9bd3Smrg{ 542fd7d9bd3Smrg -1, 1, 2, 22 543fd7d9bd3Smrg}; 544fd7d9bd3Smrg 545fd7d9bd3Smrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 546fd7d9bd3Smrg STATE-NUM. */ 547fd7d9bd3Smrg#define YYPACT_NINF -10 548350952b9Smrgstatic const yytype_int8 yypact[] = 549fd7d9bd3Smrg{ 550fd7d9bd3Smrg -10, 2, 0, -10, -10, -10, 8, 10, -8, -9, 551fd7d9bd3Smrg 1, -6, 11, -2, 19, 29, 30, 31, 32, 33, 552fd7d9bd3Smrg 35, -10, 9, -10, -10, -10, -10, -10, -10, -10, 553fd7d9bd3Smrg -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 554fd7d9bd3Smrg -10, -10, -10 555fd7d9bd3Smrg}; 556fd7d9bd3Smrg 557fd7d9bd3Smrg/* YYPGOTO[NTERM-NUM]. */ 558350952b9Smrgstatic const yytype_int8 yypgoto[] = 559fd7d9bd3Smrg{ 560fd7d9bd3Smrg -10, -10, -10, -10 561fd7d9bd3Smrg}; 562fd7d9bd3Smrg 563fd7d9bd3Smrg/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 564fd7d9bd3Smrg positive, shift that token. If negative, reduce the rule which 565fd7d9bd3Smrg number is the opposite. If zero, do what YYDEFACT says. 566fd7d9bd3Smrg If YYTABLE_NINF, syntax error. */ 567fd7d9bd3Smrg#define YYTABLE_NINF -3 568350952b9Smrgstatic const yytype_int8 yytable[] = 569fd7d9bd3Smrg{ 570fd7d9bd3Smrg -2, 4, 3, 25, 27, 5, 6, 28, 7, 26, 571fd7d9bd3Smrg 8, 31, 9, 32, 10, 23, 29, 30, 11, 24, 572fd7d9bd3Smrg 12, 34, 13, 35, 14, 15, 16, 17, 18, 19, 573fd7d9bd3Smrg 20, 21, 33, 36, 37, 38, 39, 40, 41, 0, 574fd7d9bd3Smrg 42 575fd7d9bd3Smrg}; 576fd7d9bd3Smrg 577350952b9Smrgstatic const yytype_int8 yycheck[] = 578fd7d9bd3Smrg{ 579fd7d9bd3Smrg 0, 1, 0, 11, 13, 5, 6, 16, 8, 17, 580fd7d9bd3Smrg 10, 17, 12, 19, 14, 7, 15, 16, 18, 9, 581fd7d9bd3Smrg 20, 23, 22, 4, 24, 25, 26, 27, 28, 29, 582fd7d9bd3Smrg 30, 31, 21, 4, 4, 4, 4, 4, 3, -1, 583fd7d9bd3Smrg 31 584fd7d9bd3Smrg}; 585fd7d9bd3Smrg 586fd7d9bd3Smrg/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 587fd7d9bd3Smrg symbol of state STATE-NUM. */ 588350952b9Smrgstatic const yytype_uint8 yystos[] = 589fd7d9bd3Smrg{ 590fd7d9bd3Smrg 0, 33, 34, 0, 1, 5, 6, 8, 10, 12, 591fd7d9bd3Smrg 14, 18, 20, 22, 24, 25, 26, 27, 28, 29, 592fd7d9bd3Smrg 30, 31, 35, 7, 9, 11, 17, 13, 16, 15, 593fd7d9bd3Smrg 16, 17, 19, 21, 23, 4, 4, 4, 4, 4, 594fd7d9bd3Smrg 4, 3, 31 595fd7d9bd3Smrg}; 596fd7d9bd3Smrg 597fd7d9bd3Smrg#define yyerrok (yyerrstatus = 0) 598fd7d9bd3Smrg#define yyclearin (yychar = YYEMPTY) 599fd7d9bd3Smrg#define YYEMPTY (-2) 600fd7d9bd3Smrg#define YYEOF 0 601fd7d9bd3Smrg 602fd7d9bd3Smrg#define YYACCEPT goto yyacceptlab 603fd7d9bd3Smrg#define YYABORT goto yyabortlab 604fd7d9bd3Smrg#define YYERROR goto yyerrorlab 605fd7d9bd3Smrg 606fd7d9bd3Smrg 607fd7d9bd3Smrg/* Like YYERROR except do call yyerror. This remains here temporarily 608fd7d9bd3Smrg to ease the transition to the new meaning of YYERROR, for GCC. 609fd7d9bd3Smrg Once GCC version 2 has supplanted version 1, this can go. */ 610fd7d9bd3Smrg 611fd7d9bd3Smrg#define YYFAIL goto yyerrlab 612fd7d9bd3Smrg 613fd7d9bd3Smrg#define YYRECOVERING() (!!yyerrstatus) 614fd7d9bd3Smrg 615fd7d9bd3Smrg#define YYBACKUP(Token, Value) \ 616fd7d9bd3Smrgdo \ 617fd7d9bd3Smrg if (yychar == YYEMPTY && yylen == 1) \ 618fd7d9bd3Smrg { \ 619fd7d9bd3Smrg yychar = (Token); \ 620fd7d9bd3Smrg yylval = (Value); \ 621fd7d9bd3Smrg yytoken = YYTRANSLATE (yychar); \ 622350952b9Smrg YYPOPSTACK (1); \ 623fd7d9bd3Smrg goto yybackup; \ 624fd7d9bd3Smrg } \ 625fd7d9bd3Smrg else \ 626350952b9Smrg { \ 627350952b9Smrg yyerror (YY_("syntax error: cannot back up")); \ 628fd7d9bd3Smrg YYERROR; \ 629fd7d9bd3Smrg } \ 630350952b9Smrgwhile (YYID (0)) 631350952b9Smrg 632fd7d9bd3Smrg 633fd7d9bd3Smrg#define YYTERROR 1 634fd7d9bd3Smrg#define YYERRCODE 256 635fd7d9bd3Smrg 636fd7d9bd3Smrg 637350952b9Smrg/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 638350952b9Smrg If N is 0, then set CURRENT to the empty location which ends 639350952b9Smrg the previous symbol: RHS[0] (always defined). */ 640350952b9Smrg 641350952b9Smrg#define YYRHSLOC(Rhs, K) ((Rhs)[K]) 642fd7d9bd3Smrg#ifndef YYLLOC_DEFAULT 643350952b9Smrg# define YYLLOC_DEFAULT(Current, Rhs, N) \ 644350952b9Smrg do \ 645350952b9Smrg if (YYID (N)) \ 646350952b9Smrg { \ 647350952b9Smrg (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 648350952b9Smrg (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 649350952b9Smrg (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 650350952b9Smrg (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 651350952b9Smrg } \ 652350952b9Smrg else \ 653350952b9Smrg { \ 654350952b9Smrg (Current).first_line = (Current).last_line = \ 655350952b9Smrg YYRHSLOC (Rhs, 0).last_line; \ 656350952b9Smrg (Current).first_column = (Current).last_column = \ 657350952b9Smrg YYRHSLOC (Rhs, 0).last_column; \ 658350952b9Smrg } \ 659350952b9Smrg while (YYID (0)) 660350952b9Smrg#endif 661350952b9Smrg 662350952b9Smrg 663350952b9Smrg/* YY_LOCATION_PRINT -- Print the location on the stream. 664350952b9Smrg This macro was not mandated originally: define only if we know 665350952b9Smrg we won't break user code: when these are the locations we know. */ 666350952b9Smrg 667350952b9Smrg#ifndef YY_LOCATION_PRINT 668350952b9Smrg# if YYLTYPE_IS_TRIVIAL 669350952b9Smrg# define YY_LOCATION_PRINT(File, Loc) \ 670350952b9Smrg fprintf (File, "%d.%d-%d.%d", \ 671350952b9Smrg (Loc).first_line, (Loc).first_column, \ 672350952b9Smrg (Loc).last_line, (Loc).last_column) 673350952b9Smrg# else 674350952b9Smrg# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 675350952b9Smrg# endif 676fd7d9bd3Smrg#endif 677fd7d9bd3Smrg 678350952b9Smrg 679fd7d9bd3Smrg/* YYLEX -- calling `yylex' with the right arguments. */ 680fd7d9bd3Smrg 681fd7d9bd3Smrg#ifdef YYLEX_PARAM 682fd7d9bd3Smrg# define YYLEX yylex (YYLEX_PARAM) 683fd7d9bd3Smrg#else 684fd7d9bd3Smrg# define YYLEX yylex () 685fd7d9bd3Smrg#endif 686fd7d9bd3Smrg 687fd7d9bd3Smrg/* Enable debugging if requested. */ 688fd7d9bd3Smrg#if YYDEBUG 689fd7d9bd3Smrg 690fd7d9bd3Smrg# ifndef YYFPRINTF 691fd7d9bd3Smrg# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 692fd7d9bd3Smrg# define YYFPRINTF fprintf 693fd7d9bd3Smrg# endif 694fd7d9bd3Smrg 695fd7d9bd3Smrg# define YYDPRINTF(Args) \ 696fd7d9bd3Smrgdo { \ 697fd7d9bd3Smrg if (yydebug) \ 698fd7d9bd3Smrg YYFPRINTF Args; \ 699350952b9Smrg} while (YYID (0)) 700fd7d9bd3Smrg 701350952b9Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 702350952b9Smrgdo { \ 703350952b9Smrg if (yydebug) \ 704350952b9Smrg { \ 705350952b9Smrg YYFPRINTF (stderr, "%s ", Title); \ 706350952b9Smrg yy_symbol_print (stderr, \ 707350952b9Smrg Type, Value); \ 708350952b9Smrg YYFPRINTF (stderr, "\n"); \ 709350952b9Smrg } \ 710350952b9Smrg} while (YYID (0)) 711fd7d9bd3Smrg 712350952b9Smrg 713350952b9Smrg/*--------------------------------. 714350952b9Smrg| Print this symbol on YYOUTPUT. | 715350952b9Smrg`--------------------------------*/ 716350952b9Smrg 717350952b9Smrg/*ARGSUSED*/ 718350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 719350952b9Smrg || defined __cplusplus || defined _MSC_VER) 720350952b9Smrgstatic void 721350952b9Smrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 722350952b9Smrg#else 723350952b9Smrgstatic void 724350952b9Smrgyy_symbol_value_print (yyoutput, yytype, yyvaluep) 725350952b9Smrg FILE *yyoutput; 726350952b9Smrg int yytype; 727350952b9Smrg YYSTYPE const * const yyvaluep; 728350952b9Smrg#endif 729350952b9Smrg{ 730350952b9Smrg if (!yyvaluep) 731350952b9Smrg return; 732350952b9Smrg# ifdef YYPRINT 733350952b9Smrg if (yytype < YYNTOKENS) 734350952b9Smrg YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 735350952b9Smrg# else 736350952b9Smrg YYUSE (yyoutput); 737350952b9Smrg# endif 738350952b9Smrg switch (yytype) 739350952b9Smrg { 740350952b9Smrg default: 741350952b9Smrg break; 742350952b9Smrg } 743350952b9Smrg} 744350952b9Smrg 745350952b9Smrg 746350952b9Smrg/*--------------------------------. 747350952b9Smrg| Print this symbol on YYOUTPUT. | 748350952b9Smrg`--------------------------------*/ 749350952b9Smrg 750350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 751350952b9Smrg || defined __cplusplus || defined _MSC_VER) 752350952b9Smrgstatic void 753350952b9Smrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 754350952b9Smrg#else 755350952b9Smrgstatic void 756350952b9Smrgyy_symbol_print (yyoutput, yytype, yyvaluep) 757350952b9Smrg FILE *yyoutput; 758350952b9Smrg int yytype; 759350952b9Smrg YYSTYPE const * const yyvaluep; 760350952b9Smrg#endif 761350952b9Smrg{ 762350952b9Smrg if (yytype < YYNTOKENS) 763350952b9Smrg YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 764350952b9Smrg else 765350952b9Smrg YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 766350952b9Smrg 767350952b9Smrg yy_symbol_value_print (yyoutput, yytype, yyvaluep); 768350952b9Smrg YYFPRINTF (yyoutput, ")"); 769350952b9Smrg} 770fd7d9bd3Smrg 771fd7d9bd3Smrg/*------------------------------------------------------------------. 772fd7d9bd3Smrg| yy_stack_print -- Print the state stack from its BOTTOM up to its | 773fd7d9bd3Smrg| TOP (included). | 774fd7d9bd3Smrg`------------------------------------------------------------------*/ 775fd7d9bd3Smrg 776350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 777350952b9Smrg || defined __cplusplus || defined _MSC_VER) 778fd7d9bd3Smrgstatic void 779350952b9Smrgyy_stack_print (yytype_int16 *bottom, yytype_int16 *top) 780fd7d9bd3Smrg#else 781fd7d9bd3Smrgstatic void 782fd7d9bd3Smrgyy_stack_print (bottom, top) 783350952b9Smrg yytype_int16 *bottom; 784350952b9Smrg yytype_int16 *top; 785fd7d9bd3Smrg#endif 786fd7d9bd3Smrg{ 787fd7d9bd3Smrg YYFPRINTF (stderr, "Stack now"); 788350952b9Smrg for (; bottom <= top; ++bottom) 789fd7d9bd3Smrg YYFPRINTF (stderr, " %d", *bottom); 790fd7d9bd3Smrg YYFPRINTF (stderr, "\n"); 791fd7d9bd3Smrg} 792fd7d9bd3Smrg 793fd7d9bd3Smrg# define YY_STACK_PRINT(Bottom, Top) \ 794fd7d9bd3Smrgdo { \ 795fd7d9bd3Smrg if (yydebug) \ 796fd7d9bd3Smrg yy_stack_print ((Bottom), (Top)); \ 797350952b9Smrg} while (YYID (0)) 798fd7d9bd3Smrg 799fd7d9bd3Smrg 800fd7d9bd3Smrg/*------------------------------------------------. 801fd7d9bd3Smrg| Report that the YYRULE is going to be reduced. | 802fd7d9bd3Smrg`------------------------------------------------*/ 803fd7d9bd3Smrg 804350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 805350952b9Smrg || defined __cplusplus || defined _MSC_VER) 806fd7d9bd3Smrgstatic void 807350952b9Smrgyy_reduce_print (YYSTYPE *yyvsp, int yyrule) 808fd7d9bd3Smrg#else 809fd7d9bd3Smrgstatic void 810350952b9Smrgyy_reduce_print (yyvsp, yyrule) 811350952b9Smrg YYSTYPE *yyvsp; 812fd7d9bd3Smrg int yyrule; 813fd7d9bd3Smrg#endif 814fd7d9bd3Smrg{ 815350952b9Smrg int yynrhs = yyr2[yyrule]; 816fd7d9bd3Smrg int yyi; 817350952b9Smrg unsigned long int yylno = yyrline[yyrule]; 818350952b9Smrg YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 819350952b9Smrg yyrule - 1, yylno); 820350952b9Smrg /* The symbols being reduced. */ 821350952b9Smrg for (yyi = 0; yyi < yynrhs; yyi++) 822350952b9Smrg { 823350952b9Smrg fprintf (stderr, " $%d = ", yyi + 1); 824350952b9Smrg yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 825350952b9Smrg &(yyvsp[(yyi + 1) - (yynrhs)]) 826350952b9Smrg ); 827350952b9Smrg fprintf (stderr, "\n"); 828350952b9Smrg } 829fd7d9bd3Smrg} 830fd7d9bd3Smrg 831fd7d9bd3Smrg# define YY_REDUCE_PRINT(Rule) \ 832fd7d9bd3Smrgdo { \ 833fd7d9bd3Smrg if (yydebug) \ 834350952b9Smrg yy_reduce_print (yyvsp, Rule); \ 835350952b9Smrg} while (YYID (0)) 836fd7d9bd3Smrg 837fd7d9bd3Smrg/* Nonzero means print parse trace. It is left uninitialized so that 838fd7d9bd3Smrg multiple parsers can coexist. */ 839fd7d9bd3Smrgint yydebug; 840fd7d9bd3Smrg#else /* !YYDEBUG */ 841fd7d9bd3Smrg# define YYDPRINTF(Args) 842350952b9Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 843fd7d9bd3Smrg# define YY_STACK_PRINT(Bottom, Top) 844fd7d9bd3Smrg# define YY_REDUCE_PRINT(Rule) 845fd7d9bd3Smrg#endif /* !YYDEBUG */ 846fd7d9bd3Smrg 847fd7d9bd3Smrg 848fd7d9bd3Smrg/* YYINITDEPTH -- initial size of the parser's stacks. */ 849fd7d9bd3Smrg#ifndef YYINITDEPTH 850fd7d9bd3Smrg# define YYINITDEPTH 200 851fd7d9bd3Smrg#endif 852fd7d9bd3Smrg 853fd7d9bd3Smrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 854fd7d9bd3Smrg if the built-in stack extension method is used). 855fd7d9bd3Smrg 856fd7d9bd3Smrg Do not make this value too large; the results are undefined if 857350952b9Smrg YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 858fd7d9bd3Smrg evaluated with infinite-precision integer arithmetic. */ 859fd7d9bd3Smrg 860fd7d9bd3Smrg#ifndef YYMAXDEPTH 861fd7d9bd3Smrg# define YYMAXDEPTH 10000 862fd7d9bd3Smrg#endif 863fd7d9bd3Smrg 864fd7d9bd3Smrg 865fd7d9bd3Smrg 866fd7d9bd3Smrg#if YYERROR_VERBOSE 867fd7d9bd3Smrg 868fd7d9bd3Smrg# ifndef yystrlen 869350952b9Smrg# if defined __GLIBC__ && defined _STRING_H 870fd7d9bd3Smrg# define yystrlen strlen 871fd7d9bd3Smrg# else 872fd7d9bd3Smrg/* Return the length of YYSTR. */ 873350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 874350952b9Smrg || defined __cplusplus || defined _MSC_VER) 875fd7d9bd3Smrgstatic YYSIZE_T 876fd7d9bd3Smrgyystrlen (const char *yystr) 877350952b9Smrg#else 878350952b9Smrgstatic YYSIZE_T 879fd7d9bd3Smrgyystrlen (yystr) 880350952b9Smrg const char *yystr; 881350952b9Smrg#endif 882fd7d9bd3Smrg{ 883350952b9Smrg YYSIZE_T yylen; 884350952b9Smrg for (yylen = 0; yystr[yylen]; yylen++) 885fd7d9bd3Smrg continue; 886350952b9Smrg return yylen; 887fd7d9bd3Smrg} 888fd7d9bd3Smrg# endif 889fd7d9bd3Smrg# endif 890fd7d9bd3Smrg 891fd7d9bd3Smrg# ifndef yystpcpy 892350952b9Smrg# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 893fd7d9bd3Smrg# define yystpcpy stpcpy 894fd7d9bd3Smrg# else 895fd7d9bd3Smrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 896fd7d9bd3Smrg YYDEST. */ 897350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 898350952b9Smrg || defined __cplusplus || defined _MSC_VER) 899fd7d9bd3Smrgstatic char * 900fd7d9bd3Smrgyystpcpy (char *yydest, const char *yysrc) 901350952b9Smrg#else 902350952b9Smrgstatic char * 903fd7d9bd3Smrgyystpcpy (yydest, yysrc) 904350952b9Smrg char *yydest; 905350952b9Smrg const char *yysrc; 906350952b9Smrg#endif 907fd7d9bd3Smrg{ 908350952b9Smrg char *yyd = yydest; 909350952b9Smrg const char *yys = yysrc; 910fd7d9bd3Smrg 911fd7d9bd3Smrg while ((*yyd++ = *yys++) != '\0') 912fd7d9bd3Smrg continue; 913fd7d9bd3Smrg 914fd7d9bd3Smrg return yyd - 1; 915fd7d9bd3Smrg} 916fd7d9bd3Smrg# endif 917fd7d9bd3Smrg# endif 918fd7d9bd3Smrg 919350952b9Smrg# ifndef yytnamerr 920350952b9Smrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 921350952b9Smrg quotes and backslashes, so that it's suitable for yyerror. The 922350952b9Smrg heuristic is that double-quoting is unnecessary unless the string 923350952b9Smrg contains an apostrophe, a comma, or backslash (other than 924350952b9Smrg backslash-backslash). YYSTR is taken from yytname. If YYRES is 925350952b9Smrg null, do not copy; instead, return the length of what the result 926350952b9Smrg would have been. */ 927350952b9Smrgstatic YYSIZE_T 928350952b9Smrgyytnamerr (char *yyres, const char *yystr) 929350952b9Smrg{ 930350952b9Smrg if (*yystr == '"') 931350952b9Smrg { 932350952b9Smrg YYSIZE_T yyn = 0; 933350952b9Smrg char const *yyp = yystr; 934350952b9Smrg 935350952b9Smrg for (;;) 936350952b9Smrg switch (*++yyp) 937350952b9Smrg { 938350952b9Smrg case '\'': 939350952b9Smrg case ',': 940350952b9Smrg goto do_not_strip_quotes; 941350952b9Smrg 942350952b9Smrg case '\\': 943350952b9Smrg if (*++yyp != '\\') 944350952b9Smrg goto do_not_strip_quotes; 945350952b9Smrg /* Fall through. */ 946350952b9Smrg default: 947350952b9Smrg if (yyres) 948350952b9Smrg yyres[yyn] = *yyp; 949350952b9Smrg yyn++; 950350952b9Smrg break; 951350952b9Smrg 952350952b9Smrg case '"': 953350952b9Smrg if (yyres) 954350952b9Smrg yyres[yyn] = '\0'; 955350952b9Smrg return yyn; 956350952b9Smrg } 957350952b9Smrg do_not_strip_quotes: ; 958350952b9Smrg } 959fd7d9bd3Smrg 960350952b9Smrg if (! yyres) 961350952b9Smrg return yystrlen (yystr); 962fd7d9bd3Smrg 963350952b9Smrg return yystpcpy (yyres, yystr) - yyres; 964350952b9Smrg} 965350952b9Smrg# endif 966fd7d9bd3Smrg 967350952b9Smrg/* Copy into YYRESULT an error message about the unexpected token 968350952b9Smrg YYCHAR while in state YYSTATE. Return the number of bytes copied, 969350952b9Smrg including the terminating null byte. If YYRESULT is null, do not 970350952b9Smrg copy anything; just return the number of bytes that would be 971350952b9Smrg copied. As a special case, return 0 if an ordinary "syntax error" 972350952b9Smrg message will do. Return YYSIZE_MAXIMUM if overflow occurs during 973350952b9Smrg size calculation. */ 974350952b9Smrgstatic YYSIZE_T 975350952b9Smrgyysyntax_error (char *yyresult, int yystate, int yychar) 976fd7d9bd3Smrg{ 977350952b9Smrg int yyn = yypact[yystate]; 978fd7d9bd3Smrg 979350952b9Smrg if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 980350952b9Smrg return 0; 981fd7d9bd3Smrg else 982fd7d9bd3Smrg { 983350952b9Smrg int yytype = YYTRANSLATE (yychar); 984350952b9Smrg YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 985350952b9Smrg YYSIZE_T yysize = yysize0; 986350952b9Smrg YYSIZE_T yysize1; 987350952b9Smrg int yysize_overflow = 0; 988350952b9Smrg enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 989350952b9Smrg char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 990350952b9Smrg int yyx; 991350952b9Smrg 992350952b9Smrg# if 0 993350952b9Smrg /* This is so xgettext sees the translatable formats that are 994350952b9Smrg constructed on the fly. */ 995350952b9Smrg YY_("syntax error, unexpected %s"); 996350952b9Smrg YY_("syntax error, unexpected %s, expecting %s"); 997350952b9Smrg YY_("syntax error, unexpected %s, expecting %s or %s"); 998350952b9Smrg YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 999350952b9Smrg YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 1000350952b9Smrg# endif 1001350952b9Smrg char *yyfmt; 1002350952b9Smrg char const *yyf; 1003350952b9Smrg static char const yyunexpected[] = "syntax error, unexpected %s"; 1004350952b9Smrg static char const yyexpecting[] = ", expecting %s"; 1005350952b9Smrg static char const yyor[] = " or %s"; 1006350952b9Smrg char yyformat[sizeof yyunexpected 1007350952b9Smrg + sizeof yyexpecting - 1 1008350952b9Smrg + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 1009350952b9Smrg * (sizeof yyor - 1))]; 1010350952b9Smrg char const *yyprefix = yyexpecting; 1011350952b9Smrg 1012350952b9Smrg /* Start YYX at -YYN if negative to avoid negative indexes in 1013350952b9Smrg YYCHECK. */ 1014350952b9Smrg int yyxbegin = yyn < 0 ? -yyn : 0; 1015350952b9Smrg 1016350952b9Smrg /* Stay within bounds of both yycheck and yytname. */ 1017350952b9Smrg int yychecklim = YYLAST - yyn + 1; 1018350952b9Smrg int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1019350952b9Smrg int yycount = 1; 1020350952b9Smrg 1021350952b9Smrg yyarg[0] = yytname[yytype]; 1022350952b9Smrg yyfmt = yystpcpy (yyformat, yyunexpected); 1023350952b9Smrg 1024350952b9Smrg for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1025350952b9Smrg if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1026350952b9Smrg { 1027350952b9Smrg if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1028350952b9Smrg { 1029350952b9Smrg yycount = 1; 1030350952b9Smrg yysize = yysize0; 1031350952b9Smrg yyformat[sizeof yyunexpected - 1] = '\0'; 1032350952b9Smrg break; 1033350952b9Smrg } 1034350952b9Smrg yyarg[yycount++] = yytname[yyx]; 1035350952b9Smrg yysize1 = yysize + yytnamerr (0, yytname[yyx]); 1036350952b9Smrg yysize_overflow |= (yysize1 < yysize); 1037350952b9Smrg yysize = yysize1; 1038350952b9Smrg yyfmt = yystpcpy (yyfmt, yyprefix); 1039350952b9Smrg yyprefix = yyor; 1040350952b9Smrg } 1041350952b9Smrg 1042350952b9Smrg yyf = YY_(yyformat); 1043350952b9Smrg yysize1 = yysize + yystrlen (yyf); 1044350952b9Smrg yysize_overflow |= (yysize1 < yysize); 1045350952b9Smrg yysize = yysize1; 1046350952b9Smrg 1047350952b9Smrg if (yysize_overflow) 1048350952b9Smrg return YYSIZE_MAXIMUM; 1049350952b9Smrg 1050350952b9Smrg if (yyresult) 1051350952b9Smrg { 1052350952b9Smrg /* Avoid sprintf, as that infringes on the user's name space. 1053350952b9Smrg Don't have undefined behavior even if the translation 1054350952b9Smrg produced a string with the wrong number of "%s"s. */ 1055350952b9Smrg char *yyp = yyresult; 1056350952b9Smrg int yyi = 0; 1057350952b9Smrg while ((*yyp = *yyf) != '\0') 1058350952b9Smrg { 1059350952b9Smrg if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 1060350952b9Smrg { 1061350952b9Smrg yyp += yytnamerr (yyp, yyarg[yyi++]); 1062350952b9Smrg yyf += 2; 1063350952b9Smrg } 1064350952b9Smrg else 1065350952b9Smrg { 1066350952b9Smrg yyp++; 1067350952b9Smrg yyf++; 1068350952b9Smrg } 1069350952b9Smrg } 1070350952b9Smrg } 1071350952b9Smrg return yysize; 1072fd7d9bd3Smrg } 1073fd7d9bd3Smrg} 1074350952b9Smrg#endif /* YYERROR_VERBOSE */ 1075350952b9Smrg 1076fd7d9bd3Smrg 1077fd7d9bd3Smrg/*-----------------------------------------------. 1078fd7d9bd3Smrg| Release the memory associated to this symbol. | 1079fd7d9bd3Smrg`-----------------------------------------------*/ 1080fd7d9bd3Smrg 1081350952b9Smrg/*ARGSUSED*/ 1082350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1083350952b9Smrg || defined __cplusplus || defined _MSC_VER) 1084fd7d9bd3Smrgstatic void 1085350952b9Smrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1086fd7d9bd3Smrg#else 1087fd7d9bd3Smrgstatic void 1088350952b9Smrgyydestruct (yymsg, yytype, yyvaluep) 1089350952b9Smrg const char *yymsg; 1090fd7d9bd3Smrg int yytype; 1091fd7d9bd3Smrg YYSTYPE *yyvaluep; 1092fd7d9bd3Smrg#endif 1093fd7d9bd3Smrg{ 1094350952b9Smrg YYUSE (yyvaluep); 1095350952b9Smrg 1096350952b9Smrg if (!yymsg) 1097350952b9Smrg yymsg = "Deleting"; 1098350952b9Smrg YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1099fd7d9bd3Smrg 1100fd7d9bd3Smrg switch (yytype) 1101fd7d9bd3Smrg { 1102fd7d9bd3Smrg 1103fd7d9bd3Smrg default: 1104350952b9Smrg break; 1105fd7d9bd3Smrg } 1106fd7d9bd3Smrg} 1107fd7d9bd3Smrg 1108fd7d9bd3Smrg 1109fd7d9bd3Smrg/* Prevent warnings from -Wmissing-prototypes. */ 1110fd7d9bd3Smrg 1111fd7d9bd3Smrg#ifdef YYPARSE_PARAM 1112350952b9Smrg#if defined __STDC__ || defined __cplusplus 1113fd7d9bd3Smrgint yyparse (void *YYPARSE_PARAM); 1114350952b9Smrg#else 1115fd7d9bd3Smrgint yyparse (); 1116350952b9Smrg#endif 1117fd7d9bd3Smrg#else /* ! YYPARSE_PARAM */ 1118350952b9Smrg#if defined __STDC__ || defined __cplusplus 1119fd7d9bd3Smrgint yyparse (void); 1120fd7d9bd3Smrg#else 1121fd7d9bd3Smrgint yyparse (); 1122fd7d9bd3Smrg#endif 1123fd7d9bd3Smrg#endif /* ! YYPARSE_PARAM */ 1124fd7d9bd3Smrg 1125fd7d9bd3Smrg 1126fd7d9bd3Smrg 1127350952b9Smrg/* The look-ahead symbol. */ 1128fd7d9bd3Smrgint yychar; 1129fd7d9bd3Smrg 1130350952b9Smrg/* The semantic value of the look-ahead symbol. */ 1131fd7d9bd3SmrgYYSTYPE yylval; 1132fd7d9bd3Smrg 1133fd7d9bd3Smrg/* Number of syntax errors so far. */ 1134fd7d9bd3Smrgint yynerrs; 1135fd7d9bd3Smrg 1136fd7d9bd3Smrg 1137fd7d9bd3Smrg 1138fd7d9bd3Smrg/*----------. 1139fd7d9bd3Smrg| yyparse. | 1140fd7d9bd3Smrg`----------*/ 1141fd7d9bd3Smrg 1142fd7d9bd3Smrg#ifdef YYPARSE_PARAM 1143350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1144350952b9Smrg || defined __cplusplus || defined _MSC_VER) 1145350952b9Smrgint 1146350952b9Smrgyyparse (void *YYPARSE_PARAM) 1147350952b9Smrg#else 1148350952b9Smrgint 1149350952b9Smrgyyparse (YYPARSE_PARAM) 1150350952b9Smrg void *YYPARSE_PARAM; 1151350952b9Smrg#endif 1152fd7d9bd3Smrg#else /* ! YYPARSE_PARAM */ 1153350952b9Smrg#if (defined __STDC__ || defined __C99__FUNC__ \ 1154350952b9Smrg || defined __cplusplus || defined _MSC_VER) 1155fd7d9bd3Smrgint 1156fd7d9bd3Smrgyyparse (void) 1157fd7d9bd3Smrg#else 1158fd7d9bd3Smrgint 1159fd7d9bd3Smrgyyparse () 1160fd7d9bd3Smrg 1161fd7d9bd3Smrg#endif 1162fd7d9bd3Smrg#endif 1163fd7d9bd3Smrg{ 1164fd7d9bd3Smrg 1165350952b9Smrg int yystate; 1166350952b9Smrg int yyn; 1167fd7d9bd3Smrg int yyresult; 1168fd7d9bd3Smrg /* Number of tokens to shift before error messages enabled. */ 1169fd7d9bd3Smrg int yyerrstatus; 1170350952b9Smrg /* Look-ahead token as an internal (translated) token number. */ 1171fd7d9bd3Smrg int yytoken = 0; 1172350952b9Smrg#if YYERROR_VERBOSE 1173350952b9Smrg /* Buffer for error messages, and its allocated size. */ 1174350952b9Smrg char yymsgbuf[128]; 1175350952b9Smrg char *yymsg = yymsgbuf; 1176350952b9Smrg YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1177350952b9Smrg#endif 1178fd7d9bd3Smrg 1179fd7d9bd3Smrg /* Three stacks and their tools: 1180fd7d9bd3Smrg `yyss': related to states, 1181fd7d9bd3Smrg `yyvs': related to semantic values, 1182fd7d9bd3Smrg `yyls': related to locations. 1183fd7d9bd3Smrg 1184fd7d9bd3Smrg Refer to the stacks thru separate pointers, to allow yyoverflow 1185fd7d9bd3Smrg to reallocate them elsewhere. */ 1186fd7d9bd3Smrg 1187fd7d9bd3Smrg /* The state stack. */ 1188350952b9Smrg yytype_int16 yyssa[YYINITDEPTH]; 1189350952b9Smrg yytype_int16 *yyss = yyssa; 1190350952b9Smrg yytype_int16 *yyssp; 1191fd7d9bd3Smrg 1192fd7d9bd3Smrg /* The semantic value stack. */ 1193fd7d9bd3Smrg YYSTYPE yyvsa[YYINITDEPTH]; 1194fd7d9bd3Smrg YYSTYPE *yyvs = yyvsa; 1195350952b9Smrg YYSTYPE *yyvsp; 1196fd7d9bd3Smrg 1197fd7d9bd3Smrg 1198fd7d9bd3Smrg 1199350952b9Smrg#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1200fd7d9bd3Smrg 1201fd7d9bd3Smrg YYSIZE_T yystacksize = YYINITDEPTH; 1202fd7d9bd3Smrg 1203fd7d9bd3Smrg /* The variables used to return semantic value and location from the 1204fd7d9bd3Smrg action routines. */ 1205fd7d9bd3Smrg YYSTYPE yyval; 1206fd7d9bd3Smrg 1207fd7d9bd3Smrg 1208350952b9Smrg /* The number of symbols on the RHS of the reduced rule. 1209350952b9Smrg Keep to zero when no symbol should be popped. */ 1210350952b9Smrg int yylen = 0; 1211fd7d9bd3Smrg 1212fd7d9bd3Smrg YYDPRINTF ((stderr, "Starting parse\n")); 1213fd7d9bd3Smrg 1214fd7d9bd3Smrg yystate = 0; 1215fd7d9bd3Smrg yyerrstatus = 0; 1216fd7d9bd3Smrg yynerrs = 0; 1217fd7d9bd3Smrg yychar = YYEMPTY; /* Cause a token to be read. */ 1218fd7d9bd3Smrg 1219fd7d9bd3Smrg /* Initialize stack pointers. 1220fd7d9bd3Smrg Waste one element of value and location stack 1221fd7d9bd3Smrg so that they stay on the same level as the state stack. 1222fd7d9bd3Smrg The wasted elements are never initialized. */ 1223fd7d9bd3Smrg 1224fd7d9bd3Smrg yyssp = yyss; 1225fd7d9bd3Smrg yyvsp = yyvs; 1226fd7d9bd3Smrg 1227fd7d9bd3Smrg goto yysetstate; 1228fd7d9bd3Smrg 1229fd7d9bd3Smrg/*------------------------------------------------------------. 1230fd7d9bd3Smrg| yynewstate -- Push a new state, which is found in yystate. | 1231fd7d9bd3Smrg`------------------------------------------------------------*/ 1232fd7d9bd3Smrg yynewstate: 1233fd7d9bd3Smrg /* In all cases, when you get here, the value and location stacks 1234350952b9Smrg have just been pushed. So pushing a state here evens the stacks. */ 1235fd7d9bd3Smrg yyssp++; 1236fd7d9bd3Smrg 1237fd7d9bd3Smrg yysetstate: 1238fd7d9bd3Smrg *yyssp = yystate; 1239fd7d9bd3Smrg 1240fd7d9bd3Smrg if (yyss + yystacksize - 1 <= yyssp) 1241fd7d9bd3Smrg { 1242fd7d9bd3Smrg /* Get the current used size of the three stacks, in elements. */ 1243fd7d9bd3Smrg YYSIZE_T yysize = yyssp - yyss + 1; 1244fd7d9bd3Smrg 1245fd7d9bd3Smrg#ifdef yyoverflow 1246fd7d9bd3Smrg { 1247350952b9Smrg /* Give user a chance to reallocate the stack. Use copies of 1248fd7d9bd3Smrg these so that the &'s don't force the real ones into 1249fd7d9bd3Smrg memory. */ 1250fd7d9bd3Smrg YYSTYPE *yyvs1 = yyvs; 1251350952b9Smrg yytype_int16 *yyss1 = yyss; 1252fd7d9bd3Smrg 1253fd7d9bd3Smrg 1254fd7d9bd3Smrg /* Each stack pointer address is followed by the size of the 1255fd7d9bd3Smrg data in use in that stack, in bytes. This used to be a 1256fd7d9bd3Smrg conditional around just the two extra args, but that might 1257fd7d9bd3Smrg be undefined if yyoverflow is a macro. */ 1258350952b9Smrg yyoverflow (YY_("memory exhausted"), 1259fd7d9bd3Smrg &yyss1, yysize * sizeof (*yyssp), 1260fd7d9bd3Smrg &yyvs1, yysize * sizeof (*yyvsp), 1261fd7d9bd3Smrg 1262fd7d9bd3Smrg &yystacksize); 1263fd7d9bd3Smrg 1264fd7d9bd3Smrg yyss = yyss1; 1265fd7d9bd3Smrg yyvs = yyvs1; 1266fd7d9bd3Smrg } 1267fd7d9bd3Smrg#else /* no yyoverflow */ 1268fd7d9bd3Smrg# ifndef YYSTACK_RELOCATE 1269350952b9Smrg goto yyexhaustedlab; 1270fd7d9bd3Smrg# else 1271fd7d9bd3Smrg /* Extend the stack our own way. */ 1272fd7d9bd3Smrg if (YYMAXDEPTH <= yystacksize) 1273350952b9Smrg goto yyexhaustedlab; 1274fd7d9bd3Smrg yystacksize *= 2; 1275fd7d9bd3Smrg if (YYMAXDEPTH < yystacksize) 1276fd7d9bd3Smrg yystacksize = YYMAXDEPTH; 1277fd7d9bd3Smrg 1278fd7d9bd3Smrg { 1279350952b9Smrg yytype_int16 *yyss1 = yyss; 1280fd7d9bd3Smrg union yyalloc *yyptr = 1281fd7d9bd3Smrg (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1282fd7d9bd3Smrg if (! yyptr) 1283350952b9Smrg goto yyexhaustedlab; 1284fd7d9bd3Smrg YYSTACK_RELOCATE (yyss); 1285fd7d9bd3Smrg YYSTACK_RELOCATE (yyvs); 1286fd7d9bd3Smrg 1287fd7d9bd3Smrg# undef YYSTACK_RELOCATE 1288fd7d9bd3Smrg if (yyss1 != yyssa) 1289fd7d9bd3Smrg YYSTACK_FREE (yyss1); 1290fd7d9bd3Smrg } 1291fd7d9bd3Smrg# endif 1292fd7d9bd3Smrg#endif /* no yyoverflow */ 1293fd7d9bd3Smrg 1294fd7d9bd3Smrg yyssp = yyss + yysize - 1; 1295fd7d9bd3Smrg yyvsp = yyvs + yysize - 1; 1296fd7d9bd3Smrg 1297fd7d9bd3Smrg 1298fd7d9bd3Smrg YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1299fd7d9bd3Smrg (unsigned long int) yystacksize)); 1300fd7d9bd3Smrg 1301fd7d9bd3Smrg if (yyss + yystacksize - 1 <= yyssp) 1302fd7d9bd3Smrg YYABORT; 1303fd7d9bd3Smrg } 1304fd7d9bd3Smrg 1305fd7d9bd3Smrg YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1306fd7d9bd3Smrg 1307fd7d9bd3Smrg goto yybackup; 1308fd7d9bd3Smrg 1309fd7d9bd3Smrg/*-----------. 1310fd7d9bd3Smrg| yybackup. | 1311fd7d9bd3Smrg`-----------*/ 1312fd7d9bd3Smrgyybackup: 1313fd7d9bd3Smrg 1314350952b9Smrg /* Do appropriate processing given the current state. Read a 1315350952b9Smrg look-ahead token if we need one and don't already have one. */ 1316fd7d9bd3Smrg 1317350952b9Smrg /* First try to decide what to do without reference to look-ahead token. */ 1318fd7d9bd3Smrg yyn = yypact[yystate]; 1319fd7d9bd3Smrg if (yyn == YYPACT_NINF) 1320fd7d9bd3Smrg goto yydefault; 1321fd7d9bd3Smrg 1322350952b9Smrg /* Not known => get a look-ahead token if don't already have one. */ 1323fd7d9bd3Smrg 1324350952b9Smrg /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ 1325fd7d9bd3Smrg if (yychar == YYEMPTY) 1326fd7d9bd3Smrg { 1327fd7d9bd3Smrg YYDPRINTF ((stderr, "Reading a token: ")); 1328fd7d9bd3Smrg yychar = YYLEX; 1329fd7d9bd3Smrg } 1330fd7d9bd3Smrg 1331fd7d9bd3Smrg if (yychar <= YYEOF) 1332fd7d9bd3Smrg { 1333fd7d9bd3Smrg yychar = yytoken = YYEOF; 1334fd7d9bd3Smrg YYDPRINTF ((stderr, "Now at end of input.\n")); 1335fd7d9bd3Smrg } 1336fd7d9bd3Smrg else 1337fd7d9bd3Smrg { 1338fd7d9bd3Smrg yytoken = YYTRANSLATE (yychar); 1339350952b9Smrg YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1340fd7d9bd3Smrg } 1341fd7d9bd3Smrg 1342fd7d9bd3Smrg /* If the proper action on seeing token YYTOKEN is to reduce or to 1343fd7d9bd3Smrg detect an error, take that action. */ 1344fd7d9bd3Smrg yyn += yytoken; 1345fd7d9bd3Smrg if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1346fd7d9bd3Smrg goto yydefault; 1347fd7d9bd3Smrg yyn = yytable[yyn]; 1348fd7d9bd3Smrg if (yyn <= 0) 1349fd7d9bd3Smrg { 1350fd7d9bd3Smrg if (yyn == 0 || yyn == YYTABLE_NINF) 1351fd7d9bd3Smrg goto yyerrlab; 1352fd7d9bd3Smrg yyn = -yyn; 1353fd7d9bd3Smrg goto yyreduce; 1354fd7d9bd3Smrg } 1355fd7d9bd3Smrg 1356fd7d9bd3Smrg if (yyn == YYFINAL) 1357fd7d9bd3Smrg YYACCEPT; 1358fd7d9bd3Smrg 1359fd7d9bd3Smrg /* Count tokens shifted since error; after three, turn off error 1360fd7d9bd3Smrg status. */ 1361fd7d9bd3Smrg if (yyerrstatus) 1362fd7d9bd3Smrg yyerrstatus--; 1363fd7d9bd3Smrg 1364350952b9Smrg /* Shift the look-ahead token. */ 1365350952b9Smrg YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1366350952b9Smrg 1367350952b9Smrg /* Discard the shifted token unless it is eof. */ 1368350952b9Smrg if (yychar != YYEOF) 1369350952b9Smrg yychar = YYEMPTY; 1370350952b9Smrg 1371fd7d9bd3Smrg yystate = yyn; 1372350952b9Smrg *++yyvsp = yylval; 1373350952b9Smrg 1374fd7d9bd3Smrg goto yynewstate; 1375fd7d9bd3Smrg 1376fd7d9bd3Smrg 1377fd7d9bd3Smrg/*-----------------------------------------------------------. 1378fd7d9bd3Smrg| yydefault -- do the default action for the current state. | 1379fd7d9bd3Smrg`-----------------------------------------------------------*/ 1380fd7d9bd3Smrgyydefault: 1381fd7d9bd3Smrg yyn = yydefact[yystate]; 1382fd7d9bd3Smrg if (yyn == 0) 1383fd7d9bd3Smrg goto yyerrlab; 1384fd7d9bd3Smrg goto yyreduce; 1385fd7d9bd3Smrg 1386fd7d9bd3Smrg 1387fd7d9bd3Smrg/*-----------------------------. 1388fd7d9bd3Smrg| yyreduce -- Do a reduction. | 1389fd7d9bd3Smrg`-----------------------------*/ 1390fd7d9bd3Smrgyyreduce: 1391fd7d9bd3Smrg /* yyn is the number of a rule to reduce with. */ 1392fd7d9bd3Smrg yylen = yyr2[yyn]; 1393fd7d9bd3Smrg 1394fd7d9bd3Smrg /* If YYLEN is nonzero, implement the default value of the action: 1395fd7d9bd3Smrg `$$ = $1'. 1396fd7d9bd3Smrg 1397fd7d9bd3Smrg Otherwise, the following line sets YYVAL to garbage. 1398fd7d9bd3Smrg This behavior is undocumented and Bison 1399fd7d9bd3Smrg users should not rely upon it. Assigning to YYVAL 1400fd7d9bd3Smrg unconditionally makes the parser a bit smaller, and it avoids a 1401fd7d9bd3Smrg GCC warning that YYVAL may be used uninitialized. */ 1402fd7d9bd3Smrg yyval = yyvsp[1-yylen]; 1403fd7d9bd3Smrg 1404fd7d9bd3Smrg 1405fd7d9bd3Smrg YY_REDUCE_PRINT (yyn); 1406fd7d9bd3Smrg switch (yyn) 1407fd7d9bd3Smrg { 1408fd7d9bd3Smrg case 7: 1409fd7d9bd3Smrg#line 51 "gram.y" 1410fd7d9bd3Smrg { run_test(); } 1411fd7d9bd3Smrg break; 1412fd7d9bd3Smrg 1413fd7d9bd3Smrg case 8: 1414fd7d9bd3Smrg#line 53 "gram.y" 1415350952b9Smrg { change_test ((yyvsp[(2) - (2)].num), TRUE); } 1416fd7d9bd3Smrg break; 1417fd7d9bd3Smrg 1418fd7d9bd3Smrg case 9: 1419fd7d9bd3Smrg#line 55 "gram.y" 1420350952b9Smrg { GC_change_function ((yyvsp[(2) - (2)].num), TRUE); } 1421fd7d9bd3Smrg break; 1422fd7d9bd3Smrg 1423fd7d9bd3Smrg case 10: 1424fd7d9bd3Smrg#line 57 "gram.y" 1425350952b9Smrg { GC_change_linestyle ((yyvsp[(2) - (2)].num), TRUE); } 1426fd7d9bd3Smrg break; 1427fd7d9bd3Smrg 1428fd7d9bd3Smrg case 11: 1429fd7d9bd3Smrg#line 59 "gram.y" 1430fd7d9bd3Smrg { GC_change_linestyle (LineSolid, TRUE); } 1431fd7d9bd3Smrg break; 1432fd7d9bd3Smrg 1433fd7d9bd3Smrg case 12: 1434fd7d9bd3Smrg#line 61 "gram.y" 1435350952b9Smrg { GC_change_capstyle ((yyvsp[(2) - (2)].num), TRUE); } 1436fd7d9bd3Smrg break; 1437fd7d9bd3Smrg 1438fd7d9bd3Smrg case 13: 1439fd7d9bd3Smrg#line 63 "gram.y" 1440fd7d9bd3Smrg { GC_change_capstyle (CapRound, TRUE); } 1441fd7d9bd3Smrg break; 1442fd7d9bd3Smrg 1443fd7d9bd3Smrg case 14: 1444fd7d9bd3Smrg#line 65 "gram.y" 1445350952b9Smrg { GC_change_joinstyle ((yyvsp[(2) - (2)].num), TRUE); } 1446fd7d9bd3Smrg break; 1447fd7d9bd3Smrg 1448fd7d9bd3Smrg case 15: 1449fd7d9bd3Smrg#line 67 "gram.y" 1450fd7d9bd3Smrg { GC_change_joinstyle (JoinRound, TRUE); } 1451fd7d9bd3Smrg break; 1452fd7d9bd3Smrg 1453fd7d9bd3Smrg case 16: 1454fd7d9bd3Smrg#line 69 "gram.y" 1455350952b9Smrg { GC_change_fillstyle ((yyvsp[(2) - (2)].num), TRUE); } 1456fd7d9bd3Smrg break; 1457fd7d9bd3Smrg 1458fd7d9bd3Smrg case 17: 1459fd7d9bd3Smrg#line 71 "gram.y" 1460fd7d9bd3Smrg { GC_change_fillstyle (FillSolid, TRUE); } 1461fd7d9bd3Smrg break; 1462fd7d9bd3Smrg 1463fd7d9bd3Smrg case 18: 1464fd7d9bd3Smrg#line 73 "gram.y" 1465350952b9Smrg { GC_change_fillrule ((yyvsp[(2) - (2)].num), TRUE); } 1466fd7d9bd3Smrg break; 1467fd7d9bd3Smrg 1468fd7d9bd3Smrg case 19: 1469fd7d9bd3Smrg#line 75 "gram.y" 1470350952b9Smrg { GC_change_arcmode ((yyvsp[(2) - (2)].num), TRUE); } 1471fd7d9bd3Smrg break; 1472fd7d9bd3Smrg 1473fd7d9bd3Smrg case 20: 1474fd7d9bd3Smrg#line 77 "gram.y" 1475350952b9Smrg { GC_change_foreground ((yyvsp[(2) - (2)].num), TRUE); } 1476fd7d9bd3Smrg break; 1477fd7d9bd3Smrg 1478fd7d9bd3Smrg case 21: 1479fd7d9bd3Smrg#line 79 "gram.y" 1480350952b9Smrg { GC_change_background ((yyvsp[(2) - (2)].num), TRUE); } 1481fd7d9bd3Smrg break; 1482fd7d9bd3Smrg 1483fd7d9bd3Smrg case 22: 1484fd7d9bd3Smrg#line 81 "gram.y" 1485350952b9Smrg { GC_change_linewidth ((yyvsp[(2) - (2)].num), TRUE); } 1486fd7d9bd3Smrg break; 1487fd7d9bd3Smrg 1488fd7d9bd3Smrg case 23: 1489fd7d9bd3Smrg#line 83 "gram.y" 1490350952b9Smrg { GC_change_planemask ((yyvsp[(2) - (2)].num), TRUE); } 1491fd7d9bd3Smrg break; 1492fd7d9bd3Smrg 1493fd7d9bd3Smrg case 24: 1494fd7d9bd3Smrg#line 85 "gram.y" 1495350952b9Smrg { GC_change_dashlist ((yyvsp[(2) - (2)].num), TRUE); } 1496fd7d9bd3Smrg break; 1497fd7d9bd3Smrg 1498fd7d9bd3Smrg case 25: 1499fd7d9bd3Smrg#line 87 "gram.y" 1500350952b9Smrg { GC_change_font ((yyvsp[(2) - (2)].ptr), TRUE); } 1501fd7d9bd3Smrg break; 1502fd7d9bd3Smrg 1503fd7d9bd3Smrg case 26: 1504fd7d9bd3Smrg#line 89 "gram.y" 1505350952b9Smrg { change_percent ((yyvsp[(2) - (2)].num), TRUE); } 1506fd7d9bd3Smrg break; 1507fd7d9bd3Smrg 1508fd7d9bd3Smrg 1509350952b9Smrg/* Line 1267 of yacc.c. */ 1510350952b9Smrg#line 1511 "gram.c" 1511350952b9Smrg default: break; 1512fd7d9bd3Smrg } 1513350952b9Smrg YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 1514fd7d9bd3Smrg 1515350952b9Smrg YYPOPSTACK (yylen); 1516350952b9Smrg yylen = 0; 1517fd7d9bd3Smrg YY_STACK_PRINT (yyss, yyssp); 1518fd7d9bd3Smrg 1519fd7d9bd3Smrg *++yyvsp = yyval; 1520fd7d9bd3Smrg 1521fd7d9bd3Smrg 1522fd7d9bd3Smrg /* Now `shift' the result of the reduction. Determine what state 1523fd7d9bd3Smrg that goes to, based on the state we popped back to and the rule 1524fd7d9bd3Smrg number reduced by. */ 1525fd7d9bd3Smrg 1526fd7d9bd3Smrg yyn = yyr1[yyn]; 1527fd7d9bd3Smrg 1528fd7d9bd3Smrg yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 1529fd7d9bd3Smrg if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 1530fd7d9bd3Smrg yystate = yytable[yystate]; 1531fd7d9bd3Smrg else 1532fd7d9bd3Smrg yystate = yydefgoto[yyn - YYNTOKENS]; 1533fd7d9bd3Smrg 1534fd7d9bd3Smrg goto yynewstate; 1535fd7d9bd3Smrg 1536fd7d9bd3Smrg 1537fd7d9bd3Smrg/*------------------------------------. 1538fd7d9bd3Smrg| yyerrlab -- here on detecting error | 1539fd7d9bd3Smrg`------------------------------------*/ 1540fd7d9bd3Smrgyyerrlab: 1541fd7d9bd3Smrg /* If not already recovering from an error, report this error. */ 1542fd7d9bd3Smrg if (!yyerrstatus) 1543fd7d9bd3Smrg { 1544fd7d9bd3Smrg ++yynerrs; 1545350952b9Smrg#if ! YYERROR_VERBOSE 1546350952b9Smrg yyerror (YY_("syntax error")); 1547350952b9Smrg#else 1548350952b9Smrg { 1549350952b9Smrg YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 1550350952b9Smrg if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 1551350952b9Smrg { 1552350952b9Smrg YYSIZE_T yyalloc = 2 * yysize; 1553350952b9Smrg if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 1554350952b9Smrg yyalloc = YYSTACK_ALLOC_MAXIMUM; 1555350952b9Smrg if (yymsg != yymsgbuf) 1556350952b9Smrg YYSTACK_FREE (yymsg); 1557350952b9Smrg yymsg = (char *) YYSTACK_ALLOC (yyalloc); 1558350952b9Smrg if (yymsg) 1559350952b9Smrg yymsg_alloc = yyalloc; 1560350952b9Smrg else 1561fd7d9bd3Smrg { 1562350952b9Smrg yymsg = yymsgbuf; 1563350952b9Smrg yymsg_alloc = sizeof yymsgbuf; 1564fd7d9bd3Smrg } 1565350952b9Smrg } 1566350952b9Smrg 1567350952b9Smrg if (0 < yysize && yysize <= yymsg_alloc) 1568350952b9Smrg { 1569350952b9Smrg (void) yysyntax_error (yymsg, yystate, yychar); 1570350952b9Smrg yyerror (yymsg); 1571350952b9Smrg } 1572350952b9Smrg else 1573350952b9Smrg { 1574350952b9Smrg yyerror (YY_("syntax error")); 1575350952b9Smrg if (yysize != 0) 1576350952b9Smrg goto yyexhaustedlab; 1577350952b9Smrg } 1578350952b9Smrg } 1579350952b9Smrg#endif 1580fd7d9bd3Smrg } 1581fd7d9bd3Smrg 1582fd7d9bd3Smrg 1583fd7d9bd3Smrg 1584fd7d9bd3Smrg if (yyerrstatus == 3) 1585fd7d9bd3Smrg { 1586350952b9Smrg /* If just tried and failed to reuse look-ahead token after an 1587fd7d9bd3Smrg error, discard it. */ 1588fd7d9bd3Smrg 1589fd7d9bd3Smrg if (yychar <= YYEOF) 1590350952b9Smrg { 1591350952b9Smrg /* Return failure if at end of input. */ 1592fd7d9bd3Smrg if (yychar == YYEOF) 1593350952b9Smrg YYABORT; 1594350952b9Smrg } 1595fd7d9bd3Smrg else 1596fd7d9bd3Smrg { 1597350952b9Smrg yydestruct ("Error: discarding", 1598350952b9Smrg yytoken, &yylval); 1599fd7d9bd3Smrg yychar = YYEMPTY; 1600fd7d9bd3Smrg } 1601fd7d9bd3Smrg } 1602fd7d9bd3Smrg 1603350952b9Smrg /* Else will try to reuse look-ahead token after shifting the error 1604fd7d9bd3Smrg token. */ 1605fd7d9bd3Smrg goto yyerrlab1; 1606fd7d9bd3Smrg 1607fd7d9bd3Smrg 1608fd7d9bd3Smrg/*---------------------------------------------------. 1609fd7d9bd3Smrg| yyerrorlab -- error raised explicitly by YYERROR. | 1610fd7d9bd3Smrg`---------------------------------------------------*/ 1611fd7d9bd3Smrgyyerrorlab: 1612fd7d9bd3Smrg 1613350952b9Smrg /* Pacify compilers like GCC when the user code never invokes 1614350952b9Smrg YYERROR and the label yyerrorlab therefore never appears in user 1615350952b9Smrg code. */ 1616350952b9Smrg if (/*CONSTCOND*/ 0) 1617fd7d9bd3Smrg goto yyerrorlab; 1618fd7d9bd3Smrg 1619350952b9Smrg /* Do not reclaim the symbols of the rule which action triggered 1620350952b9Smrg this YYERROR. */ 1621350952b9Smrg YYPOPSTACK (yylen); 1622350952b9Smrg yylen = 0; 1623350952b9Smrg YY_STACK_PRINT (yyss, yyssp); 1624fd7d9bd3Smrg yystate = *yyssp; 1625fd7d9bd3Smrg goto yyerrlab1; 1626fd7d9bd3Smrg 1627fd7d9bd3Smrg 1628fd7d9bd3Smrg/*-------------------------------------------------------------. 1629fd7d9bd3Smrg| yyerrlab1 -- common code for both syntax error and YYERROR. | 1630fd7d9bd3Smrg`-------------------------------------------------------------*/ 1631fd7d9bd3Smrgyyerrlab1: 1632fd7d9bd3Smrg yyerrstatus = 3; /* Each real token shifted decrements this. */ 1633fd7d9bd3Smrg 1634fd7d9bd3Smrg for (;;) 1635fd7d9bd3Smrg { 1636fd7d9bd3Smrg yyn = yypact[yystate]; 1637fd7d9bd3Smrg if (yyn != YYPACT_NINF) 1638fd7d9bd3Smrg { 1639fd7d9bd3Smrg yyn += YYTERROR; 1640fd7d9bd3Smrg if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1641fd7d9bd3Smrg { 1642fd7d9bd3Smrg yyn = yytable[yyn]; 1643fd7d9bd3Smrg if (0 < yyn) 1644fd7d9bd3Smrg break; 1645fd7d9bd3Smrg } 1646fd7d9bd3Smrg } 1647fd7d9bd3Smrg 1648fd7d9bd3Smrg /* Pop the current state because it cannot handle the error token. */ 1649fd7d9bd3Smrg if (yyssp == yyss) 1650fd7d9bd3Smrg YYABORT; 1651fd7d9bd3Smrg 1652350952b9Smrg 1653350952b9Smrg yydestruct ("Error: popping", 1654350952b9Smrg yystos[yystate], yyvsp); 1655350952b9Smrg YYPOPSTACK (1); 1656fd7d9bd3Smrg yystate = *yyssp; 1657fd7d9bd3Smrg YY_STACK_PRINT (yyss, yyssp); 1658fd7d9bd3Smrg } 1659fd7d9bd3Smrg 1660fd7d9bd3Smrg if (yyn == YYFINAL) 1661fd7d9bd3Smrg YYACCEPT; 1662fd7d9bd3Smrg 1663fd7d9bd3Smrg *++yyvsp = yylval; 1664fd7d9bd3Smrg 1665fd7d9bd3Smrg 1666350952b9Smrg /* Shift the error token. */ 1667350952b9Smrg YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 1668350952b9Smrg 1669fd7d9bd3Smrg yystate = yyn; 1670fd7d9bd3Smrg goto yynewstate; 1671fd7d9bd3Smrg 1672fd7d9bd3Smrg 1673fd7d9bd3Smrg/*-------------------------------------. 1674fd7d9bd3Smrg| yyacceptlab -- YYACCEPT comes here. | 1675fd7d9bd3Smrg`-------------------------------------*/ 1676fd7d9bd3Smrgyyacceptlab: 1677fd7d9bd3Smrg yyresult = 0; 1678fd7d9bd3Smrg goto yyreturn; 1679fd7d9bd3Smrg 1680fd7d9bd3Smrg/*-----------------------------------. 1681fd7d9bd3Smrg| yyabortlab -- YYABORT comes here. | 1682fd7d9bd3Smrg`-----------------------------------*/ 1683fd7d9bd3Smrgyyabortlab: 1684fd7d9bd3Smrg yyresult = 1; 1685fd7d9bd3Smrg goto yyreturn; 1686fd7d9bd3Smrg 1687fd7d9bd3Smrg#ifndef yyoverflow 1688350952b9Smrg/*-------------------------------------------------. 1689350952b9Smrg| yyexhaustedlab -- memory exhaustion comes here. | 1690350952b9Smrg`-------------------------------------------------*/ 1691350952b9Smrgyyexhaustedlab: 1692350952b9Smrg yyerror (YY_("memory exhausted")); 1693fd7d9bd3Smrg yyresult = 2; 1694fd7d9bd3Smrg /* Fall through. */ 1695fd7d9bd3Smrg#endif 1696fd7d9bd3Smrg 1697fd7d9bd3Smrgyyreturn: 1698350952b9Smrg if (yychar != YYEOF && yychar != YYEMPTY) 1699350952b9Smrg yydestruct ("Cleanup: discarding lookahead", 1700350952b9Smrg yytoken, &yylval); 1701350952b9Smrg /* Do not reclaim the symbols of the rule which action triggered 1702350952b9Smrg this YYABORT or YYACCEPT. */ 1703350952b9Smrg YYPOPSTACK (yylen); 1704350952b9Smrg YY_STACK_PRINT (yyss, yyssp); 1705350952b9Smrg while (yyssp != yyss) 1706350952b9Smrg { 1707350952b9Smrg yydestruct ("Cleanup: popping", 1708350952b9Smrg yystos[*yyssp], yyvsp); 1709350952b9Smrg YYPOPSTACK (1); 1710350952b9Smrg } 1711fd7d9bd3Smrg#ifndef yyoverflow 1712fd7d9bd3Smrg if (yyss != yyssa) 1713fd7d9bd3Smrg YYSTACK_FREE (yyss); 1714fd7d9bd3Smrg#endif 1715350952b9Smrg#if YYERROR_VERBOSE 1716350952b9Smrg if (yymsg != yymsgbuf) 1717350952b9Smrg YYSTACK_FREE (yymsg); 1718350952b9Smrg#endif 1719350952b9Smrg /* Make sure YYID is used. */ 1720350952b9Smrg return YYID (yyresult); 1721fd7d9bd3Smrg} 1722fd7d9bd3Smrg 1723fd7d9bd3Smrg 1724fd7d9bd3Smrg#line 92 "gram.y" 1725fd7d9bd3Smrg 1726fd7d9bd3Smrgvoid 1727fd7d9bd3Smrgyyerror(const char *s) 1728fd7d9bd3Smrg{ 1729fd7d9bd3Smrg fprintf(stderr, "xgc: syntax error, line %d\n", yylineno); 1730fd7d9bd3Smrg} 1731fd7d9bd3Smrg 1732