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