1e53c48bfSmrg/* A Bison parser, made by GNU Bison 3.0.4. */ 2fd7d9bd3Smrg 3e53c48bfSmrg/* Bison implementation for Yacc-like parsers in C 4350952b9Smrg 5e53c48bfSmrg Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. 6fd7d9bd3Smrg 7e53c48bfSmrg This program is free software: you can redistribute it and/or modify 8fd7d9bd3Smrg it under the terms of the GNU General Public License as published by 9e53c48bfSmrg the Free Software Foundation, either version 3 of the License, or 10e53c48bfSmrg (at your option) any later version. 11fd7d9bd3Smrg 12fd7d9bd3Smrg This program is distributed in the hope that it will be useful, 13fd7d9bd3Smrg but WITHOUT ANY WARRANTY; without even the implied warranty of 14fd7d9bd3Smrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15fd7d9bd3Smrg GNU General Public License for more details. 16fd7d9bd3Smrg 17fd7d9bd3Smrg You should have received a copy of the GNU General Public License 18e53c48bfSmrg along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19350952b9Smrg 20350952b9Smrg/* As a special exception, you may create a larger work that contains 21350952b9Smrg part or all of the Bison parser skeleton and distribute that work 22350952b9Smrg under terms of your choice, so long as that work isn't itself a 23350952b9Smrg parser generator using the skeleton or a modified version thereof 24350952b9Smrg as a parser skeleton. Alternatively, if you modify or redistribute 25350952b9Smrg the parser skeleton itself, you may (at your option) remove this 26350952b9Smrg special exception, which will cause the skeleton and the resulting 27350952b9Smrg Bison output files to be licensed under the GNU General Public 28350952b9Smrg License without this special exception. 29fd7d9bd3Smrg 30350952b9Smrg This special exception was added by the Free Software Foundation in 31350952b9Smrg version 2.2 of Bison. */ 32fd7d9bd3Smrg 33350952b9Smrg/* C LALR(1) parser skeleton written by Richard Stallman, by 34350952b9Smrg simplifying the original so-called "semantic" parser. */ 35fd7d9bd3Smrg 36fd7d9bd3Smrg/* All symbols defined below should begin with yy or YY, to avoid 37fd7d9bd3Smrg infringing on user name space. This should be done even for local 38fd7d9bd3Smrg variables, as they might otherwise be expanded by user macros. 39fd7d9bd3Smrg There are some unavoidable exceptions within include files to 40fd7d9bd3Smrg define necessary library symbols; they are noted "INFRINGES ON 41fd7d9bd3Smrg USER NAME SPACE" below. */ 42fd7d9bd3Smrg 43fd7d9bd3Smrg/* Identify Bison output. */ 44fd7d9bd3Smrg#define YYBISON 1 45fd7d9bd3Smrg 46350952b9Smrg/* Bison version. */ 47e53c48bfSmrg#define YYBISON_VERSION "3.0.4" 48350952b9Smrg 49fd7d9bd3Smrg/* Skeleton name. */ 50fd7d9bd3Smrg#define YYSKELETON_NAME "yacc.c" 51fd7d9bd3Smrg 52fd7d9bd3Smrg/* Pure parsers. */ 53fd7d9bd3Smrg#define YYPURE 0 54fd7d9bd3Smrg 55e53c48bfSmrg/* Push parsers. */ 56e53c48bfSmrg#define YYPUSH 0 57fd7d9bd3Smrg 58e53c48bfSmrg/* Pull parsers. */ 59e53c48bfSmrg#define YYPULL 1 60fd7d9bd3Smrg 61fd7d9bd3Smrg 62e53c48bfSmrg 63e53c48bfSmrg 64e53c48bfSmrg/* Copy the first part of user declarations. */ 65e53c48bfSmrg#line 5 "gram.y" /* yacc.c:339 */ 66e53c48bfSmrg 67e53c48bfSmrg#define YYDEBUG 1 68e53c48bfSmrg 69e53c48bfSmrg#include <stdio.h> 70e53c48bfSmrg#include <X11/X.h> 71e53c48bfSmrg#include <X11/Intrinsic.h> 72e53c48bfSmrg#include "xgc.h" 73e53c48bfSmrg 74e53c48bfSmrgextern int yylineno; 75e53c48bfSmrg 76e53c48bfSmrg 77e53c48bfSmrg#line 78 "gram.c" /* yacc.c:339 */ 78e53c48bfSmrg 79e53c48bfSmrg# ifndef YY_NULLPTR 80e53c48bfSmrg# if defined __cplusplus && 201103L <= __cplusplus 81e53c48bfSmrg# define YY_NULLPTR nullptr 82e53c48bfSmrg# else 83e53c48bfSmrg# define YY_NULLPTR 0 84e53c48bfSmrg# endif 85e53c48bfSmrg# endif 86e53c48bfSmrg 87e53c48bfSmrg/* Enabling verbose error messages. */ 88e53c48bfSmrg#ifdef YYERROR_VERBOSE 89e53c48bfSmrg# undef YYERROR_VERBOSE 90e53c48bfSmrg# define YYERROR_VERBOSE 1 91e53c48bfSmrg#else 92e53c48bfSmrg# define YYERROR_VERBOSE 0 93e53c48bfSmrg#endif 94e53c48bfSmrg 95e53c48bfSmrg/* In a future release of Bison, this section will be replaced 96e53c48bfSmrg by #include "y.tab.h". */ 97e53c48bfSmrg#ifndef YY_YY_GRAM_H_INCLUDED 98e53c48bfSmrg# define YY_YY_GRAM_H_INCLUDED 99e53c48bfSmrg/* Debug traces. */ 100e53c48bfSmrg#ifndef YYDEBUG 101e53c48bfSmrg# define YYDEBUG 0 102e53c48bfSmrg#endif 103e53c48bfSmrg#if YYDEBUG 104e53c48bfSmrgextern int yydebug; 105e53c48bfSmrg#endif 106e53c48bfSmrg 107e53c48bfSmrg/* Token type. */ 108fd7d9bd3Smrg#ifndef YYTOKENTYPE 109fd7d9bd3Smrg# define YYTOKENTYPE 110e53c48bfSmrg enum yytokentype 111e53c48bfSmrg { 112e53c48bfSmrg STRING = 258, 113e53c48bfSmrg NUMBER = 259, 114e53c48bfSmrg RUN = 260, 115e53c48bfSmrg FUNCTION = 261, 116e53c48bfSmrg FUNCTIONTYPE = 262, 117e53c48bfSmrg TEST = 263, 118e53c48bfSmrg TESTTYPE = 264, 119e53c48bfSmrg LINESTYLE = 265, 120e53c48bfSmrg LINESTYLETYPE = 266, 121e53c48bfSmrg CAPSTYLE = 267, 122e53c48bfSmrg CAPSTYLETYPE = 268, 123e53c48bfSmrg JOINSTYLE = 269, 124e53c48bfSmrg JOINSTYLETYPE = 270, 125e53c48bfSmrg ROUND = 271, 126e53c48bfSmrg SOLID = 272, 127e53c48bfSmrg FILLSTYLE = 273, 128e53c48bfSmrg FILLSTYLETYPE = 274, 129e53c48bfSmrg FILLRULE = 275, 130e53c48bfSmrg FILLRULETYPE = 276, 131e53c48bfSmrg ARCMODE = 277, 132e53c48bfSmrg ARCMODETYPE = 278, 133e53c48bfSmrg FOREGROUND = 279, 134e53c48bfSmrg BACKGROUND = 280, 135e53c48bfSmrg LINEWIDTH = 281, 136e53c48bfSmrg PLANEMASK = 282, 137e53c48bfSmrg DASHLIST = 283, 138e53c48bfSmrg PERCENT = 284, 139e53c48bfSmrg FONT = 285 140e53c48bfSmrg }; 141fd7d9bd3Smrg#endif 142350952b9Smrg/* Tokens. */ 143fd7d9bd3Smrg#define STRING 258 144fd7d9bd3Smrg#define NUMBER 259 145fd7d9bd3Smrg#define RUN 260 146fd7d9bd3Smrg#define FUNCTION 261 147fd7d9bd3Smrg#define FUNCTIONTYPE 262 148fd7d9bd3Smrg#define TEST 263 149fd7d9bd3Smrg#define TESTTYPE 264 150fd7d9bd3Smrg#define LINESTYLE 265 151fd7d9bd3Smrg#define LINESTYLETYPE 266 152fd7d9bd3Smrg#define CAPSTYLE 267 153fd7d9bd3Smrg#define CAPSTYLETYPE 268 154fd7d9bd3Smrg#define JOINSTYLE 269 155fd7d9bd3Smrg#define JOINSTYLETYPE 270 156fd7d9bd3Smrg#define ROUND 271 157fd7d9bd3Smrg#define SOLID 272 158fd7d9bd3Smrg#define FILLSTYLE 273 159fd7d9bd3Smrg#define FILLSTYLETYPE 274 160fd7d9bd3Smrg#define FILLRULE 275 161fd7d9bd3Smrg#define FILLRULETYPE 276 162fd7d9bd3Smrg#define ARCMODE 277 163fd7d9bd3Smrg#define ARCMODETYPE 278 164fd7d9bd3Smrg#define FOREGROUND 279 165fd7d9bd3Smrg#define BACKGROUND 280 166fd7d9bd3Smrg#define LINEWIDTH 281 167fd7d9bd3Smrg#define PLANEMASK 282 168fd7d9bd3Smrg#define DASHLIST 283 169fd7d9bd3Smrg#define PERCENT 284 170fd7d9bd3Smrg#define FONT 285 171fd7d9bd3Smrg 172e53c48bfSmrg/* Value type. */ 173e53c48bfSmrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 174fd7d9bd3Smrg 175e53c48bfSmrgunion YYSTYPE 176e53c48bfSmrg{ 177e53c48bfSmrg#line 18 "gram.y" /* yacc.c:355 */ 178fd7d9bd3Smrg 179e53c48bfSmrg int num; 180e53c48bfSmrg char *ptr; 181fd7d9bd3Smrg 182e53c48bfSmrg#line 183 "gram.c" /* yacc.c:355 */ 183e53c48bfSmrg}; 184fd7d9bd3Smrg 185e53c48bfSmrgtypedef union YYSTYPE YYSTYPE; 186e53c48bfSmrg# define YYSTYPE_IS_TRIVIAL 1 187e53c48bfSmrg# define YYSTYPE_IS_DECLARED 1 188fd7d9bd3Smrg#endif 189fd7d9bd3Smrg 190350952b9Smrg 191e53c48bfSmrgextern YYSTYPE yylval; 192fd7d9bd3Smrg 193e53c48bfSmrgint yyparse (void); 194fd7d9bd3Smrg 195e53c48bfSmrg#endif /* !YY_YY_GRAM_H_INCLUDED */ 196fd7d9bd3Smrg 197fd7d9bd3Smrg/* Copy the second part of user declarations. */ 198fd7d9bd3Smrg 199e53c48bfSmrg#line 200 "gram.c" /* yacc.c:358 */ 200fd7d9bd3Smrg 201350952b9Smrg#ifdef short 202350952b9Smrg# undef short 203350952b9Smrg#endif 204350952b9Smrg 205350952b9Smrg#ifdef YYTYPE_UINT8 206350952b9Smrgtypedef YYTYPE_UINT8 yytype_uint8; 207350952b9Smrg#else 208350952b9Smrgtypedef unsigned char yytype_uint8; 209350952b9Smrg#endif 210fd7d9bd3Smrg 211350952b9Smrg#ifdef YYTYPE_INT8 212350952b9Smrgtypedef YYTYPE_INT8 yytype_int8; 213350952b9Smrg#else 214e53c48bfSmrgtypedef signed char yytype_int8; 215350952b9Smrg#endif 216350952b9Smrg 217350952b9Smrg#ifdef YYTYPE_UINT16 218350952b9Smrgtypedef YYTYPE_UINT16 yytype_uint16; 219350952b9Smrg#else 220350952b9Smrgtypedef unsigned short int yytype_uint16; 221350952b9Smrg#endif 222350952b9Smrg 223350952b9Smrg#ifdef YYTYPE_INT16 224350952b9Smrgtypedef YYTYPE_INT16 yytype_int16; 225350952b9Smrg#else 226350952b9Smrgtypedef short int yytype_int16; 227350952b9Smrg#endif 228350952b9Smrg 229350952b9Smrg#ifndef YYSIZE_T 230350952b9Smrg# ifdef __SIZE_TYPE__ 231350952b9Smrg# define YYSIZE_T __SIZE_TYPE__ 232350952b9Smrg# elif defined size_t 233350952b9Smrg# define YYSIZE_T size_t 234e53c48bfSmrg# elif ! defined YYSIZE_T 235350952b9Smrg# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 236350952b9Smrg# define YYSIZE_T size_t 237350952b9Smrg# else 238350952b9Smrg# define YYSIZE_T unsigned int 239fd7d9bd3Smrg# endif 240350952b9Smrg#endif 241350952b9Smrg 242350952b9Smrg#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 243350952b9Smrg 244350952b9Smrg#ifndef YY_ 245e53c48bfSmrg# if defined YYENABLE_NLS && YYENABLE_NLS 246350952b9Smrg# if ENABLE_NLS 247350952b9Smrg# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 248e53c48bfSmrg# define YY_(Msgid) dgettext ("bison-runtime", Msgid) 249350952b9Smrg# endif 250350952b9Smrg# endif 251350952b9Smrg# ifndef YY_ 252e53c48bfSmrg# define YY_(Msgid) Msgid 253e53c48bfSmrg# endif 254e53c48bfSmrg#endif 255e53c48bfSmrg 256e53c48bfSmrg#ifndef YY_ATTRIBUTE 257e53c48bfSmrg# if (defined __GNUC__ \ 258e53c48bfSmrg && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 259e53c48bfSmrg || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 260e53c48bfSmrg# define YY_ATTRIBUTE(Spec) __attribute__(Spec) 261e53c48bfSmrg# else 262e53c48bfSmrg# define YY_ATTRIBUTE(Spec) /* empty */ 263e53c48bfSmrg# endif 264e53c48bfSmrg#endif 265e53c48bfSmrg 266e53c48bfSmrg#ifndef YY_ATTRIBUTE_PURE 267e53c48bfSmrg# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 268e53c48bfSmrg#endif 269e53c48bfSmrg 270e53c48bfSmrg#ifndef YY_ATTRIBUTE_UNUSED 271e53c48bfSmrg# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 272e53c48bfSmrg#endif 273e53c48bfSmrg 274e53c48bfSmrg#if !defined _Noreturn \ 275e53c48bfSmrg && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 276e53c48bfSmrg# if defined _MSC_VER && 1200 <= _MSC_VER 277e53c48bfSmrg# define _Noreturn __declspec (noreturn) 278e53c48bfSmrg# else 279e53c48bfSmrg# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 280fd7d9bd3Smrg# endif 281350952b9Smrg#endif 282350952b9Smrg 283350952b9Smrg/* Suppress unused-variable warnings by "using" E. */ 284350952b9Smrg#if ! defined lint || defined __GNUC__ 285e53c48bfSmrg# define YYUSE(E) ((void) (E)) 286350952b9Smrg#else 287e53c48bfSmrg# define YYUSE(E) /* empty */ 288350952b9Smrg#endif 289350952b9Smrg 290e53c48bfSmrg#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 291e53c48bfSmrg/* Suppress an incorrect diagnostic about yylval being uninitialized. */ 292e53c48bfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 293e53c48bfSmrg _Pragma ("GCC diagnostic push") \ 294e53c48bfSmrg _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 295e53c48bfSmrg _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 296e53c48bfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 297e53c48bfSmrg _Pragma ("GCC diagnostic pop") 298350952b9Smrg#else 299e53c48bfSmrg# define YY_INITIAL_VALUE(Value) Value 300350952b9Smrg#endif 301e53c48bfSmrg#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 302e53c48bfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 303e53c48bfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END 304350952b9Smrg#endif 305e53c48bfSmrg#ifndef YY_INITIAL_VALUE 306e53c48bfSmrg# define YY_INITIAL_VALUE(Value) /* Nothing. */ 307e53c48bfSmrg#endif 308e53c48bfSmrg 309350952b9Smrg 310350952b9Smrg#if ! defined yyoverflow || YYERROR_VERBOSE 311fd7d9bd3Smrg 312fd7d9bd3Smrg/* The parser invokes alloca or malloc; define the necessary symbols. */ 313fd7d9bd3Smrg 314fd7d9bd3Smrg# ifdef YYSTACK_USE_ALLOCA 315fd7d9bd3Smrg# if YYSTACK_USE_ALLOCA 316fd7d9bd3Smrg# ifdef __GNUC__ 317fd7d9bd3Smrg# define YYSTACK_ALLOC __builtin_alloca 318350952b9Smrg# elif defined __BUILTIN_VA_ARG_INCR 319350952b9Smrg# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 320350952b9Smrg# elif defined _AIX 321350952b9Smrg# define YYSTACK_ALLOC __alloca 322350952b9Smrg# elif defined _MSC_VER 323350952b9Smrg# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 324350952b9Smrg# define alloca _alloca 325350952b9Smrg# else 326350952b9Smrg# define YYSTACK_ALLOC alloca 327e53c48bfSmrg# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 328350952b9Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 329e53c48bfSmrg /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 330e53c48bfSmrg# ifndef EXIT_SUCCESS 331e53c48bfSmrg# define EXIT_SUCCESS 0 332350952b9Smrg# endif 333350952b9Smrg# endif 334fd7d9bd3Smrg# endif 335fd7d9bd3Smrg# endif 336fd7d9bd3Smrg# endif 337fd7d9bd3Smrg 338fd7d9bd3Smrg# ifdef YYSTACK_ALLOC 339e53c48bfSmrg /* Pacify GCC's 'empty if-body' warning. */ 340e53c48bfSmrg# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 341350952b9Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 342350952b9Smrg /* The OS might guarantee only one guard page at the bottom of the stack, 343350952b9Smrg and a page size can be as small as 4096 bytes. So we cannot safely 344350952b9Smrg invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 345350952b9Smrg to allow for a few compiler-allocated temporary stack slots. */ 346350952b9Smrg# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 347fd7d9bd3Smrg# endif 348350952b9Smrg# else 349fd7d9bd3Smrg# define YYSTACK_ALLOC YYMALLOC 350fd7d9bd3Smrg# define YYSTACK_FREE YYFREE 351350952b9Smrg# ifndef YYSTACK_ALLOC_MAXIMUM 352350952b9Smrg# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 353350952b9Smrg# endif 354e53c48bfSmrg# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 355350952b9Smrg && ! ((defined YYMALLOC || defined malloc) \ 356e53c48bfSmrg && (defined YYFREE || defined free))) 357350952b9Smrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 358e53c48bfSmrg# ifndef EXIT_SUCCESS 359e53c48bfSmrg# define EXIT_SUCCESS 0 360350952b9Smrg# endif 361350952b9Smrg# endif 362350952b9Smrg# ifndef YYMALLOC 363350952b9Smrg# define YYMALLOC malloc 364e53c48bfSmrg# if ! defined malloc && ! defined EXIT_SUCCESS 365350952b9Smrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 366350952b9Smrg# endif 367350952b9Smrg# endif 368350952b9Smrg# ifndef YYFREE 369350952b9Smrg# define YYFREE free 370e53c48bfSmrg# if ! defined free && ! defined EXIT_SUCCESS 371350952b9Smrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 372350952b9Smrg# endif 373350952b9Smrg# endif 374fd7d9bd3Smrg# endif 375350952b9Smrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 376fd7d9bd3Smrg 377fd7d9bd3Smrg 378350952b9Smrg#if (! defined yyoverflow \ 379350952b9Smrg && (! defined __cplusplus \ 380e53c48bfSmrg || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 381fd7d9bd3Smrg 382fd7d9bd3Smrg/* A type that is properly aligned for any stack member. */ 383fd7d9bd3Smrgunion yyalloc 384fd7d9bd3Smrg{ 385e53c48bfSmrg yytype_int16 yyss_alloc; 386e53c48bfSmrg YYSTYPE yyvs_alloc; 387e53c48bfSmrg}; 388fd7d9bd3Smrg 389fd7d9bd3Smrg/* The size of the maximum gap between one aligned stack and the next. */ 390fd7d9bd3Smrg# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 391fd7d9bd3Smrg 392fd7d9bd3Smrg/* The size of an array large to enough to hold all stacks, each with 393fd7d9bd3Smrg N elements. */ 394fd7d9bd3Smrg# define YYSTACK_BYTES(N) \ 395350952b9Smrg ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 396fd7d9bd3Smrg + YYSTACK_GAP_MAXIMUM) 397fd7d9bd3Smrg 398e53c48bfSmrg# define YYCOPY_NEEDED 1 399fd7d9bd3Smrg 400fd7d9bd3Smrg/* Relocate STACK from its old location to the new one. The 401fd7d9bd3Smrg local variables YYSIZE and YYSTACKSIZE give the old and new number of 402fd7d9bd3Smrg elements in the stack, and YYPTR gives the new location of the 403fd7d9bd3Smrg stack. Advance YYPTR to a properly aligned location for the next 404fd7d9bd3Smrg stack. */ 405e53c48bfSmrg# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 406e53c48bfSmrg do \ 407e53c48bfSmrg { \ 408e53c48bfSmrg YYSIZE_T yynewbytes; \ 409e53c48bfSmrg YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 410e53c48bfSmrg Stack = &yyptr->Stack_alloc; \ 411e53c48bfSmrg yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 412e53c48bfSmrg yyptr += yynewbytes / sizeof (*yyptr); \ 413e53c48bfSmrg } \ 414e53c48bfSmrg while (0) 415fd7d9bd3Smrg 416fd7d9bd3Smrg#endif 417fd7d9bd3Smrg 418e53c48bfSmrg#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 419e53c48bfSmrg/* Copy COUNT objects from SRC to DST. The source and destination do 420e53c48bfSmrg not overlap. */ 421e53c48bfSmrg# ifndef YYCOPY 422e53c48bfSmrg# if defined __GNUC__ && 1 < __GNUC__ 423e53c48bfSmrg# define YYCOPY(Dst, Src, Count) \ 424e53c48bfSmrg __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 425e53c48bfSmrg# else 426e53c48bfSmrg# define YYCOPY(Dst, Src, Count) \ 427e53c48bfSmrg do \ 428e53c48bfSmrg { \ 429e53c48bfSmrg YYSIZE_T yyi; \ 430e53c48bfSmrg for (yyi = 0; yyi < (Count); yyi++) \ 431e53c48bfSmrg (Dst)[yyi] = (Src)[yyi]; \ 432e53c48bfSmrg } \ 433e53c48bfSmrg while (0) 434e53c48bfSmrg# endif 435e53c48bfSmrg# endif 436e53c48bfSmrg#endif /* !YYCOPY_NEEDED */ 437e53c48bfSmrg 438350952b9Smrg/* YYFINAL -- State number of the termination state. */ 439fd7d9bd3Smrg#define YYFINAL 3 440fd7d9bd3Smrg/* YYLAST -- Last index in YYTABLE. */ 441fd7d9bd3Smrg#define YYLAST 40 442fd7d9bd3Smrg 443350952b9Smrg/* YYNTOKENS -- Number of terminals. */ 444fd7d9bd3Smrg#define YYNTOKENS 32 445350952b9Smrg/* YYNNTS -- Number of nonterminals. */ 446fd7d9bd3Smrg#define YYNNTS 4 447350952b9Smrg/* YYNRULES -- Number of rules. */ 448fd7d9bd3Smrg#define YYNRULES 26 449e53c48bfSmrg/* YYNSTATES -- Number of states. */ 450fd7d9bd3Smrg#define YYNSTATES 43 451fd7d9bd3Smrg 452e53c48bfSmrg/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 453e53c48bfSmrg by yylex, with out-of-bounds checking. */ 454fd7d9bd3Smrg#define YYUNDEFTOK 2 455fd7d9bd3Smrg#define YYMAXUTOK 285 456fd7d9bd3Smrg 457e53c48bfSmrg#define YYTRANSLATE(YYX) \ 458fd7d9bd3Smrg ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 459fd7d9bd3Smrg 460e53c48bfSmrg/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 461e53c48bfSmrg as returned by yylex, without out-of-bounds checking. */ 462350952b9Smrgstatic const yytype_uint8 yytranslate[] = 463fd7d9bd3Smrg{ 464fd7d9bd3Smrg 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 465fd7d9bd3Smrg 31, 2, 2, 2, 2, 2, 2, 2, 2, 2, 466fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 467fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 468fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 469fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 470fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 471fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 472fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 473fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 474fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 475fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 476fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 477fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 478fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 479fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 480fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 481fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 482fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 483fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 484fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 485fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 486fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 487fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 488fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 489fd7d9bd3Smrg 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 490fd7d9bd3Smrg 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 491fd7d9bd3Smrg 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 492fd7d9bd3Smrg 25, 26, 27, 28, 29, 30 493fd7d9bd3Smrg}; 494fd7d9bd3Smrg 495fd7d9bd3Smrg#if YYDEBUG 496e53c48bfSmrg /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 497350952b9Smrgstatic const yytype_uint8 yyrline[] = 498fd7d9bd3Smrg{ 4999aa2a2b5Smrg 0, 40, 40, 43, 44, 45, 48, 49, 51, 53, 5009aa2a2b5Smrg 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 5019aa2a2b5Smrg 75, 77, 79, 81, 83, 85, 87 502fd7d9bd3Smrg}; 503fd7d9bd3Smrg#endif 504fd7d9bd3Smrg 505e53c48bfSmrg#if YYDEBUG || YYERROR_VERBOSE || 0 506350952b9Smrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 507350952b9Smrg First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 508fd7d9bd3Smrgstatic const char *const yytname[] = 509fd7d9bd3Smrg{ 510fd7d9bd3Smrg "$end", "error", "$undefined", "STRING", "NUMBER", "RUN", "FUNCTION", 511fd7d9bd3Smrg "FUNCTIONTYPE", "TEST", "TESTTYPE", "LINESTYLE", "LINESTYLETYPE", 512fd7d9bd3Smrg "CAPSTYLE", "CAPSTYLETYPE", "JOINSTYLE", "JOINSTYLETYPE", "ROUND", 513fd7d9bd3Smrg "SOLID", "FILLSTYLE", "FILLSTYLETYPE", "FILLRULE", "FILLRULETYPE", 514fd7d9bd3Smrg "ARCMODE", "ARCMODETYPE", "FOREGROUND", "BACKGROUND", "LINEWIDTH", 515fd7d9bd3Smrg "PLANEMASK", "DASHLIST", "PERCENT", "FONT", "'\\n'", "$accept", "all", 516e53c48bfSmrg "stmts", "stmt", YY_NULLPTR 517fd7d9bd3Smrg}; 518fd7d9bd3Smrg#endif 519fd7d9bd3Smrg 520fd7d9bd3Smrg# ifdef YYPRINT 521e53c48bfSmrg/* YYTOKNUM[NUM] -- (External) token number corresponding to the 522e53c48bfSmrg (internal) symbol number NUM (which must be that of a token). */ 523350952b9Smrgstatic const yytype_uint16 yytoknum[] = 524fd7d9bd3Smrg{ 525fd7d9bd3Smrg 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 526fd7d9bd3Smrg 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 527fd7d9bd3Smrg 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 528fd7d9bd3Smrg 285, 10 529fd7d9bd3Smrg}; 530fd7d9bd3Smrg# endif 531fd7d9bd3Smrg 532e53c48bfSmrg#define YYPACT_NINF -10 533fd7d9bd3Smrg 534e53c48bfSmrg#define yypact_value_is_default(Yystate) \ 535e53c48bfSmrg (!!((Yystate) == (-10))) 536e53c48bfSmrg 537e53c48bfSmrg#define YYTABLE_NINF -3 538e53c48bfSmrg 539e53c48bfSmrg#define yytable_value_is_error(Yytable_value) \ 540e53c48bfSmrg 0 541e53c48bfSmrg 542e53c48bfSmrg /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 543e53c48bfSmrg STATE-NUM. */ 544e53c48bfSmrgstatic const yytype_int8 yypact[] = 545fd7d9bd3Smrg{ 546e53c48bfSmrg -10, 2, 0, -10, -10, -10, 8, 10, -8, -9, 547e53c48bfSmrg 1, -6, 11, -2, 19, 29, 30, 31, 32, 33, 548e53c48bfSmrg 35, -10, 9, -10, -10, -10, -10, -10, -10, -10, 549e53c48bfSmrg -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 550e53c48bfSmrg -10, -10, -10 551fd7d9bd3Smrg}; 552fd7d9bd3Smrg 553e53c48bfSmrg /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 554e53c48bfSmrg Performed when YYTABLE does not specify something else to do. Zero 555e53c48bfSmrg means the default is an error. */ 556350952b9Smrgstatic const yytype_uint8 yydefact[] = 557fd7d9bd3Smrg{ 558fd7d9bd3Smrg 3, 0, 0, 1, 6, 7, 0, 0, 0, 0, 559fd7d9bd3Smrg 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560fd7d9bd3Smrg 0, 4, 0, 9, 8, 10, 11, 12, 13, 14, 561fd7d9bd3Smrg 15, 17, 16, 18, 19, 20, 21, 22, 23, 24, 562fd7d9bd3Smrg 26, 25, 5 563fd7d9bd3Smrg}; 564fd7d9bd3Smrg 565e53c48bfSmrg /* YYPGOTO[NTERM-NUM]. */ 566e53c48bfSmrgstatic const yytype_int8 yypgoto[] = 567fd7d9bd3Smrg{ 568e53c48bfSmrg -10, -10, -10, -10 569fd7d9bd3Smrg}; 570fd7d9bd3Smrg 571e53c48bfSmrg /* YYDEFGOTO[NTERM-NUM]. */ 572e53c48bfSmrgstatic const yytype_int8 yydefgoto[] = 573fd7d9bd3Smrg{ 574e53c48bfSmrg -1, 1, 2, 22 575fd7d9bd3Smrg}; 576fd7d9bd3Smrg 577e53c48bfSmrg /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 578e53c48bfSmrg positive, shift that token. If negative, reduce the rule whose 579e53c48bfSmrg number is the opposite. If YYTABLE_NINF, syntax error. */ 580350952b9Smrgstatic const yytype_int8 yytable[] = 581fd7d9bd3Smrg{ 582fd7d9bd3Smrg -2, 4, 3, 25, 27, 5, 6, 28, 7, 26, 583fd7d9bd3Smrg 8, 31, 9, 32, 10, 23, 29, 30, 11, 24, 584fd7d9bd3Smrg 12, 34, 13, 35, 14, 15, 16, 17, 18, 19, 585fd7d9bd3Smrg 20, 21, 33, 36, 37, 38, 39, 40, 41, 0, 586fd7d9bd3Smrg 42 587fd7d9bd3Smrg}; 588fd7d9bd3Smrg 589350952b9Smrgstatic const yytype_int8 yycheck[] = 590fd7d9bd3Smrg{ 591fd7d9bd3Smrg 0, 1, 0, 11, 13, 5, 6, 16, 8, 17, 592fd7d9bd3Smrg 10, 17, 12, 19, 14, 7, 15, 16, 18, 9, 593fd7d9bd3Smrg 20, 23, 22, 4, 24, 25, 26, 27, 28, 29, 594fd7d9bd3Smrg 30, 31, 21, 4, 4, 4, 4, 4, 3, -1, 595fd7d9bd3Smrg 31 596fd7d9bd3Smrg}; 597fd7d9bd3Smrg 598e53c48bfSmrg /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 599e53c48bfSmrg symbol of state STATE-NUM. */ 600350952b9Smrgstatic const yytype_uint8 yystos[] = 601fd7d9bd3Smrg{ 602fd7d9bd3Smrg 0, 33, 34, 0, 1, 5, 6, 8, 10, 12, 603fd7d9bd3Smrg 14, 18, 20, 22, 24, 25, 26, 27, 28, 29, 604fd7d9bd3Smrg 30, 31, 35, 7, 9, 11, 17, 13, 16, 15, 605fd7d9bd3Smrg 16, 17, 19, 21, 23, 4, 4, 4, 4, 4, 606fd7d9bd3Smrg 4, 3, 31 607fd7d9bd3Smrg}; 608fd7d9bd3Smrg 609e53c48bfSmrg /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 610e53c48bfSmrgstatic const yytype_uint8 yyr1[] = 611e53c48bfSmrg{ 612e53c48bfSmrg 0, 32, 33, 34, 34, 34, 35, 35, 35, 35, 613e53c48bfSmrg 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 614e53c48bfSmrg 35, 35, 35, 35, 35, 35, 35 615e53c48bfSmrg}; 616e53c48bfSmrg 617e53c48bfSmrg /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 618e53c48bfSmrgstatic const yytype_uint8 yyr2[] = 619e53c48bfSmrg{ 620e53c48bfSmrg 0, 2, 1, 0, 2, 3, 1, 1, 2, 2, 621e53c48bfSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 622e53c48bfSmrg 2, 2, 2, 2, 2, 2, 2 623e53c48bfSmrg}; 624fd7d9bd3Smrg 625fd7d9bd3Smrg 626e53c48bfSmrg#define yyerrok (yyerrstatus = 0) 627e53c48bfSmrg#define yyclearin (yychar = YYEMPTY) 628e53c48bfSmrg#define YYEMPTY (-2) 629e53c48bfSmrg#define YYEOF 0 630fd7d9bd3Smrg 631e53c48bfSmrg#define YYACCEPT goto yyacceptlab 632e53c48bfSmrg#define YYABORT goto yyabortlab 633e53c48bfSmrg#define YYERROR goto yyerrorlab 634fd7d9bd3Smrg 635fd7d9bd3Smrg 636fd7d9bd3Smrg#define YYRECOVERING() (!!yyerrstatus) 637fd7d9bd3Smrg 638e53c48bfSmrg#define YYBACKUP(Token, Value) \ 639e53c48bfSmrgdo \ 640e53c48bfSmrg if (yychar == YYEMPTY) \ 641e53c48bfSmrg { \ 642e53c48bfSmrg yychar = (Token); \ 643e53c48bfSmrg yylval = (Value); \ 644e53c48bfSmrg YYPOPSTACK (yylen); \ 645e53c48bfSmrg yystate = *yyssp; \ 646e53c48bfSmrg goto yybackup; \ 647e53c48bfSmrg } \ 648e53c48bfSmrg else \ 649e53c48bfSmrg { \ 650350952b9Smrg yyerror (YY_("syntax error: cannot back up")); \ 651e53c48bfSmrg YYERROR; \ 652e53c48bfSmrg } \ 653e53c48bfSmrgwhile (0) 654350952b9Smrg 655e53c48bfSmrg/* Error token number */ 656e53c48bfSmrg#define YYTERROR 1 657e53c48bfSmrg#define YYERRCODE 256 658fd7d9bd3Smrg 659350952b9Smrg 660fd7d9bd3Smrg 661fd7d9bd3Smrg/* Enable debugging if requested. */ 662fd7d9bd3Smrg#if YYDEBUG 663fd7d9bd3Smrg 664fd7d9bd3Smrg# ifndef YYFPRINTF 665fd7d9bd3Smrg# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 666fd7d9bd3Smrg# define YYFPRINTF fprintf 667fd7d9bd3Smrg# endif 668fd7d9bd3Smrg 669e53c48bfSmrg# define YYDPRINTF(Args) \ 670e53c48bfSmrgdo { \ 671e53c48bfSmrg if (yydebug) \ 672e53c48bfSmrg YYFPRINTF Args; \ 673e53c48bfSmrg} while (0) 674fd7d9bd3Smrg 675e53c48bfSmrg/* This macro is provided for backward compatibility. */ 676e53c48bfSmrg#ifndef YY_LOCATION_PRINT 677e53c48bfSmrg# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 678e53c48bfSmrg#endif 679fd7d9bd3Smrg 680350952b9Smrg 681e53c48bfSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 682e53c48bfSmrgdo { \ 683e53c48bfSmrg if (yydebug) \ 684e53c48bfSmrg { \ 685e53c48bfSmrg YYFPRINTF (stderr, "%s ", Title); \ 686e53c48bfSmrg yy_symbol_print (stderr, \ 687e53c48bfSmrg Type, Value); \ 688e53c48bfSmrg YYFPRINTF (stderr, "\n"); \ 689e53c48bfSmrg } \ 690e53c48bfSmrg} while (0) 691e53c48bfSmrg 692e53c48bfSmrg 693e53c48bfSmrg/*----------------------------------------. 694e53c48bfSmrg| Print this symbol's value on YYOUTPUT. | 695e53c48bfSmrg`----------------------------------------*/ 696350952b9Smrg 697350952b9Smrgstatic void 698350952b9Smrgyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 699350952b9Smrg{ 700e53c48bfSmrg FILE *yyo = yyoutput; 701e53c48bfSmrg YYUSE (yyo); 702350952b9Smrg if (!yyvaluep) 703350952b9Smrg return; 704350952b9Smrg# ifdef YYPRINT 705350952b9Smrg if (yytype < YYNTOKENS) 706350952b9Smrg YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 707350952b9Smrg# endif 708e53c48bfSmrg YYUSE (yytype); 709350952b9Smrg} 710350952b9Smrg 711350952b9Smrg 712350952b9Smrg/*--------------------------------. 713350952b9Smrg| Print this symbol on YYOUTPUT. | 714350952b9Smrg`--------------------------------*/ 715350952b9Smrg 716350952b9Smrgstatic void 717350952b9Smrgyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 718350952b9Smrg{ 719e53c48bfSmrg YYFPRINTF (yyoutput, "%s %s (", 720e53c48bfSmrg yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 721350952b9Smrg 722350952b9Smrg yy_symbol_value_print (yyoutput, yytype, yyvaluep); 723350952b9Smrg YYFPRINTF (yyoutput, ")"); 724350952b9Smrg} 725fd7d9bd3Smrg 726fd7d9bd3Smrg/*------------------------------------------------------------------. 727fd7d9bd3Smrg| yy_stack_print -- Print the state stack from its BOTTOM up to its | 728fd7d9bd3Smrg| TOP (included). | 729fd7d9bd3Smrg`------------------------------------------------------------------*/ 730fd7d9bd3Smrg 731fd7d9bd3Smrgstatic void 732e53c48bfSmrgyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 733fd7d9bd3Smrg{ 734fd7d9bd3Smrg YYFPRINTF (stderr, "Stack now"); 735e53c48bfSmrg for (; yybottom <= yytop; yybottom++) 736e53c48bfSmrg { 737e53c48bfSmrg int yybot = *yybottom; 738e53c48bfSmrg YYFPRINTF (stderr, " %d", yybot); 739e53c48bfSmrg } 740fd7d9bd3Smrg YYFPRINTF (stderr, "\n"); 741fd7d9bd3Smrg} 742fd7d9bd3Smrg 743e53c48bfSmrg# define YY_STACK_PRINT(Bottom, Top) \ 744e53c48bfSmrgdo { \ 745e53c48bfSmrg if (yydebug) \ 746e53c48bfSmrg yy_stack_print ((Bottom), (Top)); \ 747e53c48bfSmrg} while (0) 748fd7d9bd3Smrg 749fd7d9bd3Smrg 750fd7d9bd3Smrg/*------------------------------------------------. 751fd7d9bd3Smrg| Report that the YYRULE is going to be reduced. | 752fd7d9bd3Smrg`------------------------------------------------*/ 753fd7d9bd3Smrg 754fd7d9bd3Smrgstatic void 755e53c48bfSmrgyy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 756fd7d9bd3Smrg{ 757e53c48bfSmrg unsigned long int yylno = yyrline[yyrule]; 758350952b9Smrg int yynrhs = yyr2[yyrule]; 759fd7d9bd3Smrg int yyi; 760350952b9Smrg YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 761e53c48bfSmrg yyrule - 1, yylno); 762350952b9Smrg /* The symbols being reduced. */ 763350952b9Smrg for (yyi = 0; yyi < yynrhs; yyi++) 764350952b9Smrg { 765e53c48bfSmrg YYFPRINTF (stderr, " $%d = ", yyi + 1); 766e53c48bfSmrg yy_symbol_print (stderr, 767e53c48bfSmrg yystos[yyssp[yyi + 1 - yynrhs]], 768e53c48bfSmrg &(yyvsp[(yyi + 1) - (yynrhs)]) 769e53c48bfSmrg ); 770e53c48bfSmrg YYFPRINTF (stderr, "\n"); 771350952b9Smrg } 772fd7d9bd3Smrg} 773fd7d9bd3Smrg 774e53c48bfSmrg# define YY_REDUCE_PRINT(Rule) \ 775e53c48bfSmrgdo { \ 776e53c48bfSmrg if (yydebug) \ 777e53c48bfSmrg yy_reduce_print (yyssp, yyvsp, Rule); \ 778e53c48bfSmrg} while (0) 779fd7d9bd3Smrg 780fd7d9bd3Smrg/* Nonzero means print parse trace. It is left uninitialized so that 781fd7d9bd3Smrg multiple parsers can coexist. */ 782fd7d9bd3Smrgint yydebug; 783fd7d9bd3Smrg#else /* !YYDEBUG */ 784fd7d9bd3Smrg# define YYDPRINTF(Args) 785350952b9Smrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 786fd7d9bd3Smrg# define YY_STACK_PRINT(Bottom, Top) 787fd7d9bd3Smrg# define YY_REDUCE_PRINT(Rule) 788fd7d9bd3Smrg#endif /* !YYDEBUG */ 789fd7d9bd3Smrg 790fd7d9bd3Smrg 791fd7d9bd3Smrg/* YYINITDEPTH -- initial size of the parser's stacks. */ 792e53c48bfSmrg#ifndef YYINITDEPTH 793fd7d9bd3Smrg# define YYINITDEPTH 200 794fd7d9bd3Smrg#endif 795fd7d9bd3Smrg 796fd7d9bd3Smrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 797fd7d9bd3Smrg if the built-in stack extension method is used). 798fd7d9bd3Smrg 799fd7d9bd3Smrg Do not make this value too large; the results are undefined if 800350952b9Smrg YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 801fd7d9bd3Smrg evaluated with infinite-precision integer arithmetic. */ 802fd7d9bd3Smrg 803fd7d9bd3Smrg#ifndef YYMAXDEPTH 804fd7d9bd3Smrg# define YYMAXDEPTH 10000 805fd7d9bd3Smrg#endif 806fd7d9bd3Smrg 807fd7d9bd3Smrg 808fd7d9bd3Smrg#if YYERROR_VERBOSE 809fd7d9bd3Smrg 810fd7d9bd3Smrg# ifndef yystrlen 811350952b9Smrg# if defined __GLIBC__ && defined _STRING_H 812fd7d9bd3Smrg# define yystrlen strlen 813fd7d9bd3Smrg# else 814fd7d9bd3Smrg/* Return the length of YYSTR. */ 815fd7d9bd3Smrgstatic YYSIZE_T 816fd7d9bd3Smrgyystrlen (const char *yystr) 817fd7d9bd3Smrg{ 818350952b9Smrg YYSIZE_T yylen; 819350952b9Smrg for (yylen = 0; yystr[yylen]; yylen++) 820fd7d9bd3Smrg continue; 821350952b9Smrg return yylen; 822fd7d9bd3Smrg} 823fd7d9bd3Smrg# endif 824fd7d9bd3Smrg# endif 825fd7d9bd3Smrg 826fd7d9bd3Smrg# ifndef yystpcpy 827350952b9Smrg# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 828fd7d9bd3Smrg# define yystpcpy stpcpy 829fd7d9bd3Smrg# else 830fd7d9bd3Smrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 831fd7d9bd3Smrg YYDEST. */ 832fd7d9bd3Smrgstatic char * 833fd7d9bd3Smrgyystpcpy (char *yydest, const char *yysrc) 834fd7d9bd3Smrg{ 835350952b9Smrg char *yyd = yydest; 836350952b9Smrg const char *yys = yysrc; 837fd7d9bd3Smrg 838fd7d9bd3Smrg while ((*yyd++ = *yys++) != '\0') 839fd7d9bd3Smrg continue; 840fd7d9bd3Smrg 841fd7d9bd3Smrg return yyd - 1; 842fd7d9bd3Smrg} 843fd7d9bd3Smrg# endif 844fd7d9bd3Smrg# endif 845fd7d9bd3Smrg 846350952b9Smrg# ifndef yytnamerr 847350952b9Smrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 848350952b9Smrg quotes and backslashes, so that it's suitable for yyerror. The 849350952b9Smrg heuristic is that double-quoting is unnecessary unless the string 850350952b9Smrg contains an apostrophe, a comma, or backslash (other than 851350952b9Smrg backslash-backslash). YYSTR is taken from yytname. If YYRES is 852350952b9Smrg null, do not copy; instead, return the length of what the result 853350952b9Smrg would have been. */ 854350952b9Smrgstatic YYSIZE_T 855350952b9Smrgyytnamerr (char *yyres, const char *yystr) 856350952b9Smrg{ 857350952b9Smrg if (*yystr == '"') 858350952b9Smrg { 859350952b9Smrg YYSIZE_T yyn = 0; 860350952b9Smrg char const *yyp = yystr; 861350952b9Smrg 862350952b9Smrg for (;;) 863e53c48bfSmrg switch (*++yyp) 864e53c48bfSmrg { 865e53c48bfSmrg case '\'': 866e53c48bfSmrg case ',': 867e53c48bfSmrg goto do_not_strip_quotes; 868e53c48bfSmrg 869e53c48bfSmrg case '\\': 870e53c48bfSmrg if (*++yyp != '\\') 871e53c48bfSmrg goto do_not_strip_quotes; 872e53c48bfSmrg /* Fall through. */ 873e53c48bfSmrg default: 874e53c48bfSmrg if (yyres) 875e53c48bfSmrg yyres[yyn] = *yyp; 876e53c48bfSmrg yyn++; 877e53c48bfSmrg break; 878e53c48bfSmrg 879e53c48bfSmrg case '"': 880e53c48bfSmrg if (yyres) 881e53c48bfSmrg yyres[yyn] = '\0'; 882e53c48bfSmrg return yyn; 883e53c48bfSmrg } 884350952b9Smrg do_not_strip_quotes: ; 885350952b9Smrg } 886fd7d9bd3Smrg 887350952b9Smrg if (! yyres) 888350952b9Smrg return yystrlen (yystr); 889fd7d9bd3Smrg 890350952b9Smrg return yystpcpy (yyres, yystr) - yyres; 891350952b9Smrg} 892350952b9Smrg# endif 893fd7d9bd3Smrg 894e53c48bfSmrg/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 895e53c48bfSmrg about the unexpected token YYTOKEN for the state stack whose top is 896e53c48bfSmrg YYSSP. 897e53c48bfSmrg 898e53c48bfSmrg Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 899e53c48bfSmrg not large enough to hold the message. In that case, also set 900e53c48bfSmrg *YYMSG_ALLOC to the required number of bytes. Return 2 if the 901e53c48bfSmrg required number of bytes is too large to store. */ 902e53c48bfSmrgstatic int 903e53c48bfSmrgyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 904e53c48bfSmrg yytype_int16 *yyssp, int yytoken) 905fd7d9bd3Smrg{ 906e53c48bfSmrg YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 907e53c48bfSmrg YYSIZE_T yysize = yysize0; 908e53c48bfSmrg enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 909e53c48bfSmrg /* Internationalized format string. */ 910e53c48bfSmrg const char *yyformat = YY_NULLPTR; 911e53c48bfSmrg /* Arguments of yyformat. */ 912e53c48bfSmrg char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 913e53c48bfSmrg /* Number of reported tokens (one for the "unexpected", one per 914e53c48bfSmrg "expected"). */ 915e53c48bfSmrg int yycount = 0; 916e53c48bfSmrg 917e53c48bfSmrg /* There are many possibilities here to consider: 918e53c48bfSmrg - If this state is a consistent state with a default action, then 919e53c48bfSmrg the only way this function was invoked is if the default action 920e53c48bfSmrg is an error action. In that case, don't check for expected 921e53c48bfSmrg tokens because there are none. 922e53c48bfSmrg - The only way there can be no lookahead present (in yychar) is if 923e53c48bfSmrg this state is a consistent state with a default action. Thus, 924e53c48bfSmrg detecting the absence of a lookahead is sufficient to determine 925e53c48bfSmrg that there is no unexpected or expected token to report. In that 926e53c48bfSmrg case, just report a simple "syntax error". 927e53c48bfSmrg - Don't assume there isn't a lookahead just because this state is a 928e53c48bfSmrg consistent state with a default action. There might have been a 929e53c48bfSmrg previous inconsistent state, consistent state with a non-default 930e53c48bfSmrg action, or user semantic action that manipulated yychar. 931e53c48bfSmrg - Of course, the expected token list depends on states to have 932e53c48bfSmrg correct lookahead information, and it depends on the parser not 933e53c48bfSmrg to perform extra reductions after fetching a lookahead from the 934e53c48bfSmrg scanner and before detecting a syntax error. Thus, state merging 935e53c48bfSmrg (from LALR or IELR) and default reductions corrupt the expected 936e53c48bfSmrg token list. However, the list is correct for canonical LR with 937e53c48bfSmrg one exception: it will still contain any token that will not be 938e53c48bfSmrg accepted due to an error action in a later state. 939e53c48bfSmrg */ 940e53c48bfSmrg if (yytoken != YYEMPTY) 941e53c48bfSmrg { 942e53c48bfSmrg int yyn = yypact[*yyssp]; 943e53c48bfSmrg yyarg[yycount++] = yytname[yytoken]; 944e53c48bfSmrg if (!yypact_value_is_default (yyn)) 945e53c48bfSmrg { 946e53c48bfSmrg /* Start YYX at -YYN if negative to avoid negative indexes in 947e53c48bfSmrg YYCHECK. In other words, skip the first -YYN actions for 948e53c48bfSmrg this state because they are default actions. */ 949e53c48bfSmrg int yyxbegin = yyn < 0 ? -yyn : 0; 950e53c48bfSmrg /* Stay within bounds of both yycheck and yytname. */ 951e53c48bfSmrg int yychecklim = YYLAST - yyn + 1; 952e53c48bfSmrg int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 953e53c48bfSmrg int yyx; 954e53c48bfSmrg 955e53c48bfSmrg for (yyx = yyxbegin; yyx < yyxend; ++yyx) 956e53c48bfSmrg if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 957e53c48bfSmrg && !yytable_value_is_error (yytable[yyx + yyn])) 958e53c48bfSmrg { 959e53c48bfSmrg if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 960e53c48bfSmrg { 961e53c48bfSmrg yycount = 1; 962e53c48bfSmrg yysize = yysize0; 963e53c48bfSmrg break; 964e53c48bfSmrg } 965e53c48bfSmrg yyarg[yycount++] = yytname[yyx]; 966e53c48bfSmrg { 967e53c48bfSmrg YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 968e53c48bfSmrg if (! (yysize <= yysize1 969e53c48bfSmrg && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 970e53c48bfSmrg return 2; 971e53c48bfSmrg yysize = yysize1; 972e53c48bfSmrg } 973e53c48bfSmrg } 974e53c48bfSmrg } 975e53c48bfSmrg } 976fd7d9bd3Smrg 977e53c48bfSmrg switch (yycount) 978fd7d9bd3Smrg { 979e53c48bfSmrg# define YYCASE_(N, S) \ 980e53c48bfSmrg case N: \ 981e53c48bfSmrg yyformat = S; \ 982e53c48bfSmrg break 983e53c48bfSmrg YYCASE_(0, YY_("syntax error")); 984e53c48bfSmrg YYCASE_(1, YY_("syntax error, unexpected %s")); 985e53c48bfSmrg YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 986e53c48bfSmrg YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 987e53c48bfSmrg YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 988e53c48bfSmrg YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 989e53c48bfSmrg# undef YYCASE_ 990e53c48bfSmrg } 991e53c48bfSmrg 992e53c48bfSmrg { 993e53c48bfSmrg YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 994e53c48bfSmrg if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 995e53c48bfSmrg return 2; 996e53c48bfSmrg yysize = yysize1; 997e53c48bfSmrg } 998e53c48bfSmrg 999e53c48bfSmrg if (*yymsg_alloc < yysize) 1000e53c48bfSmrg { 1001e53c48bfSmrg *yymsg_alloc = 2 * yysize; 1002e53c48bfSmrg if (! (yysize <= *yymsg_alloc 1003e53c48bfSmrg && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1004e53c48bfSmrg *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1005e53c48bfSmrg return 1; 1006fd7d9bd3Smrg } 1007e53c48bfSmrg 1008e53c48bfSmrg /* Avoid sprintf, as that infringes on the user's name space. 1009e53c48bfSmrg Don't have undefined behavior even if the translation 1010e53c48bfSmrg produced a string with the wrong number of "%s"s. */ 1011e53c48bfSmrg { 1012e53c48bfSmrg char *yyp = *yymsg; 1013e53c48bfSmrg int yyi = 0; 1014e53c48bfSmrg while ((*yyp = *yyformat) != '\0') 1015e53c48bfSmrg if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1016e53c48bfSmrg { 1017e53c48bfSmrg yyp += yytnamerr (yyp, yyarg[yyi++]); 1018e53c48bfSmrg yyformat += 2; 1019e53c48bfSmrg } 1020e53c48bfSmrg else 1021e53c48bfSmrg { 1022e53c48bfSmrg yyp++; 1023e53c48bfSmrg yyformat++; 1024e53c48bfSmrg } 1025e53c48bfSmrg } 1026e53c48bfSmrg return 0; 1027fd7d9bd3Smrg} 1028350952b9Smrg#endif /* YYERROR_VERBOSE */ 1029fd7d9bd3Smrg 1030fd7d9bd3Smrg/*-----------------------------------------------. 1031fd7d9bd3Smrg| Release the memory associated to this symbol. | 1032fd7d9bd3Smrg`-----------------------------------------------*/ 1033fd7d9bd3Smrg 1034fd7d9bd3Smrgstatic void 1035350952b9Smrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1036fd7d9bd3Smrg{ 1037350952b9Smrg YYUSE (yyvaluep); 1038350952b9Smrg if (!yymsg) 1039350952b9Smrg yymsg = "Deleting"; 1040350952b9Smrg YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1041fd7d9bd3Smrg 1042e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1043e53c48bfSmrg YYUSE (yytype); 1044e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 1045fd7d9bd3Smrg} 1046fd7d9bd3Smrg 1047fd7d9bd3Smrg 1048fd7d9bd3Smrg 1049fd7d9bd3Smrg 1050e53c48bfSmrg/* The lookahead symbol. */ 1051fd7d9bd3Smrgint yychar; 1052fd7d9bd3Smrg 1053e53c48bfSmrg/* The semantic value of the lookahead symbol. */ 1054fd7d9bd3SmrgYYSTYPE yylval; 1055fd7d9bd3Smrg/* Number of syntax errors so far. */ 1056fd7d9bd3Smrgint yynerrs; 1057fd7d9bd3Smrg 1058fd7d9bd3Smrg 1059fd7d9bd3Smrg/*----------. 1060fd7d9bd3Smrg| yyparse. | 1061fd7d9bd3Smrg`----------*/ 1062fd7d9bd3Smrg 1063fd7d9bd3Smrgint 1064fd7d9bd3Smrgyyparse (void) 1065fd7d9bd3Smrg{ 1066e53c48bfSmrg int yystate; 1067e53c48bfSmrg /* Number of tokens to shift before error messages enabled. */ 1068e53c48bfSmrg int yyerrstatus; 1069e53c48bfSmrg 1070e53c48bfSmrg /* The stacks and their tools: 1071e53c48bfSmrg 'yyss': related to states. 1072e53c48bfSmrg 'yyvs': related to semantic values. 1073e53c48bfSmrg 1074e53c48bfSmrg Refer to the stacks through separate pointers, to allow yyoverflow 1075e53c48bfSmrg to reallocate them elsewhere. */ 1076e53c48bfSmrg 1077e53c48bfSmrg /* The state stack. */ 1078e53c48bfSmrg yytype_int16 yyssa[YYINITDEPTH]; 1079e53c48bfSmrg yytype_int16 *yyss; 1080e53c48bfSmrg yytype_int16 *yyssp; 1081e53c48bfSmrg 1082e53c48bfSmrg /* The semantic value stack. */ 1083e53c48bfSmrg YYSTYPE yyvsa[YYINITDEPTH]; 1084e53c48bfSmrg YYSTYPE *yyvs; 1085e53c48bfSmrg YYSTYPE *yyvsp; 1086e53c48bfSmrg 1087e53c48bfSmrg YYSIZE_T yystacksize; 1088e53c48bfSmrg 1089350952b9Smrg int yyn; 1090fd7d9bd3Smrg int yyresult; 1091e53c48bfSmrg /* Lookahead token as an internal (translated) token number. */ 1092fd7d9bd3Smrg int yytoken = 0; 1093e53c48bfSmrg /* The variables used to return semantic value and location from the 1094e53c48bfSmrg action routines. */ 1095e53c48bfSmrg YYSTYPE yyval; 1096e53c48bfSmrg 1097350952b9Smrg#if YYERROR_VERBOSE 1098350952b9Smrg /* Buffer for error messages, and its allocated size. */ 1099350952b9Smrg char yymsgbuf[128]; 1100350952b9Smrg char *yymsg = yymsgbuf; 1101350952b9Smrg YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1102350952b9Smrg#endif 1103fd7d9bd3Smrg 1104350952b9Smrg#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1105fd7d9bd3Smrg 1106350952b9Smrg /* The number of symbols on the RHS of the reduced rule. 1107350952b9Smrg Keep to zero when no symbol should be popped. */ 1108350952b9Smrg int yylen = 0; 1109fd7d9bd3Smrg 1110e53c48bfSmrg yyssp = yyss = yyssa; 1111e53c48bfSmrg yyvsp = yyvs = yyvsa; 1112e53c48bfSmrg yystacksize = YYINITDEPTH; 1113e53c48bfSmrg 1114fd7d9bd3Smrg YYDPRINTF ((stderr, "Starting parse\n")); 1115fd7d9bd3Smrg 1116fd7d9bd3Smrg yystate = 0; 1117fd7d9bd3Smrg yyerrstatus = 0; 1118fd7d9bd3Smrg yynerrs = 0; 1119e53c48bfSmrg yychar = YYEMPTY; /* Cause a token to be read. */ 1120fd7d9bd3Smrg goto yysetstate; 1121fd7d9bd3Smrg 1122fd7d9bd3Smrg/*------------------------------------------------------------. 1123fd7d9bd3Smrg| yynewstate -- Push a new state, which is found in yystate. | 1124fd7d9bd3Smrg`------------------------------------------------------------*/ 1125fd7d9bd3Smrg yynewstate: 1126fd7d9bd3Smrg /* In all cases, when you get here, the value and location stacks 1127350952b9Smrg have just been pushed. So pushing a state here evens the stacks. */ 1128fd7d9bd3Smrg yyssp++; 1129fd7d9bd3Smrg 1130fd7d9bd3Smrg yysetstate: 1131fd7d9bd3Smrg *yyssp = yystate; 1132fd7d9bd3Smrg 1133fd7d9bd3Smrg if (yyss + yystacksize - 1 <= yyssp) 1134fd7d9bd3Smrg { 1135fd7d9bd3Smrg /* Get the current used size of the three stacks, in elements. */ 1136fd7d9bd3Smrg YYSIZE_T yysize = yyssp - yyss + 1; 1137fd7d9bd3Smrg 1138fd7d9bd3Smrg#ifdef yyoverflow 1139fd7d9bd3Smrg { 1140e53c48bfSmrg /* Give user a chance to reallocate the stack. Use copies of 1141e53c48bfSmrg these so that the &'s don't force the real ones into 1142e53c48bfSmrg memory. */ 1143e53c48bfSmrg YYSTYPE *yyvs1 = yyvs; 1144e53c48bfSmrg yytype_int16 *yyss1 = yyss; 1145e53c48bfSmrg 1146e53c48bfSmrg /* Each stack pointer address is followed by the size of the 1147e53c48bfSmrg data in use in that stack, in bytes. This used to be a 1148e53c48bfSmrg conditional around just the two extra args, but that might 1149e53c48bfSmrg be undefined if yyoverflow is a macro. */ 1150e53c48bfSmrg yyoverflow (YY_("memory exhausted"), 1151e53c48bfSmrg &yyss1, yysize * sizeof (*yyssp), 1152e53c48bfSmrg &yyvs1, yysize * sizeof (*yyvsp), 1153e53c48bfSmrg &yystacksize); 1154e53c48bfSmrg 1155e53c48bfSmrg yyss = yyss1; 1156e53c48bfSmrg yyvs = yyvs1; 1157fd7d9bd3Smrg } 1158fd7d9bd3Smrg#else /* no yyoverflow */ 1159fd7d9bd3Smrg# ifndef YYSTACK_RELOCATE 1160350952b9Smrg goto yyexhaustedlab; 1161fd7d9bd3Smrg# else 1162fd7d9bd3Smrg /* Extend the stack our own way. */ 1163fd7d9bd3Smrg if (YYMAXDEPTH <= yystacksize) 1164e53c48bfSmrg goto yyexhaustedlab; 1165fd7d9bd3Smrg yystacksize *= 2; 1166fd7d9bd3Smrg if (YYMAXDEPTH < yystacksize) 1167e53c48bfSmrg yystacksize = YYMAXDEPTH; 1168fd7d9bd3Smrg 1169fd7d9bd3Smrg { 1170e53c48bfSmrg yytype_int16 *yyss1 = yyss; 1171e53c48bfSmrg union yyalloc *yyptr = 1172e53c48bfSmrg (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1173e53c48bfSmrg if (! yyptr) 1174e53c48bfSmrg goto yyexhaustedlab; 1175e53c48bfSmrg YYSTACK_RELOCATE (yyss_alloc, yyss); 1176e53c48bfSmrg YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1177fd7d9bd3Smrg# undef YYSTACK_RELOCATE 1178e53c48bfSmrg if (yyss1 != yyssa) 1179e53c48bfSmrg YYSTACK_FREE (yyss1); 1180fd7d9bd3Smrg } 1181fd7d9bd3Smrg# endif 1182fd7d9bd3Smrg#endif /* no yyoverflow */ 1183fd7d9bd3Smrg 1184fd7d9bd3Smrg yyssp = yyss + yysize - 1; 1185fd7d9bd3Smrg yyvsp = yyvs + yysize - 1; 1186fd7d9bd3Smrg 1187fd7d9bd3Smrg YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1188e53c48bfSmrg (unsigned long int) yystacksize)); 1189fd7d9bd3Smrg 1190fd7d9bd3Smrg if (yyss + yystacksize - 1 <= yyssp) 1191e53c48bfSmrg YYABORT; 1192fd7d9bd3Smrg } 1193fd7d9bd3Smrg 1194fd7d9bd3Smrg YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1195fd7d9bd3Smrg 1196e53c48bfSmrg if (yystate == YYFINAL) 1197e53c48bfSmrg YYACCEPT; 1198e53c48bfSmrg 1199fd7d9bd3Smrg goto yybackup; 1200fd7d9bd3Smrg 1201fd7d9bd3Smrg/*-----------. 1202fd7d9bd3Smrg| yybackup. | 1203fd7d9bd3Smrg`-----------*/ 1204fd7d9bd3Smrgyybackup: 1205fd7d9bd3Smrg 1206350952b9Smrg /* Do appropriate processing given the current state. Read a 1207e53c48bfSmrg lookahead token if we need one and don't already have one. */ 1208fd7d9bd3Smrg 1209e53c48bfSmrg /* First try to decide what to do without reference to lookahead token. */ 1210fd7d9bd3Smrg yyn = yypact[yystate]; 1211e53c48bfSmrg if (yypact_value_is_default (yyn)) 1212fd7d9bd3Smrg goto yydefault; 1213fd7d9bd3Smrg 1214e53c48bfSmrg /* Not known => get a lookahead token if don't already have one. */ 1215fd7d9bd3Smrg 1216e53c48bfSmrg /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1217fd7d9bd3Smrg if (yychar == YYEMPTY) 1218fd7d9bd3Smrg { 1219fd7d9bd3Smrg YYDPRINTF ((stderr, "Reading a token: ")); 1220e53c48bfSmrg yychar = yylex (); 1221fd7d9bd3Smrg } 1222fd7d9bd3Smrg 1223fd7d9bd3Smrg if (yychar <= YYEOF) 1224fd7d9bd3Smrg { 1225fd7d9bd3Smrg yychar = yytoken = YYEOF; 1226fd7d9bd3Smrg YYDPRINTF ((stderr, "Now at end of input.\n")); 1227fd7d9bd3Smrg } 1228fd7d9bd3Smrg else 1229fd7d9bd3Smrg { 1230fd7d9bd3Smrg yytoken = YYTRANSLATE (yychar); 1231350952b9Smrg YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1232fd7d9bd3Smrg } 1233fd7d9bd3Smrg 1234fd7d9bd3Smrg /* If the proper action on seeing token YYTOKEN is to reduce or to 1235fd7d9bd3Smrg detect an error, take that action. */ 1236fd7d9bd3Smrg yyn += yytoken; 1237fd7d9bd3Smrg if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1238fd7d9bd3Smrg goto yydefault; 1239fd7d9bd3Smrg yyn = yytable[yyn]; 1240fd7d9bd3Smrg if (yyn <= 0) 1241fd7d9bd3Smrg { 1242e53c48bfSmrg if (yytable_value_is_error (yyn)) 1243e53c48bfSmrg goto yyerrlab; 1244fd7d9bd3Smrg yyn = -yyn; 1245fd7d9bd3Smrg goto yyreduce; 1246fd7d9bd3Smrg } 1247fd7d9bd3Smrg 1248fd7d9bd3Smrg /* Count tokens shifted since error; after three, turn off error 1249fd7d9bd3Smrg status. */ 1250fd7d9bd3Smrg if (yyerrstatus) 1251fd7d9bd3Smrg yyerrstatus--; 1252fd7d9bd3Smrg 1253e53c48bfSmrg /* Shift the lookahead token. */ 1254350952b9Smrg YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1255350952b9Smrg 1256e53c48bfSmrg /* Discard the shifted token. */ 1257e53c48bfSmrg yychar = YYEMPTY; 1258350952b9Smrg 1259fd7d9bd3Smrg yystate = yyn; 1260e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1261350952b9Smrg *++yyvsp = yylval; 1262e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 1263350952b9Smrg 1264fd7d9bd3Smrg goto yynewstate; 1265fd7d9bd3Smrg 1266fd7d9bd3Smrg 1267fd7d9bd3Smrg/*-----------------------------------------------------------. 1268fd7d9bd3Smrg| yydefault -- do the default action for the current state. | 1269fd7d9bd3Smrg`-----------------------------------------------------------*/ 1270fd7d9bd3Smrgyydefault: 1271fd7d9bd3Smrg yyn = yydefact[yystate]; 1272fd7d9bd3Smrg if (yyn == 0) 1273fd7d9bd3Smrg goto yyerrlab; 1274fd7d9bd3Smrg goto yyreduce; 1275fd7d9bd3Smrg 1276fd7d9bd3Smrg 1277fd7d9bd3Smrg/*-----------------------------. 1278fd7d9bd3Smrg| yyreduce -- Do a reduction. | 1279fd7d9bd3Smrg`-----------------------------*/ 1280fd7d9bd3Smrgyyreduce: 1281fd7d9bd3Smrg /* yyn is the number of a rule to reduce with. */ 1282fd7d9bd3Smrg yylen = yyr2[yyn]; 1283fd7d9bd3Smrg 1284fd7d9bd3Smrg /* If YYLEN is nonzero, implement the default value of the action: 1285e53c48bfSmrg '$$ = $1'. 1286fd7d9bd3Smrg 1287fd7d9bd3Smrg Otherwise, the following line sets YYVAL to garbage. 1288fd7d9bd3Smrg This behavior is undocumented and Bison 1289fd7d9bd3Smrg users should not rely upon it. Assigning to YYVAL 1290fd7d9bd3Smrg unconditionally makes the parser a bit smaller, and it avoids a 1291fd7d9bd3Smrg GCC warning that YYVAL may be used uninitialized. */ 1292fd7d9bd3Smrg yyval = yyvsp[1-yylen]; 1293fd7d9bd3Smrg 1294fd7d9bd3Smrg 1295fd7d9bd3Smrg YY_REDUCE_PRINT (yyn); 1296fd7d9bd3Smrg switch (yyn) 1297fd7d9bd3Smrg { 1298fd7d9bd3Smrg case 7: 1299e53c48bfSmrg#line 50 "gram.y" /* yacc.c:1646 */ 1300fd7d9bd3Smrg { run_test(); } 1301e53c48bfSmrg#line 1302 "gram.c" /* yacc.c:1646 */ 1302fd7d9bd3Smrg break; 1303fd7d9bd3Smrg 1304fd7d9bd3Smrg case 8: 1305e53c48bfSmrg#line 52 "gram.y" /* yacc.c:1646 */ 1306e53c48bfSmrg { change_test ((yyvsp[0].num), TRUE); } 1307e53c48bfSmrg#line 1308 "gram.c" /* yacc.c:1646 */ 1308fd7d9bd3Smrg break; 1309fd7d9bd3Smrg 1310fd7d9bd3Smrg case 9: 1311e53c48bfSmrg#line 54 "gram.y" /* yacc.c:1646 */ 1312e53c48bfSmrg { GC_change_function ((yyvsp[0].num), TRUE); } 1313e53c48bfSmrg#line 1314 "gram.c" /* yacc.c:1646 */ 1314fd7d9bd3Smrg break; 1315fd7d9bd3Smrg 1316fd7d9bd3Smrg case 10: 1317e53c48bfSmrg#line 56 "gram.y" /* yacc.c:1646 */ 1318e53c48bfSmrg { GC_change_linestyle ((yyvsp[0].num), TRUE); } 1319e53c48bfSmrg#line 1320 "gram.c" /* yacc.c:1646 */ 1320fd7d9bd3Smrg break; 1321fd7d9bd3Smrg 1322fd7d9bd3Smrg case 11: 1323e53c48bfSmrg#line 58 "gram.y" /* yacc.c:1646 */ 1324fd7d9bd3Smrg { GC_change_linestyle (LineSolid, TRUE); } 1325e53c48bfSmrg#line 1326 "gram.c" /* yacc.c:1646 */ 1326fd7d9bd3Smrg break; 1327fd7d9bd3Smrg 1328fd7d9bd3Smrg case 12: 1329e53c48bfSmrg#line 60 "gram.y" /* yacc.c:1646 */ 1330e53c48bfSmrg { GC_change_capstyle ((yyvsp[0].num), TRUE); } 1331e53c48bfSmrg#line 1332 "gram.c" /* yacc.c:1646 */ 1332fd7d9bd3Smrg break; 1333fd7d9bd3Smrg 1334fd7d9bd3Smrg case 13: 1335e53c48bfSmrg#line 62 "gram.y" /* yacc.c:1646 */ 1336fd7d9bd3Smrg { GC_change_capstyle (CapRound, TRUE); } 1337e53c48bfSmrg#line 1338 "gram.c" /* yacc.c:1646 */ 1338fd7d9bd3Smrg break; 1339fd7d9bd3Smrg 1340fd7d9bd3Smrg case 14: 1341e53c48bfSmrg#line 64 "gram.y" /* yacc.c:1646 */ 1342e53c48bfSmrg { GC_change_joinstyle ((yyvsp[0].num), TRUE); } 1343e53c48bfSmrg#line 1344 "gram.c" /* yacc.c:1646 */ 1344fd7d9bd3Smrg break; 1345fd7d9bd3Smrg 1346fd7d9bd3Smrg case 15: 1347e53c48bfSmrg#line 66 "gram.y" /* yacc.c:1646 */ 1348fd7d9bd3Smrg { GC_change_joinstyle (JoinRound, TRUE); } 1349e53c48bfSmrg#line 1350 "gram.c" /* yacc.c:1646 */ 1350fd7d9bd3Smrg break; 1351fd7d9bd3Smrg 1352fd7d9bd3Smrg case 16: 1353e53c48bfSmrg#line 68 "gram.y" /* yacc.c:1646 */ 1354e53c48bfSmrg { GC_change_fillstyle ((yyvsp[0].num), TRUE); } 1355e53c48bfSmrg#line 1356 "gram.c" /* yacc.c:1646 */ 1356fd7d9bd3Smrg break; 1357fd7d9bd3Smrg 1358fd7d9bd3Smrg case 17: 1359e53c48bfSmrg#line 70 "gram.y" /* yacc.c:1646 */ 1360fd7d9bd3Smrg { GC_change_fillstyle (FillSolid, TRUE); } 1361e53c48bfSmrg#line 1362 "gram.c" /* yacc.c:1646 */ 1362fd7d9bd3Smrg break; 1363fd7d9bd3Smrg 1364fd7d9bd3Smrg case 18: 1365e53c48bfSmrg#line 72 "gram.y" /* yacc.c:1646 */ 1366e53c48bfSmrg { GC_change_fillrule ((yyvsp[0].num), TRUE); } 1367e53c48bfSmrg#line 1368 "gram.c" /* yacc.c:1646 */ 1368fd7d9bd3Smrg break; 1369fd7d9bd3Smrg 1370fd7d9bd3Smrg case 19: 1371e53c48bfSmrg#line 74 "gram.y" /* yacc.c:1646 */ 1372e53c48bfSmrg { GC_change_arcmode ((yyvsp[0].num), TRUE); } 1373e53c48bfSmrg#line 1374 "gram.c" /* yacc.c:1646 */ 1374fd7d9bd3Smrg break; 1375fd7d9bd3Smrg 1376fd7d9bd3Smrg case 20: 1377e53c48bfSmrg#line 76 "gram.y" /* yacc.c:1646 */ 1378e53c48bfSmrg { GC_change_foreground ((yyvsp[0].num), TRUE); } 1379e53c48bfSmrg#line 1380 "gram.c" /* yacc.c:1646 */ 1380fd7d9bd3Smrg break; 1381fd7d9bd3Smrg 1382fd7d9bd3Smrg case 21: 1383e53c48bfSmrg#line 78 "gram.y" /* yacc.c:1646 */ 1384e53c48bfSmrg { GC_change_background ((yyvsp[0].num), TRUE); } 1385e53c48bfSmrg#line 1386 "gram.c" /* yacc.c:1646 */ 1386fd7d9bd3Smrg break; 1387fd7d9bd3Smrg 1388fd7d9bd3Smrg case 22: 1389e53c48bfSmrg#line 80 "gram.y" /* yacc.c:1646 */ 1390e53c48bfSmrg { GC_change_linewidth ((yyvsp[0].num), TRUE); } 1391e53c48bfSmrg#line 1392 "gram.c" /* yacc.c:1646 */ 1392fd7d9bd3Smrg break; 1393fd7d9bd3Smrg 1394fd7d9bd3Smrg case 23: 1395e53c48bfSmrg#line 82 "gram.y" /* yacc.c:1646 */ 1396e53c48bfSmrg { GC_change_planemask ((yyvsp[0].num), TRUE); } 1397e53c48bfSmrg#line 1398 "gram.c" /* yacc.c:1646 */ 1398fd7d9bd3Smrg break; 1399fd7d9bd3Smrg 1400fd7d9bd3Smrg case 24: 1401e53c48bfSmrg#line 84 "gram.y" /* yacc.c:1646 */ 1402e53c48bfSmrg { GC_change_dashlist ((yyvsp[0].num), TRUE); } 1403e53c48bfSmrg#line 1404 "gram.c" /* yacc.c:1646 */ 1404fd7d9bd3Smrg break; 1405fd7d9bd3Smrg 1406fd7d9bd3Smrg case 25: 1407e53c48bfSmrg#line 86 "gram.y" /* yacc.c:1646 */ 1408e53c48bfSmrg { GC_change_font ((yyvsp[0].ptr), TRUE); } 1409e53c48bfSmrg#line 1410 "gram.c" /* yacc.c:1646 */ 1410fd7d9bd3Smrg break; 1411fd7d9bd3Smrg 1412fd7d9bd3Smrg case 26: 1413e53c48bfSmrg#line 88 "gram.y" /* yacc.c:1646 */ 1414e53c48bfSmrg { change_percent ((yyvsp[0].num), TRUE); } 1415e53c48bfSmrg#line 1416 "gram.c" /* yacc.c:1646 */ 1416fd7d9bd3Smrg break; 1417fd7d9bd3Smrg 1418fd7d9bd3Smrg 1419e53c48bfSmrg#line 1420 "gram.c" /* yacc.c:1646 */ 1420350952b9Smrg default: break; 1421fd7d9bd3Smrg } 1422e53c48bfSmrg /* User semantic actions sometimes alter yychar, and that requires 1423e53c48bfSmrg that yytoken be updated with the new translation. We take the 1424e53c48bfSmrg approach of translating immediately before every use of yytoken. 1425e53c48bfSmrg One alternative is translating here after every semantic action, 1426e53c48bfSmrg but that translation would be missed if the semantic action invokes 1427e53c48bfSmrg YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 1428e53c48bfSmrg if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 1429e53c48bfSmrg incorrect destructor might then be invoked immediately. In the 1430e53c48bfSmrg case of YYERROR or YYBACKUP, subsequent parser actions might lead 1431e53c48bfSmrg to an incorrect destructor call or verbose syntax error message 1432e53c48bfSmrg before the lookahead is translated. */ 1433350952b9Smrg YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 1434fd7d9bd3Smrg 1435350952b9Smrg YYPOPSTACK (yylen); 1436350952b9Smrg yylen = 0; 1437fd7d9bd3Smrg YY_STACK_PRINT (yyss, yyssp); 1438fd7d9bd3Smrg 1439fd7d9bd3Smrg *++yyvsp = yyval; 1440fd7d9bd3Smrg 1441e53c48bfSmrg /* Now 'shift' the result of the reduction. Determine what state 1442fd7d9bd3Smrg that goes to, based on the state we popped back to and the rule 1443fd7d9bd3Smrg number reduced by. */ 1444fd7d9bd3Smrg 1445fd7d9bd3Smrg yyn = yyr1[yyn]; 1446fd7d9bd3Smrg 1447fd7d9bd3Smrg yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 1448fd7d9bd3Smrg if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 1449fd7d9bd3Smrg yystate = yytable[yystate]; 1450fd7d9bd3Smrg else 1451fd7d9bd3Smrg yystate = yydefgoto[yyn - YYNTOKENS]; 1452fd7d9bd3Smrg 1453fd7d9bd3Smrg goto yynewstate; 1454fd7d9bd3Smrg 1455fd7d9bd3Smrg 1456e53c48bfSmrg/*--------------------------------------. 1457e53c48bfSmrg| yyerrlab -- here on detecting error. | 1458e53c48bfSmrg`--------------------------------------*/ 1459fd7d9bd3Smrgyyerrlab: 1460e53c48bfSmrg /* Make sure we have latest lookahead translation. See comments at 1461e53c48bfSmrg user semantic actions for why this is necessary. */ 1462e53c48bfSmrg yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 1463e53c48bfSmrg 1464fd7d9bd3Smrg /* If not already recovering from an error, report this error. */ 1465fd7d9bd3Smrg if (!yyerrstatus) 1466fd7d9bd3Smrg { 1467fd7d9bd3Smrg ++yynerrs; 1468350952b9Smrg#if ! YYERROR_VERBOSE 1469350952b9Smrg yyerror (YY_("syntax error")); 1470350952b9Smrg#else 1471e53c48bfSmrg# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 1472e53c48bfSmrg yyssp, yytoken) 1473350952b9Smrg { 1474e53c48bfSmrg char const *yymsgp = YY_("syntax error"); 1475e53c48bfSmrg int yysyntax_error_status; 1476e53c48bfSmrg yysyntax_error_status = YYSYNTAX_ERROR; 1477e53c48bfSmrg if (yysyntax_error_status == 0) 1478e53c48bfSmrg yymsgp = yymsg; 1479e53c48bfSmrg else if (yysyntax_error_status == 1) 1480e53c48bfSmrg { 1481e53c48bfSmrg if (yymsg != yymsgbuf) 1482e53c48bfSmrg YYSTACK_FREE (yymsg); 1483e53c48bfSmrg yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 1484e53c48bfSmrg if (!yymsg) 1485e53c48bfSmrg { 1486e53c48bfSmrg yymsg = yymsgbuf; 1487e53c48bfSmrg yymsg_alloc = sizeof yymsgbuf; 1488e53c48bfSmrg yysyntax_error_status = 2; 1489e53c48bfSmrg } 1490e53c48bfSmrg else 1491e53c48bfSmrg { 1492e53c48bfSmrg yysyntax_error_status = YYSYNTAX_ERROR; 1493e53c48bfSmrg yymsgp = yymsg; 1494e53c48bfSmrg } 1495e53c48bfSmrg } 1496e53c48bfSmrg yyerror (yymsgp); 1497e53c48bfSmrg if (yysyntax_error_status == 2) 1498e53c48bfSmrg goto yyexhaustedlab; 1499350952b9Smrg } 1500e53c48bfSmrg# undef YYSYNTAX_ERROR 1501350952b9Smrg#endif 1502fd7d9bd3Smrg } 1503fd7d9bd3Smrg 1504fd7d9bd3Smrg 1505fd7d9bd3Smrg 1506fd7d9bd3Smrg if (yyerrstatus == 3) 1507fd7d9bd3Smrg { 1508e53c48bfSmrg /* If just tried and failed to reuse lookahead token after an 1509e53c48bfSmrg error, discard it. */ 1510fd7d9bd3Smrg 1511fd7d9bd3Smrg if (yychar <= YYEOF) 1512e53c48bfSmrg { 1513e53c48bfSmrg /* Return failure if at end of input. */ 1514e53c48bfSmrg if (yychar == YYEOF) 1515e53c48bfSmrg YYABORT; 1516e53c48bfSmrg } 1517fd7d9bd3Smrg else 1518e53c48bfSmrg { 1519e53c48bfSmrg yydestruct ("Error: discarding", 1520e53c48bfSmrg yytoken, &yylval); 1521e53c48bfSmrg yychar = YYEMPTY; 1522e53c48bfSmrg } 1523fd7d9bd3Smrg } 1524fd7d9bd3Smrg 1525e53c48bfSmrg /* Else will try to reuse lookahead token after shifting the error 1526fd7d9bd3Smrg token. */ 1527fd7d9bd3Smrg goto yyerrlab1; 1528fd7d9bd3Smrg 1529fd7d9bd3Smrg 1530fd7d9bd3Smrg/*---------------------------------------------------. 1531fd7d9bd3Smrg| yyerrorlab -- error raised explicitly by YYERROR. | 1532fd7d9bd3Smrg`---------------------------------------------------*/ 1533fd7d9bd3Smrgyyerrorlab: 1534fd7d9bd3Smrg 1535350952b9Smrg /* Pacify compilers like GCC when the user code never invokes 1536350952b9Smrg YYERROR and the label yyerrorlab therefore never appears in user 1537350952b9Smrg code. */ 1538350952b9Smrg if (/*CONSTCOND*/ 0) 1539fd7d9bd3Smrg goto yyerrorlab; 1540fd7d9bd3Smrg 1541e53c48bfSmrg /* Do not reclaim the symbols of the rule whose action triggered 1542350952b9Smrg this YYERROR. */ 1543350952b9Smrg YYPOPSTACK (yylen); 1544350952b9Smrg yylen = 0; 1545350952b9Smrg YY_STACK_PRINT (yyss, yyssp); 1546fd7d9bd3Smrg yystate = *yyssp; 1547fd7d9bd3Smrg goto yyerrlab1; 1548fd7d9bd3Smrg 1549fd7d9bd3Smrg 1550fd7d9bd3Smrg/*-------------------------------------------------------------. 1551fd7d9bd3Smrg| yyerrlab1 -- common code for both syntax error and YYERROR. | 1552fd7d9bd3Smrg`-------------------------------------------------------------*/ 1553fd7d9bd3Smrgyyerrlab1: 1554e53c48bfSmrg yyerrstatus = 3; /* Each real token shifted decrements this. */ 1555fd7d9bd3Smrg 1556fd7d9bd3Smrg for (;;) 1557fd7d9bd3Smrg { 1558fd7d9bd3Smrg yyn = yypact[yystate]; 1559e53c48bfSmrg if (!yypact_value_is_default (yyn)) 1560e53c48bfSmrg { 1561e53c48bfSmrg yyn += YYTERROR; 1562e53c48bfSmrg if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1563e53c48bfSmrg { 1564e53c48bfSmrg yyn = yytable[yyn]; 1565e53c48bfSmrg if (0 < yyn) 1566e53c48bfSmrg break; 1567e53c48bfSmrg } 1568e53c48bfSmrg } 1569fd7d9bd3Smrg 1570fd7d9bd3Smrg /* Pop the current state because it cannot handle the error token. */ 1571fd7d9bd3Smrg if (yyssp == yyss) 1572e53c48bfSmrg YYABORT; 1573fd7d9bd3Smrg 1574350952b9Smrg 1575350952b9Smrg yydestruct ("Error: popping", 1576e53c48bfSmrg yystos[yystate], yyvsp); 1577350952b9Smrg YYPOPSTACK (1); 1578fd7d9bd3Smrg yystate = *yyssp; 1579fd7d9bd3Smrg YY_STACK_PRINT (yyss, yyssp); 1580fd7d9bd3Smrg } 1581fd7d9bd3Smrg 1582e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1583fd7d9bd3Smrg *++yyvsp = yylval; 1584e53c48bfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 1585fd7d9bd3Smrg 1586fd7d9bd3Smrg 1587350952b9Smrg /* Shift the error token. */ 1588350952b9Smrg YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 1589350952b9Smrg 1590fd7d9bd3Smrg yystate = yyn; 1591fd7d9bd3Smrg goto yynewstate; 1592fd7d9bd3Smrg 1593fd7d9bd3Smrg 1594fd7d9bd3Smrg/*-------------------------------------. 1595fd7d9bd3Smrg| yyacceptlab -- YYACCEPT comes here. | 1596fd7d9bd3Smrg`-------------------------------------*/ 1597fd7d9bd3Smrgyyacceptlab: 1598fd7d9bd3Smrg yyresult = 0; 1599fd7d9bd3Smrg goto yyreturn; 1600fd7d9bd3Smrg 1601fd7d9bd3Smrg/*-----------------------------------. 1602fd7d9bd3Smrg| yyabortlab -- YYABORT comes here. | 1603fd7d9bd3Smrg`-----------------------------------*/ 1604fd7d9bd3Smrgyyabortlab: 1605fd7d9bd3Smrg yyresult = 1; 1606fd7d9bd3Smrg goto yyreturn; 1607fd7d9bd3Smrg 1608e53c48bfSmrg#if !defined yyoverflow || YYERROR_VERBOSE 1609350952b9Smrg/*-------------------------------------------------. 1610350952b9Smrg| yyexhaustedlab -- memory exhaustion comes here. | 1611350952b9Smrg`-------------------------------------------------*/ 1612350952b9Smrgyyexhaustedlab: 1613350952b9Smrg yyerror (YY_("memory exhausted")); 1614fd7d9bd3Smrg yyresult = 2; 1615fd7d9bd3Smrg /* Fall through. */ 1616fd7d9bd3Smrg#endif 1617fd7d9bd3Smrg 1618fd7d9bd3Smrgyyreturn: 1619e53c48bfSmrg if (yychar != YYEMPTY) 1620e53c48bfSmrg { 1621e53c48bfSmrg /* Make sure we have latest lookahead translation. See comments at 1622e53c48bfSmrg user semantic actions for why this is necessary. */ 1623e53c48bfSmrg yytoken = YYTRANSLATE (yychar); 1624e53c48bfSmrg yydestruct ("Cleanup: discarding lookahead", 1625e53c48bfSmrg yytoken, &yylval); 1626e53c48bfSmrg } 1627e53c48bfSmrg /* Do not reclaim the symbols of the rule whose action triggered 1628350952b9Smrg this YYABORT or YYACCEPT. */ 1629350952b9Smrg YYPOPSTACK (yylen); 1630350952b9Smrg YY_STACK_PRINT (yyss, yyssp); 1631350952b9Smrg while (yyssp != yyss) 1632350952b9Smrg { 1633350952b9Smrg yydestruct ("Cleanup: popping", 1634e53c48bfSmrg yystos[*yyssp], yyvsp); 1635350952b9Smrg YYPOPSTACK (1); 1636350952b9Smrg } 1637fd7d9bd3Smrg#ifndef yyoverflow 1638fd7d9bd3Smrg if (yyss != yyssa) 1639fd7d9bd3Smrg YYSTACK_FREE (yyss); 1640fd7d9bd3Smrg#endif 1641350952b9Smrg#if YYERROR_VERBOSE 1642350952b9Smrg if (yymsg != yymsgbuf) 1643350952b9Smrg YYSTACK_FREE (yymsg); 1644350952b9Smrg#endif 1645e53c48bfSmrg return yyresult; 1646fd7d9bd3Smrg} 1647e53c48bfSmrg#line 91 "gram.y" /* yacc.c:1906 */ 1648fd7d9bd3Smrg 1649fd7d9bd3Smrgvoid 1650fd7d9bd3Smrgyyerror(const char *s) 1651fd7d9bd3Smrg{ 1652fd7d9bd3Smrg fprintf(stderr, "xgc: syntax error, line %d\n", yylineno); 1653fd7d9bd3Smrg} 1654