xref: /rk3399_rockchip-uboot/scripts/dtc/dtc-parser.tab.c_shipped (revision d18719a48ffdf6be4a0724f88d8968904df3a0d9)
1*d18719a4STom Rini/* A Bison parser, made by GNU Bison 3.0.2.  */
2*d18719a4STom Rini
3*d18719a4STom Rini/* Bison implementation for Yacc-like parsers in C
4*d18719a4STom Rini
5*d18719a4STom Rini   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6*d18719a4STom Rini
7*d18719a4STom Rini   This program is free software: you can redistribute it and/or modify
8*d18719a4STom Rini   it under the terms of the GNU General Public License as published by
9*d18719a4STom Rini   the Free Software Foundation, either version 3 of the License, or
10*d18719a4STom Rini   (at your option) any later version.
11*d18719a4STom Rini
12*d18719a4STom Rini   This program is distributed in the hope that it will be useful,
13*d18719a4STom Rini   but WITHOUT ANY WARRANTY; without even the implied warranty of
14*d18719a4STom Rini   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*d18719a4STom Rini   GNU General Public License for more details.
16*d18719a4STom Rini
17*d18719a4STom Rini   You should have received a copy of the GNU General Public License
18*d18719a4STom Rini   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19*d18719a4STom Rini
20*d18719a4STom Rini/* As a special exception, you may create a larger work that contains
21*d18719a4STom Rini   part or all of the Bison parser skeleton and distribute that work
22*d18719a4STom Rini   under terms of your choice, so long as that work isn't itself a
23*d18719a4STom Rini   parser generator using the skeleton or a modified version thereof
24*d18719a4STom Rini   as a parser skeleton.  Alternatively, if you modify or redistribute
25*d18719a4STom Rini   the parser skeleton itself, you may (at your option) remove this
26*d18719a4STom Rini   special exception, which will cause the skeleton and the resulting
27*d18719a4STom Rini   Bison output files to be licensed under the GNU General Public
28*d18719a4STom Rini   License without this special exception.
29*d18719a4STom Rini
30*d18719a4STom Rini   This special exception was added by the Free Software Foundation in
31*d18719a4STom Rini   version 2.2 of Bison.  */
32*d18719a4STom Rini
33*d18719a4STom Rini/* C LALR(1) parser skeleton written by Richard Stallman, by
34*d18719a4STom Rini   simplifying the original so-called "semantic" parser.  */
35*d18719a4STom Rini
36*d18719a4STom Rini/* All symbols defined below should begin with yy or YY, to avoid
37*d18719a4STom Rini   infringing on user name space.  This should be done even for local
38*d18719a4STom Rini   variables, as they might otherwise be expanded by user macros.
39*d18719a4STom Rini   There are some unavoidable exceptions within include files to
40*d18719a4STom Rini   define necessary library symbols; they are noted "INFRINGES ON
41*d18719a4STom Rini   USER NAME SPACE" below.  */
42*d18719a4STom Rini
43*d18719a4STom Rini/* Identify Bison output.  */
44*d18719a4STom Rini#define YYBISON 1
45*d18719a4STom Rini
46*d18719a4STom Rini/* Bison version.  */
47*d18719a4STom Rini#define YYBISON_VERSION "3.0.2"
48*d18719a4STom Rini
49*d18719a4STom Rini/* Skeleton name.  */
50*d18719a4STom Rini#define YYSKELETON_NAME "yacc.c"
51*d18719a4STom Rini
52*d18719a4STom Rini/* Pure parsers.  */
53*d18719a4STom Rini#define YYPURE 0
54*d18719a4STom Rini
55*d18719a4STom Rini/* Push parsers.  */
56*d18719a4STom Rini#define YYPUSH 0
57*d18719a4STom Rini
58*d18719a4STom Rini/* Pull parsers.  */
59*d18719a4STom Rini#define YYPULL 1
60*d18719a4STom Rini
61*d18719a4STom Rini
62*d18719a4STom Rini
63*d18719a4STom Rini
64*d18719a4STom Rini/* Copy the first part of user declarations.  */
65*d18719a4STom Rini#line 20 "dtc-parser.y" /* yacc.c:339  */
66*d18719a4STom Rini
67*d18719a4STom Rini#include <stdio.h>
68*d18719a4STom Rini#include <inttypes.h>
69*d18719a4STom Rini
70*d18719a4STom Rini#include "dtc.h"
71*d18719a4STom Rini#include "srcpos.h"
72*d18719a4STom Rini
73*d18719a4STom Riniextern int yylex(void);
74*d18719a4STom Riniextern void yyerror(char const *s);
75*d18719a4STom Rini#define ERROR(loc, ...) \
76*d18719a4STom Rini	do { \
77*d18719a4STom Rini		srcpos_error((loc), "Error", __VA_ARGS__); \
78*d18719a4STom Rini		treesource_error = true; \
79*d18719a4STom Rini	} while (0)
80*d18719a4STom Rini
81*d18719a4STom Riniextern struct dt_info *parser_output;
82*d18719a4STom Riniextern bool treesource_error;
83*d18719a4STom Rini
84*d18719a4STom Rini#line 85 "dtc-parser.tab.c" /* yacc.c:339  */
85*d18719a4STom Rini
86*d18719a4STom Rini# ifndef YY_NULLPTR
87*d18719a4STom Rini#  if defined __cplusplus && 201103L <= __cplusplus
88*d18719a4STom Rini#   define YY_NULLPTR nullptr
89*d18719a4STom Rini#  else
90*d18719a4STom Rini#   define YY_NULLPTR 0
91*d18719a4STom Rini#  endif
92*d18719a4STom Rini# endif
93*d18719a4STom Rini
94*d18719a4STom Rini/* Enabling verbose error messages.  */
95*d18719a4STom Rini#ifdef YYERROR_VERBOSE
96*d18719a4STom Rini# undef YYERROR_VERBOSE
97*d18719a4STom Rini# define YYERROR_VERBOSE 1
98*d18719a4STom Rini#else
99*d18719a4STom Rini# define YYERROR_VERBOSE 0
100*d18719a4STom Rini#endif
101*d18719a4STom Rini
102*d18719a4STom Rini/* In a future release of Bison, this section will be replaced
103*d18719a4STom Rini   by #include "dtc-parser.tab.h".  */
104*d18719a4STom Rini#ifndef YY_YY_DTC_PARSER_TAB_H_INCLUDED
105*d18719a4STom Rini# define YY_YY_DTC_PARSER_TAB_H_INCLUDED
106*d18719a4STom Rini/* Debug traces.  */
107*d18719a4STom Rini#ifndef YYDEBUG
108*d18719a4STom Rini# define YYDEBUG 0
109*d18719a4STom Rini#endif
110*d18719a4STom Rini#if YYDEBUG
111*d18719a4STom Riniextern int yydebug;
112*d18719a4STom Rini#endif
113*d18719a4STom Rini
114*d18719a4STom Rini/* Token type.  */
115*d18719a4STom Rini#ifndef YYTOKENTYPE
116*d18719a4STom Rini# define YYTOKENTYPE
117*d18719a4STom Rini  enum yytokentype
118*d18719a4STom Rini  {
119*d18719a4STom Rini    DT_V1 = 258,
120*d18719a4STom Rini    DT_PLUGIN = 259,
121*d18719a4STom Rini    DT_MEMRESERVE = 260,
122*d18719a4STom Rini    DT_LSHIFT = 261,
123*d18719a4STom Rini    DT_RSHIFT = 262,
124*d18719a4STom Rini    DT_LE = 263,
125*d18719a4STom Rini    DT_GE = 264,
126*d18719a4STom Rini    DT_EQ = 265,
127*d18719a4STom Rini    DT_NE = 266,
128*d18719a4STom Rini    DT_AND = 267,
129*d18719a4STom Rini    DT_OR = 268,
130*d18719a4STom Rini    DT_BITS = 269,
131*d18719a4STom Rini    DT_DEL_PROP = 270,
132*d18719a4STom Rini    DT_DEL_NODE = 271,
133*d18719a4STom Rini    DT_PROPNODENAME = 272,
134*d18719a4STom Rini    DT_LITERAL = 273,
135*d18719a4STom Rini    DT_CHAR_LITERAL = 274,
136*d18719a4STom Rini    DT_BYTE = 275,
137*d18719a4STom Rini    DT_STRING = 276,
138*d18719a4STom Rini    DT_LABEL = 277,
139*d18719a4STom Rini    DT_REF = 278,
140*d18719a4STom Rini    DT_INCBIN = 279
141*d18719a4STom Rini  };
142*d18719a4STom Rini#endif
143*d18719a4STom Rini
144*d18719a4STom Rini/* Value type.  */
145*d18719a4STom Rini#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
146*d18719a4STom Rinitypedef union YYSTYPE YYSTYPE;
147*d18719a4STom Riniunion YYSTYPE
148*d18719a4STom Rini{
149*d18719a4STom Rini#line 39 "dtc-parser.y" /* yacc.c:355  */
150*d18719a4STom Rini
151*d18719a4STom Rini	char *propnodename;
152*d18719a4STom Rini	char *labelref;
153*d18719a4STom Rini	uint8_t byte;
154*d18719a4STom Rini	struct data data;
155*d18719a4STom Rini
156*d18719a4STom Rini	struct {
157*d18719a4STom Rini		struct data	data;
158*d18719a4STom Rini		int		bits;
159*d18719a4STom Rini	} array;
160*d18719a4STom Rini
161*d18719a4STom Rini	struct property *prop;
162*d18719a4STom Rini	struct property *proplist;
163*d18719a4STom Rini	struct node *node;
164*d18719a4STom Rini	struct node *nodelist;
165*d18719a4STom Rini	struct reserve_info *re;
166*d18719a4STom Rini	uint64_t integer;
167*d18719a4STom Rini	unsigned int flags;
168*d18719a4STom Rini
169*d18719a4STom Rini#line 170 "dtc-parser.tab.c" /* yacc.c:355  */
170*d18719a4STom Rini};
171*d18719a4STom Rini# define YYSTYPE_IS_TRIVIAL 1
172*d18719a4STom Rini# define YYSTYPE_IS_DECLARED 1
173*d18719a4STom Rini#endif
174*d18719a4STom Rini
175*d18719a4STom Rini/* Location type.  */
176*d18719a4STom Rini#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
177*d18719a4STom Rinitypedef struct YYLTYPE YYLTYPE;
178*d18719a4STom Rinistruct YYLTYPE
179*d18719a4STom Rini{
180*d18719a4STom Rini  int first_line;
181*d18719a4STom Rini  int first_column;
182*d18719a4STom Rini  int last_line;
183*d18719a4STom Rini  int last_column;
184*d18719a4STom Rini};
185*d18719a4STom Rini# define YYLTYPE_IS_DECLARED 1
186*d18719a4STom Rini# define YYLTYPE_IS_TRIVIAL 1
187*d18719a4STom Rini#endif
188*d18719a4STom Rini
189*d18719a4STom Rini
190*d18719a4STom Riniextern YYSTYPE yylval;
191*d18719a4STom Riniextern YYLTYPE yylloc;
192*d18719a4STom Riniint yyparse (void);
193*d18719a4STom Rini
194*d18719a4STom Rini#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED  */
195*d18719a4STom Rini
196*d18719a4STom Rini/* Copy the second part of user declarations.  */
197*d18719a4STom Rini
198*d18719a4STom Rini#line 199 "dtc-parser.tab.c" /* yacc.c:358  */
199*d18719a4STom Rini
200*d18719a4STom Rini#ifdef short
201*d18719a4STom Rini# undef short
202*d18719a4STom Rini#endif
203*d18719a4STom Rini
204*d18719a4STom Rini#ifdef YYTYPE_UINT8
205*d18719a4STom Rinitypedef YYTYPE_UINT8 yytype_uint8;
206*d18719a4STom Rini#else
207*d18719a4STom Rinitypedef unsigned char yytype_uint8;
208*d18719a4STom Rini#endif
209*d18719a4STom Rini
210*d18719a4STom Rini#ifdef YYTYPE_INT8
211*d18719a4STom Rinitypedef YYTYPE_INT8 yytype_int8;
212*d18719a4STom Rini#else
213*d18719a4STom Rinitypedef signed char yytype_int8;
214*d18719a4STom Rini#endif
215*d18719a4STom Rini
216*d18719a4STom Rini#ifdef YYTYPE_UINT16
217*d18719a4STom Rinitypedef YYTYPE_UINT16 yytype_uint16;
218*d18719a4STom Rini#else
219*d18719a4STom Rinitypedef unsigned short int yytype_uint16;
220*d18719a4STom Rini#endif
221*d18719a4STom Rini
222*d18719a4STom Rini#ifdef YYTYPE_INT16
223*d18719a4STom Rinitypedef YYTYPE_INT16 yytype_int16;
224*d18719a4STom Rini#else
225*d18719a4STom Rinitypedef short int yytype_int16;
226*d18719a4STom Rini#endif
227*d18719a4STom Rini
228*d18719a4STom Rini#ifndef YYSIZE_T
229*d18719a4STom Rini# ifdef __SIZE_TYPE__
230*d18719a4STom Rini#  define YYSIZE_T __SIZE_TYPE__
231*d18719a4STom Rini# elif defined size_t
232*d18719a4STom Rini#  define YYSIZE_T size_t
233*d18719a4STom Rini# elif ! defined YYSIZE_T
234*d18719a4STom Rini#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
235*d18719a4STom Rini#  define YYSIZE_T size_t
236*d18719a4STom Rini# else
237*d18719a4STom Rini#  define YYSIZE_T unsigned int
238*d18719a4STom Rini# endif
239*d18719a4STom Rini#endif
240*d18719a4STom Rini
241*d18719a4STom Rini#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
242*d18719a4STom Rini
243*d18719a4STom Rini#ifndef YY_
244*d18719a4STom Rini# if defined YYENABLE_NLS && YYENABLE_NLS
245*d18719a4STom Rini#  if ENABLE_NLS
246*d18719a4STom Rini#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
247*d18719a4STom Rini#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
248*d18719a4STom Rini#  endif
249*d18719a4STom Rini# endif
250*d18719a4STom Rini# ifndef YY_
251*d18719a4STom Rini#  define YY_(Msgid) Msgid
252*d18719a4STom Rini# endif
253*d18719a4STom Rini#endif
254*d18719a4STom Rini
255*d18719a4STom Rini#ifndef YY_ATTRIBUTE
256*d18719a4STom Rini# if (defined __GNUC__                                               \
257*d18719a4STom Rini      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
258*d18719a4STom Rini     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
259*d18719a4STom Rini#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
260*d18719a4STom Rini# else
261*d18719a4STom Rini#  define YY_ATTRIBUTE(Spec) /* empty */
262*d18719a4STom Rini# endif
263*d18719a4STom Rini#endif
264*d18719a4STom Rini
265*d18719a4STom Rini#ifndef YY_ATTRIBUTE_PURE
266*d18719a4STom Rini# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
267*d18719a4STom Rini#endif
268*d18719a4STom Rini
269*d18719a4STom Rini#ifndef YY_ATTRIBUTE_UNUSED
270*d18719a4STom Rini# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
271*d18719a4STom Rini#endif
272*d18719a4STom Rini
273*d18719a4STom Rini#if !defined _Noreturn \
274*d18719a4STom Rini     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
275*d18719a4STom Rini# if defined _MSC_VER && 1200 <= _MSC_VER
276*d18719a4STom Rini#  define _Noreturn __declspec (noreturn)
277*d18719a4STom Rini# else
278*d18719a4STom Rini#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
279*d18719a4STom Rini# endif
280*d18719a4STom Rini#endif
281*d18719a4STom Rini
282*d18719a4STom Rini/* Suppress unused-variable warnings by "using" E.  */
283*d18719a4STom Rini#if ! defined lint || defined __GNUC__
284*d18719a4STom Rini# define YYUSE(E) ((void) (E))
285*d18719a4STom Rini#else
286*d18719a4STom Rini# define YYUSE(E) /* empty */
287*d18719a4STom Rini#endif
288*d18719a4STom Rini
289*d18719a4STom Rini#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
290*d18719a4STom Rini/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
291*d18719a4STom Rini# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
292*d18719a4STom Rini    _Pragma ("GCC diagnostic push") \
293*d18719a4STom Rini    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
294*d18719a4STom Rini    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
295*d18719a4STom Rini# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
296*d18719a4STom Rini    _Pragma ("GCC diagnostic pop")
297*d18719a4STom Rini#else
298*d18719a4STom Rini# define YY_INITIAL_VALUE(Value) Value
299*d18719a4STom Rini#endif
300*d18719a4STom Rini#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
301*d18719a4STom Rini# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
302*d18719a4STom Rini# define YY_IGNORE_MAYBE_UNINITIALIZED_END
303*d18719a4STom Rini#endif
304*d18719a4STom Rini#ifndef YY_INITIAL_VALUE
305*d18719a4STom Rini# define YY_INITIAL_VALUE(Value) /* Nothing. */
306*d18719a4STom Rini#endif
307*d18719a4STom Rini
308*d18719a4STom Rini
309*d18719a4STom Rini#if ! defined yyoverflow || YYERROR_VERBOSE
310*d18719a4STom Rini
311*d18719a4STom Rini/* The parser invokes alloca or malloc; define the necessary symbols.  */
312*d18719a4STom Rini
313*d18719a4STom Rini# ifdef YYSTACK_USE_ALLOCA
314*d18719a4STom Rini#  if YYSTACK_USE_ALLOCA
315*d18719a4STom Rini#   ifdef __GNUC__
316*d18719a4STom Rini#    define YYSTACK_ALLOC __builtin_alloca
317*d18719a4STom Rini#   elif defined __BUILTIN_VA_ARG_INCR
318*d18719a4STom Rini#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
319*d18719a4STom Rini#   elif defined _AIX
320*d18719a4STom Rini#    define YYSTACK_ALLOC __alloca
321*d18719a4STom Rini#   elif defined _MSC_VER
322*d18719a4STom Rini#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
323*d18719a4STom Rini#    define alloca _alloca
324*d18719a4STom Rini#   else
325*d18719a4STom Rini#    define YYSTACK_ALLOC alloca
326*d18719a4STom Rini#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
327*d18719a4STom Rini#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
328*d18719a4STom Rini      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
329*d18719a4STom Rini#     ifndef EXIT_SUCCESS
330*d18719a4STom Rini#      define EXIT_SUCCESS 0
331*d18719a4STom Rini#     endif
332*d18719a4STom Rini#    endif
333*d18719a4STom Rini#   endif
334*d18719a4STom Rini#  endif
335*d18719a4STom Rini# endif
336*d18719a4STom Rini
337*d18719a4STom Rini# ifdef YYSTACK_ALLOC
338*d18719a4STom Rini   /* Pacify GCC's 'empty if-body' warning.  */
339*d18719a4STom Rini#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
340*d18719a4STom Rini#  ifndef YYSTACK_ALLOC_MAXIMUM
341*d18719a4STom Rini    /* The OS might guarantee only one guard page at the bottom of the stack,
342*d18719a4STom Rini       and a page size can be as small as 4096 bytes.  So we cannot safely
343*d18719a4STom Rini       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
344*d18719a4STom Rini       to allow for a few compiler-allocated temporary stack slots.  */
345*d18719a4STom Rini#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
346*d18719a4STom Rini#  endif
347*d18719a4STom Rini# else
348*d18719a4STom Rini#  define YYSTACK_ALLOC YYMALLOC
349*d18719a4STom Rini#  define YYSTACK_FREE YYFREE
350*d18719a4STom Rini#  ifndef YYSTACK_ALLOC_MAXIMUM
351*d18719a4STom Rini#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
352*d18719a4STom Rini#  endif
353*d18719a4STom Rini#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
354*d18719a4STom Rini       && ! ((defined YYMALLOC || defined malloc) \
355*d18719a4STom Rini             && (defined YYFREE || defined free)))
356*d18719a4STom Rini#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
357*d18719a4STom Rini#   ifndef EXIT_SUCCESS
358*d18719a4STom Rini#    define EXIT_SUCCESS 0
359*d18719a4STom Rini#   endif
360*d18719a4STom Rini#  endif
361*d18719a4STom Rini#  ifndef YYMALLOC
362*d18719a4STom Rini#   define YYMALLOC malloc
363*d18719a4STom Rini#   if ! defined malloc && ! defined EXIT_SUCCESS
364*d18719a4STom Rinivoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
365*d18719a4STom Rini#   endif
366*d18719a4STom Rini#  endif
367*d18719a4STom Rini#  ifndef YYFREE
368*d18719a4STom Rini#   define YYFREE free
369*d18719a4STom Rini#   if ! defined free && ! defined EXIT_SUCCESS
370*d18719a4STom Rinivoid free (void *); /* INFRINGES ON USER NAME SPACE */
371*d18719a4STom Rini#   endif
372*d18719a4STom Rini#  endif
373*d18719a4STom Rini# endif
374*d18719a4STom Rini#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
375*d18719a4STom Rini
376*d18719a4STom Rini
377*d18719a4STom Rini#if (! defined yyoverflow \
378*d18719a4STom Rini     && (! defined __cplusplus \
379*d18719a4STom Rini         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
380*d18719a4STom Rini             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
381*d18719a4STom Rini
382*d18719a4STom Rini/* A type that is properly aligned for any stack member.  */
383*d18719a4STom Riniunion yyalloc
384*d18719a4STom Rini{
385*d18719a4STom Rini  yytype_int16 yyss_alloc;
386*d18719a4STom Rini  YYSTYPE yyvs_alloc;
387*d18719a4STom Rini  YYLTYPE yyls_alloc;
388*d18719a4STom Rini};
389*d18719a4STom Rini
390*d18719a4STom Rini/* The size of the maximum gap between one aligned stack and the next.  */
391*d18719a4STom Rini# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
392*d18719a4STom Rini
393*d18719a4STom Rini/* The size of an array large to enough to hold all stacks, each with
394*d18719a4STom Rini   N elements.  */
395*d18719a4STom Rini# define YYSTACK_BYTES(N) \
396*d18719a4STom Rini     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
397*d18719a4STom Rini      + 2 * YYSTACK_GAP_MAXIMUM)
398*d18719a4STom Rini
399*d18719a4STom Rini# define YYCOPY_NEEDED 1
400*d18719a4STom Rini
401*d18719a4STom Rini/* Relocate STACK from its old location to the new one.  The
402*d18719a4STom Rini   local variables YYSIZE and YYSTACKSIZE give the old and new number of
403*d18719a4STom Rini   elements in the stack, and YYPTR gives the new location of the
404*d18719a4STom Rini   stack.  Advance YYPTR to a properly aligned location for the next
405*d18719a4STom Rini   stack.  */
406*d18719a4STom Rini# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
407*d18719a4STom Rini    do                                                                  \
408*d18719a4STom Rini      {                                                                 \
409*d18719a4STom Rini        YYSIZE_T yynewbytes;                                            \
410*d18719a4STom Rini        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
411*d18719a4STom Rini        Stack = &yyptr->Stack_alloc;                                    \
412*d18719a4STom Rini        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
413*d18719a4STom Rini        yyptr += yynewbytes / sizeof (*yyptr);                          \
414*d18719a4STom Rini      }                                                                 \
415*d18719a4STom Rini    while (0)
416*d18719a4STom Rini
417*d18719a4STom Rini#endif
418*d18719a4STom Rini
419*d18719a4STom Rini#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
420*d18719a4STom Rini/* Copy COUNT objects from SRC to DST.  The source and destination do
421*d18719a4STom Rini   not overlap.  */
422*d18719a4STom Rini# ifndef YYCOPY
423*d18719a4STom Rini#  if defined __GNUC__ && 1 < __GNUC__
424*d18719a4STom Rini#   define YYCOPY(Dst, Src, Count) \
425*d18719a4STom Rini      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
426*d18719a4STom Rini#  else
427*d18719a4STom Rini#   define YYCOPY(Dst, Src, Count)              \
428*d18719a4STom Rini      do                                        \
429*d18719a4STom Rini        {                                       \
430*d18719a4STom Rini          YYSIZE_T yyi;                         \
431*d18719a4STom Rini          for (yyi = 0; yyi < (Count); yyi++)   \
432*d18719a4STom Rini            (Dst)[yyi] = (Src)[yyi];            \
433*d18719a4STom Rini        }                                       \
434*d18719a4STom Rini      while (0)
435*d18719a4STom Rini#  endif
436*d18719a4STom Rini# endif
437*d18719a4STom Rini#endif /* !YYCOPY_NEEDED */
438*d18719a4STom Rini
439*d18719a4STom Rini/* YYFINAL -- State number of the termination state.  */
440*d18719a4STom Rini#define YYFINAL  6
441*d18719a4STom Rini/* YYLAST -- Last index in YYTABLE.  */
442*d18719a4STom Rini#define YYLAST   138
443*d18719a4STom Rini
444*d18719a4STom Rini/* YYNTOKENS -- Number of terminals.  */
445*d18719a4STom Rini#define YYNTOKENS  48
446*d18719a4STom Rini/* YYNNTS -- Number of nonterminals.  */
447*d18719a4STom Rini#define YYNNTS  30
448*d18719a4STom Rini/* YYNRULES -- Number of rules.  */
449*d18719a4STom Rini#define YYNRULES  84
450*d18719a4STom Rini/* YYNSTATES -- Number of states.  */
451*d18719a4STom Rini#define YYNSTATES  149
452*d18719a4STom Rini
453*d18719a4STom Rini/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
454*d18719a4STom Rini   by yylex, with out-of-bounds checking.  */
455*d18719a4STom Rini#define YYUNDEFTOK  2
456*d18719a4STom Rini#define YYMAXUTOK   279
457*d18719a4STom Rini
458*d18719a4STom Rini#define YYTRANSLATE(YYX)                                                \
459*d18719a4STom Rini  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
460*d18719a4STom Rini
461*d18719a4STom Rini/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
462*d18719a4STom Rini   as returned by yylex, without out-of-bounds checking.  */
463*d18719a4STom Rinistatic const yytype_uint8 yytranslate[] =
464*d18719a4STom Rini{
465*d18719a4STom Rini       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
466*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
467*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
468*d18719a4STom Rini       2,     2,     2,    47,     2,     2,     2,    45,    41,     2,
469*d18719a4STom Rini      33,    35,    44,    42,    34,    43,     2,    26,     2,     2,
470*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,    38,    25,
471*d18719a4STom Rini      36,    29,    30,    37,     2,     2,     2,     2,     2,     2,
472*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
473*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
474*d18719a4STom Rini       2,    31,     2,    32,    40,     2,     2,     2,     2,     2,
475*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
476*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
477*d18719a4STom Rini       2,     2,     2,    27,    39,    28,    46,     2,     2,     2,
478*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
479*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
480*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
481*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
482*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
483*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
484*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
485*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
486*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
487*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
488*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
489*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
490*d18719a4STom Rini       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
491*d18719a4STom Rini       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
492*d18719a4STom Rini      15,    16,    17,    18,    19,    20,    21,    22,    23,    24
493*d18719a4STom Rini};
494*d18719a4STom Rini
495*d18719a4STom Rini#if YYDEBUG
496*d18719a4STom Rini  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
497*d18719a4STom Rinistatic const yytype_uint16 yyrline[] =
498*d18719a4STom Rini{
499*d18719a4STom Rini       0,   109,   109,   117,   121,   128,   129,   139,   142,   149,
500*d18719a4STom Rini     153,   161,   165,   170,   181,   191,   206,   214,   217,   224,
501*d18719a4STom Rini     228,   232,   236,   244,   248,   252,   256,   260,   276,   286,
502*d18719a4STom Rini     294,   297,   301,   308,   324,   329,   348,   362,   369,   370,
503*d18719a4STom Rini     371,   378,   382,   383,   387,   388,   392,   393,   397,   398,
504*d18719a4STom Rini     402,   403,   407,   408,   412,   413,   414,   418,   419,   420,
505*d18719a4STom Rini     421,   422,   426,   427,   428,   432,   433,   434,   438,   439,
506*d18719a4STom Rini     448,   457,   461,   462,   463,   464,   469,   472,   476,   484,
507*d18719a4STom Rini     487,   491,   499,   503,   507
508*d18719a4STom Rini};
509*d18719a4STom Rini#endif
510*d18719a4STom Rini
511*d18719a4STom Rini#if YYDEBUG || YYERROR_VERBOSE || 0
512*d18719a4STom Rini/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
513*d18719a4STom Rini   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
514*d18719a4STom Rinistatic const char *const yytname[] =
515*d18719a4STom Rini{
516*d18719a4STom Rini  "$end", "error", "$undefined", "DT_V1", "DT_PLUGIN", "DT_MEMRESERVE",
517*d18719a4STom Rini  "DT_LSHIFT", "DT_RSHIFT", "DT_LE", "DT_GE", "DT_EQ", "DT_NE", "DT_AND",
518*d18719a4STom Rini  "DT_OR", "DT_BITS", "DT_DEL_PROP", "DT_DEL_NODE", "DT_PROPNODENAME",
519*d18719a4STom Rini  "DT_LITERAL", "DT_CHAR_LITERAL", "DT_BYTE", "DT_STRING", "DT_LABEL",
520*d18719a4STom Rini  "DT_REF", "DT_INCBIN", "';'", "'/'", "'{'", "'}'", "'='", "'>'", "'['",
521*d18719a4STom Rini  "']'", "'('", "','", "')'", "'<'", "'?'", "':'", "'|'", "'^'", "'&'",
522*d18719a4STom Rini  "'+'", "'-'", "'*'", "'%'", "'~'", "'!'", "$accept", "sourcefile",
523*d18719a4STom Rini  "header", "headers", "memreserves", "memreserve", "devicetree",
524*d18719a4STom Rini  "nodedef", "proplist", "propdef", "propdata", "propdataprefix",
525*d18719a4STom Rini  "arrayprefix", "integer_prim", "integer_expr", "integer_trinary",
526*d18719a4STom Rini  "integer_or", "integer_and", "integer_bitor", "integer_bitxor",
527*d18719a4STom Rini  "integer_bitand", "integer_eq", "integer_rela", "integer_shift",
528*d18719a4STom Rini  "integer_add", "integer_mul", "integer_unary", "bytestring", "subnodes",
529*d18719a4STom Rini  "subnode", YY_NULLPTR
530*d18719a4STom Rini};
531*d18719a4STom Rini#endif
532*d18719a4STom Rini
533*d18719a4STom Rini# ifdef YYPRINT
534*d18719a4STom Rini/* YYTOKNUM[NUM] -- (External) token number corresponding to the
535*d18719a4STom Rini   (internal) symbol number NUM (which must be that of a token).  */
536*d18719a4STom Rinistatic const yytype_uint16 yytoknum[] =
537*d18719a4STom Rini{
538*d18719a4STom Rini       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
539*d18719a4STom Rini     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
540*d18719a4STom Rini     275,   276,   277,   278,   279,    59,    47,   123,   125,    61,
541*d18719a4STom Rini      62,    91,    93,    40,    44,    41,    60,    63,    58,   124,
542*d18719a4STom Rini      94,    38,    43,    45,    42,    37,   126,    33
543*d18719a4STom Rini};
544*d18719a4STom Rini# endif
545*d18719a4STom Rini
546*d18719a4STom Rini#define YYPACT_NINF -44
547*d18719a4STom Rini
548*d18719a4STom Rini#define yypact_value_is_default(Yystate) \
549*d18719a4STom Rini  (!!((Yystate) == (-44)))
550*d18719a4STom Rini
551*d18719a4STom Rini#define YYTABLE_NINF -1
552*d18719a4STom Rini
553*d18719a4STom Rini#define yytable_value_is_error(Yytable_value) \
554*d18719a4STom Rini  0
555*d18719a4STom Rini
556*d18719a4STom Rini  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
557*d18719a4STom Rini     STATE-NUM.  */
558*d18719a4STom Rinistatic const yytype_int8 yypact[] =
559*d18719a4STom Rini{
560*d18719a4STom Rini      14,    27,    61,    14,     8,    18,   -44,   -44,    37,     8,
561*d18719a4STom Rini      40,     8,    64,   -44,   -44,   -12,    37,   -44,    50,    52,
562*d18719a4STom Rini     -44,   -44,   -12,   -12,   -12,   -44,    51,   -44,    -4,    78,
563*d18719a4STom Rini      53,    54,    55,    17,     2,    30,    38,    -3,   -44,    66,
564*d18719a4STom Rini     -44,   -44,    70,    72,    50,    50,   -44,   -44,   -44,   -44,
565*d18719a4STom Rini     -12,   -12,   -12,   -12,   -12,   -12,   -12,   -12,   -12,   -12,
566*d18719a4STom Rini     -12,   -12,   -12,   -12,   -12,   -12,   -12,   -12,   -12,   -44,
567*d18719a4STom Rini       3,    73,    50,   -44,   -44,    78,    59,    53,    54,    55,
568*d18719a4STom Rini      17,     2,     2,    30,    30,    30,    30,    38,    38,    -3,
569*d18719a4STom Rini      -3,   -44,   -44,   -44,    82,    83,    44,     3,   -44,    74,
570*d18719a4STom Rini       3,   -44,   -44,   -12,    76,    79,   -44,   -44,   -44,   -44,
571*d18719a4STom Rini     -44,    80,   -44,   -44,   -44,   -44,   -44,   -10,    36,   -44,
572*d18719a4STom Rini     -44,   -44,   -44,    85,   -44,   -44,   -44,    75,   -44,   -44,
573*d18719a4STom Rini      21,    71,    88,    -6,   -44,   -44,   -44,   -44,   -44,    11,
574*d18719a4STom Rini     -44,   -44,   -44,    37,   -44,    77,    37,    81,   -44
575*d18719a4STom Rini};
576*d18719a4STom Rini
577*d18719a4STom Rini  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
578*d18719a4STom Rini     Performed when YYTABLE does not specify something else to do.  Zero
579*d18719a4STom Rini     means the default is an error.  */
580*d18719a4STom Rinistatic const yytype_uint8 yydefact[] =
581*d18719a4STom Rini{
582*d18719a4STom Rini       0,     0,     0,     5,     7,     3,     1,     6,     0,     0,
583*d18719a4STom Rini       0,     7,     0,    38,    39,     0,     0,    10,     0,     2,
584*d18719a4STom Rini       8,     4,     0,     0,     0,    72,     0,    41,    42,    44,
585*d18719a4STom Rini      46,    48,    50,    52,    54,    57,    64,    67,    71,     0,
586*d18719a4STom Rini      17,    11,     0,     0,     0,     0,    73,    74,    75,    40,
587*d18719a4STom Rini       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
588*d18719a4STom Rini       0,     0,     0,     0,     0,     0,     0,     0,     0,     9,
589*d18719a4STom Rini      79,     0,     0,    14,    12,    45,     0,    47,    49,    51,
590*d18719a4STom Rini      53,    55,    56,    60,    61,    59,    58,    62,    63,    65,
591*d18719a4STom Rini      66,    69,    68,    70,     0,     0,     0,     0,    18,     0,
592*d18719a4STom Rini      79,    15,    13,     0,     0,     0,    20,    30,    82,    22,
593*d18719a4STom Rini      84,     0,    81,    80,    43,    21,    83,     0,     0,    16,
594*d18719a4STom Rini      29,    19,    31,     0,    23,    32,    26,     0,    76,    34,
595*d18719a4STom Rini       0,     0,     0,     0,    37,    36,    24,    35,    33,     0,
596*d18719a4STom Rini      77,    78,    25,     0,    28,     0,     0,     0,    27
597*d18719a4STom Rini};
598*d18719a4STom Rini
599*d18719a4STom Rini  /* YYPGOTO[NTERM-NUM].  */
600*d18719a4STom Rinistatic const yytype_int8 yypgoto[] =
601*d18719a4STom Rini{
602*d18719a4STom Rini     -44,   -44,   -44,   103,    99,   104,   -44,   -43,   -44,   -21,
603*d18719a4STom Rini     -44,   -44,   -44,    -8,    63,     9,   -44,    65,    67,    68,
604*d18719a4STom Rini      69,    62,    26,     4,    22,    23,   -19,   -44,    20,    28
605*d18719a4STom Rini};
606*d18719a4STom Rini
607*d18719a4STom Rini  /* YYDEFGOTO[NTERM-NUM].  */
608*d18719a4STom Rinistatic const yytype_int16 yydefgoto[] =
609*d18719a4STom Rini{
610*d18719a4STom Rini      -1,     2,     3,     4,    10,    11,    19,    41,    70,    98,
611*d18719a4STom Rini     117,   118,   130,    25,    26,    27,    28,    29,    30,    31,
612*d18719a4STom Rini      32,    33,    34,    35,    36,    37,    38,   133,    99,   100
613*d18719a4STom Rini};
614*d18719a4STom Rini
615*d18719a4STom Rini  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
616*d18719a4STom Rini     positive, shift that token.  If negative, reduce the rule whose
617*d18719a4STom Rini     number is the opposite.  If YYTABLE_NINF, syntax error.  */
618*d18719a4STom Rinistatic const yytype_uint8 yytable[] =
619*d18719a4STom Rini{
620*d18719a4STom Rini      16,    73,    74,    46,    47,    48,    13,    14,    39,    50,
621*d18719a4STom Rini      58,    59,   120,     8,   140,   121,   141,     1,    94,    95,
622*d18719a4STom Rini      96,    15,    12,    66,   122,    97,   142,    56,    57,   102,
623*d18719a4STom Rini       9,    22,    60,    51,    23,    24,    62,    63,    61,    13,
624*d18719a4STom Rini      14,    67,    68,   134,   135,   143,   144,    91,    92,    93,
625*d18719a4STom Rini     123,   136,     5,   108,    15,    13,    14,   124,   125,   126,
626*d18719a4STom Rini     127,     6,    83,    84,    85,    86,    18,   128,    42,   106,
627*d18719a4STom Rini      15,    40,   129,   107,    43,    44,   109,    40,    45,   112,
628*d18719a4STom Rini      64,    65,    81,    82,    87,    88,    49,    89,    90,    21,
629*d18719a4STom Rini      52,    69,    53,    71,    54,    72,    55,   103,   101,   104,
630*d18719a4STom Rini     105,   115,   111,   131,   116,   119,     7,   138,   132,   139,
631*d18719a4STom Rini      20,   146,   114,    17,    76,    75,   148,    80,     0,    77,
632*d18719a4STom Rini     113,    78,   137,    79,     0,   110,     0,     0,     0,     0,
633*d18719a4STom Rini       0,     0,     0,     0,     0,   145,     0,     0,   147
634*d18719a4STom Rini};
635*d18719a4STom Rini
636*d18719a4STom Rinistatic const yytype_int16 yycheck[] =
637*d18719a4STom Rini{
638*d18719a4STom Rini       8,    44,    45,    22,    23,    24,    18,    19,    16,    13,
639*d18719a4STom Rini       8,     9,    22,     5,    20,    25,    22,     3,    15,    16,
640*d18719a4STom Rini      17,    33,     4,    26,    34,    22,    32,    10,    11,    72,
641*d18719a4STom Rini      22,    43,    30,    37,    46,    47,     6,     7,    36,    18,
642*d18719a4STom Rini      19,    44,    45,    22,    23,    34,    35,    66,    67,    68,
643*d18719a4STom Rini      14,    30,    25,    96,    33,    18,    19,    21,    22,    23,
644*d18719a4STom Rini      24,     0,    58,    59,    60,    61,    26,    31,    16,    25,
645*d18719a4STom Rini      33,    27,    36,    29,    22,    23,    97,    27,    26,   100,
646*d18719a4STom Rini      42,    43,    56,    57,    62,    63,    35,    64,    65,    25,
647*d18719a4STom Rini      12,    25,    39,    23,    40,    23,    41,    38,    25,    17,
648*d18719a4STom Rini      17,    25,    28,    18,    25,    25,     3,    36,    33,    21,
649*d18719a4STom Rini      11,    34,   103,     9,    51,    50,    35,    55,    -1,    52,
650*d18719a4STom Rini     100,    53,   130,    54,    -1,    97,    -1,    -1,    -1,    -1,
651*d18719a4STom Rini      -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,   146
652*d18719a4STom Rini};
653*d18719a4STom Rini
654*d18719a4STom Rini  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
655*d18719a4STom Rini     symbol of state STATE-NUM.  */
656*d18719a4STom Rinistatic const yytype_uint8 yystos[] =
657*d18719a4STom Rini{
658*d18719a4STom Rini       0,     3,    49,    50,    51,    25,     0,    51,     5,    22,
659*d18719a4STom Rini      52,    53,     4,    18,    19,    33,    61,    53,    26,    54,
660*d18719a4STom Rini      52,    25,    43,    46,    47,    61,    62,    63,    64,    65,
661*d18719a4STom Rini      66,    67,    68,    69,    70,    71,    72,    73,    74,    61,
662*d18719a4STom Rini      27,    55,    16,    22,    23,    26,    74,    74,    74,    35,
663*d18719a4STom Rini      13,    37,    12,    39,    40,    41,    10,    11,     8,     9,
664*d18719a4STom Rini      30,    36,     6,     7,    42,    43,    26,    44,    45,    25,
665*d18719a4STom Rini      56,    23,    23,    55,    55,    65,    62,    66,    67,    68,
666*d18719a4STom Rini      69,    70,    70,    71,    71,    71,    71,    72,    72,    73,
667*d18719a4STom Rini      73,    74,    74,    74,    15,    16,    17,    22,    57,    76,
668*d18719a4STom Rini      77,    25,    55,    38,    17,    17,    25,    29,    55,    57,
669*d18719a4STom Rini      77,    28,    57,    76,    63,    25,    25,    58,    59,    25,
670*d18719a4STom Rini      22,    25,    34,    14,    21,    22,    23,    24,    31,    36,
671*d18719a4STom Rini      60,    18,    33,    75,    22,    23,    30,    61,    36,    21,
672*d18719a4STom Rini      20,    22,    32,    34,    35,    61,    34,    61,    35
673*d18719a4STom Rini};
674*d18719a4STom Rini
675*d18719a4STom Rini  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
676*d18719a4STom Rinistatic const yytype_uint8 yyr1[] =
677*d18719a4STom Rini{
678*d18719a4STom Rini       0,    48,    49,    50,    50,    51,    51,    52,    52,    53,
679*d18719a4STom Rini      53,    54,    54,    54,    54,    54,    55,    56,    56,    57,
680*d18719a4STom Rini      57,    57,    57,    58,    58,    58,    58,    58,    58,    58,
681*d18719a4STom Rini      59,    59,    59,    60,    60,    60,    60,    60,    61,    61,
682*d18719a4STom Rini      61,    62,    63,    63,    64,    64,    65,    65,    66,    66,
683*d18719a4STom Rini      67,    67,    68,    68,    69,    69,    69,    70,    70,    70,
684*d18719a4STom Rini      70,    70,    71,    71,    71,    72,    72,    72,    73,    73,
685*d18719a4STom Rini      73,    73,    74,    74,    74,    74,    75,    75,    75,    76,
686*d18719a4STom Rini      76,    76,    77,    77,    77
687*d18719a4STom Rini};
688*d18719a4STom Rini
689*d18719a4STom Rini  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
690*d18719a4STom Rinistatic const yytype_uint8 yyr2[] =
691*d18719a4STom Rini{
692*d18719a4STom Rini       0,     2,     3,     2,     4,     1,     2,     0,     2,     4,
693*d18719a4STom Rini       2,     2,     3,     4,     3,     4,     5,     0,     2,     4,
694*d18719a4STom Rini       2,     3,     2,     2,     3,     4,     2,     9,     5,     2,
695*d18719a4STom Rini       0,     2,     2,     3,     1,     2,     2,     2,     1,     1,
696*d18719a4STom Rini       3,     1,     1,     5,     1,     3,     1,     3,     1,     3,
697*d18719a4STom Rini       1,     3,     1,     3,     1,     3,     3,     1,     3,     3,
698*d18719a4STom Rini       3,     3,     3,     3,     1,     3,     3,     1,     3,     3,
699*d18719a4STom Rini       3,     1,     1,     2,     2,     2,     0,     2,     2,     0,
700*d18719a4STom Rini       2,     2,     2,     3,     2
701*d18719a4STom Rini};
702*d18719a4STom Rini
703*d18719a4STom Rini
704*d18719a4STom Rini#define yyerrok         (yyerrstatus = 0)
705*d18719a4STom Rini#define yyclearin       (yychar = YYEMPTY)
706*d18719a4STom Rini#define YYEMPTY         (-2)
707*d18719a4STom Rini#define YYEOF           0
708*d18719a4STom Rini
709*d18719a4STom Rini#define YYACCEPT        goto yyacceptlab
710*d18719a4STom Rini#define YYABORT         goto yyabortlab
711*d18719a4STom Rini#define YYERROR         goto yyerrorlab
712*d18719a4STom Rini
713*d18719a4STom Rini
714*d18719a4STom Rini#define YYRECOVERING()  (!!yyerrstatus)
715*d18719a4STom Rini
716*d18719a4STom Rini#define YYBACKUP(Token, Value)                                  \
717*d18719a4STom Rinido                                                              \
718*d18719a4STom Rini  if (yychar == YYEMPTY)                                        \
719*d18719a4STom Rini    {                                                           \
720*d18719a4STom Rini      yychar = (Token);                                         \
721*d18719a4STom Rini      yylval = (Value);                                         \
722*d18719a4STom Rini      YYPOPSTACK (yylen);                                       \
723*d18719a4STom Rini      yystate = *yyssp;                                         \
724*d18719a4STom Rini      goto yybackup;                                            \
725*d18719a4STom Rini    }                                                           \
726*d18719a4STom Rini  else                                                          \
727*d18719a4STom Rini    {                                                           \
728*d18719a4STom Rini      yyerror (YY_("syntax error: cannot back up")); \
729*d18719a4STom Rini      YYERROR;                                                  \
730*d18719a4STom Rini    }                                                           \
731*d18719a4STom Riniwhile (0)
732*d18719a4STom Rini
733*d18719a4STom Rini/* Error token number */
734*d18719a4STom Rini#define YYTERROR        1
735*d18719a4STom Rini#define YYERRCODE       256
736*d18719a4STom Rini
737*d18719a4STom Rini
738*d18719a4STom Rini/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
739*d18719a4STom Rini   If N is 0, then set CURRENT to the empty location which ends
740*d18719a4STom Rini   the previous symbol: RHS[0] (always defined).  */
741*d18719a4STom Rini
742*d18719a4STom Rini#ifndef YYLLOC_DEFAULT
743*d18719a4STom Rini# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
744*d18719a4STom Rini    do                                                                  \
745*d18719a4STom Rini      if (N)                                                            \
746*d18719a4STom Rini        {                                                               \
747*d18719a4STom Rini          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
748*d18719a4STom Rini          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
749*d18719a4STom Rini          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
750*d18719a4STom Rini          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
751*d18719a4STom Rini        }                                                               \
752*d18719a4STom Rini      else                                                              \
753*d18719a4STom Rini        {                                                               \
754*d18719a4STom Rini          (Current).first_line   = (Current).last_line   =              \
755*d18719a4STom Rini            YYRHSLOC (Rhs, 0).last_line;                                \
756*d18719a4STom Rini          (Current).first_column = (Current).last_column =              \
757*d18719a4STom Rini            YYRHSLOC (Rhs, 0).last_column;                              \
758*d18719a4STom Rini        }                                                               \
759*d18719a4STom Rini    while (0)
760*d18719a4STom Rini#endif
761*d18719a4STom Rini
762*d18719a4STom Rini#define YYRHSLOC(Rhs, K) ((Rhs)[K])
763*d18719a4STom Rini
764*d18719a4STom Rini
765*d18719a4STom Rini/* Enable debugging if requested.  */
766*d18719a4STom Rini#if YYDEBUG
767*d18719a4STom Rini
768*d18719a4STom Rini# ifndef YYFPRINTF
769*d18719a4STom Rini#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
770*d18719a4STom Rini#  define YYFPRINTF fprintf
771*d18719a4STom Rini# endif
772*d18719a4STom Rini
773*d18719a4STom Rini# define YYDPRINTF(Args)                        \
774*d18719a4STom Rinido {                                            \
775*d18719a4STom Rini  if (yydebug)                                  \
776*d18719a4STom Rini    YYFPRINTF Args;                             \
777*d18719a4STom Rini} while (0)
778*d18719a4STom Rini
779*d18719a4STom Rini
780*d18719a4STom Rini/* YY_LOCATION_PRINT -- Print the location on the stream.
781*d18719a4STom Rini   This macro was not mandated originally: define only if we know
782*d18719a4STom Rini   we won't break user code: when these are the locations we know.  */
783*d18719a4STom Rini
784*d18719a4STom Rini#ifndef YY_LOCATION_PRINT
785*d18719a4STom Rini# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
786*d18719a4STom Rini
787*d18719a4STom Rini/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
788*d18719a4STom Rini
789*d18719a4STom RiniYY_ATTRIBUTE_UNUSED
790*d18719a4STom Rinistatic unsigned
791*d18719a4STom Riniyy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
792*d18719a4STom Rini{
793*d18719a4STom Rini  unsigned res = 0;
794*d18719a4STom Rini  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
795*d18719a4STom Rini  if (0 <= yylocp->first_line)
796*d18719a4STom Rini    {
797*d18719a4STom Rini      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
798*d18719a4STom Rini      if (0 <= yylocp->first_column)
799*d18719a4STom Rini        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
800*d18719a4STom Rini    }
801*d18719a4STom Rini  if (0 <= yylocp->last_line)
802*d18719a4STom Rini    {
803*d18719a4STom Rini      if (yylocp->first_line < yylocp->last_line)
804*d18719a4STom Rini        {
805*d18719a4STom Rini          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
806*d18719a4STom Rini          if (0 <= end_col)
807*d18719a4STom Rini            res += YYFPRINTF (yyo, ".%d", end_col);
808*d18719a4STom Rini        }
809*d18719a4STom Rini      else if (0 <= end_col && yylocp->first_column < end_col)
810*d18719a4STom Rini        res += YYFPRINTF (yyo, "-%d", end_col);
811*d18719a4STom Rini    }
812*d18719a4STom Rini  return res;
813*d18719a4STom Rini }
814*d18719a4STom Rini
815*d18719a4STom Rini#  define YY_LOCATION_PRINT(File, Loc)          \
816*d18719a4STom Rini  yy_location_print_ (File, &(Loc))
817*d18719a4STom Rini
818*d18719a4STom Rini# else
819*d18719a4STom Rini#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
820*d18719a4STom Rini# endif
821*d18719a4STom Rini#endif
822*d18719a4STom Rini
823*d18719a4STom Rini
824*d18719a4STom Rini# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
825*d18719a4STom Rinido {                                                                      \
826*d18719a4STom Rini  if (yydebug)                                                            \
827*d18719a4STom Rini    {                                                                     \
828*d18719a4STom Rini      YYFPRINTF (stderr, "%s ", Title);                                   \
829*d18719a4STom Rini      yy_symbol_print (stderr,                                            \
830*d18719a4STom Rini                  Type, Value, Location); \
831*d18719a4STom Rini      YYFPRINTF (stderr, "\n");                                           \
832*d18719a4STom Rini    }                                                                     \
833*d18719a4STom Rini} while (0)
834*d18719a4STom Rini
835*d18719a4STom Rini
836*d18719a4STom Rini/*----------------------------------------.
837*d18719a4STom Rini| Print this symbol's value on YYOUTPUT.  |
838*d18719a4STom Rini`----------------------------------------*/
839*d18719a4STom Rini
840*d18719a4STom Rinistatic void
841*d18719a4STom Riniyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
842*d18719a4STom Rini{
843*d18719a4STom Rini  FILE *yyo = yyoutput;
844*d18719a4STom Rini  YYUSE (yyo);
845*d18719a4STom Rini  YYUSE (yylocationp);
846*d18719a4STom Rini  if (!yyvaluep)
847*d18719a4STom Rini    return;
848*d18719a4STom Rini# ifdef YYPRINT
849*d18719a4STom Rini  if (yytype < YYNTOKENS)
850*d18719a4STom Rini    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
851*d18719a4STom Rini# endif
852*d18719a4STom Rini  YYUSE (yytype);
853*d18719a4STom Rini}
854*d18719a4STom Rini
855*d18719a4STom Rini
856*d18719a4STom Rini/*--------------------------------.
857*d18719a4STom Rini| Print this symbol on YYOUTPUT.  |
858*d18719a4STom Rini`--------------------------------*/
859*d18719a4STom Rini
860*d18719a4STom Rinistatic void
861*d18719a4STom Riniyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
862*d18719a4STom Rini{
863*d18719a4STom Rini  YYFPRINTF (yyoutput, "%s %s (",
864*d18719a4STom Rini             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
865*d18719a4STom Rini
866*d18719a4STom Rini  YY_LOCATION_PRINT (yyoutput, *yylocationp);
867*d18719a4STom Rini  YYFPRINTF (yyoutput, ": ");
868*d18719a4STom Rini  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
869*d18719a4STom Rini  YYFPRINTF (yyoutput, ")");
870*d18719a4STom Rini}
871*d18719a4STom Rini
872*d18719a4STom Rini/*------------------------------------------------------------------.
873*d18719a4STom Rini| yy_stack_print -- Print the state stack from its BOTTOM up to its |
874*d18719a4STom Rini| TOP (included).                                                   |
875*d18719a4STom Rini`------------------------------------------------------------------*/
876*d18719a4STom Rini
877*d18719a4STom Rinistatic void
878*d18719a4STom Riniyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
879*d18719a4STom Rini{
880*d18719a4STom Rini  YYFPRINTF (stderr, "Stack now");
881*d18719a4STom Rini  for (; yybottom <= yytop; yybottom++)
882*d18719a4STom Rini    {
883*d18719a4STom Rini      int yybot = *yybottom;
884*d18719a4STom Rini      YYFPRINTF (stderr, " %d", yybot);
885*d18719a4STom Rini    }
886*d18719a4STom Rini  YYFPRINTF (stderr, "\n");
887*d18719a4STom Rini}
888*d18719a4STom Rini
889*d18719a4STom Rini# define YY_STACK_PRINT(Bottom, Top)                            \
890*d18719a4STom Rinido {                                                            \
891*d18719a4STom Rini  if (yydebug)                                                  \
892*d18719a4STom Rini    yy_stack_print ((Bottom), (Top));                           \
893*d18719a4STom Rini} while (0)
894*d18719a4STom Rini
895*d18719a4STom Rini
896*d18719a4STom Rini/*------------------------------------------------.
897*d18719a4STom Rini| Report that the YYRULE is going to be reduced.  |
898*d18719a4STom Rini`------------------------------------------------*/
899*d18719a4STom Rini
900*d18719a4STom Rinistatic void
901*d18719a4STom Riniyy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
902*d18719a4STom Rini{
903*d18719a4STom Rini  unsigned long int yylno = yyrline[yyrule];
904*d18719a4STom Rini  int yynrhs = yyr2[yyrule];
905*d18719a4STom Rini  int yyi;
906*d18719a4STom Rini  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
907*d18719a4STom Rini             yyrule - 1, yylno);
908*d18719a4STom Rini  /* The symbols being reduced.  */
909*d18719a4STom Rini  for (yyi = 0; yyi < yynrhs; yyi++)
910*d18719a4STom Rini    {
911*d18719a4STom Rini      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
912*d18719a4STom Rini      yy_symbol_print (stderr,
913*d18719a4STom Rini                       yystos[yyssp[yyi + 1 - yynrhs]],
914*d18719a4STom Rini                       &(yyvsp[(yyi + 1) - (yynrhs)])
915*d18719a4STom Rini                       , &(yylsp[(yyi + 1) - (yynrhs)])                       );
916*d18719a4STom Rini      YYFPRINTF (stderr, "\n");
917*d18719a4STom Rini    }
918*d18719a4STom Rini}
919*d18719a4STom Rini
920*d18719a4STom Rini# define YY_REDUCE_PRINT(Rule)          \
921*d18719a4STom Rinido {                                    \
922*d18719a4STom Rini  if (yydebug)                          \
923*d18719a4STom Rini    yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \
924*d18719a4STom Rini} while (0)
925*d18719a4STom Rini
926*d18719a4STom Rini/* Nonzero means print parse trace.  It is left uninitialized so that
927*d18719a4STom Rini   multiple parsers can coexist.  */
928*d18719a4STom Riniint yydebug;
929*d18719a4STom Rini#else /* !YYDEBUG */
930*d18719a4STom Rini# define YYDPRINTF(Args)
931*d18719a4STom Rini# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
932*d18719a4STom Rini# define YY_STACK_PRINT(Bottom, Top)
933*d18719a4STom Rini# define YY_REDUCE_PRINT(Rule)
934*d18719a4STom Rini#endif /* !YYDEBUG */
935*d18719a4STom Rini
936*d18719a4STom Rini
937*d18719a4STom Rini/* YYINITDEPTH -- initial size of the parser's stacks.  */
938*d18719a4STom Rini#ifndef YYINITDEPTH
939*d18719a4STom Rini# define YYINITDEPTH 200
940*d18719a4STom Rini#endif
941*d18719a4STom Rini
942*d18719a4STom Rini/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
943*d18719a4STom Rini   if the built-in stack extension method is used).
944*d18719a4STom Rini
945*d18719a4STom Rini   Do not make this value too large; the results are undefined if
946*d18719a4STom Rini   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
947*d18719a4STom Rini   evaluated with infinite-precision integer arithmetic.  */
948*d18719a4STom Rini
949*d18719a4STom Rini#ifndef YYMAXDEPTH
950*d18719a4STom Rini# define YYMAXDEPTH 10000
951*d18719a4STom Rini#endif
952*d18719a4STom Rini
953*d18719a4STom Rini
954*d18719a4STom Rini#if YYERROR_VERBOSE
955*d18719a4STom Rini
956*d18719a4STom Rini# ifndef yystrlen
957*d18719a4STom Rini#  if defined __GLIBC__ && defined _STRING_H
958*d18719a4STom Rini#   define yystrlen strlen
959*d18719a4STom Rini#  else
960*d18719a4STom Rini/* Return the length of YYSTR.  */
961*d18719a4STom Rinistatic YYSIZE_T
962*d18719a4STom Riniyystrlen (const char *yystr)
963*d18719a4STom Rini{
964*d18719a4STom Rini  YYSIZE_T yylen;
965*d18719a4STom Rini  for (yylen = 0; yystr[yylen]; yylen++)
966*d18719a4STom Rini    continue;
967*d18719a4STom Rini  return yylen;
968*d18719a4STom Rini}
969*d18719a4STom Rini#  endif
970*d18719a4STom Rini# endif
971*d18719a4STom Rini
972*d18719a4STom Rini# ifndef yystpcpy
973*d18719a4STom Rini#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
974*d18719a4STom Rini#   define yystpcpy stpcpy
975*d18719a4STom Rini#  else
976*d18719a4STom Rini/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
977*d18719a4STom Rini   YYDEST.  */
978*d18719a4STom Rinistatic char *
979*d18719a4STom Riniyystpcpy (char *yydest, const char *yysrc)
980*d18719a4STom Rini{
981*d18719a4STom Rini  char *yyd = yydest;
982*d18719a4STom Rini  const char *yys = yysrc;
983*d18719a4STom Rini
984*d18719a4STom Rini  while ((*yyd++ = *yys++) != '\0')
985*d18719a4STom Rini    continue;
986*d18719a4STom Rini
987*d18719a4STom Rini  return yyd - 1;
988*d18719a4STom Rini}
989*d18719a4STom Rini#  endif
990*d18719a4STom Rini# endif
991*d18719a4STom Rini
992*d18719a4STom Rini# ifndef yytnamerr
993*d18719a4STom Rini/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
994*d18719a4STom Rini   quotes and backslashes, so that it's suitable for yyerror.  The
995*d18719a4STom Rini   heuristic is that double-quoting is unnecessary unless the string
996*d18719a4STom Rini   contains an apostrophe, a comma, or backslash (other than
997*d18719a4STom Rini   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
998*d18719a4STom Rini   null, do not copy; instead, return the length of what the result
999*d18719a4STom Rini   would have been.  */
1000*d18719a4STom Rinistatic YYSIZE_T
1001*d18719a4STom Riniyytnamerr (char *yyres, const char *yystr)
1002*d18719a4STom Rini{
1003*d18719a4STom Rini  if (*yystr == '"')
1004*d18719a4STom Rini    {
1005*d18719a4STom Rini      YYSIZE_T yyn = 0;
1006*d18719a4STom Rini      char const *yyp = yystr;
1007*d18719a4STom Rini
1008*d18719a4STom Rini      for (;;)
1009*d18719a4STom Rini        switch (*++yyp)
1010*d18719a4STom Rini          {
1011*d18719a4STom Rini          case '\'':
1012*d18719a4STom Rini          case ',':
1013*d18719a4STom Rini            goto do_not_strip_quotes;
1014*d18719a4STom Rini
1015*d18719a4STom Rini          case '\\':
1016*d18719a4STom Rini            if (*++yyp != '\\')
1017*d18719a4STom Rini              goto do_not_strip_quotes;
1018*d18719a4STom Rini            /* Fall through.  */
1019*d18719a4STom Rini          default:
1020*d18719a4STom Rini            if (yyres)
1021*d18719a4STom Rini              yyres[yyn] = *yyp;
1022*d18719a4STom Rini            yyn++;
1023*d18719a4STom Rini            break;
1024*d18719a4STom Rini
1025*d18719a4STom Rini          case '"':
1026*d18719a4STom Rini            if (yyres)
1027*d18719a4STom Rini              yyres[yyn] = '\0';
1028*d18719a4STom Rini            return yyn;
1029*d18719a4STom Rini          }
1030*d18719a4STom Rini    do_not_strip_quotes: ;
1031*d18719a4STom Rini    }
1032*d18719a4STom Rini
1033*d18719a4STom Rini  if (! yyres)
1034*d18719a4STom Rini    return yystrlen (yystr);
1035*d18719a4STom Rini
1036*d18719a4STom Rini  return yystpcpy (yyres, yystr) - yyres;
1037*d18719a4STom Rini}
1038*d18719a4STom Rini# endif
1039*d18719a4STom Rini
1040*d18719a4STom Rini/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1041*d18719a4STom Rini   about the unexpected token YYTOKEN for the state stack whose top is
1042*d18719a4STom Rini   YYSSP.
1043*d18719a4STom Rini
1044*d18719a4STom Rini   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1045*d18719a4STom Rini   not large enough to hold the message.  In that case, also set
1046*d18719a4STom Rini   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1047*d18719a4STom Rini   required number of bytes is too large to store.  */
1048*d18719a4STom Rinistatic int
1049*d18719a4STom Riniyysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1050*d18719a4STom Rini                yytype_int16 *yyssp, int yytoken)
1051*d18719a4STom Rini{
1052*d18719a4STom Rini  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1053*d18719a4STom Rini  YYSIZE_T yysize = yysize0;
1054*d18719a4STom Rini  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1055*d18719a4STom Rini  /* Internationalized format string. */
1056*d18719a4STom Rini  const char *yyformat = YY_NULLPTR;
1057*d18719a4STom Rini  /* Arguments of yyformat. */
1058*d18719a4STom Rini  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1059*d18719a4STom Rini  /* Number of reported tokens (one for the "unexpected", one per
1060*d18719a4STom Rini     "expected"). */
1061*d18719a4STom Rini  int yycount = 0;
1062*d18719a4STom Rini
1063*d18719a4STom Rini  /* There are many possibilities here to consider:
1064*d18719a4STom Rini     - If this state is a consistent state with a default action, then
1065*d18719a4STom Rini       the only way this function was invoked is if the default action
1066*d18719a4STom Rini       is an error action.  In that case, don't check for expected
1067*d18719a4STom Rini       tokens because there are none.
1068*d18719a4STom Rini     - The only way there can be no lookahead present (in yychar) is if
1069*d18719a4STom Rini       this state is a consistent state with a default action.  Thus,
1070*d18719a4STom Rini       detecting the absence of a lookahead is sufficient to determine
1071*d18719a4STom Rini       that there is no unexpected or expected token to report.  In that
1072*d18719a4STom Rini       case, just report a simple "syntax error".
1073*d18719a4STom Rini     - Don't assume there isn't a lookahead just because this state is a
1074*d18719a4STom Rini       consistent state with a default action.  There might have been a
1075*d18719a4STom Rini       previous inconsistent state, consistent state with a non-default
1076*d18719a4STom Rini       action, or user semantic action that manipulated yychar.
1077*d18719a4STom Rini     - Of course, the expected token list depends on states to have
1078*d18719a4STom Rini       correct lookahead information, and it depends on the parser not
1079*d18719a4STom Rini       to perform extra reductions after fetching a lookahead from the
1080*d18719a4STom Rini       scanner and before detecting a syntax error.  Thus, state merging
1081*d18719a4STom Rini       (from LALR or IELR) and default reductions corrupt the expected
1082*d18719a4STom Rini       token list.  However, the list is correct for canonical LR with
1083*d18719a4STom Rini       one exception: it will still contain any token that will not be
1084*d18719a4STom Rini       accepted due to an error action in a later state.
1085*d18719a4STom Rini  */
1086*d18719a4STom Rini  if (yytoken != YYEMPTY)
1087*d18719a4STom Rini    {
1088*d18719a4STom Rini      int yyn = yypact[*yyssp];
1089*d18719a4STom Rini      yyarg[yycount++] = yytname[yytoken];
1090*d18719a4STom Rini      if (!yypact_value_is_default (yyn))
1091*d18719a4STom Rini        {
1092*d18719a4STom Rini          /* Start YYX at -YYN if negative to avoid negative indexes in
1093*d18719a4STom Rini             YYCHECK.  In other words, skip the first -YYN actions for
1094*d18719a4STom Rini             this state because they are default actions.  */
1095*d18719a4STom Rini          int yyxbegin = yyn < 0 ? -yyn : 0;
1096*d18719a4STom Rini          /* Stay within bounds of both yycheck and yytname.  */
1097*d18719a4STom Rini          int yychecklim = YYLAST - yyn + 1;
1098*d18719a4STom Rini          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1099*d18719a4STom Rini          int yyx;
1100*d18719a4STom Rini
1101*d18719a4STom Rini          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1102*d18719a4STom Rini            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1103*d18719a4STom Rini                && !yytable_value_is_error (yytable[yyx + yyn]))
1104*d18719a4STom Rini              {
1105*d18719a4STom Rini                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1106*d18719a4STom Rini                  {
1107*d18719a4STom Rini                    yycount = 1;
1108*d18719a4STom Rini                    yysize = yysize0;
1109*d18719a4STom Rini                    break;
1110*d18719a4STom Rini                  }
1111*d18719a4STom Rini                yyarg[yycount++] = yytname[yyx];
1112*d18719a4STom Rini                {
1113*d18719a4STom Rini                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1114*d18719a4STom Rini                  if (! (yysize <= yysize1
1115*d18719a4STom Rini                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1116*d18719a4STom Rini                    return 2;
1117*d18719a4STom Rini                  yysize = yysize1;
1118*d18719a4STom Rini                }
1119*d18719a4STom Rini              }
1120*d18719a4STom Rini        }
1121*d18719a4STom Rini    }
1122*d18719a4STom Rini
1123*d18719a4STom Rini  switch (yycount)
1124*d18719a4STom Rini    {
1125*d18719a4STom Rini# define YYCASE_(N, S)                      \
1126*d18719a4STom Rini      case N:                               \
1127*d18719a4STom Rini        yyformat = S;                       \
1128*d18719a4STom Rini      break
1129*d18719a4STom Rini      YYCASE_(0, YY_("syntax error"));
1130*d18719a4STom Rini      YYCASE_(1, YY_("syntax error, unexpected %s"));
1131*d18719a4STom Rini      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1132*d18719a4STom Rini      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1133*d18719a4STom Rini      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1134*d18719a4STom Rini      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1135*d18719a4STom Rini# undef YYCASE_
1136*d18719a4STom Rini    }
1137*d18719a4STom Rini
1138*d18719a4STom Rini  {
1139*d18719a4STom Rini    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1140*d18719a4STom Rini    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1141*d18719a4STom Rini      return 2;
1142*d18719a4STom Rini    yysize = yysize1;
1143*d18719a4STom Rini  }
1144*d18719a4STom Rini
1145*d18719a4STom Rini  if (*yymsg_alloc < yysize)
1146*d18719a4STom Rini    {
1147*d18719a4STom Rini      *yymsg_alloc = 2 * yysize;
1148*d18719a4STom Rini      if (! (yysize <= *yymsg_alloc
1149*d18719a4STom Rini             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1150*d18719a4STom Rini        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1151*d18719a4STom Rini      return 1;
1152*d18719a4STom Rini    }
1153*d18719a4STom Rini
1154*d18719a4STom Rini  /* Avoid sprintf, as that infringes on the user's name space.
1155*d18719a4STom Rini     Don't have undefined behavior even if the translation
1156*d18719a4STom Rini     produced a string with the wrong number of "%s"s.  */
1157*d18719a4STom Rini  {
1158*d18719a4STom Rini    char *yyp = *yymsg;
1159*d18719a4STom Rini    int yyi = 0;
1160*d18719a4STom Rini    while ((*yyp = *yyformat) != '\0')
1161*d18719a4STom Rini      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1162*d18719a4STom Rini        {
1163*d18719a4STom Rini          yyp += yytnamerr (yyp, yyarg[yyi++]);
1164*d18719a4STom Rini          yyformat += 2;
1165*d18719a4STom Rini        }
1166*d18719a4STom Rini      else
1167*d18719a4STom Rini        {
1168*d18719a4STom Rini          yyp++;
1169*d18719a4STom Rini          yyformat++;
1170*d18719a4STom Rini        }
1171*d18719a4STom Rini  }
1172*d18719a4STom Rini  return 0;
1173*d18719a4STom Rini}
1174*d18719a4STom Rini#endif /* YYERROR_VERBOSE */
1175*d18719a4STom Rini
1176*d18719a4STom Rini/*-----------------------------------------------.
1177*d18719a4STom Rini| Release the memory associated to this symbol.  |
1178*d18719a4STom Rini`-----------------------------------------------*/
1179*d18719a4STom Rini
1180*d18719a4STom Rinistatic void
1181*d18719a4STom Riniyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1182*d18719a4STom Rini{
1183*d18719a4STom Rini  YYUSE (yyvaluep);
1184*d18719a4STom Rini  YYUSE (yylocationp);
1185*d18719a4STom Rini  if (!yymsg)
1186*d18719a4STom Rini    yymsg = "Deleting";
1187*d18719a4STom Rini  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1188*d18719a4STom Rini
1189*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1190*d18719a4STom Rini  YYUSE (yytype);
1191*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_END
1192*d18719a4STom Rini}
1193*d18719a4STom Rini
1194*d18719a4STom Rini
1195*d18719a4STom Rini
1196*d18719a4STom Rini
1197*d18719a4STom Rini/* The lookahead symbol.  */
1198*d18719a4STom Riniint yychar;
1199*d18719a4STom Rini
1200*d18719a4STom Rini/* The semantic value of the lookahead symbol.  */
1201*d18719a4STom RiniYYSTYPE yylval;
1202*d18719a4STom Rini/* Location data for the lookahead symbol.  */
1203*d18719a4STom RiniYYLTYPE yylloc
1204*d18719a4STom Rini# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1205*d18719a4STom Rini  = { 1, 1, 1, 1 }
1206*d18719a4STom Rini# endif
1207*d18719a4STom Rini;
1208*d18719a4STom Rini/* Number of syntax errors so far.  */
1209*d18719a4STom Riniint yynerrs;
1210*d18719a4STom Rini
1211*d18719a4STom Rini
1212*d18719a4STom Rini/*----------.
1213*d18719a4STom Rini| yyparse.  |
1214*d18719a4STom Rini`----------*/
1215*d18719a4STom Rini
1216*d18719a4STom Riniint
1217*d18719a4STom Riniyyparse (void)
1218*d18719a4STom Rini{
1219*d18719a4STom Rini    int yystate;
1220*d18719a4STom Rini    /* Number of tokens to shift before error messages enabled.  */
1221*d18719a4STom Rini    int yyerrstatus;
1222*d18719a4STom Rini
1223*d18719a4STom Rini    /* The stacks and their tools:
1224*d18719a4STom Rini       'yyss': related to states.
1225*d18719a4STom Rini       'yyvs': related to semantic values.
1226*d18719a4STom Rini       'yyls': related to locations.
1227*d18719a4STom Rini
1228*d18719a4STom Rini       Refer to the stacks through separate pointers, to allow yyoverflow
1229*d18719a4STom Rini       to reallocate them elsewhere.  */
1230*d18719a4STom Rini
1231*d18719a4STom Rini    /* The state stack.  */
1232*d18719a4STom Rini    yytype_int16 yyssa[YYINITDEPTH];
1233*d18719a4STom Rini    yytype_int16 *yyss;
1234*d18719a4STom Rini    yytype_int16 *yyssp;
1235*d18719a4STom Rini
1236*d18719a4STom Rini    /* The semantic value stack.  */
1237*d18719a4STom Rini    YYSTYPE yyvsa[YYINITDEPTH];
1238*d18719a4STom Rini    YYSTYPE *yyvs;
1239*d18719a4STom Rini    YYSTYPE *yyvsp;
1240*d18719a4STom Rini
1241*d18719a4STom Rini    /* The location stack.  */
1242*d18719a4STom Rini    YYLTYPE yylsa[YYINITDEPTH];
1243*d18719a4STom Rini    YYLTYPE *yyls;
1244*d18719a4STom Rini    YYLTYPE *yylsp;
1245*d18719a4STom Rini
1246*d18719a4STom Rini    /* The locations where the error started and ended.  */
1247*d18719a4STom Rini    YYLTYPE yyerror_range[3];
1248*d18719a4STom Rini
1249*d18719a4STom Rini    YYSIZE_T yystacksize;
1250*d18719a4STom Rini
1251*d18719a4STom Rini  int yyn;
1252*d18719a4STom Rini  int yyresult;
1253*d18719a4STom Rini  /* Lookahead token as an internal (translated) token number.  */
1254*d18719a4STom Rini  int yytoken = 0;
1255*d18719a4STom Rini  /* The variables used to return semantic value and location from the
1256*d18719a4STom Rini     action routines.  */
1257*d18719a4STom Rini  YYSTYPE yyval;
1258*d18719a4STom Rini  YYLTYPE yyloc;
1259*d18719a4STom Rini
1260*d18719a4STom Rini#if YYERROR_VERBOSE
1261*d18719a4STom Rini  /* Buffer for error messages, and its allocated size.  */
1262*d18719a4STom Rini  char yymsgbuf[128];
1263*d18719a4STom Rini  char *yymsg = yymsgbuf;
1264*d18719a4STom Rini  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1265*d18719a4STom Rini#endif
1266*d18719a4STom Rini
1267*d18719a4STom Rini#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
1268*d18719a4STom Rini
1269*d18719a4STom Rini  /* The number of symbols on the RHS of the reduced rule.
1270*d18719a4STom Rini     Keep to zero when no symbol should be popped.  */
1271*d18719a4STom Rini  int yylen = 0;
1272*d18719a4STom Rini
1273*d18719a4STom Rini  yyssp = yyss = yyssa;
1274*d18719a4STom Rini  yyvsp = yyvs = yyvsa;
1275*d18719a4STom Rini  yylsp = yyls = yylsa;
1276*d18719a4STom Rini  yystacksize = YYINITDEPTH;
1277*d18719a4STom Rini
1278*d18719a4STom Rini  YYDPRINTF ((stderr, "Starting parse\n"));
1279*d18719a4STom Rini
1280*d18719a4STom Rini  yystate = 0;
1281*d18719a4STom Rini  yyerrstatus = 0;
1282*d18719a4STom Rini  yynerrs = 0;
1283*d18719a4STom Rini  yychar = YYEMPTY; /* Cause a token to be read.  */
1284*d18719a4STom Rini  yylsp[0] = yylloc;
1285*d18719a4STom Rini  goto yysetstate;
1286*d18719a4STom Rini
1287*d18719a4STom Rini/*------------------------------------------------------------.
1288*d18719a4STom Rini| yynewstate -- Push a new state, which is found in yystate.  |
1289*d18719a4STom Rini`------------------------------------------------------------*/
1290*d18719a4STom Rini yynewstate:
1291*d18719a4STom Rini  /* In all cases, when you get here, the value and location stacks
1292*d18719a4STom Rini     have just been pushed.  So pushing a state here evens the stacks.  */
1293*d18719a4STom Rini  yyssp++;
1294*d18719a4STom Rini
1295*d18719a4STom Rini yysetstate:
1296*d18719a4STom Rini  *yyssp = yystate;
1297*d18719a4STom Rini
1298*d18719a4STom Rini  if (yyss + yystacksize - 1 <= yyssp)
1299*d18719a4STom Rini    {
1300*d18719a4STom Rini      /* Get the current used size of the three stacks, in elements.  */
1301*d18719a4STom Rini      YYSIZE_T yysize = yyssp - yyss + 1;
1302*d18719a4STom Rini
1303*d18719a4STom Rini#ifdef yyoverflow
1304*d18719a4STom Rini      {
1305*d18719a4STom Rini        /* Give user a chance to reallocate the stack.  Use copies of
1306*d18719a4STom Rini           these so that the &'s don't force the real ones into
1307*d18719a4STom Rini           memory.  */
1308*d18719a4STom Rini        YYSTYPE *yyvs1 = yyvs;
1309*d18719a4STom Rini        yytype_int16 *yyss1 = yyss;
1310*d18719a4STom Rini        YYLTYPE *yyls1 = yyls;
1311*d18719a4STom Rini
1312*d18719a4STom Rini        /* Each stack pointer address is followed by the size of the
1313*d18719a4STom Rini           data in use in that stack, in bytes.  This used to be a
1314*d18719a4STom Rini           conditional around just the two extra args, but that might
1315*d18719a4STom Rini           be undefined if yyoverflow is a macro.  */
1316*d18719a4STom Rini        yyoverflow (YY_("memory exhausted"),
1317*d18719a4STom Rini                    &yyss1, yysize * sizeof (*yyssp),
1318*d18719a4STom Rini                    &yyvs1, yysize * sizeof (*yyvsp),
1319*d18719a4STom Rini                    &yyls1, yysize * sizeof (*yylsp),
1320*d18719a4STom Rini                    &yystacksize);
1321*d18719a4STom Rini
1322*d18719a4STom Rini        yyls = yyls1;
1323*d18719a4STom Rini        yyss = yyss1;
1324*d18719a4STom Rini        yyvs = yyvs1;
1325*d18719a4STom Rini      }
1326*d18719a4STom Rini#else /* no yyoverflow */
1327*d18719a4STom Rini# ifndef YYSTACK_RELOCATE
1328*d18719a4STom Rini      goto yyexhaustedlab;
1329*d18719a4STom Rini# else
1330*d18719a4STom Rini      /* Extend the stack our own way.  */
1331*d18719a4STom Rini      if (YYMAXDEPTH <= yystacksize)
1332*d18719a4STom Rini        goto yyexhaustedlab;
1333*d18719a4STom Rini      yystacksize *= 2;
1334*d18719a4STom Rini      if (YYMAXDEPTH < yystacksize)
1335*d18719a4STom Rini        yystacksize = YYMAXDEPTH;
1336*d18719a4STom Rini
1337*d18719a4STom Rini      {
1338*d18719a4STom Rini        yytype_int16 *yyss1 = yyss;
1339*d18719a4STom Rini        union yyalloc *yyptr =
1340*d18719a4STom Rini          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1341*d18719a4STom Rini        if (! yyptr)
1342*d18719a4STom Rini          goto yyexhaustedlab;
1343*d18719a4STom Rini        YYSTACK_RELOCATE (yyss_alloc, yyss);
1344*d18719a4STom Rini        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1345*d18719a4STom Rini        YYSTACK_RELOCATE (yyls_alloc, yyls);
1346*d18719a4STom Rini#  undef YYSTACK_RELOCATE
1347*d18719a4STom Rini        if (yyss1 != yyssa)
1348*d18719a4STom Rini          YYSTACK_FREE (yyss1);
1349*d18719a4STom Rini      }
1350*d18719a4STom Rini# endif
1351*d18719a4STom Rini#endif /* no yyoverflow */
1352*d18719a4STom Rini
1353*d18719a4STom Rini      yyssp = yyss + yysize - 1;
1354*d18719a4STom Rini      yyvsp = yyvs + yysize - 1;
1355*d18719a4STom Rini      yylsp = yyls + yysize - 1;
1356*d18719a4STom Rini
1357*d18719a4STom Rini      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1358*d18719a4STom Rini                  (unsigned long int) yystacksize));
1359*d18719a4STom Rini
1360*d18719a4STom Rini      if (yyss + yystacksize - 1 <= yyssp)
1361*d18719a4STom Rini        YYABORT;
1362*d18719a4STom Rini    }
1363*d18719a4STom Rini
1364*d18719a4STom Rini  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1365*d18719a4STom Rini
1366*d18719a4STom Rini  if (yystate == YYFINAL)
1367*d18719a4STom Rini    YYACCEPT;
1368*d18719a4STom Rini
1369*d18719a4STom Rini  goto yybackup;
1370*d18719a4STom Rini
1371*d18719a4STom Rini/*-----------.
1372*d18719a4STom Rini| yybackup.  |
1373*d18719a4STom Rini`-----------*/
1374*d18719a4STom Riniyybackup:
1375*d18719a4STom Rini
1376*d18719a4STom Rini  /* Do appropriate processing given the current state.  Read a
1377*d18719a4STom Rini     lookahead token if we need one and don't already have one.  */
1378*d18719a4STom Rini
1379*d18719a4STom Rini  /* First try to decide what to do without reference to lookahead token.  */
1380*d18719a4STom Rini  yyn = yypact[yystate];
1381*d18719a4STom Rini  if (yypact_value_is_default (yyn))
1382*d18719a4STom Rini    goto yydefault;
1383*d18719a4STom Rini
1384*d18719a4STom Rini  /* Not known => get a lookahead token if don't already have one.  */
1385*d18719a4STom Rini
1386*d18719a4STom Rini  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1387*d18719a4STom Rini  if (yychar == YYEMPTY)
1388*d18719a4STom Rini    {
1389*d18719a4STom Rini      YYDPRINTF ((stderr, "Reading a token: "));
1390*d18719a4STom Rini      yychar = yylex ();
1391*d18719a4STom Rini    }
1392*d18719a4STom Rini
1393*d18719a4STom Rini  if (yychar <= YYEOF)
1394*d18719a4STom Rini    {
1395*d18719a4STom Rini      yychar = yytoken = YYEOF;
1396*d18719a4STom Rini      YYDPRINTF ((stderr, "Now at end of input.\n"));
1397*d18719a4STom Rini    }
1398*d18719a4STom Rini  else
1399*d18719a4STom Rini    {
1400*d18719a4STom Rini      yytoken = YYTRANSLATE (yychar);
1401*d18719a4STom Rini      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1402*d18719a4STom Rini    }
1403*d18719a4STom Rini
1404*d18719a4STom Rini  /* If the proper action on seeing token YYTOKEN is to reduce or to
1405*d18719a4STom Rini     detect an error, take that action.  */
1406*d18719a4STom Rini  yyn += yytoken;
1407*d18719a4STom Rini  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1408*d18719a4STom Rini    goto yydefault;
1409*d18719a4STom Rini  yyn = yytable[yyn];
1410*d18719a4STom Rini  if (yyn <= 0)
1411*d18719a4STom Rini    {
1412*d18719a4STom Rini      if (yytable_value_is_error (yyn))
1413*d18719a4STom Rini        goto yyerrlab;
1414*d18719a4STom Rini      yyn = -yyn;
1415*d18719a4STom Rini      goto yyreduce;
1416*d18719a4STom Rini    }
1417*d18719a4STom Rini
1418*d18719a4STom Rini  /* Count tokens shifted since error; after three, turn off error
1419*d18719a4STom Rini     status.  */
1420*d18719a4STom Rini  if (yyerrstatus)
1421*d18719a4STom Rini    yyerrstatus--;
1422*d18719a4STom Rini
1423*d18719a4STom Rini  /* Shift the lookahead token.  */
1424*d18719a4STom Rini  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1425*d18719a4STom Rini
1426*d18719a4STom Rini  /* Discard the shifted token.  */
1427*d18719a4STom Rini  yychar = YYEMPTY;
1428*d18719a4STom Rini
1429*d18719a4STom Rini  yystate = yyn;
1430*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1431*d18719a4STom Rini  *++yyvsp = yylval;
1432*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_END
1433*d18719a4STom Rini  *++yylsp = yylloc;
1434*d18719a4STom Rini  goto yynewstate;
1435*d18719a4STom Rini
1436*d18719a4STom Rini
1437*d18719a4STom Rini/*-----------------------------------------------------------.
1438*d18719a4STom Rini| yydefault -- do the default action for the current state.  |
1439*d18719a4STom Rini`-----------------------------------------------------------*/
1440*d18719a4STom Riniyydefault:
1441*d18719a4STom Rini  yyn = yydefact[yystate];
1442*d18719a4STom Rini  if (yyn == 0)
1443*d18719a4STom Rini    goto yyerrlab;
1444*d18719a4STom Rini  goto yyreduce;
1445*d18719a4STom Rini
1446*d18719a4STom Rini
1447*d18719a4STom Rini/*-----------------------------.
1448*d18719a4STom Rini| yyreduce -- Do a reduction.  |
1449*d18719a4STom Rini`-----------------------------*/
1450*d18719a4STom Riniyyreduce:
1451*d18719a4STom Rini  /* yyn is the number of a rule to reduce with.  */
1452*d18719a4STom Rini  yylen = yyr2[yyn];
1453*d18719a4STom Rini
1454*d18719a4STom Rini  /* If YYLEN is nonzero, implement the default value of the action:
1455*d18719a4STom Rini     '$$ = $1'.
1456*d18719a4STom Rini
1457*d18719a4STom Rini     Otherwise, the following line sets YYVAL to garbage.
1458*d18719a4STom Rini     This behavior is undocumented and Bison
1459*d18719a4STom Rini     users should not rely upon it.  Assigning to YYVAL
1460*d18719a4STom Rini     unconditionally makes the parser a bit smaller, and it avoids a
1461*d18719a4STom Rini     GCC warning that YYVAL may be used uninitialized.  */
1462*d18719a4STom Rini  yyval = yyvsp[1-yylen];
1463*d18719a4STom Rini
1464*d18719a4STom Rini  /* Default location.  */
1465*d18719a4STom Rini  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1466*d18719a4STom Rini  YY_REDUCE_PRINT (yyn);
1467*d18719a4STom Rini  switch (yyn)
1468*d18719a4STom Rini    {
1469*d18719a4STom Rini        case 2:
1470*d18719a4STom Rini#line 110 "dtc-parser.y" /* yacc.c:1646  */
1471*d18719a4STom Rini    {
1472*d18719a4STom Rini			parser_output = build_dt_info((yyvsp[-2].flags), (yyvsp[-1].re), (yyvsp[0].node),
1473*d18719a4STom Rini			                              guess_boot_cpuid((yyvsp[0].node)));
1474*d18719a4STom Rini		}
1475*d18719a4STom Rini#line 1476 "dtc-parser.tab.c" /* yacc.c:1646  */
1476*d18719a4STom Rini    break;
1477*d18719a4STom Rini
1478*d18719a4STom Rini  case 3:
1479*d18719a4STom Rini#line 118 "dtc-parser.y" /* yacc.c:1646  */
1480*d18719a4STom Rini    {
1481*d18719a4STom Rini			(yyval.flags) = DTSF_V1;
1482*d18719a4STom Rini		}
1483*d18719a4STom Rini#line 1484 "dtc-parser.tab.c" /* yacc.c:1646  */
1484*d18719a4STom Rini    break;
1485*d18719a4STom Rini
1486*d18719a4STom Rini  case 4:
1487*d18719a4STom Rini#line 122 "dtc-parser.y" /* yacc.c:1646  */
1488*d18719a4STom Rini    {
1489*d18719a4STom Rini			(yyval.flags) = DTSF_V1 | DTSF_PLUGIN;
1490*d18719a4STom Rini		}
1491*d18719a4STom Rini#line 1492 "dtc-parser.tab.c" /* yacc.c:1646  */
1492*d18719a4STom Rini    break;
1493*d18719a4STom Rini
1494*d18719a4STom Rini  case 6:
1495*d18719a4STom Rini#line 130 "dtc-parser.y" /* yacc.c:1646  */
1496*d18719a4STom Rini    {
1497*d18719a4STom Rini			if ((yyvsp[0].flags) != (yyvsp[-1].flags))
1498*d18719a4STom Rini				ERROR(&(yylsp[0]), "Header flags don't match earlier ones");
1499*d18719a4STom Rini			(yyval.flags) = (yyvsp[-1].flags);
1500*d18719a4STom Rini		}
1501*d18719a4STom Rini#line 1502 "dtc-parser.tab.c" /* yacc.c:1646  */
1502*d18719a4STom Rini    break;
1503*d18719a4STom Rini
1504*d18719a4STom Rini  case 7:
1505*d18719a4STom Rini#line 139 "dtc-parser.y" /* yacc.c:1646  */
1506*d18719a4STom Rini    {
1507*d18719a4STom Rini			(yyval.re) = NULL;
1508*d18719a4STom Rini		}
1509*d18719a4STom Rini#line 1510 "dtc-parser.tab.c" /* yacc.c:1646  */
1510*d18719a4STom Rini    break;
1511*d18719a4STom Rini
1512*d18719a4STom Rini  case 8:
1513*d18719a4STom Rini#line 143 "dtc-parser.y" /* yacc.c:1646  */
1514*d18719a4STom Rini    {
1515*d18719a4STom Rini			(yyval.re) = chain_reserve_entry((yyvsp[-1].re), (yyvsp[0].re));
1516*d18719a4STom Rini		}
1517*d18719a4STom Rini#line 1518 "dtc-parser.tab.c" /* yacc.c:1646  */
1518*d18719a4STom Rini    break;
1519*d18719a4STom Rini
1520*d18719a4STom Rini  case 9:
1521*d18719a4STom Rini#line 150 "dtc-parser.y" /* yacc.c:1646  */
1522*d18719a4STom Rini    {
1523*d18719a4STom Rini			(yyval.re) = build_reserve_entry((yyvsp[-2].integer), (yyvsp[-1].integer));
1524*d18719a4STom Rini		}
1525*d18719a4STom Rini#line 1526 "dtc-parser.tab.c" /* yacc.c:1646  */
1526*d18719a4STom Rini    break;
1527*d18719a4STom Rini
1528*d18719a4STom Rini  case 10:
1529*d18719a4STom Rini#line 154 "dtc-parser.y" /* yacc.c:1646  */
1530*d18719a4STom Rini    {
1531*d18719a4STom Rini			add_label(&(yyvsp[0].re)->labels, (yyvsp[-1].labelref));
1532*d18719a4STom Rini			(yyval.re) = (yyvsp[0].re);
1533*d18719a4STom Rini		}
1534*d18719a4STom Rini#line 1535 "dtc-parser.tab.c" /* yacc.c:1646  */
1535*d18719a4STom Rini    break;
1536*d18719a4STom Rini
1537*d18719a4STom Rini  case 11:
1538*d18719a4STom Rini#line 162 "dtc-parser.y" /* yacc.c:1646  */
1539*d18719a4STom Rini    {
1540*d18719a4STom Rini			(yyval.node) = name_node((yyvsp[0].node), "");
1541*d18719a4STom Rini		}
1542*d18719a4STom Rini#line 1543 "dtc-parser.tab.c" /* yacc.c:1646  */
1543*d18719a4STom Rini    break;
1544*d18719a4STom Rini
1545*d18719a4STom Rini  case 12:
1546*d18719a4STom Rini#line 166 "dtc-parser.y" /* yacc.c:1646  */
1547*d18719a4STom Rini    {
1548*d18719a4STom Rini			(yyval.node) = merge_nodes((yyvsp[-2].node), (yyvsp[0].node));
1549*d18719a4STom Rini		}
1550*d18719a4STom Rini#line 1551 "dtc-parser.tab.c" /* yacc.c:1646  */
1551*d18719a4STom Rini    break;
1552*d18719a4STom Rini
1553*d18719a4STom Rini  case 13:
1554*d18719a4STom Rini#line 171 "dtc-parser.y" /* yacc.c:1646  */
1555*d18719a4STom Rini    {
1556*d18719a4STom Rini			struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
1557*d18719a4STom Rini
1558*d18719a4STom Rini			if (target) {
1559*d18719a4STom Rini				add_label(&target->labels, (yyvsp[-2].labelref));
1560*d18719a4STom Rini				merge_nodes(target, (yyvsp[0].node));
1561*d18719a4STom Rini			} else
1562*d18719a4STom Rini				ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1563*d18719a4STom Rini			(yyval.node) = (yyvsp[-3].node);
1564*d18719a4STom Rini		}
1565*d18719a4STom Rini#line 1566 "dtc-parser.tab.c" /* yacc.c:1646  */
1566*d18719a4STom Rini    break;
1567*d18719a4STom Rini
1568*d18719a4STom Rini  case 14:
1569*d18719a4STom Rini#line 182 "dtc-parser.y" /* yacc.c:1646  */
1570*d18719a4STom Rini    {
1571*d18719a4STom Rini			struct node *target = get_node_by_ref((yyvsp[-2].node), (yyvsp[-1].labelref));
1572*d18719a4STom Rini
1573*d18719a4STom Rini			if (target)
1574*d18719a4STom Rini				merge_nodes(target, (yyvsp[0].node));
1575*d18719a4STom Rini			else
1576*d18719a4STom Rini				ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1577*d18719a4STom Rini			(yyval.node) = (yyvsp[-2].node);
1578*d18719a4STom Rini		}
1579*d18719a4STom Rini#line 1580 "dtc-parser.tab.c" /* yacc.c:1646  */
1580*d18719a4STom Rini    break;
1581*d18719a4STom Rini
1582*d18719a4STom Rini  case 15:
1583*d18719a4STom Rini#line 192 "dtc-parser.y" /* yacc.c:1646  */
1584*d18719a4STom Rini    {
1585*d18719a4STom Rini			struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
1586*d18719a4STom Rini
1587*d18719a4STom Rini			if (target)
1588*d18719a4STom Rini				delete_node(target);
1589*d18719a4STom Rini			else
1590*d18719a4STom Rini				ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1591*d18719a4STom Rini
1592*d18719a4STom Rini
1593*d18719a4STom Rini			(yyval.node) = (yyvsp[-3].node);
1594*d18719a4STom Rini		}
1595*d18719a4STom Rini#line 1596 "dtc-parser.tab.c" /* yacc.c:1646  */
1596*d18719a4STom Rini    break;
1597*d18719a4STom Rini
1598*d18719a4STom Rini  case 16:
1599*d18719a4STom Rini#line 207 "dtc-parser.y" /* yacc.c:1646  */
1600*d18719a4STom Rini    {
1601*d18719a4STom Rini			(yyval.node) = build_node((yyvsp[-3].proplist), (yyvsp[-2].nodelist));
1602*d18719a4STom Rini		}
1603*d18719a4STom Rini#line 1604 "dtc-parser.tab.c" /* yacc.c:1646  */
1604*d18719a4STom Rini    break;
1605*d18719a4STom Rini
1606*d18719a4STom Rini  case 17:
1607*d18719a4STom Rini#line 214 "dtc-parser.y" /* yacc.c:1646  */
1608*d18719a4STom Rini    {
1609*d18719a4STom Rini			(yyval.proplist) = NULL;
1610*d18719a4STom Rini		}
1611*d18719a4STom Rini#line 1612 "dtc-parser.tab.c" /* yacc.c:1646  */
1612*d18719a4STom Rini    break;
1613*d18719a4STom Rini
1614*d18719a4STom Rini  case 18:
1615*d18719a4STom Rini#line 218 "dtc-parser.y" /* yacc.c:1646  */
1616*d18719a4STom Rini    {
1617*d18719a4STom Rini			(yyval.proplist) = chain_property((yyvsp[0].prop), (yyvsp[-1].proplist));
1618*d18719a4STom Rini		}
1619*d18719a4STom Rini#line 1620 "dtc-parser.tab.c" /* yacc.c:1646  */
1620*d18719a4STom Rini    break;
1621*d18719a4STom Rini
1622*d18719a4STom Rini  case 19:
1623*d18719a4STom Rini#line 225 "dtc-parser.y" /* yacc.c:1646  */
1624*d18719a4STom Rini    {
1625*d18719a4STom Rini			(yyval.prop) = build_property((yyvsp[-3].propnodename), (yyvsp[-1].data));
1626*d18719a4STom Rini		}
1627*d18719a4STom Rini#line 1628 "dtc-parser.tab.c" /* yacc.c:1646  */
1628*d18719a4STom Rini    break;
1629*d18719a4STom Rini
1630*d18719a4STom Rini  case 20:
1631*d18719a4STom Rini#line 229 "dtc-parser.y" /* yacc.c:1646  */
1632*d18719a4STom Rini    {
1633*d18719a4STom Rini			(yyval.prop) = build_property((yyvsp[-1].propnodename), empty_data);
1634*d18719a4STom Rini		}
1635*d18719a4STom Rini#line 1636 "dtc-parser.tab.c" /* yacc.c:1646  */
1636*d18719a4STom Rini    break;
1637*d18719a4STom Rini
1638*d18719a4STom Rini  case 21:
1639*d18719a4STom Rini#line 233 "dtc-parser.y" /* yacc.c:1646  */
1640*d18719a4STom Rini    {
1641*d18719a4STom Rini			(yyval.prop) = build_property_delete((yyvsp[-1].propnodename));
1642*d18719a4STom Rini		}
1643*d18719a4STom Rini#line 1644 "dtc-parser.tab.c" /* yacc.c:1646  */
1644*d18719a4STom Rini    break;
1645*d18719a4STom Rini
1646*d18719a4STom Rini  case 22:
1647*d18719a4STom Rini#line 237 "dtc-parser.y" /* yacc.c:1646  */
1648*d18719a4STom Rini    {
1649*d18719a4STom Rini			add_label(&(yyvsp[0].prop)->labels, (yyvsp[-1].labelref));
1650*d18719a4STom Rini			(yyval.prop) = (yyvsp[0].prop);
1651*d18719a4STom Rini		}
1652*d18719a4STom Rini#line 1653 "dtc-parser.tab.c" /* yacc.c:1646  */
1653*d18719a4STom Rini    break;
1654*d18719a4STom Rini
1655*d18719a4STom Rini  case 23:
1656*d18719a4STom Rini#line 245 "dtc-parser.y" /* yacc.c:1646  */
1657*d18719a4STom Rini    {
1658*d18719a4STom Rini			(yyval.data) = data_merge((yyvsp[-1].data), (yyvsp[0].data));
1659*d18719a4STom Rini		}
1660*d18719a4STom Rini#line 1661 "dtc-parser.tab.c" /* yacc.c:1646  */
1661*d18719a4STom Rini    break;
1662*d18719a4STom Rini
1663*d18719a4STom Rini  case 24:
1664*d18719a4STom Rini#line 249 "dtc-parser.y" /* yacc.c:1646  */
1665*d18719a4STom Rini    {
1666*d18719a4STom Rini			(yyval.data) = data_merge((yyvsp[-2].data), (yyvsp[-1].array).data);
1667*d18719a4STom Rini		}
1668*d18719a4STom Rini#line 1669 "dtc-parser.tab.c" /* yacc.c:1646  */
1669*d18719a4STom Rini    break;
1670*d18719a4STom Rini
1671*d18719a4STom Rini  case 25:
1672*d18719a4STom Rini#line 253 "dtc-parser.y" /* yacc.c:1646  */
1673*d18719a4STom Rini    {
1674*d18719a4STom Rini			(yyval.data) = data_merge((yyvsp[-3].data), (yyvsp[-1].data));
1675*d18719a4STom Rini		}
1676*d18719a4STom Rini#line 1677 "dtc-parser.tab.c" /* yacc.c:1646  */
1677*d18719a4STom Rini    break;
1678*d18719a4STom Rini
1679*d18719a4STom Rini  case 26:
1680*d18719a4STom Rini#line 257 "dtc-parser.y" /* yacc.c:1646  */
1681*d18719a4STom Rini    {
1682*d18719a4STom Rini			(yyval.data) = data_add_marker((yyvsp[-1].data), REF_PATH, (yyvsp[0].labelref));
1683*d18719a4STom Rini		}
1684*d18719a4STom Rini#line 1685 "dtc-parser.tab.c" /* yacc.c:1646  */
1685*d18719a4STom Rini    break;
1686*d18719a4STom Rini
1687*d18719a4STom Rini  case 27:
1688*d18719a4STom Rini#line 261 "dtc-parser.y" /* yacc.c:1646  */
1689*d18719a4STom Rini    {
1690*d18719a4STom Rini			FILE *f = srcfile_relative_open((yyvsp[-5].data).val, NULL);
1691*d18719a4STom Rini			struct data d;
1692*d18719a4STom Rini
1693*d18719a4STom Rini			if ((yyvsp[-3].integer) != 0)
1694*d18719a4STom Rini				if (fseek(f, (yyvsp[-3].integer), SEEK_SET) != 0)
1695*d18719a4STom Rini					die("Couldn't seek to offset %llu in \"%s\": %s",
1696*d18719a4STom Rini					    (unsigned long long)(yyvsp[-3].integer), (yyvsp[-5].data).val,
1697*d18719a4STom Rini					    strerror(errno));
1698*d18719a4STom Rini
1699*d18719a4STom Rini			d = data_copy_file(f, (yyvsp[-1].integer));
1700*d18719a4STom Rini
1701*d18719a4STom Rini			(yyval.data) = data_merge((yyvsp[-8].data), d);
1702*d18719a4STom Rini			fclose(f);
1703*d18719a4STom Rini		}
1704*d18719a4STom Rini#line 1705 "dtc-parser.tab.c" /* yacc.c:1646  */
1705*d18719a4STom Rini    break;
1706*d18719a4STom Rini
1707*d18719a4STom Rini  case 28:
1708*d18719a4STom Rini#line 277 "dtc-parser.y" /* yacc.c:1646  */
1709*d18719a4STom Rini    {
1710*d18719a4STom Rini			FILE *f = srcfile_relative_open((yyvsp[-1].data).val, NULL);
1711*d18719a4STom Rini			struct data d = empty_data;
1712*d18719a4STom Rini
1713*d18719a4STom Rini			d = data_copy_file(f, -1);
1714*d18719a4STom Rini
1715*d18719a4STom Rini			(yyval.data) = data_merge((yyvsp[-4].data), d);
1716*d18719a4STom Rini			fclose(f);
1717*d18719a4STom Rini		}
1718*d18719a4STom Rini#line 1719 "dtc-parser.tab.c" /* yacc.c:1646  */
1719*d18719a4STom Rini    break;
1720*d18719a4STom Rini
1721*d18719a4STom Rini  case 29:
1722*d18719a4STom Rini#line 287 "dtc-parser.y" /* yacc.c:1646  */
1723*d18719a4STom Rini    {
1724*d18719a4STom Rini			(yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
1725*d18719a4STom Rini		}
1726*d18719a4STom Rini#line 1727 "dtc-parser.tab.c" /* yacc.c:1646  */
1727*d18719a4STom Rini    break;
1728*d18719a4STom Rini
1729*d18719a4STom Rini  case 30:
1730*d18719a4STom Rini#line 294 "dtc-parser.y" /* yacc.c:1646  */
1731*d18719a4STom Rini    {
1732*d18719a4STom Rini			(yyval.data) = empty_data;
1733*d18719a4STom Rini		}
1734*d18719a4STom Rini#line 1735 "dtc-parser.tab.c" /* yacc.c:1646  */
1735*d18719a4STom Rini    break;
1736*d18719a4STom Rini
1737*d18719a4STom Rini  case 31:
1738*d18719a4STom Rini#line 298 "dtc-parser.y" /* yacc.c:1646  */
1739*d18719a4STom Rini    {
1740*d18719a4STom Rini			(yyval.data) = (yyvsp[-1].data);
1741*d18719a4STom Rini		}
1742*d18719a4STom Rini#line 1743 "dtc-parser.tab.c" /* yacc.c:1646  */
1743*d18719a4STom Rini    break;
1744*d18719a4STom Rini
1745*d18719a4STom Rini  case 32:
1746*d18719a4STom Rini#line 302 "dtc-parser.y" /* yacc.c:1646  */
1747*d18719a4STom Rini    {
1748*d18719a4STom Rini			(yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
1749*d18719a4STom Rini		}
1750*d18719a4STom Rini#line 1751 "dtc-parser.tab.c" /* yacc.c:1646  */
1751*d18719a4STom Rini    break;
1752*d18719a4STom Rini
1753*d18719a4STom Rini  case 33:
1754*d18719a4STom Rini#line 309 "dtc-parser.y" /* yacc.c:1646  */
1755*d18719a4STom Rini    {
1756*d18719a4STom Rini			unsigned long long bits;
1757*d18719a4STom Rini
1758*d18719a4STom Rini			bits = (yyvsp[-1].integer);
1759*d18719a4STom Rini
1760*d18719a4STom Rini			if ((bits !=  8) && (bits != 16) &&
1761*d18719a4STom Rini			    (bits != 32) && (bits != 64)) {
1762*d18719a4STom Rini				ERROR(&(yylsp[-1]), "Array elements must be"
1763*d18719a4STom Rini				      " 8, 16, 32 or 64-bits");
1764*d18719a4STom Rini				bits = 32;
1765*d18719a4STom Rini			}
1766*d18719a4STom Rini
1767*d18719a4STom Rini			(yyval.array).data = empty_data;
1768*d18719a4STom Rini			(yyval.array).bits = bits;
1769*d18719a4STom Rini		}
1770*d18719a4STom Rini#line 1771 "dtc-parser.tab.c" /* yacc.c:1646  */
1771*d18719a4STom Rini    break;
1772*d18719a4STom Rini
1773*d18719a4STom Rini  case 34:
1774*d18719a4STom Rini#line 325 "dtc-parser.y" /* yacc.c:1646  */
1775*d18719a4STom Rini    {
1776*d18719a4STom Rini			(yyval.array).data = empty_data;
1777*d18719a4STom Rini			(yyval.array).bits = 32;
1778*d18719a4STom Rini		}
1779*d18719a4STom Rini#line 1780 "dtc-parser.tab.c" /* yacc.c:1646  */
1780*d18719a4STom Rini    break;
1781*d18719a4STom Rini
1782*d18719a4STom Rini  case 35:
1783*d18719a4STom Rini#line 330 "dtc-parser.y" /* yacc.c:1646  */
1784*d18719a4STom Rini    {
1785*d18719a4STom Rini			if ((yyvsp[-1].array).bits < 64) {
1786*d18719a4STom Rini				uint64_t mask = (1ULL << (yyvsp[-1].array).bits) - 1;
1787*d18719a4STom Rini				/*
1788*d18719a4STom Rini				 * Bits above mask must either be all zero
1789*d18719a4STom Rini				 * (positive within range of mask) or all one
1790*d18719a4STom Rini				 * (negative and sign-extended). The second
1791*d18719a4STom Rini				 * condition is true if when we set all bits
1792*d18719a4STom Rini				 * within the mask to one (i.e. | in the
1793*d18719a4STom Rini				 * mask), all bits are one.
1794*d18719a4STom Rini				 */
1795*d18719a4STom Rini				if (((yyvsp[0].integer) > mask) && (((yyvsp[0].integer) | mask) != -1ULL))
1796*d18719a4STom Rini					ERROR(&(yylsp[0]), "Value out of range for"
1797*d18719a4STom Rini					      " %d-bit array element", (yyvsp[-1].array).bits);
1798*d18719a4STom Rini			}
1799*d18719a4STom Rini
1800*d18719a4STom Rini			(yyval.array).data = data_append_integer((yyvsp[-1].array).data, (yyvsp[0].integer), (yyvsp[-1].array).bits);
1801*d18719a4STom Rini		}
1802*d18719a4STom Rini#line 1803 "dtc-parser.tab.c" /* yacc.c:1646  */
1803*d18719a4STom Rini    break;
1804*d18719a4STom Rini
1805*d18719a4STom Rini  case 36:
1806*d18719a4STom Rini#line 349 "dtc-parser.y" /* yacc.c:1646  */
1807*d18719a4STom Rini    {
1808*d18719a4STom Rini			uint64_t val = ~0ULL >> (64 - (yyvsp[-1].array).bits);
1809*d18719a4STom Rini
1810*d18719a4STom Rini			if ((yyvsp[-1].array).bits == 32)
1811*d18719a4STom Rini				(yyvsp[-1].array).data = data_add_marker((yyvsp[-1].array).data,
1812*d18719a4STom Rini							  REF_PHANDLE,
1813*d18719a4STom Rini							  (yyvsp[0].labelref));
1814*d18719a4STom Rini			else
1815*d18719a4STom Rini				ERROR(&(yylsp[0]), "References are only allowed in "
1816*d18719a4STom Rini					    "arrays with 32-bit elements.");
1817*d18719a4STom Rini
1818*d18719a4STom Rini			(yyval.array).data = data_append_integer((yyvsp[-1].array).data, val, (yyvsp[-1].array).bits);
1819*d18719a4STom Rini		}
1820*d18719a4STom Rini#line 1821 "dtc-parser.tab.c" /* yacc.c:1646  */
1821*d18719a4STom Rini    break;
1822*d18719a4STom Rini
1823*d18719a4STom Rini  case 37:
1824*d18719a4STom Rini#line 363 "dtc-parser.y" /* yacc.c:1646  */
1825*d18719a4STom Rini    {
1826*d18719a4STom Rini			(yyval.array).data = data_add_marker((yyvsp[-1].array).data, LABEL, (yyvsp[0].labelref));
1827*d18719a4STom Rini		}
1828*d18719a4STom Rini#line 1829 "dtc-parser.tab.c" /* yacc.c:1646  */
1829*d18719a4STom Rini    break;
1830*d18719a4STom Rini
1831*d18719a4STom Rini  case 40:
1832*d18719a4STom Rini#line 372 "dtc-parser.y" /* yacc.c:1646  */
1833*d18719a4STom Rini    {
1834*d18719a4STom Rini			(yyval.integer) = (yyvsp[-1].integer);
1835*d18719a4STom Rini		}
1836*d18719a4STom Rini#line 1837 "dtc-parser.tab.c" /* yacc.c:1646  */
1837*d18719a4STom Rini    break;
1838*d18719a4STom Rini
1839*d18719a4STom Rini  case 43:
1840*d18719a4STom Rini#line 383 "dtc-parser.y" /* yacc.c:1646  */
1841*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-4].integer) ? (yyvsp[-2].integer) : (yyvsp[0].integer); }
1842*d18719a4STom Rini#line 1843 "dtc-parser.tab.c" /* yacc.c:1646  */
1843*d18719a4STom Rini    break;
1844*d18719a4STom Rini
1845*d18719a4STom Rini  case 45:
1846*d18719a4STom Rini#line 388 "dtc-parser.y" /* yacc.c:1646  */
1847*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) || (yyvsp[0].integer); }
1848*d18719a4STom Rini#line 1849 "dtc-parser.tab.c" /* yacc.c:1646  */
1849*d18719a4STom Rini    break;
1850*d18719a4STom Rini
1851*d18719a4STom Rini  case 47:
1852*d18719a4STom Rini#line 393 "dtc-parser.y" /* yacc.c:1646  */
1853*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) && (yyvsp[0].integer); }
1854*d18719a4STom Rini#line 1855 "dtc-parser.tab.c" /* yacc.c:1646  */
1855*d18719a4STom Rini    break;
1856*d18719a4STom Rini
1857*d18719a4STom Rini  case 49:
1858*d18719a4STom Rini#line 398 "dtc-parser.y" /* yacc.c:1646  */
1859*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) | (yyvsp[0].integer); }
1860*d18719a4STom Rini#line 1861 "dtc-parser.tab.c" /* yacc.c:1646  */
1861*d18719a4STom Rini    break;
1862*d18719a4STom Rini
1863*d18719a4STom Rini  case 51:
1864*d18719a4STom Rini#line 403 "dtc-parser.y" /* yacc.c:1646  */
1865*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) ^ (yyvsp[0].integer); }
1866*d18719a4STom Rini#line 1867 "dtc-parser.tab.c" /* yacc.c:1646  */
1867*d18719a4STom Rini    break;
1868*d18719a4STom Rini
1869*d18719a4STom Rini  case 53:
1870*d18719a4STom Rini#line 408 "dtc-parser.y" /* yacc.c:1646  */
1871*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) & (yyvsp[0].integer); }
1872*d18719a4STom Rini#line 1873 "dtc-parser.tab.c" /* yacc.c:1646  */
1873*d18719a4STom Rini    break;
1874*d18719a4STom Rini
1875*d18719a4STom Rini  case 55:
1876*d18719a4STom Rini#line 413 "dtc-parser.y" /* yacc.c:1646  */
1877*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) == (yyvsp[0].integer); }
1878*d18719a4STom Rini#line 1879 "dtc-parser.tab.c" /* yacc.c:1646  */
1879*d18719a4STom Rini    break;
1880*d18719a4STom Rini
1881*d18719a4STom Rini  case 56:
1882*d18719a4STom Rini#line 414 "dtc-parser.y" /* yacc.c:1646  */
1883*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) != (yyvsp[0].integer); }
1884*d18719a4STom Rini#line 1885 "dtc-parser.tab.c" /* yacc.c:1646  */
1885*d18719a4STom Rini    break;
1886*d18719a4STom Rini
1887*d18719a4STom Rini  case 58:
1888*d18719a4STom Rini#line 419 "dtc-parser.y" /* yacc.c:1646  */
1889*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) < (yyvsp[0].integer); }
1890*d18719a4STom Rini#line 1891 "dtc-parser.tab.c" /* yacc.c:1646  */
1891*d18719a4STom Rini    break;
1892*d18719a4STom Rini
1893*d18719a4STom Rini  case 59:
1894*d18719a4STom Rini#line 420 "dtc-parser.y" /* yacc.c:1646  */
1895*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) > (yyvsp[0].integer); }
1896*d18719a4STom Rini#line 1897 "dtc-parser.tab.c" /* yacc.c:1646  */
1897*d18719a4STom Rini    break;
1898*d18719a4STom Rini
1899*d18719a4STom Rini  case 60:
1900*d18719a4STom Rini#line 421 "dtc-parser.y" /* yacc.c:1646  */
1901*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) <= (yyvsp[0].integer); }
1902*d18719a4STom Rini#line 1903 "dtc-parser.tab.c" /* yacc.c:1646  */
1903*d18719a4STom Rini    break;
1904*d18719a4STom Rini
1905*d18719a4STom Rini  case 61:
1906*d18719a4STom Rini#line 422 "dtc-parser.y" /* yacc.c:1646  */
1907*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) >= (yyvsp[0].integer); }
1908*d18719a4STom Rini#line 1909 "dtc-parser.tab.c" /* yacc.c:1646  */
1909*d18719a4STom Rini    break;
1910*d18719a4STom Rini
1911*d18719a4STom Rini  case 62:
1912*d18719a4STom Rini#line 426 "dtc-parser.y" /* yacc.c:1646  */
1913*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) << (yyvsp[0].integer); }
1914*d18719a4STom Rini#line 1915 "dtc-parser.tab.c" /* yacc.c:1646  */
1915*d18719a4STom Rini    break;
1916*d18719a4STom Rini
1917*d18719a4STom Rini  case 63:
1918*d18719a4STom Rini#line 427 "dtc-parser.y" /* yacc.c:1646  */
1919*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) >> (yyvsp[0].integer); }
1920*d18719a4STom Rini#line 1921 "dtc-parser.tab.c" /* yacc.c:1646  */
1921*d18719a4STom Rini    break;
1922*d18719a4STom Rini
1923*d18719a4STom Rini  case 65:
1924*d18719a4STom Rini#line 432 "dtc-parser.y" /* yacc.c:1646  */
1925*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) + (yyvsp[0].integer); }
1926*d18719a4STom Rini#line 1927 "dtc-parser.tab.c" /* yacc.c:1646  */
1927*d18719a4STom Rini    break;
1928*d18719a4STom Rini
1929*d18719a4STom Rini  case 66:
1930*d18719a4STom Rini#line 433 "dtc-parser.y" /* yacc.c:1646  */
1931*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) - (yyvsp[0].integer); }
1932*d18719a4STom Rini#line 1933 "dtc-parser.tab.c" /* yacc.c:1646  */
1933*d18719a4STom Rini    break;
1934*d18719a4STom Rini
1935*d18719a4STom Rini  case 68:
1936*d18719a4STom Rini#line 438 "dtc-parser.y" /* yacc.c:1646  */
1937*d18719a4STom Rini    { (yyval.integer) = (yyvsp[-2].integer) * (yyvsp[0].integer); }
1938*d18719a4STom Rini#line 1939 "dtc-parser.tab.c" /* yacc.c:1646  */
1939*d18719a4STom Rini    break;
1940*d18719a4STom Rini
1941*d18719a4STom Rini  case 69:
1942*d18719a4STom Rini#line 440 "dtc-parser.y" /* yacc.c:1646  */
1943*d18719a4STom Rini    {
1944*d18719a4STom Rini			if ((yyvsp[0].integer) != 0) {
1945*d18719a4STom Rini				(yyval.integer) = (yyvsp[-2].integer) / (yyvsp[0].integer);
1946*d18719a4STom Rini			} else {
1947*d18719a4STom Rini				ERROR(&(yyloc), "Division by zero");
1948*d18719a4STom Rini				(yyval.integer) = 0;
1949*d18719a4STom Rini			}
1950*d18719a4STom Rini		}
1951*d18719a4STom Rini#line 1952 "dtc-parser.tab.c" /* yacc.c:1646  */
1952*d18719a4STom Rini    break;
1953*d18719a4STom Rini
1954*d18719a4STom Rini  case 70:
1955*d18719a4STom Rini#line 449 "dtc-parser.y" /* yacc.c:1646  */
1956*d18719a4STom Rini    {
1957*d18719a4STom Rini			if ((yyvsp[0].integer) != 0) {
1958*d18719a4STom Rini				(yyval.integer) = (yyvsp[-2].integer) % (yyvsp[0].integer);
1959*d18719a4STom Rini			} else {
1960*d18719a4STom Rini				ERROR(&(yyloc), "Division by zero");
1961*d18719a4STom Rini				(yyval.integer) = 0;
1962*d18719a4STom Rini			}
1963*d18719a4STom Rini		}
1964*d18719a4STom Rini#line 1965 "dtc-parser.tab.c" /* yacc.c:1646  */
1965*d18719a4STom Rini    break;
1966*d18719a4STom Rini
1967*d18719a4STom Rini  case 73:
1968*d18719a4STom Rini#line 462 "dtc-parser.y" /* yacc.c:1646  */
1969*d18719a4STom Rini    { (yyval.integer) = -(yyvsp[0].integer); }
1970*d18719a4STom Rini#line 1971 "dtc-parser.tab.c" /* yacc.c:1646  */
1971*d18719a4STom Rini    break;
1972*d18719a4STom Rini
1973*d18719a4STom Rini  case 74:
1974*d18719a4STom Rini#line 463 "dtc-parser.y" /* yacc.c:1646  */
1975*d18719a4STom Rini    { (yyval.integer) = ~(yyvsp[0].integer); }
1976*d18719a4STom Rini#line 1977 "dtc-parser.tab.c" /* yacc.c:1646  */
1977*d18719a4STom Rini    break;
1978*d18719a4STom Rini
1979*d18719a4STom Rini  case 75:
1980*d18719a4STom Rini#line 464 "dtc-parser.y" /* yacc.c:1646  */
1981*d18719a4STom Rini    { (yyval.integer) = !(yyvsp[0].integer); }
1982*d18719a4STom Rini#line 1983 "dtc-parser.tab.c" /* yacc.c:1646  */
1983*d18719a4STom Rini    break;
1984*d18719a4STom Rini
1985*d18719a4STom Rini  case 76:
1986*d18719a4STom Rini#line 469 "dtc-parser.y" /* yacc.c:1646  */
1987*d18719a4STom Rini    {
1988*d18719a4STom Rini			(yyval.data) = empty_data;
1989*d18719a4STom Rini		}
1990*d18719a4STom Rini#line 1991 "dtc-parser.tab.c" /* yacc.c:1646  */
1991*d18719a4STom Rini    break;
1992*d18719a4STom Rini
1993*d18719a4STom Rini  case 77:
1994*d18719a4STom Rini#line 473 "dtc-parser.y" /* yacc.c:1646  */
1995*d18719a4STom Rini    {
1996*d18719a4STom Rini			(yyval.data) = data_append_byte((yyvsp[-1].data), (yyvsp[0].byte));
1997*d18719a4STom Rini		}
1998*d18719a4STom Rini#line 1999 "dtc-parser.tab.c" /* yacc.c:1646  */
1999*d18719a4STom Rini    break;
2000*d18719a4STom Rini
2001*d18719a4STom Rini  case 78:
2002*d18719a4STom Rini#line 477 "dtc-parser.y" /* yacc.c:1646  */
2003*d18719a4STom Rini    {
2004*d18719a4STom Rini			(yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
2005*d18719a4STom Rini		}
2006*d18719a4STom Rini#line 2007 "dtc-parser.tab.c" /* yacc.c:1646  */
2007*d18719a4STom Rini    break;
2008*d18719a4STom Rini
2009*d18719a4STom Rini  case 79:
2010*d18719a4STom Rini#line 484 "dtc-parser.y" /* yacc.c:1646  */
2011*d18719a4STom Rini    {
2012*d18719a4STom Rini			(yyval.nodelist) = NULL;
2013*d18719a4STom Rini		}
2014*d18719a4STom Rini#line 2015 "dtc-parser.tab.c" /* yacc.c:1646  */
2015*d18719a4STom Rini    break;
2016*d18719a4STom Rini
2017*d18719a4STom Rini  case 80:
2018*d18719a4STom Rini#line 488 "dtc-parser.y" /* yacc.c:1646  */
2019*d18719a4STom Rini    {
2020*d18719a4STom Rini			(yyval.nodelist) = chain_node((yyvsp[-1].node), (yyvsp[0].nodelist));
2021*d18719a4STom Rini		}
2022*d18719a4STom Rini#line 2023 "dtc-parser.tab.c" /* yacc.c:1646  */
2023*d18719a4STom Rini    break;
2024*d18719a4STom Rini
2025*d18719a4STom Rini  case 81:
2026*d18719a4STom Rini#line 492 "dtc-parser.y" /* yacc.c:1646  */
2027*d18719a4STom Rini    {
2028*d18719a4STom Rini			ERROR(&(yylsp[0]), "Properties must precede subnodes");
2029*d18719a4STom Rini			YYERROR;
2030*d18719a4STom Rini		}
2031*d18719a4STom Rini#line 2032 "dtc-parser.tab.c" /* yacc.c:1646  */
2032*d18719a4STom Rini    break;
2033*d18719a4STom Rini
2034*d18719a4STom Rini  case 82:
2035*d18719a4STom Rini#line 500 "dtc-parser.y" /* yacc.c:1646  */
2036*d18719a4STom Rini    {
2037*d18719a4STom Rini			(yyval.node) = name_node((yyvsp[0].node), (yyvsp[-1].propnodename));
2038*d18719a4STom Rini		}
2039*d18719a4STom Rini#line 2040 "dtc-parser.tab.c" /* yacc.c:1646  */
2040*d18719a4STom Rini    break;
2041*d18719a4STom Rini
2042*d18719a4STom Rini  case 83:
2043*d18719a4STom Rini#line 504 "dtc-parser.y" /* yacc.c:1646  */
2044*d18719a4STom Rini    {
2045*d18719a4STom Rini			(yyval.node) = name_node(build_node_delete(), (yyvsp[-1].propnodename));
2046*d18719a4STom Rini		}
2047*d18719a4STom Rini#line 2048 "dtc-parser.tab.c" /* yacc.c:1646  */
2048*d18719a4STom Rini    break;
2049*d18719a4STom Rini
2050*d18719a4STom Rini  case 84:
2051*d18719a4STom Rini#line 508 "dtc-parser.y" /* yacc.c:1646  */
2052*d18719a4STom Rini    {
2053*d18719a4STom Rini			add_label(&(yyvsp[0].node)->labels, (yyvsp[-1].labelref));
2054*d18719a4STom Rini			(yyval.node) = (yyvsp[0].node);
2055*d18719a4STom Rini		}
2056*d18719a4STom Rini#line 2057 "dtc-parser.tab.c" /* yacc.c:1646  */
2057*d18719a4STom Rini    break;
2058*d18719a4STom Rini
2059*d18719a4STom Rini
2060*d18719a4STom Rini#line 2061 "dtc-parser.tab.c" /* yacc.c:1646  */
2061*d18719a4STom Rini      default: break;
2062*d18719a4STom Rini    }
2063*d18719a4STom Rini  /* User semantic actions sometimes alter yychar, and that requires
2064*d18719a4STom Rini     that yytoken be updated with the new translation.  We take the
2065*d18719a4STom Rini     approach of translating immediately before every use of yytoken.
2066*d18719a4STom Rini     One alternative is translating here after every semantic action,
2067*d18719a4STom Rini     but that translation would be missed if the semantic action invokes
2068*d18719a4STom Rini     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2069*d18719a4STom Rini     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
2070*d18719a4STom Rini     incorrect destructor might then be invoked immediately.  In the
2071*d18719a4STom Rini     case of YYERROR or YYBACKUP, subsequent parser actions might lead
2072*d18719a4STom Rini     to an incorrect destructor call or verbose syntax error message
2073*d18719a4STom Rini     before the lookahead is translated.  */
2074*d18719a4STom Rini  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2075*d18719a4STom Rini
2076*d18719a4STom Rini  YYPOPSTACK (yylen);
2077*d18719a4STom Rini  yylen = 0;
2078*d18719a4STom Rini  YY_STACK_PRINT (yyss, yyssp);
2079*d18719a4STom Rini
2080*d18719a4STom Rini  *++yyvsp = yyval;
2081*d18719a4STom Rini  *++yylsp = yyloc;
2082*d18719a4STom Rini
2083*d18719a4STom Rini  /* Now 'shift' the result of the reduction.  Determine what state
2084*d18719a4STom Rini     that goes to, based on the state we popped back to and the rule
2085*d18719a4STom Rini     number reduced by.  */
2086*d18719a4STom Rini
2087*d18719a4STom Rini  yyn = yyr1[yyn];
2088*d18719a4STom Rini
2089*d18719a4STom Rini  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2090*d18719a4STom Rini  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2091*d18719a4STom Rini    yystate = yytable[yystate];
2092*d18719a4STom Rini  else
2093*d18719a4STom Rini    yystate = yydefgoto[yyn - YYNTOKENS];
2094*d18719a4STom Rini
2095*d18719a4STom Rini  goto yynewstate;
2096*d18719a4STom Rini
2097*d18719a4STom Rini
2098*d18719a4STom Rini/*--------------------------------------.
2099*d18719a4STom Rini| yyerrlab -- here on detecting error.  |
2100*d18719a4STom Rini`--------------------------------------*/
2101*d18719a4STom Riniyyerrlab:
2102*d18719a4STom Rini  /* Make sure we have latest lookahead translation.  See comments at
2103*d18719a4STom Rini     user semantic actions for why this is necessary.  */
2104*d18719a4STom Rini  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2105*d18719a4STom Rini
2106*d18719a4STom Rini  /* If not already recovering from an error, report this error.  */
2107*d18719a4STom Rini  if (!yyerrstatus)
2108*d18719a4STom Rini    {
2109*d18719a4STom Rini      ++yynerrs;
2110*d18719a4STom Rini#if ! YYERROR_VERBOSE
2111*d18719a4STom Rini      yyerror (YY_("syntax error"));
2112*d18719a4STom Rini#else
2113*d18719a4STom Rini# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2114*d18719a4STom Rini                                        yyssp, yytoken)
2115*d18719a4STom Rini      {
2116*d18719a4STom Rini        char const *yymsgp = YY_("syntax error");
2117*d18719a4STom Rini        int yysyntax_error_status;
2118*d18719a4STom Rini        yysyntax_error_status = YYSYNTAX_ERROR;
2119*d18719a4STom Rini        if (yysyntax_error_status == 0)
2120*d18719a4STom Rini          yymsgp = yymsg;
2121*d18719a4STom Rini        else if (yysyntax_error_status == 1)
2122*d18719a4STom Rini          {
2123*d18719a4STom Rini            if (yymsg != yymsgbuf)
2124*d18719a4STom Rini              YYSTACK_FREE (yymsg);
2125*d18719a4STom Rini            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
2126*d18719a4STom Rini            if (!yymsg)
2127*d18719a4STom Rini              {
2128*d18719a4STom Rini                yymsg = yymsgbuf;
2129*d18719a4STom Rini                yymsg_alloc = sizeof yymsgbuf;
2130*d18719a4STom Rini                yysyntax_error_status = 2;
2131*d18719a4STom Rini              }
2132*d18719a4STom Rini            else
2133*d18719a4STom Rini              {
2134*d18719a4STom Rini                yysyntax_error_status = YYSYNTAX_ERROR;
2135*d18719a4STom Rini                yymsgp = yymsg;
2136*d18719a4STom Rini              }
2137*d18719a4STom Rini          }
2138*d18719a4STom Rini        yyerror (yymsgp);
2139*d18719a4STom Rini        if (yysyntax_error_status == 2)
2140*d18719a4STom Rini          goto yyexhaustedlab;
2141*d18719a4STom Rini      }
2142*d18719a4STom Rini# undef YYSYNTAX_ERROR
2143*d18719a4STom Rini#endif
2144*d18719a4STom Rini    }
2145*d18719a4STom Rini
2146*d18719a4STom Rini  yyerror_range[1] = yylloc;
2147*d18719a4STom Rini
2148*d18719a4STom Rini  if (yyerrstatus == 3)
2149*d18719a4STom Rini    {
2150*d18719a4STom Rini      /* If just tried and failed to reuse lookahead token after an
2151*d18719a4STom Rini         error, discard it.  */
2152*d18719a4STom Rini
2153*d18719a4STom Rini      if (yychar <= YYEOF)
2154*d18719a4STom Rini        {
2155*d18719a4STom Rini          /* Return failure if at end of input.  */
2156*d18719a4STom Rini          if (yychar == YYEOF)
2157*d18719a4STom Rini            YYABORT;
2158*d18719a4STom Rini        }
2159*d18719a4STom Rini      else
2160*d18719a4STom Rini        {
2161*d18719a4STom Rini          yydestruct ("Error: discarding",
2162*d18719a4STom Rini                      yytoken, &yylval, &yylloc);
2163*d18719a4STom Rini          yychar = YYEMPTY;
2164*d18719a4STom Rini        }
2165*d18719a4STom Rini    }
2166*d18719a4STom Rini
2167*d18719a4STom Rini  /* Else will try to reuse lookahead token after shifting the error
2168*d18719a4STom Rini     token.  */
2169*d18719a4STom Rini  goto yyerrlab1;
2170*d18719a4STom Rini
2171*d18719a4STom Rini
2172*d18719a4STom Rini/*---------------------------------------------------.
2173*d18719a4STom Rini| yyerrorlab -- error raised explicitly by YYERROR.  |
2174*d18719a4STom Rini`---------------------------------------------------*/
2175*d18719a4STom Riniyyerrorlab:
2176*d18719a4STom Rini
2177*d18719a4STom Rini  /* Pacify compilers like GCC when the user code never invokes
2178*d18719a4STom Rini     YYERROR and the label yyerrorlab therefore never appears in user
2179*d18719a4STom Rini     code.  */
2180*d18719a4STom Rini  if (/*CONSTCOND*/ 0)
2181*d18719a4STom Rini     goto yyerrorlab;
2182*d18719a4STom Rini
2183*d18719a4STom Rini  yyerror_range[1] = yylsp[1-yylen];
2184*d18719a4STom Rini  /* Do not reclaim the symbols of the rule whose action triggered
2185*d18719a4STom Rini     this YYERROR.  */
2186*d18719a4STom Rini  YYPOPSTACK (yylen);
2187*d18719a4STom Rini  yylen = 0;
2188*d18719a4STom Rini  YY_STACK_PRINT (yyss, yyssp);
2189*d18719a4STom Rini  yystate = *yyssp;
2190*d18719a4STom Rini  goto yyerrlab1;
2191*d18719a4STom Rini
2192*d18719a4STom Rini
2193*d18719a4STom Rini/*-------------------------------------------------------------.
2194*d18719a4STom Rini| yyerrlab1 -- common code for both syntax error and YYERROR.  |
2195*d18719a4STom Rini`-------------------------------------------------------------*/
2196*d18719a4STom Riniyyerrlab1:
2197*d18719a4STom Rini  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
2198*d18719a4STom Rini
2199*d18719a4STom Rini  for (;;)
2200*d18719a4STom Rini    {
2201*d18719a4STom Rini      yyn = yypact[yystate];
2202*d18719a4STom Rini      if (!yypact_value_is_default (yyn))
2203*d18719a4STom Rini        {
2204*d18719a4STom Rini          yyn += YYTERROR;
2205*d18719a4STom Rini          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2206*d18719a4STom Rini            {
2207*d18719a4STom Rini              yyn = yytable[yyn];
2208*d18719a4STom Rini              if (0 < yyn)
2209*d18719a4STom Rini                break;
2210*d18719a4STom Rini            }
2211*d18719a4STom Rini        }
2212*d18719a4STom Rini
2213*d18719a4STom Rini      /* Pop the current state because it cannot handle the error token.  */
2214*d18719a4STom Rini      if (yyssp == yyss)
2215*d18719a4STom Rini        YYABORT;
2216*d18719a4STom Rini
2217*d18719a4STom Rini      yyerror_range[1] = *yylsp;
2218*d18719a4STom Rini      yydestruct ("Error: popping",
2219*d18719a4STom Rini                  yystos[yystate], yyvsp, yylsp);
2220*d18719a4STom Rini      YYPOPSTACK (1);
2221*d18719a4STom Rini      yystate = *yyssp;
2222*d18719a4STom Rini      YY_STACK_PRINT (yyss, yyssp);
2223*d18719a4STom Rini    }
2224*d18719a4STom Rini
2225*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2226*d18719a4STom Rini  *++yyvsp = yylval;
2227*d18719a4STom Rini  YY_IGNORE_MAYBE_UNINITIALIZED_END
2228*d18719a4STom Rini
2229*d18719a4STom Rini  yyerror_range[2] = yylloc;
2230*d18719a4STom Rini  /* Using YYLLOC is tempting, but would change the location of
2231*d18719a4STom Rini     the lookahead.  YYLOC is available though.  */
2232*d18719a4STom Rini  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
2233*d18719a4STom Rini  *++yylsp = yyloc;
2234*d18719a4STom Rini
2235*d18719a4STom Rini  /* Shift the error token.  */
2236*d18719a4STom Rini  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2237*d18719a4STom Rini
2238*d18719a4STom Rini  yystate = yyn;
2239*d18719a4STom Rini  goto yynewstate;
2240*d18719a4STom Rini
2241*d18719a4STom Rini
2242*d18719a4STom Rini/*-------------------------------------.
2243*d18719a4STom Rini| yyacceptlab -- YYACCEPT comes here.  |
2244*d18719a4STom Rini`-------------------------------------*/
2245*d18719a4STom Riniyyacceptlab:
2246*d18719a4STom Rini  yyresult = 0;
2247*d18719a4STom Rini  goto yyreturn;
2248*d18719a4STom Rini
2249*d18719a4STom Rini/*-----------------------------------.
2250*d18719a4STom Rini| yyabortlab -- YYABORT comes here.  |
2251*d18719a4STom Rini`-----------------------------------*/
2252*d18719a4STom Riniyyabortlab:
2253*d18719a4STom Rini  yyresult = 1;
2254*d18719a4STom Rini  goto yyreturn;
2255*d18719a4STom Rini
2256*d18719a4STom Rini#if !defined yyoverflow || YYERROR_VERBOSE
2257*d18719a4STom Rini/*-------------------------------------------------.
2258*d18719a4STom Rini| yyexhaustedlab -- memory exhaustion comes here.  |
2259*d18719a4STom Rini`-------------------------------------------------*/
2260*d18719a4STom Riniyyexhaustedlab:
2261*d18719a4STom Rini  yyerror (YY_("memory exhausted"));
2262*d18719a4STom Rini  yyresult = 2;
2263*d18719a4STom Rini  /* Fall through.  */
2264*d18719a4STom Rini#endif
2265*d18719a4STom Rini
2266*d18719a4STom Riniyyreturn:
2267*d18719a4STom Rini  if (yychar != YYEMPTY)
2268*d18719a4STom Rini    {
2269*d18719a4STom Rini      /* Make sure we have latest lookahead translation.  See comments at
2270*d18719a4STom Rini         user semantic actions for why this is necessary.  */
2271*d18719a4STom Rini      yytoken = YYTRANSLATE (yychar);
2272*d18719a4STom Rini      yydestruct ("Cleanup: discarding lookahead",
2273*d18719a4STom Rini                  yytoken, &yylval, &yylloc);
2274*d18719a4STom Rini    }
2275*d18719a4STom Rini  /* Do not reclaim the symbols of the rule whose action triggered
2276*d18719a4STom Rini     this YYABORT or YYACCEPT.  */
2277*d18719a4STom Rini  YYPOPSTACK (yylen);
2278*d18719a4STom Rini  YY_STACK_PRINT (yyss, yyssp);
2279*d18719a4STom Rini  while (yyssp != yyss)
2280*d18719a4STom Rini    {
2281*d18719a4STom Rini      yydestruct ("Cleanup: popping",
2282*d18719a4STom Rini                  yystos[*yyssp], yyvsp, yylsp);
2283*d18719a4STom Rini      YYPOPSTACK (1);
2284*d18719a4STom Rini    }
2285*d18719a4STom Rini#ifndef yyoverflow
2286*d18719a4STom Rini  if (yyss != yyssa)
2287*d18719a4STom Rini    YYSTACK_FREE (yyss);
2288*d18719a4STom Rini#endif
2289*d18719a4STom Rini#if YYERROR_VERBOSE
2290*d18719a4STom Rini  if (yymsg != yymsgbuf)
2291*d18719a4STom Rini    YYSTACK_FREE (yymsg);
2292*d18719a4STom Rini#endif
2293*d18719a4STom Rini  return yyresult;
2294*d18719a4STom Rini}
2295*d18719a4STom Rini#line 514 "dtc-parser.y" /* yacc.c:1906  */
2296*d18719a4STom Rini
2297*d18719a4STom Rini
2298*d18719a4STom Rinivoid yyerror(char const *s)
2299*d18719a4STom Rini{
2300*d18719a4STom Rini	ERROR(&yylloc, "%s", s);
2301*d18719a4STom Rini}
2302