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