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