blob: 31cec50a12650a254a639a6a291ce74f07a0e2c2 [file] [log] [blame]
Rob Herring47605972015-04-29 16:00:05 -05001/* A Bison parser, made by GNU Bison 3.0.2. */
Stephen Warrencd296722012-09-28 21:25:59 +00002
Grant Likely2a6a08c2013-06-13 13:00:43 +01003/* Bison implementation for Yacc-like parsers in C
Rob Herring47605972015-04-29 16:00:05 -05004
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
John Bonesio658f29a2010-11-17 15:28:20 -08007 This program is free software: you can redistribute it and/or modify
David Gibsona4da2e32007-12-18 15:06:42 +11008 it under the terms of the GNU General Public License as published by
John Bonesio658f29a2010-11-17 15:28:20 -08009 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
Rob Herring47605972015-04-29 16:00:05 -050011
David Gibsona4da2e32007-12-18 15:06:42 +110012 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
Rob Herring47605972015-04-29 16:00:05 -050016
David Gibsona4da2e32007-12-18 15:06:42 +110017 You should have received a copy of the GNU General Public License
John Bonesio658f29a2010-11-17 15:28:20 -080018 along with this program. If not, see <http://www.gnu.org/licenses/>. */
David Gibsona4da2e32007-12-18 15:06:42 +110019
20/* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
Rob Herring47605972015-04-29 16:00:05 -050029
David Gibsona4da2e32007-12-18 15:06:42 +110030 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36/* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43/* Identify Bison output. */
44#define YYBISON 1
45
46/* Bison version. */
Rob Herring47605972015-04-29 16:00:05 -050047#define YYBISON_VERSION "3.0.2"
David Gibsona4da2e32007-12-18 15:06:42 +110048
49/* Skeleton name. */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers. */
53#define YYPURE 0
54
John Bonesio658f29a2010-11-17 15:28:20 -080055/* Push parsers. */
56#define YYPUSH 0
57
58/* Pull parsers. */
59#define YYPULL 1
60
David Gibsona4da2e32007-12-18 15:06:42 +110061
62
63
64/* Copy the first part of user declarations. */
Rob Herring47605972015-04-29 16:00:05 -050065#line 20 "dtc-parser.y" /* yacc.c:339 */
David Gibsona4da2e32007-12-18 15:06:42 +110066
David Gibsoned95d742008-08-07 12:24:17 +100067#include <stdio.h>
68
David Gibsona4da2e32007-12-18 15:06:42 +110069#include "dtc.h"
70#include "srcpos.h"
71
David Gibsoned95d742008-08-07 12:24:17 +100072extern int yylex(void);
John Bonesio658f29a2010-11-17 15:28:20 -080073extern void yyerror(char const *s);
Rob Herring47605972015-04-29 16:00:05 -050074#define ERROR(loc, ...) \
75 do { \
76 srcpos_error((loc), "Error", __VA_ARGS__); \
77 treesource_error = true; \
78 } while (0)
David Gibsona4da2e32007-12-18 15:06:42 +110079
80extern struct boot_info *the_boot_info;
Rob Herring47605972015-04-29 16:00:05 -050081extern bool treesource_error;
David Gibsona4da2e32007-12-18 15:06:42 +110082
Rob Herring47605972015-04-29 16:00:05 -050083#line 84 "dtc-parser.tab.c" /* yacc.c:339 */
David Gibsona4da2e32007-12-18 15:06:42 +110084
Rob Herring47605972015-04-29 16:00:05 -050085# ifndef YY_NULLPTR
Grant Likelya878b912014-01-21 12:51:00 +000086# if defined __cplusplus && 201103L <= __cplusplus
Rob Herring47605972015-04-29 16:00:05 -050087# define YY_NULLPTR nullptr
Grant Likelya878b912014-01-21 12:51:00 +000088# else
Rob Herring47605972015-04-29 16:00:05 -050089# define YY_NULLPTR 0
Grant Likelya878b912014-01-21 12:51:00 +000090# endif
91# endif
David Gibsona4da2e32007-12-18 15:06:42 +110092
93/* Enabling verbose error messages. */
94#ifdef YYERROR_VERBOSE
95# undef YYERROR_VERBOSE
96# define YYERROR_VERBOSE 1
97#else
98# define YYERROR_VERBOSE 0
99#endif
100
Grant Likelya878b912014-01-21 12:51:00 +0000101/* In a future release of Bison, this section will be replaced
102 by #include "dtc-parser.tab.h". */
103#ifndef YY_YY_DTC_PARSER_TAB_H_INCLUDED
104# define YY_YY_DTC_PARSER_TAB_H_INCLUDED
Rob Herring47605972015-04-29 16:00:05 -0500105/* Debug traces. */
Grant Likelya878b912014-01-21 12:51:00 +0000106#ifndef YYDEBUG
107# define YYDEBUG 0
David Gibsona4da2e32007-12-18 15:06:42 +1100108#endif
Grant Likelya878b912014-01-21 12:51:00 +0000109#if YYDEBUG
110extern int yydebug;
111#endif
John Bonesio658f29a2010-11-17 15:28:20 -0800112
Rob Herring47605972015-04-29 16:00:05 -0500113/* Token type. */
John Bonesio658f29a2010-11-17 15:28:20 -0800114#ifndef YYTOKENTYPE
115# define YYTOKENTYPE
Rob Herring47605972015-04-29 16:00:05 -0500116 enum yytokentype
117 {
118 DT_V1 = 258,
119 DT_MEMRESERVE = 259,
120 DT_LSHIFT = 260,
121 DT_RSHIFT = 261,
122 DT_LE = 262,
123 DT_GE = 263,
124 DT_EQ = 264,
125 DT_NE = 265,
126 DT_AND = 266,
127 DT_OR = 267,
128 DT_BITS = 268,
129 DT_DEL_PROP = 269,
130 DT_DEL_NODE = 270,
131 DT_PROPNODENAME = 271,
132 DT_LITERAL = 272,
133 DT_CHAR_LITERAL = 273,
134 DT_BYTE = 274,
135 DT_STRING = 275,
136 DT_LABEL = 276,
137 DT_REF = 277,
138 DT_INCBIN = 278
139 };
John Bonesio658f29a2010-11-17 15:28:20 -0800140#endif
141
Rob Herring47605972015-04-29 16:00:05 -0500142/* Value type. */
David Gibsona4da2e32007-12-18 15:06:42 +1100143#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Rob Herring47605972015-04-29 16:00:05 -0500144typedef union YYSTYPE YYSTYPE;
145union YYSTYPE
David Gibsona4da2e32007-12-18 15:06:42 +1100146{
Rob Herring47605972015-04-29 16:00:05 -0500147#line 38 "dtc-parser.y" /* yacc.c:355 */
John Bonesio658f29a2010-11-17 15:28:20 -0800148
David Gibsona4da2e32007-12-18 15:06:42 +1100149 char *propnodename;
David Gibsona4da2e32007-12-18 15:06:42 +1100150 char *labelref;
David Gibsoned95d742008-08-07 12:24:17 +1000151 uint8_t byte;
David Gibsona4da2e32007-12-18 15:06:42 +1100152 struct data data;
153
Stephen Warrencd296722012-09-28 21:25:59 +0000154 struct {
155 struct data data;
156 int bits;
157 } array;
158
David Gibsona4da2e32007-12-18 15:06:42 +1100159 struct property *prop;
160 struct property *proplist;
161 struct node *node;
162 struct node *nodelist;
163 struct reserve_info *re;
Stephen Warrencd296722012-09-28 21:25:59 +0000164 uint64_t integer;
John Bonesio658f29a2010-11-17 15:28:20 -0800165
Rob Herring47605972015-04-29 16:00:05 -0500166#line 167 "dtc-parser.tab.c" /* yacc.c:355 */
167};
John Bonesio658f29a2010-11-17 15:28:20 -0800168# define YYSTYPE_IS_TRIVIAL 1
David Gibsona4da2e32007-12-18 15:06:42 +1100169# define YYSTYPE_IS_DECLARED 1
David Gibsona4da2e32007-12-18 15:06:42 +1100170#endif
171
Rob Herring47605972015-04-29 16:00:05 -0500172/* Location type. */
173#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
174typedef struct YYLTYPE YYLTYPE;
175struct YYLTYPE
176{
177 int first_line;
178 int first_column;
179 int last_line;
180 int last_column;
181};
182# define YYLTYPE_IS_DECLARED 1
183# define YYLTYPE_IS_TRIVIAL 1
184#endif
Grant Likelya878b912014-01-21 12:51:00 +0000185
Rob Herring47605972015-04-29 16:00:05 -0500186
187extern YYSTYPE yylval;
188extern YYLTYPE yylloc;
Grant Likelya878b912014-01-21 12:51:00 +0000189int yyparse (void);
Grant Likelya878b912014-01-21 12:51:00 +0000190
191#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */
David Gibsona4da2e32007-12-18 15:06:42 +1100192
193/* Copy the second part of user declarations. */
194
Rob Herring47605972015-04-29 16:00:05 -0500195#line 196 "dtc-parser.tab.c" /* yacc.c:358 */
David Gibsona4da2e32007-12-18 15:06:42 +1100196
197#ifdef short
198# undef short
199#endif
200
201#ifdef YYTYPE_UINT8
202typedef YYTYPE_UINT8 yytype_uint8;
203#else
204typedef unsigned char yytype_uint8;
205#endif
206
207#ifdef YYTYPE_INT8
208typedef YYTYPE_INT8 yytype_int8;
David Gibsona4da2e32007-12-18 15:06:42 +1100209#else
Rob Herring47605972015-04-29 16:00:05 -0500210typedef signed char yytype_int8;
David Gibsona4da2e32007-12-18 15:06:42 +1100211#endif
212
213#ifdef YYTYPE_UINT16
214typedef YYTYPE_UINT16 yytype_uint16;
215#else
216typedef unsigned short int yytype_uint16;
217#endif
218
219#ifdef YYTYPE_INT16
220typedef YYTYPE_INT16 yytype_int16;
221#else
222typedef short int yytype_int16;
223#endif
224
225#ifndef YYSIZE_T
226# ifdef __SIZE_TYPE__
227# define YYSIZE_T __SIZE_TYPE__
228# elif defined size_t
229# define YYSIZE_T size_t
Rob Herring47605972015-04-29 16:00:05 -0500230# elif ! defined YYSIZE_T
David Gibsona4da2e32007-12-18 15:06:42 +1100231# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
232# define YYSIZE_T size_t
233# else
234# define YYSIZE_T unsigned int
235# endif
236#endif
237
238#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
239
240#ifndef YY_
Grant Likely2a6a08c2013-06-13 13:00:43 +0100241# if defined YYENABLE_NLS && YYENABLE_NLS
David Gibsona4da2e32007-12-18 15:06:42 +1100242# if ENABLE_NLS
243# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
Grant Likelya878b912014-01-21 12:51:00 +0000244# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
David Gibsona4da2e32007-12-18 15:06:42 +1100245# endif
246# endif
247# ifndef YY_
Grant Likelya878b912014-01-21 12:51:00 +0000248# define YY_(Msgid) Msgid
249# endif
250#endif
251
Rob Herring47605972015-04-29 16:00:05 -0500252#ifndef YY_ATTRIBUTE
253# if (defined __GNUC__ \
254 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
255 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
256# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
257# else
258# define YY_ATTRIBUTE(Spec) /* empty */
259# endif
260#endif
261
262#ifndef YY_ATTRIBUTE_PURE
263# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
264#endif
265
266#ifndef YY_ATTRIBUTE_UNUSED
267# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
268#endif
269
270#if !defined _Noreturn \
271 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
272# if defined _MSC_VER && 1200 <= _MSC_VER
273# define _Noreturn __declspec (noreturn)
274# else
275# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
David Gibsona4da2e32007-12-18 15:06:42 +1100276# endif
277#endif
278
279/* Suppress unused-variable warnings by "using" E. */
280#if ! defined lint || defined __GNUC__
Grant Likelya878b912014-01-21 12:51:00 +0000281# define YYUSE(E) ((void) (E))
David Gibsona4da2e32007-12-18 15:06:42 +1100282#else
Grant Likelya878b912014-01-21 12:51:00 +0000283# define YYUSE(E) /* empty */
David Gibsona4da2e32007-12-18 15:06:42 +1100284#endif
285
Rob Herring47605972015-04-29 16:00:05 -0500286#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
287/* Suppress an incorrect diagnostic about yylval being uninitialized. */
288# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
289 _Pragma ("GCC diagnostic push") \
290 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
291 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
292# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
293 _Pragma ("GCC diagnostic pop")
294#else
295# define YY_INITIAL_VALUE(Value) Value
296#endif
297#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
298# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
299# define YY_IGNORE_MAYBE_UNINITIALIZED_END
300#endif
301#ifndef YY_INITIAL_VALUE
302# define YY_INITIAL_VALUE(Value) /* Nothing. */
303#endif
Grant Likelya878b912014-01-21 12:51:00 +0000304
David Gibsona4da2e32007-12-18 15:06:42 +1100305
306#if ! defined yyoverflow || YYERROR_VERBOSE
307
308/* The parser invokes alloca or malloc; define the necessary symbols. */
309
310# ifdef YYSTACK_USE_ALLOCA
311# if YYSTACK_USE_ALLOCA
312# ifdef __GNUC__
313# define YYSTACK_ALLOC __builtin_alloca
314# elif defined __BUILTIN_VA_ARG_INCR
315# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
316# elif defined _AIX
317# define YYSTACK_ALLOC __alloca
318# elif defined _MSC_VER
319# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
320# define alloca _alloca
321# else
322# define YYSTACK_ALLOC alloca
Rob Herring47605972015-04-29 16:00:05 -0500323# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
David Gibsona4da2e32007-12-18 15:06:42 +1100324# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Grant Likelya878b912014-01-21 12:51:00 +0000325 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
Grant Likely2a6a08c2013-06-13 13:00:43 +0100326# ifndef EXIT_SUCCESS
327# define EXIT_SUCCESS 0
David Gibsona4da2e32007-12-18 15:06:42 +1100328# endif
329# endif
330# endif
331# endif
332# endif
333
334# ifdef YYSTACK_ALLOC
Rob Herring47605972015-04-29 16:00:05 -0500335 /* Pacify GCC's 'empty if-body' warning. */
336# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100337# ifndef YYSTACK_ALLOC_MAXIMUM
338 /* The OS might guarantee only one guard page at the bottom of the stack,
339 and a page size can be as small as 4096 bytes. So we cannot safely
340 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
341 to allow for a few compiler-allocated temporary stack slots. */
342# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
343# endif
344# else
345# define YYSTACK_ALLOC YYMALLOC
346# define YYSTACK_FREE YYFREE
347# ifndef YYSTACK_ALLOC_MAXIMUM
348# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
349# endif
Grant Likely2a6a08c2013-06-13 13:00:43 +0100350# if (defined __cplusplus && ! defined EXIT_SUCCESS \
David Gibsona4da2e32007-12-18 15:06:42 +1100351 && ! ((defined YYMALLOC || defined malloc) \
Rob Herring47605972015-04-29 16:00:05 -0500352 && (defined YYFREE || defined free)))
David Gibsona4da2e32007-12-18 15:06:42 +1100353# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Grant Likely2a6a08c2013-06-13 13:00:43 +0100354# ifndef EXIT_SUCCESS
355# define EXIT_SUCCESS 0
David Gibsona4da2e32007-12-18 15:06:42 +1100356# endif
357# endif
358# ifndef YYMALLOC
359# define YYMALLOC malloc
Rob Herring47605972015-04-29 16:00:05 -0500360# if ! defined malloc && ! defined EXIT_SUCCESS
David Gibsona4da2e32007-12-18 15:06:42 +1100361void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
362# endif
363# endif
364# ifndef YYFREE
365# define YYFREE free
Rob Herring47605972015-04-29 16:00:05 -0500366# if ! defined free && ! defined EXIT_SUCCESS
David Gibsona4da2e32007-12-18 15:06:42 +1100367void free (void *); /* INFRINGES ON USER NAME SPACE */
368# endif
369# endif
370# endif
371#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
372
373
374#if (! defined yyoverflow \
375 && (! defined __cplusplus \
Rob Herring47605972015-04-29 16:00:05 -0500376 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
377 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
David Gibsona4da2e32007-12-18 15:06:42 +1100378
379/* A type that is properly aligned for any stack member. */
380union yyalloc
381{
John Bonesio658f29a2010-11-17 15:28:20 -0800382 yytype_int16 yyss_alloc;
383 YYSTYPE yyvs_alloc;
Rob Herring47605972015-04-29 16:00:05 -0500384 YYLTYPE yyls_alloc;
David Gibsona4da2e32007-12-18 15:06:42 +1100385};
386
387/* The size of the maximum gap between one aligned stack and the next. */
388# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
389
390/* The size of an array large to enough to hold all stacks, each with
391 N elements. */
392# define YYSTACK_BYTES(N) \
Rob Herring47605972015-04-29 16:00:05 -0500393 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
394 + 2 * YYSTACK_GAP_MAXIMUM)
David Gibsona4da2e32007-12-18 15:06:42 +1100395
Grant Likely2a6a08c2013-06-13 13:00:43 +0100396# define YYCOPY_NEEDED 1
David Gibsona4da2e32007-12-18 15:06:42 +1100397
398/* Relocate STACK from its old location to the new one. The
399 local variables YYSIZE and YYSTACKSIZE give the old and new number of
400 elements in the stack, and YYPTR gives the new location of the
401 stack. Advance YYPTR to a properly aligned location for the next
402 stack. */
Rob Herring47605972015-04-29 16:00:05 -0500403# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
404 do \
405 { \
406 YYSIZE_T yynewbytes; \
407 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
408 Stack = &yyptr->Stack_alloc; \
409 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
410 yyptr += yynewbytes / sizeof (*yyptr); \
411 } \
412 while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100413
414#endif
415
Grant Likely2a6a08c2013-06-13 13:00:43 +0100416#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
Grant Likelya878b912014-01-21 12:51:00 +0000417/* Copy COUNT objects from SRC to DST. The source and destination do
Grant Likely2a6a08c2013-06-13 13:00:43 +0100418 not overlap. */
419# ifndef YYCOPY
420# if defined __GNUC__ && 1 < __GNUC__
Grant Likelya878b912014-01-21 12:51:00 +0000421# define YYCOPY(Dst, Src, Count) \
422 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
Grant Likely2a6a08c2013-06-13 13:00:43 +0100423# else
Grant Likelya878b912014-01-21 12:51:00 +0000424# define YYCOPY(Dst, Src, Count) \
425 do \
426 { \
427 YYSIZE_T yyi; \
428 for (yyi = 0; yyi < (Count); yyi++) \
429 (Dst)[yyi] = (Src)[yyi]; \
430 } \
Rob Herring47605972015-04-29 16:00:05 -0500431 while (0)
Grant Likely2a6a08c2013-06-13 13:00:43 +0100432# endif
433# endif
434#endif /* !YYCOPY_NEEDED */
435
David Gibsona4da2e32007-12-18 15:06:42 +1100436/* YYFINAL -- State number of the termination state. */
John Bonesio658f29a2010-11-17 15:28:20 -0800437#define YYFINAL 4
David Gibsona4da2e32007-12-18 15:06:42 +1100438/* YYLAST -- Last index in YYTABLE. */
Rob Herring47605972015-04-29 16:00:05 -0500439#define YYLAST 136
David Gibsona4da2e32007-12-18 15:06:42 +1100440
441/* YYNTOKENS -- Number of terminals. */
Rob Herring47605972015-04-29 16:00:05 -0500442#define YYNTOKENS 47
David Gibsona4da2e32007-12-18 15:06:42 +1100443/* YYNNTS -- Number of nonterminals. */
Stephen Warrencd296722012-09-28 21:25:59 +0000444#define YYNNTS 28
David Gibsona4da2e32007-12-18 15:06:42 +1100445/* YYNRULES -- Number of rules. */
Rob Herring47605972015-04-29 16:00:05 -0500446#define YYNRULES 80
447/* YYNSTATES -- Number of states. */
448#define YYNSTATES 144
David Gibsona4da2e32007-12-18 15:06:42 +1100449
Rob Herring47605972015-04-29 16:00:05 -0500450/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
451 by yylex, with out-of-bounds checking. */
David Gibsona4da2e32007-12-18 15:06:42 +1100452#define YYUNDEFTOK 2
Rob Herring47605972015-04-29 16:00:05 -0500453#define YYMAXUTOK 278
David Gibsona4da2e32007-12-18 15:06:42 +1100454
Rob Herring47605972015-04-29 16:00:05 -0500455#define YYTRANSLATE(YYX) \
David Gibsona4da2e32007-12-18 15:06:42 +1100456 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
457
Rob Herring47605972015-04-29 16:00:05 -0500458/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
459 as returned by yylex, without out-of-bounds checking. */
David Gibsona4da2e32007-12-18 15:06:42 +1100460static const yytype_uint8 yytranslate[] =
461{
462 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
463 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Rob Herring47605972015-04-29 16:00:05 -0500465 2, 2, 2, 46, 2, 2, 2, 44, 40, 2,
466 32, 34, 43, 41, 33, 42, 2, 25, 2, 2,
467 2, 2, 2, 2, 2, 2, 2, 2, 37, 24,
468 35, 28, 29, 36, 2, 2, 2, 2, 2, 2,
David Gibsona4da2e32007-12-18 15:06:42 +1100469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
470 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Rob Herring47605972015-04-29 16:00:05 -0500471 2, 30, 2, 31, 39, 2, 2, 2, 2, 2,
David Gibsona4da2e32007-12-18 15:06:42 +1100472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Rob Herring47605972015-04-29 16:00:05 -0500474 2, 2, 2, 26, 38, 27, 45, 2, 2, 2,
David Gibsona4da2e32007-12-18 15:06:42 +1100475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
480 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
481 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
482 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
483 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
484 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
485 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
486 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
487 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
Stephen Warrencd296722012-09-28 21:25:59 +0000488 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
Rob Herring47605972015-04-29 16:00:05 -0500489 15, 16, 17, 18, 19, 20, 21, 22, 23
David Gibsona4da2e32007-12-18 15:06:42 +1100490};
491
492#if YYDEBUG
Rob Herring47605972015-04-29 16:00:05 -0500493 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
David Gibsona4da2e32007-12-18 15:06:42 +1100494static const yytype_uint16 yyrline[] =
495{
Rob Herring47605972015-04-29 16:00:05 -0500496 0, 104, 104, 113, 116, 123, 127, 135, 139, 144,
497 155, 165, 180, 188, 191, 198, 202, 206, 210, 218,
498 222, 226, 230, 234, 250, 260, 268, 271, 275, 282,
499 298, 303, 322, 336, 343, 344, 345, 352, 356, 357,
500 361, 362, 366, 367, 371, 372, 376, 377, 381, 382,
501 386, 387, 388, 392, 393, 394, 395, 396, 400, 401,
Rob Herring91feabc2016-01-26 09:04:11 -0600502 402, 406, 407, 408, 412, 413, 422, 431, 435, 436,
503 437, 438, 443, 446, 450, 458, 461, 465, 473, 477,
504 481
David Gibsona4da2e32007-12-18 15:06:42 +1100505};
506#endif
507
Grant Likelya878b912014-01-21 12:51:00 +0000508#if YYDEBUG || YYERROR_VERBOSE || 0
David Gibsona4da2e32007-12-18 15:06:42 +1100509/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
510 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
511static const char *const yytname[] =
512{
Stephen Warrencd296722012-09-28 21:25:59 +0000513 "$end", "error", "$undefined", "DT_V1", "DT_MEMRESERVE", "DT_LSHIFT",
514 "DT_RSHIFT", "DT_LE", "DT_GE", "DT_EQ", "DT_NE", "DT_AND", "DT_OR",
515 "DT_BITS", "DT_DEL_PROP", "DT_DEL_NODE", "DT_PROPNODENAME", "DT_LITERAL",
Rob Herring47605972015-04-29 16:00:05 -0500516 "DT_CHAR_LITERAL", "DT_BYTE", "DT_STRING", "DT_LABEL", "DT_REF",
517 "DT_INCBIN", "';'", "'/'", "'{'", "'}'", "'='", "'>'", "'['", "']'",
518 "'('", "','", "')'", "'<'", "'?'", "':'", "'|'", "'^'", "'&'", "'+'",
519 "'-'", "'*'", "'%'", "'~'", "'!'", "$accept", "sourcefile",
Stephen Warrencd296722012-09-28 21:25:59 +0000520 "memreserves", "memreserve", "devicetree", "nodedef", "proplist",
521 "propdef", "propdata", "propdataprefix", "arrayprefix", "integer_prim",
522 "integer_expr", "integer_trinary", "integer_or", "integer_and",
523 "integer_bitor", "integer_bitxor", "integer_bitand", "integer_eq",
524 "integer_rela", "integer_shift", "integer_add", "integer_mul",
Rob Herring47605972015-04-29 16:00:05 -0500525 "integer_unary", "bytestring", "subnodes", "subnode", YY_NULLPTR
David Gibsona4da2e32007-12-18 15:06:42 +1100526};
527#endif
528
529# ifdef YYPRINT
Rob Herring47605972015-04-29 16:00:05 -0500530/* YYTOKNUM[NUM] -- (External) token number corresponding to the
531 (internal) symbol number NUM (which must be that of a token). */
David Gibsona4da2e32007-12-18 15:06:42 +1100532static const yytype_uint16 yytoknum[] =
533{
534 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
Stephen Warrencd296722012-09-28 21:25:59 +0000535 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
Rob Herring47605972015-04-29 16:00:05 -0500536 275, 276, 277, 278, 59, 47, 123, 125, 61, 62,
537 91, 93, 40, 44, 41, 60, 63, 58, 124, 94,
538 38, 43, 45, 42, 37, 126, 33
David Gibsona4da2e32007-12-18 15:06:42 +1100539};
540# endif
541
Rob Herring47605972015-04-29 16:00:05 -0500542#define YYPACT_NINF -81
David Gibsona4da2e32007-12-18 15:06:42 +1100543
Grant Likelya878b912014-01-21 12:51:00 +0000544#define yypact_value_is_default(Yystate) \
Rob Herring47605972015-04-29 16:00:05 -0500545 (!!((Yystate) == (-81)))
546
547#define YYTABLE_NINF -1
Grant Likely2a6a08c2013-06-13 13:00:43 +0100548
Grant Likelya878b912014-01-21 12:51:00 +0000549#define yytable_value_is_error(Yytable_value) \
Rob Herring47605972015-04-29 16:00:05 -0500550 0
551
552 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
553 STATE-NUM. */
554static const yytype_int8 yypact[] =
555{
556 16, -11, 21, 10, -81, 25, 10, 19, 10, -81,
557 -81, -9, 25, -81, 2, 51, -81, -9, -9, -9,
558 -81, 1, -81, -6, 50, 14, 28, 29, 36, 3,
559 58, 44, -3, -81, 47, -81, -81, 65, 68, 2,
560 2, -81, -81, -81, -81, -9, -9, -9, -9, -9,
561 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
562 -9, -9, -9, -9, -81, 63, 69, 2, -81, -81,
563 50, 57, 14, 28, 29, 36, 3, 3, 58, 58,
564 58, 58, 44, 44, -3, -3, -81, -81, -81, 79,
565 80, -8, 63, -81, 72, 63, -81, -81, -9, 76,
566 77, -81, -81, -81, -81, -81, 78, -81, -81, -81,
567 -81, -81, 35, 4, -81, -81, -81, -81, 86, -81,
568 -81, -81, 73, -81, -81, 33, 71, 84, 39, -81,
569 -81, -81, -81, -81, 41, -81, -81, -81, 25, -81,
570 74, 25, 75, -81
571};
572
573 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
574 Performed when YYTABLE does not specify something else to do. Zero
575 means the default is an error. */
576static const yytype_uint8 yydefact[] =
577{
578 0, 0, 0, 3, 1, 0, 0, 0, 3, 34,
579 35, 0, 0, 6, 0, 2, 4, 0, 0, 0,
580 68, 0, 37, 38, 40, 42, 44, 46, 48, 50,
581 53, 60, 63, 67, 0, 13, 7, 0, 0, 0,
582 0, 69, 70, 71, 36, 0, 0, 0, 0, 0,
583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0, 0, 0, 5, 75, 0, 0, 10, 8,
585 41, 0, 43, 45, 47, 49, 51, 52, 56, 57,
586 55, 54, 58, 59, 61, 62, 65, 64, 66, 0,
587 0, 0, 0, 14, 0, 75, 11, 9, 0, 0,
588 0, 16, 26, 78, 18, 80, 0, 77, 76, 39,
589 17, 79, 0, 0, 12, 25, 15, 27, 0, 19,
590 28, 22, 0, 72, 30, 0, 0, 0, 0, 33,
591 32, 20, 31, 29, 0, 73, 74, 21, 0, 24,
592 0, 0, 0, 23
593};
594
595 /* YYPGOTO[NTERM-NUM]. */
596static const yytype_int8 yypgoto[] =
597{
598 -81, -81, 100, 104, -81, -38, -81, -80, -81, -81,
599 -81, -5, 66, 13, -81, 70, 67, 81, 64, 82,
600 37, 27, 34, 38, -14, -81, 22, 24
601};
602
603 /* YYDEFGOTO[NTERM-NUM]. */
604static const yytype_int16 yydefgoto[] =
605{
606 -1, 2, 7, 8, 15, 36, 65, 93, 112, 113,
607 125, 20, 21, 22, 23, 24, 25, 26, 27, 28,
608 29, 30, 31, 32, 33, 128, 94, 95
609};
610
611 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
612 positive, shift that token. If negative, reduce the rule whose
613 number is the opposite. If YYTABLE_NINF, syntax error. */
614static const yytype_uint8 yytable[] =
615{
616 12, 68, 69, 41, 42, 43, 45, 34, 9, 10,
617 53, 54, 104, 3, 5, 107, 101, 118, 35, 1,
618 102, 4, 61, 11, 119, 120, 121, 122, 35, 97,
619 46, 6, 55, 17, 123, 44, 18, 19, 56, 124,
620 62, 63, 9, 10, 14, 51, 52, 86, 87, 88,
621 9, 10, 48, 103, 129, 130, 115, 11, 135, 116,
622 136, 47, 131, 57, 58, 11, 37, 49, 117, 50,
623 137, 64, 38, 39, 138, 139, 40, 89, 90, 91,
624 78, 79, 80, 81, 92, 59, 60, 66, 76, 77,
625 67, 82, 83, 96, 98, 99, 100, 84, 85, 106,
626 110, 111, 114, 126, 134, 127, 133, 141, 16, 143,
627 13, 109, 71, 74, 72, 70, 105, 108, 0, 0,
628 132, 0, 0, 0, 0, 0, 0, 0, 0, 73,
629 0, 0, 75, 140, 0, 0, 142
630};
Grant Likely2a6a08c2013-06-13 13:00:43 +0100631
Stephen Warrencd296722012-09-28 21:25:59 +0000632static const yytype_int16 yycheck[] =
David Gibsona4da2e32007-12-18 15:06:42 +1100633{
Rob Herring47605972015-04-29 16:00:05 -0500634 5, 39, 40, 17, 18, 19, 12, 12, 17, 18,
635 7, 8, 92, 24, 4, 95, 24, 13, 26, 3,
636 28, 0, 25, 32, 20, 21, 22, 23, 26, 67,
637 36, 21, 29, 42, 30, 34, 45, 46, 35, 35,
638 43, 44, 17, 18, 25, 9, 10, 61, 62, 63,
639 17, 18, 38, 91, 21, 22, 21, 32, 19, 24,
640 21, 11, 29, 5, 6, 32, 15, 39, 33, 40,
641 31, 24, 21, 22, 33, 34, 25, 14, 15, 16,
642 53, 54, 55, 56, 21, 41, 42, 22, 51, 52,
643 22, 57, 58, 24, 37, 16, 16, 59, 60, 27,
644 24, 24, 24, 17, 20, 32, 35, 33, 8, 34,
645 6, 98, 46, 49, 47, 45, 92, 95, -1, -1,
646 125, -1, -1, -1, -1, -1, -1, -1, -1, 48,
647 -1, -1, 50, 138, -1, -1, 141
David Gibsona4da2e32007-12-18 15:06:42 +1100648};
649
Rob Herring47605972015-04-29 16:00:05 -0500650 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
651 symbol of state STATE-NUM. */
David Gibsona4da2e32007-12-18 15:06:42 +1100652static const yytype_uint8 yystos[] =
653{
Rob Herring47605972015-04-29 16:00:05 -0500654 0, 3, 48, 24, 0, 4, 21, 49, 50, 17,
655 18, 32, 58, 50, 25, 51, 49, 42, 45, 46,
656 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
657 68, 69, 70, 71, 58, 26, 52, 15, 21, 22,
658 25, 71, 71, 71, 34, 12, 36, 11, 38, 39,
659 40, 9, 10, 7, 8, 29, 35, 5, 6, 41,
660 42, 25, 43, 44, 24, 53, 22, 22, 52, 52,
661 62, 59, 63, 64, 65, 66, 67, 67, 68, 68,
662 68, 68, 69, 69, 70, 70, 71, 71, 71, 14,
663 15, 16, 21, 54, 73, 74, 24, 52, 37, 16,
664 16, 24, 28, 52, 54, 74, 27, 54, 73, 60,
665 24, 24, 55, 56, 24, 21, 24, 33, 13, 20,
666 21, 22, 23, 30, 35, 57, 17, 32, 72, 21,
667 22, 29, 58, 35, 20, 19, 21, 31, 33, 34,
668 58, 33, 58, 34
David Gibsona4da2e32007-12-18 15:06:42 +1100669};
670
Rob Herring47605972015-04-29 16:00:05 -0500671 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
672static const yytype_uint8 yyr1[] =
673{
674 0, 47, 48, 49, 49, 50, 50, 51, 51, 51,
675 51, 51, 52, 53, 53, 54, 54, 54, 54, 55,
676 55, 55, 55, 55, 55, 55, 56, 56, 56, 57,
677 57, 57, 57, 57, 58, 58, 58, 59, 60, 60,
678 61, 61, 62, 62, 63, 63, 64, 64, 65, 65,
679 66, 66, 66, 67, 67, 67, 67, 67, 68, 68,
680 68, 69, 69, 69, 70, 70, 70, 70, 71, 71,
681 71, 71, 72, 72, 72, 73, 73, 73, 74, 74,
682 74
683};
David Gibsona4da2e32007-12-18 15:06:42 +1100684
Rob Herring47605972015-04-29 16:00:05 -0500685 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
686static const yytype_uint8 yyr2[] =
687{
688 0, 2, 4, 0, 2, 4, 2, 2, 3, 4,
689 3, 4, 5, 0, 2, 4, 2, 3, 2, 2,
690 3, 4, 2, 9, 5, 2, 0, 2, 2, 3,
691 1, 2, 2, 2, 1, 1, 3, 1, 1, 5,
692 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
693 1, 3, 3, 1, 3, 3, 3, 3, 3, 3,
694 1, 3, 3, 1, 3, 3, 3, 1, 1, 2,
695 2, 2, 0, 2, 2, 0, 2, 2, 2, 3,
696 2
697};
David Gibsona4da2e32007-12-18 15:06:42 +1100698
699
Rob Herring47605972015-04-29 16:00:05 -0500700#define yyerrok (yyerrstatus = 0)
701#define yyclearin (yychar = YYEMPTY)
702#define YYEMPTY (-2)
703#define YYEOF 0
David Gibsona4da2e32007-12-18 15:06:42 +1100704
Rob Herring47605972015-04-29 16:00:05 -0500705#define YYACCEPT goto yyacceptlab
706#define YYABORT goto yyabortlab
707#define YYERROR goto yyerrorlab
708
David Gibsona4da2e32007-12-18 15:06:42 +1100709
710#define YYRECOVERING() (!!yyerrstatus)
711
Grant Likelya878b912014-01-21 12:51:00 +0000712#define YYBACKUP(Token, Value) \
713do \
714 if (yychar == YYEMPTY) \
715 { \
716 yychar = (Token); \
717 yylval = (Value); \
718 YYPOPSTACK (yylen); \
719 yystate = *yyssp; \
720 goto yybackup; \
721 } \
722 else \
723 { \
David Gibsona4da2e32007-12-18 15:06:42 +1100724 yyerror (YY_("syntax error: cannot back up")); \
Rob Herring47605972015-04-29 16:00:05 -0500725 YYERROR; \
726 } \
727while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100728
Grant Likelya878b912014-01-21 12:51:00 +0000729/* Error token number */
Rob Herring47605972015-04-29 16:00:05 -0500730#define YYTERROR 1
731#define YYERRCODE 256
David Gibsona4da2e32007-12-18 15:06:42 +1100732
733
Rob Herring47605972015-04-29 16:00:05 -0500734/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
735 If N is 0, then set CURRENT to the empty location which ends
736 the previous symbol: RHS[0] (always defined). */
737
738#ifndef YYLLOC_DEFAULT
739# define YYLLOC_DEFAULT(Current, Rhs, N) \
740 do \
741 if (N) \
742 { \
743 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
744 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
745 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
746 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
747 } \
748 else \
749 { \
750 (Current).first_line = (Current).last_line = \
751 YYRHSLOC (Rhs, 0).last_line; \
752 (Current).first_column = (Current).last_column = \
753 YYRHSLOC (Rhs, 0).last_column; \
754 } \
755 while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100756#endif
757
Rob Herring47605972015-04-29 16:00:05 -0500758#define YYRHSLOC(Rhs, K) ((Rhs)[K])
David Gibsona4da2e32007-12-18 15:06:42 +1100759
David Gibsona4da2e32007-12-18 15:06:42 +1100760
761/* Enable debugging if requested. */
762#if YYDEBUG
763
764# ifndef YYFPRINTF
765# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
766# define YYFPRINTF fprintf
767# endif
768
Rob Herring47605972015-04-29 16:00:05 -0500769# define YYDPRINTF(Args) \
770do { \
771 if (yydebug) \
772 YYFPRINTF Args; \
773} while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100774
775
Rob Herring47605972015-04-29 16:00:05 -0500776/* YY_LOCATION_PRINT -- Print the location on the stream.
777 This macro was not mandated originally: define only if we know
778 we won't break user code: when these are the locations we know. */
David Gibsona4da2e32007-12-18 15:06:42 +1100779
Rob Herring47605972015-04-29 16:00:05 -0500780#ifndef YY_LOCATION_PRINT
781# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
782
783/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
784
785YY_ATTRIBUTE_UNUSED
786static unsigned
787yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
788{
789 unsigned res = 0;
790 int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
791 if (0 <= yylocp->first_line)
792 {
793 res += YYFPRINTF (yyo, "%d", yylocp->first_line);
794 if (0 <= yylocp->first_column)
795 res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
796 }
797 if (0 <= yylocp->last_line)
798 {
799 if (yylocp->first_line < yylocp->last_line)
800 {
801 res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
802 if (0 <= end_col)
803 res += YYFPRINTF (yyo, ".%d", end_col);
804 }
805 else if (0 <= end_col && yylocp->first_column < end_col)
806 res += YYFPRINTF (yyo, "-%d", end_col);
807 }
808 return res;
809 }
810
811# define YY_LOCATION_PRINT(File, Loc) \
812 yy_location_print_ (File, &(Loc))
813
814# else
815# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
816# endif
David Gibsona4da2e32007-12-18 15:06:42 +1100817#endif
Rob Herring47605972015-04-29 16:00:05 -0500818
819
820# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
821do { \
822 if (yydebug) \
823 { \
824 YYFPRINTF (stderr, "%s ", Title); \
825 yy_symbol_print (stderr, \
826 Type, Value, Location); \
827 YYFPRINTF (stderr, "\n"); \
828 } \
829} while (0)
830
831
832/*----------------------------------------.
833| Print this symbol's value on YYOUTPUT. |
834`----------------------------------------*/
835
836static void
837yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
David Gibsona4da2e32007-12-18 15:06:42 +1100838{
Grant Likelya878b912014-01-21 12:51:00 +0000839 FILE *yyo = yyoutput;
840 YYUSE (yyo);
Rob Herring47605972015-04-29 16:00:05 -0500841 YYUSE (yylocationp);
David Gibsona4da2e32007-12-18 15:06:42 +1100842 if (!yyvaluep)
843 return;
David Gibsona4da2e32007-12-18 15:06:42 +1100844# ifdef YYPRINT
845 if (yytype < YYNTOKENS)
846 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
David Gibsona4da2e32007-12-18 15:06:42 +1100847# endif
Grant Likelya878b912014-01-21 12:51:00 +0000848 YYUSE (yytype);
David Gibsona4da2e32007-12-18 15:06:42 +1100849}
850
851
852/*--------------------------------.
853| Print this symbol on YYOUTPUT. |
854`--------------------------------*/
855
David Gibsona4da2e32007-12-18 15:06:42 +1100856static void
Rob Herring47605972015-04-29 16:00:05 -0500857yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
David Gibsona4da2e32007-12-18 15:06:42 +1100858{
Rob Herring47605972015-04-29 16:00:05 -0500859 YYFPRINTF (yyoutput, "%s %s (",
860 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
David Gibsona4da2e32007-12-18 15:06:42 +1100861
Rob Herring47605972015-04-29 16:00:05 -0500862 YY_LOCATION_PRINT (yyoutput, *yylocationp);
863 YYFPRINTF (yyoutput, ": ");
864 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
David Gibsona4da2e32007-12-18 15:06:42 +1100865 YYFPRINTF (yyoutput, ")");
866}
867
868/*------------------------------------------------------------------.
869| yy_stack_print -- Print the state stack from its BOTTOM up to its |
870| TOP (included). |
871`------------------------------------------------------------------*/
872
David Gibsona4da2e32007-12-18 15:06:42 +1100873static void
John Bonesio658f29a2010-11-17 15:28:20 -0800874yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
David Gibsona4da2e32007-12-18 15:06:42 +1100875{
876 YYFPRINTF (stderr, "Stack now");
John Bonesio658f29a2010-11-17 15:28:20 -0800877 for (; yybottom <= yytop; yybottom++)
878 {
879 int yybot = *yybottom;
880 YYFPRINTF (stderr, " %d", yybot);
881 }
David Gibsona4da2e32007-12-18 15:06:42 +1100882 YYFPRINTF (stderr, "\n");
883}
884
Rob Herring47605972015-04-29 16:00:05 -0500885# define YY_STACK_PRINT(Bottom, Top) \
886do { \
887 if (yydebug) \
888 yy_stack_print ((Bottom), (Top)); \
889} while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100890
891
892/*------------------------------------------------.
893| Report that the YYRULE is going to be reduced. |
894`------------------------------------------------*/
895
David Gibsona4da2e32007-12-18 15:06:42 +1100896static void
Rob Herring47605972015-04-29 16:00:05 -0500897yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
David Gibsona4da2e32007-12-18 15:06:42 +1100898{
Rob Herring47605972015-04-29 16:00:05 -0500899 unsigned long int yylno = yyrline[yyrule];
David Gibsona4da2e32007-12-18 15:06:42 +1100900 int yynrhs = yyr2[yyrule];
901 int yyi;
David Gibsona4da2e32007-12-18 15:06:42 +1100902 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
Rob Herring47605972015-04-29 16:00:05 -0500903 yyrule - 1, yylno);
David Gibsona4da2e32007-12-18 15:06:42 +1100904 /* The symbols being reduced. */
905 for (yyi = 0; yyi < yynrhs; yyi++)
906 {
John Bonesio658f29a2010-11-17 15:28:20 -0800907 YYFPRINTF (stderr, " $%d = ", yyi + 1);
Rob Herring47605972015-04-29 16:00:05 -0500908 yy_symbol_print (stderr,
909 yystos[yyssp[yyi + 1 - yynrhs]],
910 &(yyvsp[(yyi + 1) - (yynrhs)])
911 , &(yylsp[(yyi + 1) - (yynrhs)]) );
John Bonesio658f29a2010-11-17 15:28:20 -0800912 YYFPRINTF (stderr, "\n");
David Gibsona4da2e32007-12-18 15:06:42 +1100913 }
914}
915
Rob Herring47605972015-04-29 16:00:05 -0500916# define YY_REDUCE_PRINT(Rule) \
917do { \
918 if (yydebug) \
919 yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \
920} while (0)
David Gibsona4da2e32007-12-18 15:06:42 +1100921
922/* Nonzero means print parse trace. It is left uninitialized so that
923 multiple parsers can coexist. */
924int yydebug;
925#else /* !YYDEBUG */
926# define YYDPRINTF(Args)
927# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
928# define YY_STACK_PRINT(Bottom, Top)
929# define YY_REDUCE_PRINT(Rule)
930#endif /* !YYDEBUG */
931
932
933/* YYINITDEPTH -- initial size of the parser's stacks. */
Rob Herring47605972015-04-29 16:00:05 -0500934#ifndef YYINITDEPTH
David Gibsona4da2e32007-12-18 15:06:42 +1100935# define YYINITDEPTH 200
936#endif
937
938/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
939 if the built-in stack extension method is used).
940
941 Do not make this value too large; the results are undefined if
942 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
943 evaluated with infinite-precision integer arithmetic. */
944
945#ifndef YYMAXDEPTH
946# define YYMAXDEPTH 10000
947#endif
948
David Gibsona4da2e32007-12-18 15:06:42 +1100949
950#if YYERROR_VERBOSE
951
952# ifndef yystrlen
953# if defined __GLIBC__ && defined _STRING_H
954# define yystrlen strlen
955# else
956/* Return the length of YYSTR. */
David Gibsona4da2e32007-12-18 15:06:42 +1100957static YYSIZE_T
958yystrlen (const char *yystr)
David Gibsona4da2e32007-12-18 15:06:42 +1100959{
960 YYSIZE_T yylen;
961 for (yylen = 0; yystr[yylen]; yylen++)
962 continue;
963 return yylen;
964}
965# endif
966# endif
967
968# ifndef yystpcpy
969# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
970# define yystpcpy stpcpy
971# else
972/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
973 YYDEST. */
David Gibsona4da2e32007-12-18 15:06:42 +1100974static char *
975yystpcpy (char *yydest, const char *yysrc)
David Gibsona4da2e32007-12-18 15:06:42 +1100976{
977 char *yyd = yydest;
978 const char *yys = yysrc;
979
980 while ((*yyd++ = *yys++) != '\0')
981 continue;
982
983 return yyd - 1;
984}
985# endif
986# endif
987
988# ifndef yytnamerr
989/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
990 quotes and backslashes, so that it's suitable for yyerror. The
991 heuristic is that double-quoting is unnecessary unless the string
992 contains an apostrophe, a comma, or backslash (other than
993 backslash-backslash). YYSTR is taken from yytname. If YYRES is
994 null, do not copy; instead, return the length of what the result
995 would have been. */
996static YYSIZE_T
997yytnamerr (char *yyres, const char *yystr)
998{
999 if (*yystr == '"')
1000 {
1001 YYSIZE_T yyn = 0;
1002 char const *yyp = yystr;
1003
1004 for (;;)
Rob Herring47605972015-04-29 16:00:05 -05001005 switch (*++yyp)
1006 {
1007 case '\'':
1008 case ',':
1009 goto do_not_strip_quotes;
David Gibsona4da2e32007-12-18 15:06:42 +11001010
Rob Herring47605972015-04-29 16:00:05 -05001011 case '\\':
1012 if (*++yyp != '\\')
1013 goto do_not_strip_quotes;
1014 /* Fall through. */
1015 default:
1016 if (yyres)
1017 yyres[yyn] = *yyp;
1018 yyn++;
1019 break;
David Gibsona4da2e32007-12-18 15:06:42 +11001020
Rob Herring47605972015-04-29 16:00:05 -05001021 case '"':
1022 if (yyres)
1023 yyres[yyn] = '\0';
1024 return yyn;
1025 }
David Gibsona4da2e32007-12-18 15:06:42 +11001026 do_not_strip_quotes: ;
1027 }
1028
1029 if (! yyres)
1030 return yystrlen (yystr);
1031
1032 return yystpcpy (yyres, yystr) - yyres;
1033}
1034# endif
1035
Grant Likely2a6a08c2013-06-13 13:00:43 +01001036/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1037 about the unexpected token YYTOKEN for the state stack whose top is
1038 YYSSP.
1039
1040 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1041 not large enough to hold the message. In that case, also set
1042 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1043 required number of bytes is too large to store. */
1044static int
1045yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1046 yytype_int16 *yyssp, int yytoken)
David Gibsona4da2e32007-12-18 15:06:42 +11001047{
Rob Herring47605972015-04-29 16:00:05 -05001048 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001049 YYSIZE_T yysize = yysize0;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001050 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1051 /* Internationalized format string. */
Rob Herring47605972015-04-29 16:00:05 -05001052 const char *yyformat = YY_NULLPTR;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001053 /* Arguments of yyformat. */
1054 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1055 /* Number of reported tokens (one for the "unexpected", one per
1056 "expected"). */
1057 int yycount = 0;
David Gibsona4da2e32007-12-18 15:06:42 +11001058
Grant Likely2a6a08c2013-06-13 13:00:43 +01001059 /* There are many possibilities here to consider:
Grant Likely2a6a08c2013-06-13 13:00:43 +01001060 - If this state is a consistent state with a default action, then
1061 the only way this function was invoked is if the default action
1062 is an error action. In that case, don't check for expected
1063 tokens because there are none.
1064 - The only way there can be no lookahead present (in yychar) is if
1065 this state is a consistent state with a default action. Thus,
1066 detecting the absence of a lookahead is sufficient to determine
1067 that there is no unexpected or expected token to report. In that
1068 case, just report a simple "syntax error".
1069 - Don't assume there isn't a lookahead just because this state is a
1070 consistent state with a default action. There might have been a
1071 previous inconsistent state, consistent state with a non-default
1072 action, or user semantic action that manipulated yychar.
1073 - Of course, the expected token list depends on states to have
1074 correct lookahead information, and it depends on the parser not
1075 to perform extra reductions after fetching a lookahead from the
1076 scanner and before detecting a syntax error. Thus, state merging
1077 (from LALR or IELR) and default reductions corrupt the expected
1078 token list. However, the list is correct for canonical LR with
1079 one exception: it will still contain any token that will not be
1080 accepted due to an error action in a later state.
1081 */
1082 if (yytoken != YYEMPTY)
David Gibsona4da2e32007-12-18 15:06:42 +11001083 {
Grant Likely2a6a08c2013-06-13 13:00:43 +01001084 int yyn = yypact[*yyssp];
1085 yyarg[yycount++] = yytname[yytoken];
1086 if (!yypact_value_is_default (yyn))
1087 {
1088 /* Start YYX at -YYN if negative to avoid negative indexes in
1089 YYCHECK. In other words, skip the first -YYN actions for
1090 this state because they are default actions. */
1091 int yyxbegin = yyn < 0 ? -yyn : 0;
1092 /* Stay within bounds of both yycheck and yytname. */
1093 int yychecklim = YYLAST - yyn + 1;
1094 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1095 int yyx;
David Gibsona4da2e32007-12-18 15:06:42 +11001096
Grant Likely2a6a08c2013-06-13 13:00:43 +01001097 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1098 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1099 && !yytable_value_is_error (yytable[yyx + yyn]))
1100 {
1101 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1102 {
1103 yycount = 1;
1104 yysize = yysize0;
1105 break;
1106 }
1107 yyarg[yycount++] = yytname[yyx];
Grant Likelya878b912014-01-21 12:51:00 +00001108 {
Rob Herring47605972015-04-29 16:00:05 -05001109 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
Grant Likelya878b912014-01-21 12:51:00 +00001110 if (! (yysize <= yysize1
1111 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1112 return 2;
1113 yysize = yysize1;
1114 }
Grant Likely2a6a08c2013-06-13 13:00:43 +01001115 }
1116 }
David Gibsona4da2e32007-12-18 15:06:42 +11001117 }
Grant Likely2a6a08c2013-06-13 13:00:43 +01001118
1119 switch (yycount)
1120 {
1121# define YYCASE_(N, S) \
1122 case N: \
1123 yyformat = S; \
1124 break
1125 YYCASE_(0, YY_("syntax error"));
1126 YYCASE_(1, YY_("syntax error, unexpected %s"));
1127 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1128 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1129 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1130 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1131# undef YYCASE_
1132 }
1133
Grant Likelya878b912014-01-21 12:51:00 +00001134 {
1135 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1136 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1137 return 2;
1138 yysize = yysize1;
1139 }
Grant Likely2a6a08c2013-06-13 13:00:43 +01001140
1141 if (*yymsg_alloc < yysize)
1142 {
1143 *yymsg_alloc = 2 * yysize;
1144 if (! (yysize <= *yymsg_alloc
1145 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1146 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1147 return 1;
1148 }
1149
1150 /* Avoid sprintf, as that infringes on the user's name space.
1151 Don't have undefined behavior even if the translation
1152 produced a string with the wrong number of "%s"s. */
1153 {
1154 char *yyp = *yymsg;
1155 int yyi = 0;
1156 while ((*yyp = *yyformat) != '\0')
1157 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1158 {
1159 yyp += yytnamerr (yyp, yyarg[yyi++]);
1160 yyformat += 2;
1161 }
1162 else
1163 {
1164 yyp++;
1165 yyformat++;
1166 }
1167 }
1168 return 0;
David Gibsona4da2e32007-12-18 15:06:42 +11001169}
1170#endif /* YYERROR_VERBOSE */
David Gibsona4da2e32007-12-18 15:06:42 +11001171
1172/*-----------------------------------------------.
1173| Release the memory associated to this symbol. |
1174`-----------------------------------------------*/
1175
David Gibsona4da2e32007-12-18 15:06:42 +11001176static void
Rob Herring47605972015-04-29 16:00:05 -05001177yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
David Gibsona4da2e32007-12-18 15:06:42 +11001178{
1179 YYUSE (yyvaluep);
Rob Herring47605972015-04-29 16:00:05 -05001180 YYUSE (yylocationp);
David Gibsona4da2e32007-12-18 15:06:42 +11001181 if (!yymsg)
1182 yymsg = "Deleting";
1183 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1184
Rob Herring47605972015-04-29 16:00:05 -05001185 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Grant Likelya878b912014-01-21 12:51:00 +00001186 YYUSE (yytype);
Rob Herring47605972015-04-29 16:00:05 -05001187 YY_IGNORE_MAYBE_UNINITIALIZED_END
David Gibsona4da2e32007-12-18 15:06:42 +11001188}
David Gibsona4da2e32007-12-18 15:06:42 +11001189
Grant Likely2a6a08c2013-06-13 13:00:43 +01001190
David Gibsona4da2e32007-12-18 15:06:42 +11001191
1192
John Bonesio658f29a2010-11-17 15:28:20 -08001193/* The lookahead symbol. */
David Gibsona4da2e32007-12-18 15:06:42 +11001194int yychar;
1195
John Bonesio658f29a2010-11-17 15:28:20 -08001196/* The semantic value of the lookahead symbol. */
Rob Herring47605972015-04-29 16:00:05 -05001197YYSTYPE yylval;
1198/* Location data for the lookahead symbol. */
1199YYLTYPE yylloc
1200# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1201 = { 1, 1, 1, 1 }
1202# endif
1203;
David Gibsona4da2e32007-12-18 15:06:42 +11001204/* Number of syntax errors so far. */
1205int yynerrs;
David Gibsona4da2e32007-12-18 15:06:42 +11001206
1207
Grant Likely2a6a08c2013-06-13 13:00:43 +01001208/*----------.
1209| yyparse. |
1210`----------*/
David Gibsona4da2e32007-12-18 15:06:42 +11001211
David Gibsona4da2e32007-12-18 15:06:42 +11001212int
1213yyparse (void)
David Gibsona4da2e32007-12-18 15:06:42 +11001214{
John Bonesio658f29a2010-11-17 15:28:20 -08001215 int yystate;
1216 /* Number of tokens to shift before error messages enabled. */
1217 int yyerrstatus;
1218
1219 /* The stacks and their tools:
Rob Herring47605972015-04-29 16:00:05 -05001220 'yyss': related to states.
1221 'yyvs': related to semantic values.
1222 'yyls': related to locations.
John Bonesio658f29a2010-11-17 15:28:20 -08001223
Grant Likelya878b912014-01-21 12:51:00 +00001224 Refer to the stacks through separate pointers, to allow yyoverflow
John Bonesio658f29a2010-11-17 15:28:20 -08001225 to reallocate them elsewhere. */
1226
1227 /* The state stack. */
1228 yytype_int16 yyssa[YYINITDEPTH];
1229 yytype_int16 *yyss;
1230 yytype_int16 *yyssp;
1231
1232 /* The semantic value stack. */
1233 YYSTYPE yyvsa[YYINITDEPTH];
1234 YYSTYPE *yyvs;
1235 YYSTYPE *yyvsp;
1236
Rob Herring47605972015-04-29 16:00:05 -05001237 /* The location stack. */
1238 YYLTYPE yylsa[YYINITDEPTH];
1239 YYLTYPE *yyls;
1240 YYLTYPE *yylsp;
1241
1242 /* The locations where the error started and ended. */
1243 YYLTYPE yyerror_range[3];
1244
John Bonesio658f29a2010-11-17 15:28:20 -08001245 YYSIZE_T yystacksize;
1246
David Gibsona4da2e32007-12-18 15:06:42 +11001247 int yyn;
1248 int yyresult;
John Bonesio658f29a2010-11-17 15:28:20 -08001249 /* Lookahead token as an internal (translated) token number. */
Grant Likelya878b912014-01-21 12:51:00 +00001250 int yytoken = 0;
John Bonesio658f29a2010-11-17 15:28:20 -08001251 /* The variables used to return semantic value and location from the
1252 action routines. */
1253 YYSTYPE yyval;
Rob Herring47605972015-04-29 16:00:05 -05001254 YYLTYPE yyloc;
John Bonesio658f29a2010-11-17 15:28:20 -08001255
David Gibsona4da2e32007-12-18 15:06:42 +11001256#if YYERROR_VERBOSE
1257 /* Buffer for error messages, and its allocated size. */
1258 char yymsgbuf[128];
1259 char *yymsg = yymsgbuf;
1260 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1261#endif
1262
Rob Herring47605972015-04-29 16:00:05 -05001263#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
David Gibsona4da2e32007-12-18 15:06:42 +11001264
1265 /* The number of symbols on the RHS of the reduced rule.
1266 Keep to zero when no symbol should be popped. */
1267 int yylen = 0;
1268
Grant Likelya878b912014-01-21 12:51:00 +00001269 yyssp = yyss = yyssa;
1270 yyvsp = yyvs = yyvsa;
Rob Herring47605972015-04-29 16:00:05 -05001271 yylsp = yyls = yylsa;
John Bonesio658f29a2010-11-17 15:28:20 -08001272 yystacksize = YYINITDEPTH;
1273
David Gibsona4da2e32007-12-18 15:06:42 +11001274 YYDPRINTF ((stderr, "Starting parse\n"));
1275
1276 yystate = 0;
1277 yyerrstatus = 0;
1278 yynerrs = 0;
John Bonesio658f29a2010-11-17 15:28:20 -08001279 yychar = YYEMPTY; /* Cause a token to be read. */
Rob Herring47605972015-04-29 16:00:05 -05001280 yylsp[0] = yylloc;
David Gibsona4da2e32007-12-18 15:06:42 +11001281 goto yysetstate;
1282
1283/*------------------------------------------------------------.
1284| yynewstate -- Push a new state, which is found in yystate. |
1285`------------------------------------------------------------*/
1286 yynewstate:
1287 /* In all cases, when you get here, the value and location stacks
1288 have just been pushed. So pushing a state here evens the stacks. */
1289 yyssp++;
1290
1291 yysetstate:
1292 *yyssp = yystate;
1293
1294 if (yyss + yystacksize - 1 <= yyssp)
1295 {
1296 /* Get the current used size of the three stacks, in elements. */
1297 YYSIZE_T yysize = yyssp - yyss + 1;
1298
1299#ifdef yyoverflow
1300 {
Rob Herring47605972015-04-29 16:00:05 -05001301 /* Give user a chance to reallocate the stack. Use copies of
1302 these so that the &'s don't force the real ones into
1303 memory. */
1304 YYSTYPE *yyvs1 = yyvs;
1305 yytype_int16 *yyss1 = yyss;
1306 YYLTYPE *yyls1 = yyls;
David Gibsona4da2e32007-12-18 15:06:42 +11001307
Rob Herring47605972015-04-29 16:00:05 -05001308 /* Each stack pointer address is followed by the size of the
1309 data in use in that stack, in bytes. This used to be a
1310 conditional around just the two extra args, but that might
1311 be undefined if yyoverflow is a macro. */
1312 yyoverflow (YY_("memory exhausted"),
1313 &yyss1, yysize * sizeof (*yyssp),
1314 &yyvs1, yysize * sizeof (*yyvsp),
1315 &yyls1, yysize * sizeof (*yylsp),
1316 &yystacksize);
John Bonesio658f29a2010-11-17 15:28:20 -08001317
Rob Herring47605972015-04-29 16:00:05 -05001318 yyls = yyls1;
1319 yyss = yyss1;
1320 yyvs = yyvs1;
David Gibsona4da2e32007-12-18 15:06:42 +11001321 }
1322#else /* no yyoverflow */
1323# ifndef YYSTACK_RELOCATE
1324 goto yyexhaustedlab;
1325# else
1326 /* Extend the stack our own way. */
1327 if (YYMAXDEPTH <= yystacksize)
Rob Herring47605972015-04-29 16:00:05 -05001328 goto yyexhaustedlab;
David Gibsona4da2e32007-12-18 15:06:42 +11001329 yystacksize *= 2;
1330 if (YYMAXDEPTH < yystacksize)
Rob Herring47605972015-04-29 16:00:05 -05001331 yystacksize = YYMAXDEPTH;
David Gibsona4da2e32007-12-18 15:06:42 +11001332
1333 {
Rob Herring47605972015-04-29 16:00:05 -05001334 yytype_int16 *yyss1 = yyss;
1335 union yyalloc *yyptr =
1336 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1337 if (! yyptr)
1338 goto yyexhaustedlab;
1339 YYSTACK_RELOCATE (yyss_alloc, yyss);
1340 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1341 YYSTACK_RELOCATE (yyls_alloc, yyls);
David Gibsona4da2e32007-12-18 15:06:42 +11001342# undef YYSTACK_RELOCATE
Rob Herring47605972015-04-29 16:00:05 -05001343 if (yyss1 != yyssa)
1344 YYSTACK_FREE (yyss1);
David Gibsona4da2e32007-12-18 15:06:42 +11001345 }
1346# endif
1347#endif /* no yyoverflow */
1348
1349 yyssp = yyss + yysize - 1;
1350 yyvsp = yyvs + yysize - 1;
Rob Herring47605972015-04-29 16:00:05 -05001351 yylsp = yyls + yysize - 1;
David Gibsona4da2e32007-12-18 15:06:42 +11001352
1353 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
Rob Herring47605972015-04-29 16:00:05 -05001354 (unsigned long int) yystacksize));
David Gibsona4da2e32007-12-18 15:06:42 +11001355
1356 if (yyss + yystacksize - 1 <= yyssp)
Rob Herring47605972015-04-29 16:00:05 -05001357 YYABORT;
David Gibsona4da2e32007-12-18 15:06:42 +11001358 }
1359
1360 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1361
John Bonesio658f29a2010-11-17 15:28:20 -08001362 if (yystate == YYFINAL)
1363 YYACCEPT;
1364
David Gibsona4da2e32007-12-18 15:06:42 +11001365 goto yybackup;
1366
1367/*-----------.
1368| yybackup. |
1369`-----------*/
1370yybackup:
1371
1372 /* Do appropriate processing given the current state. Read a
John Bonesio658f29a2010-11-17 15:28:20 -08001373 lookahead token if we need one and don't already have one. */
David Gibsona4da2e32007-12-18 15:06:42 +11001374
John Bonesio658f29a2010-11-17 15:28:20 -08001375 /* First try to decide what to do without reference to lookahead token. */
David Gibsona4da2e32007-12-18 15:06:42 +11001376 yyn = yypact[yystate];
Grant Likely2a6a08c2013-06-13 13:00:43 +01001377 if (yypact_value_is_default (yyn))
David Gibsona4da2e32007-12-18 15:06:42 +11001378 goto yydefault;
1379
John Bonesio658f29a2010-11-17 15:28:20 -08001380 /* Not known => get a lookahead token if don't already have one. */
David Gibsona4da2e32007-12-18 15:06:42 +11001381
John Bonesio658f29a2010-11-17 15:28:20 -08001382 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
David Gibsona4da2e32007-12-18 15:06:42 +11001383 if (yychar == YYEMPTY)
1384 {
1385 YYDPRINTF ((stderr, "Reading a token: "));
Rob Herring47605972015-04-29 16:00:05 -05001386 yychar = yylex ();
David Gibsona4da2e32007-12-18 15:06:42 +11001387 }
1388
1389 if (yychar <= YYEOF)
1390 {
1391 yychar = yytoken = YYEOF;
1392 YYDPRINTF ((stderr, "Now at end of input.\n"));
1393 }
1394 else
1395 {
1396 yytoken = YYTRANSLATE (yychar);
1397 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1398 }
1399
1400 /* If the proper action on seeing token YYTOKEN is to reduce or to
1401 detect an error, take that action. */
1402 yyn += yytoken;
1403 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1404 goto yydefault;
1405 yyn = yytable[yyn];
1406 if (yyn <= 0)
1407 {
Grant Likely2a6a08c2013-06-13 13:00:43 +01001408 if (yytable_value_is_error (yyn))
1409 goto yyerrlab;
David Gibsona4da2e32007-12-18 15:06:42 +11001410 yyn = -yyn;
1411 goto yyreduce;
1412 }
1413
David Gibsona4da2e32007-12-18 15:06:42 +11001414 /* Count tokens shifted since error; after three, turn off error
1415 status. */
1416 if (yyerrstatus)
1417 yyerrstatus--;
1418
John Bonesio658f29a2010-11-17 15:28:20 -08001419 /* Shift the lookahead token. */
David Gibsona4da2e32007-12-18 15:06:42 +11001420 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1421
John Bonesio658f29a2010-11-17 15:28:20 -08001422 /* Discard the shifted token. */
1423 yychar = YYEMPTY;
David Gibsona4da2e32007-12-18 15:06:42 +11001424
1425 yystate = yyn;
Grant Likelya878b912014-01-21 12:51:00 +00001426 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
David Gibsona4da2e32007-12-18 15:06:42 +11001427 *++yyvsp = yylval;
Grant Likelya878b912014-01-21 12:51:00 +00001428 YY_IGNORE_MAYBE_UNINITIALIZED_END
Rob Herring47605972015-04-29 16:00:05 -05001429 *++yylsp = yylloc;
David Gibsona4da2e32007-12-18 15:06:42 +11001430 goto yynewstate;
1431
1432
1433/*-----------------------------------------------------------.
1434| yydefault -- do the default action for the current state. |
1435`-----------------------------------------------------------*/
1436yydefault:
1437 yyn = yydefact[yystate];
1438 if (yyn == 0)
1439 goto yyerrlab;
1440 goto yyreduce;
1441
1442
1443/*-----------------------------.
1444| yyreduce -- Do a reduction. |
1445`-----------------------------*/
1446yyreduce:
1447 /* yyn is the number of a rule to reduce with. */
1448 yylen = yyr2[yyn];
1449
1450 /* If YYLEN is nonzero, implement the default value of the action:
Rob Herring47605972015-04-29 16:00:05 -05001451 '$$ = $1'.
David Gibsona4da2e32007-12-18 15:06:42 +11001452
1453 Otherwise, the following line sets YYVAL to garbage.
1454 This behavior is undocumented and Bison
1455 users should not rely upon it. Assigning to YYVAL
1456 unconditionally makes the parser a bit smaller, and it avoids a
1457 GCC warning that YYVAL may be used uninitialized. */
1458 yyval = yyvsp[1-yylen];
1459
Rob Herring47605972015-04-29 16:00:05 -05001460 /* Default location. */
1461 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
David Gibsona4da2e32007-12-18 15:06:42 +11001462 YY_REDUCE_PRINT (yyn);
1463 switch (yyn)
1464 {
1465 case 2:
Rob Herring47605972015-04-29 16:00:05 -05001466#line 105 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001467 {
Rob Herring47605972015-04-29 16:00:05 -05001468 the_boot_info = build_boot_info((yyvsp[-1].re), (yyvsp[0].node),
1469 guess_boot_cpuid((yyvsp[0].node)));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001470 }
Rob Herring47605972015-04-29 16:00:05 -05001471#line 1472 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001472 break;
1473
1474 case 3:
Rob Herring47605972015-04-29 16:00:05 -05001475#line 113 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001476 {
John Bonesio658f29a2010-11-17 15:28:20 -08001477 (yyval.re) = NULL;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001478 }
Rob Herring47605972015-04-29 16:00:05 -05001479#line 1480 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001480 break;
1481
1482 case 4:
Rob Herring47605972015-04-29 16:00:05 -05001483#line 117 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001484 {
Rob Herring47605972015-04-29 16:00:05 -05001485 (yyval.re) = chain_reserve_entry((yyvsp[-1].re), (yyvsp[0].re));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001486 }
Rob Herring47605972015-04-29 16:00:05 -05001487#line 1488 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001488 break;
1489
1490 case 5:
Rob Herring47605972015-04-29 16:00:05 -05001491#line 124 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001492 {
Rob Herring47605972015-04-29 16:00:05 -05001493 (yyval.re) = build_reserve_entry((yyvsp[-2].integer), (yyvsp[-1].integer));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001494 }
Rob Herring47605972015-04-29 16:00:05 -05001495#line 1496 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001496 break;
1497
1498 case 6:
Rob Herring47605972015-04-29 16:00:05 -05001499#line 128 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001500 {
Rob Herring47605972015-04-29 16:00:05 -05001501 add_label(&(yyvsp[0].re)->labels, (yyvsp[-1].labelref));
1502 (yyval.re) = (yyvsp[0].re);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001503 }
Rob Herring47605972015-04-29 16:00:05 -05001504#line 1505 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001505 break;
1506
1507 case 7:
Rob Herring47605972015-04-29 16:00:05 -05001508#line 136 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001509 {
Rob Herring47605972015-04-29 16:00:05 -05001510 (yyval.node) = name_node((yyvsp[0].node), "");
Grant Likely2a6a08c2013-06-13 13:00:43 +01001511 }
Rob Herring47605972015-04-29 16:00:05 -05001512#line 1513 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001513 break;
1514
Stephen Warrencd296722012-09-28 21:25:59 +00001515 case 8:
Rob Herring47605972015-04-29 16:00:05 -05001516#line 140 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001517 {
Rob Herring47605972015-04-29 16:00:05 -05001518 (yyval.node) = merge_nodes((yyvsp[-2].node), (yyvsp[0].node));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001519 }
Rob Herring47605972015-04-29 16:00:05 -05001520#line 1521 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001521 break;
1522
Stephen Warrencd296722012-09-28 21:25:59 +00001523 case 9:
Rob Herring47605972015-04-29 16:00:05 -05001524#line 145 "dtc-parser.y" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001525 {
Rob Herring47605972015-04-29 16:00:05 -05001526 struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
John Bonesio658f29a2010-11-17 15:28:20 -08001527
Rob Herring47605972015-04-29 16:00:05 -05001528 add_label(&target->labels, (yyvsp[-2].labelref));
John Bonesio658f29a2010-11-17 15:28:20 -08001529 if (target)
Rob Herring47605972015-04-29 16:00:05 -05001530 merge_nodes(target, (yyvsp[0].node));
John Bonesio658f29a2010-11-17 15:28:20 -08001531 else
Rob Herring47605972015-04-29 16:00:05 -05001532 ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1533 (yyval.node) = (yyvsp[-3].node);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001534 }
Rob Herring47605972015-04-29 16:00:05 -05001535#line 1536 "dtc-parser.tab.c" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001536 break;
1537
Stephen Warrencd296722012-09-28 21:25:59 +00001538 case 10:
Rob Herring47605972015-04-29 16:00:05 -05001539#line 156 "dtc-parser.y" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001540 {
Rob Herring47605972015-04-29 16:00:05 -05001541 struct node *target = get_node_by_ref((yyvsp[-2].node), (yyvsp[-1].labelref));
Stephen Warrencd296722012-09-28 21:25:59 +00001542
Rob Herring47605972015-04-29 16:00:05 -05001543 if (target)
1544 merge_nodes(target, (yyvsp[0].node));
Stephen Warrencd296722012-09-28 21:25:59 +00001545 else
Rob Herring47605972015-04-29 16:00:05 -05001546 ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1547 (yyval.node) = (yyvsp[-2].node);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001548 }
Rob Herring47605972015-04-29 16:00:05 -05001549#line 1550 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001550 break;
1551
John Bonesio658f29a2010-11-17 15:28:20 -08001552 case 11:
Rob Herring47605972015-04-29 16:00:05 -05001553#line 166 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001554 {
Rob Herring47605972015-04-29 16:00:05 -05001555 struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
1556
1557 if (target)
1558 delete_node(target);
1559 else
1560 ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
1561
1562
1563 (yyval.node) = (yyvsp[-3].node);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001564 }
Rob Herring47605972015-04-29 16:00:05 -05001565#line 1566 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001566 break;
1567
John Bonesio658f29a2010-11-17 15:28:20 -08001568 case 12:
Rob Herring47605972015-04-29 16:00:05 -05001569#line 181 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001570 {
Rob Herring47605972015-04-29 16:00:05 -05001571 (yyval.node) = build_node((yyvsp[-3].proplist), (yyvsp[-2].nodelist));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001572 }
Rob Herring47605972015-04-29 16:00:05 -05001573#line 1574 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001574 break;
1575
John Bonesio658f29a2010-11-17 15:28:20 -08001576 case 13:
Rob Herring47605972015-04-29 16:00:05 -05001577#line 188 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001578 {
Rob Herring47605972015-04-29 16:00:05 -05001579 (yyval.proplist) = NULL;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001580 }
Rob Herring47605972015-04-29 16:00:05 -05001581#line 1582 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001582 break;
1583
John Bonesio658f29a2010-11-17 15:28:20 -08001584 case 14:
Rob Herring47605972015-04-29 16:00:05 -05001585#line 192 "dtc-parser.y" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001586 {
Rob Herring47605972015-04-29 16:00:05 -05001587 (yyval.proplist) = chain_property((yyvsp[0].prop), (yyvsp[-1].proplist));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001588 }
Rob Herring47605972015-04-29 16:00:05 -05001589#line 1590 "dtc-parser.tab.c" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001590 break;
1591
1592 case 15:
Rob Herring47605972015-04-29 16:00:05 -05001593#line 199 "dtc-parser.y" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001594 {
Rob Herring47605972015-04-29 16:00:05 -05001595 (yyval.prop) = build_property((yyvsp[-3].propnodename), (yyvsp[-1].data));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001596 }
Rob Herring47605972015-04-29 16:00:05 -05001597#line 1598 "dtc-parser.tab.c" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001598 break;
1599
1600 case 16:
Rob Herring47605972015-04-29 16:00:05 -05001601#line 203 "dtc-parser.y" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001602 {
Rob Herring47605972015-04-29 16:00:05 -05001603 (yyval.prop) = build_property((yyvsp[-1].propnodename), empty_data);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001604 }
Rob Herring47605972015-04-29 16:00:05 -05001605#line 1606 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001606 break;
1607
1608 case 17:
Rob Herring47605972015-04-29 16:00:05 -05001609#line 207 "dtc-parser.y" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001610 {
Rob Herring47605972015-04-29 16:00:05 -05001611 (yyval.prop) = build_property_delete((yyvsp[-1].propnodename));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001612 }
Rob Herring47605972015-04-29 16:00:05 -05001613#line 1614 "dtc-parser.tab.c" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001614 break;
1615
Stephen Warrencd296722012-09-28 21:25:59 +00001616 case 18:
Rob Herring47605972015-04-29 16:00:05 -05001617#line 211 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001618 {
Rob Herring47605972015-04-29 16:00:05 -05001619 add_label(&(yyvsp[0].prop)->labels, (yyvsp[-1].labelref));
1620 (yyval.prop) = (yyvsp[0].prop);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001621 }
Rob Herring47605972015-04-29 16:00:05 -05001622#line 1623 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001623 break;
1624
John Bonesio658f29a2010-11-17 15:28:20 -08001625 case 19:
Rob Herring47605972015-04-29 16:00:05 -05001626#line 219 "dtc-parser.y" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001627 {
Rob Herring47605972015-04-29 16:00:05 -05001628 (yyval.data) = data_merge((yyvsp[-1].data), (yyvsp[0].data));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001629 }
Rob Herring47605972015-04-29 16:00:05 -05001630#line 1631 "dtc-parser.tab.c" /* yacc.c:1646 */
John Bonesio658f29a2010-11-17 15:28:20 -08001631 break;
1632
David Gibsona4da2e32007-12-18 15:06:42 +11001633 case 20:
Rob Herring47605972015-04-29 16:00:05 -05001634#line 223 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001635 {
Rob Herring47605972015-04-29 16:00:05 -05001636 (yyval.data) = data_merge((yyvsp[-2].data), (yyvsp[-1].array).data);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001637 }
Rob Herring47605972015-04-29 16:00:05 -05001638#line 1639 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001639 break;
1640
John Bonesio658f29a2010-11-17 15:28:20 -08001641 case 21:
Rob Herring47605972015-04-29 16:00:05 -05001642#line 227 "dtc-parser.y" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001643 {
Rob Herring47605972015-04-29 16:00:05 -05001644 (yyval.data) = data_merge((yyvsp[-3].data), (yyvsp[-1].data));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001645 }
Rob Herring47605972015-04-29 16:00:05 -05001646#line 1647 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001647 break;
1648
1649 case 22:
Rob Herring47605972015-04-29 16:00:05 -05001650#line 231 "dtc-parser.y" /* yacc.c:1646 */
David Gibsoned95d742008-08-07 12:24:17 +10001651 {
Rob Herring47605972015-04-29 16:00:05 -05001652 (yyval.data) = data_add_marker((yyvsp[-1].data), REF_PATH, (yyvsp[0].labelref));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001653 }
Rob Herring47605972015-04-29 16:00:05 -05001654#line 1655 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsoned95d742008-08-07 12:24:17 +10001655 break;
1656
Stephen Warrencd296722012-09-28 21:25:59 +00001657 case 23:
Rob Herring47605972015-04-29 16:00:05 -05001658#line 235 "dtc-parser.y" /* yacc.c:1646 */
David Gibsoned95d742008-08-07 12:24:17 +10001659 {
Rob Herring47605972015-04-29 16:00:05 -05001660 FILE *f = srcfile_relative_open((yyvsp[-5].data).val, NULL);
1661 struct data d;
1662
1663 if ((yyvsp[-3].integer) != 0)
1664 if (fseek(f, (yyvsp[-3].integer), SEEK_SET) != 0)
1665 die("Couldn't seek to offset %llu in \"%s\": %s",
1666 (unsigned long long)(yyvsp[-3].integer), (yyvsp[-5].data).val,
1667 strerror(errno));
1668
1669 d = data_copy_file(f, (yyvsp[-1].integer));
1670
1671 (yyval.data) = data_merge((yyvsp[-8].data), d);
1672 fclose(f);
1673 }
1674#line 1675 "dtc-parser.tab.c" /* yacc.c:1646 */
1675 break;
1676
1677 case 24:
1678#line 251 "dtc-parser.y" /* yacc.c:1646 */
1679 {
1680 FILE *f = srcfile_relative_open((yyvsp[-1].data).val, NULL);
David Gibsoned95d742008-08-07 12:24:17 +10001681 struct data d = empty_data;
1682
John Bonesio658f29a2010-11-17 15:28:20 -08001683 d = data_copy_file(f, -1);
David Gibsoned95d742008-08-07 12:24:17 +10001684
Rob Herring47605972015-04-29 16:00:05 -05001685 (yyval.data) = data_merge((yyvsp[-4].data), d);
John Bonesio658f29a2010-11-17 15:28:20 -08001686 fclose(f);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001687 }
Rob Herring47605972015-04-29 16:00:05 -05001688#line 1689 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001689 break;
1690
John Bonesio658f29a2010-11-17 15:28:20 -08001691 case 25:
Rob Herring47605972015-04-29 16:00:05 -05001692#line 261 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001693 {
Rob Herring47605972015-04-29 16:00:05 -05001694 (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001695 }
Rob Herring47605972015-04-29 16:00:05 -05001696#line 1697 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001697 break;
1698
John Bonesio658f29a2010-11-17 15:28:20 -08001699 case 26:
Rob Herring47605972015-04-29 16:00:05 -05001700#line 268 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001701 {
Rob Herring47605972015-04-29 16:00:05 -05001702 (yyval.data) = empty_data;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001703 }
Rob Herring47605972015-04-29 16:00:05 -05001704#line 1705 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001705 break;
1706
John Bonesio658f29a2010-11-17 15:28:20 -08001707 case 27:
Rob Herring47605972015-04-29 16:00:05 -05001708#line 272 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001709 {
Rob Herring47605972015-04-29 16:00:05 -05001710 (yyval.data) = (yyvsp[-1].data);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001711 }
Rob Herring47605972015-04-29 16:00:05 -05001712#line 1713 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001713 break;
1714
John Bonesio658f29a2010-11-17 15:28:20 -08001715 case 28:
Rob Herring47605972015-04-29 16:00:05 -05001716#line 276 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001717 {
Rob Herring47605972015-04-29 16:00:05 -05001718 (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001719 }
Rob Herring47605972015-04-29 16:00:05 -05001720#line 1721 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001721 break;
1722
John Bonesio658f29a2010-11-17 15:28:20 -08001723 case 29:
Rob Herring47605972015-04-29 16:00:05 -05001724#line 283 "dtc-parser.y" /* yacc.c:1646 */
1725 {
1726 unsigned long long bits;
1727
1728 bits = (yyvsp[-1].integer);
1729
1730 if ((bits != 8) && (bits != 16) &&
1731 (bits != 32) && (bits != 64)) {
1732 ERROR(&(yylsp[-1]), "Array elements must be"
1733 " 8, 16, 32 or 64-bits");
1734 bits = 32;
1735 }
1736
1737 (yyval.array).data = empty_data;
1738 (yyval.array).bits = bits;
1739 }
1740#line 1741 "dtc-parser.tab.c" /* yacc.c:1646 */
1741 break;
1742
1743 case 30:
1744#line 299 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001745 {
Stephen Warrencd296722012-09-28 21:25:59 +00001746 (yyval.array).data = empty_data;
1747 (yyval.array).bits = 32;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001748 }
Rob Herring47605972015-04-29 16:00:05 -05001749#line 1750 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001750 break;
1751
Rob Herring47605972015-04-29 16:00:05 -05001752 case 31:
1753#line 304 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001754 {
Rob Herring47605972015-04-29 16:00:05 -05001755 if ((yyvsp[-1].array).bits < 64) {
1756 uint64_t mask = (1ULL << (yyvsp[-1].array).bits) - 1;
Stephen Warrencd296722012-09-28 21:25:59 +00001757 /*
1758 * Bits above mask must either be all zero
1759 * (positive within range of mask) or all one
1760 * (negative and sign-extended). The second
1761 * condition is true if when we set all bits
1762 * within the mask to one (i.e. | in the
1763 * mask), all bits are one.
1764 */
Rob Herring47605972015-04-29 16:00:05 -05001765 if (((yyvsp[0].integer) > mask) && (((yyvsp[0].integer) | mask) != -1ULL))
1766 ERROR(&(yylsp[0]), "Value out of range for"
1767 " %d-bit array element", (yyvsp[-1].array).bits);
Stephen Warrencd296722012-09-28 21:25:59 +00001768 }
1769
Rob Herring47605972015-04-29 16:00:05 -05001770 (yyval.array).data = data_append_integer((yyvsp[-1].array).data, (yyvsp[0].integer), (yyvsp[-1].array).bits);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001771 }
Rob Herring47605972015-04-29 16:00:05 -05001772#line 1773 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001773 break;
1774
John Bonesio658f29a2010-11-17 15:28:20 -08001775 case 32:
Rob Herring47605972015-04-29 16:00:05 -05001776#line 323 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001777 {
Rob Herring47605972015-04-29 16:00:05 -05001778 uint64_t val = ~0ULL >> (64 - (yyvsp[-1].array).bits);
1779
1780 if ((yyvsp[-1].array).bits == 32)
1781 (yyvsp[-1].array).data = data_add_marker((yyvsp[-1].array).data,
1782 REF_PHANDLE,
1783 (yyvsp[0].labelref));
1784 else
1785 ERROR(&(yylsp[0]), "References are only allowed in "
1786 "arrays with 32-bit elements.");
1787
1788 (yyval.array).data = data_append_integer((yyvsp[-1].array).data, val, (yyvsp[-1].array).bits);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001789 }
Rob Herring47605972015-04-29 16:00:05 -05001790#line 1791 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001791 break;
1792
John Bonesio658f29a2010-11-17 15:28:20 -08001793 case 33:
Rob Herring47605972015-04-29 16:00:05 -05001794#line 337 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001795 {
Rob Herring47605972015-04-29 16:00:05 -05001796 (yyval.array).data = data_add_marker((yyvsp[-1].array).data, LABEL, (yyvsp[0].labelref));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001797 }
Rob Herring47605972015-04-29 16:00:05 -05001798#line 1799 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001799 break;
1800
Rob Herring47605972015-04-29 16:00:05 -05001801 case 36:
1802#line 346 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001803 {
Rob Herring47605972015-04-29 16:00:05 -05001804 (yyval.integer) = (yyvsp[-1].integer);
Grant Likely2a6a08c2013-06-13 13:00:43 +01001805 }
Rob Herring47605972015-04-29 16:00:05 -05001806#line 1807 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001807 break;
1808
Rob Herring47605972015-04-29 16:00:05 -05001809 case 39:
1810#line 357 "dtc-parser.y" /* yacc.c:1646 */
1811 { (yyval.integer) = (yyvsp[-4].integer) ? (yyvsp[-2].integer) : (yyvsp[0].integer); }
1812#line 1813 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001813 break;
1814
Rob Herring47605972015-04-29 16:00:05 -05001815 case 41:
1816#line 362 "dtc-parser.y" /* yacc.c:1646 */
1817 { (yyval.integer) = (yyvsp[-2].integer) || (yyvsp[0].integer); }
1818#line 1819 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001819 break;
1820
Rob Herring47605972015-04-29 16:00:05 -05001821 case 43:
1822#line 367 "dtc-parser.y" /* yacc.c:1646 */
1823 { (yyval.integer) = (yyvsp[-2].integer) && (yyvsp[0].integer); }
1824#line 1825 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001825 break;
1826
Rob Herring47605972015-04-29 16:00:05 -05001827 case 45:
1828#line 372 "dtc-parser.y" /* yacc.c:1646 */
1829 { (yyval.integer) = (yyvsp[-2].integer) | (yyvsp[0].integer); }
1830#line 1831 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001831 break;
1832
Rob Herring47605972015-04-29 16:00:05 -05001833 case 47:
1834#line 377 "dtc-parser.y" /* yacc.c:1646 */
1835 { (yyval.integer) = (yyvsp[-2].integer) ^ (yyvsp[0].integer); }
1836#line 1837 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001837 break;
1838
Rob Herring47605972015-04-29 16:00:05 -05001839 case 49:
1840#line 382 "dtc-parser.y" /* yacc.c:1646 */
1841 { (yyval.integer) = (yyvsp[-2].integer) & (yyvsp[0].integer); }
1842#line 1843 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001843 break;
1844
1845 case 51:
Rob Herring47605972015-04-29 16:00:05 -05001846#line 387 "dtc-parser.y" /* yacc.c:1646 */
1847 { (yyval.integer) = (yyvsp[-2].integer) == (yyvsp[0].integer); }
1848#line 1849 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001849 break;
1850
Rob Herring47605972015-04-29 16:00:05 -05001851 case 52:
1852#line 388 "dtc-parser.y" /* yacc.c:1646 */
1853 { (yyval.integer) = (yyvsp[-2].integer) != (yyvsp[0].integer); }
1854#line 1855 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001855 break;
1856
1857 case 54:
Rob Herring47605972015-04-29 16:00:05 -05001858#line 393 "dtc-parser.y" /* yacc.c:1646 */
1859 { (yyval.integer) = (yyvsp[-2].integer) < (yyvsp[0].integer); }
1860#line 1861 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001861 break;
1862
1863 case 55:
Rob Herring47605972015-04-29 16:00:05 -05001864#line 394 "dtc-parser.y" /* yacc.c:1646 */
1865 { (yyval.integer) = (yyvsp[-2].integer) > (yyvsp[0].integer); }
1866#line 1867 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001867 break;
1868
1869 case 56:
Rob Herring47605972015-04-29 16:00:05 -05001870#line 395 "dtc-parser.y" /* yacc.c:1646 */
1871 { (yyval.integer) = (yyvsp[-2].integer) <= (yyvsp[0].integer); }
1872#line 1873 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001873 break;
1874
1875 case 57:
Rob Herring47605972015-04-29 16:00:05 -05001876#line 396 "dtc-parser.y" /* yacc.c:1646 */
1877 { (yyval.integer) = (yyvsp[-2].integer) >= (yyvsp[0].integer); }
1878#line 1879 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001879 break;
1880
1881 case 58:
Rob Herring47605972015-04-29 16:00:05 -05001882#line 400 "dtc-parser.y" /* yacc.c:1646 */
1883 { (yyval.integer) = (yyvsp[-2].integer) << (yyvsp[0].integer); }
1884#line 1885 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001885 break;
1886
Rob Herring47605972015-04-29 16:00:05 -05001887 case 59:
1888#line 401 "dtc-parser.y" /* yacc.c:1646 */
1889 { (yyval.integer) = (yyvsp[-2].integer) >> (yyvsp[0].integer); }
1890#line 1891 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001891 break;
1892
1893 case 61:
Rob Herring47605972015-04-29 16:00:05 -05001894#line 406 "dtc-parser.y" /* yacc.c:1646 */
1895 { (yyval.integer) = (yyvsp[-2].integer) + (yyvsp[0].integer); }
1896#line 1897 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001897 break;
1898
Rob Herring47605972015-04-29 16:00:05 -05001899 case 62:
1900#line 407 "dtc-parser.y" /* yacc.c:1646 */
1901 { (yyval.integer) = (yyvsp[-2].integer) - (yyvsp[0].integer); }
1902#line 1903 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001903 break;
1904
1905 case 64:
Rob Herring47605972015-04-29 16:00:05 -05001906#line 412 "dtc-parser.y" /* yacc.c:1646 */
1907 { (yyval.integer) = (yyvsp[-2].integer) * (yyvsp[0].integer); }
1908#line 1909 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001909 break;
1910
1911 case 65:
Rob Herring91feabc2016-01-26 09:04:11 -06001912#line 414 "dtc-parser.y" /* yacc.c:1646 */
1913 {
1914 if ((yyvsp[0].integer) != 0) {
1915 (yyval.integer) = (yyvsp[-2].integer) / (yyvsp[0].integer);
1916 } else {
1917 ERROR(&(yyloc), "Division by zero");
1918 (yyval.integer) = 0;
1919 }
1920 }
1921#line 1922 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001922 break;
1923
Rob Herring47605972015-04-29 16:00:05 -05001924 case 66:
Rob Herring91feabc2016-01-26 09:04:11 -06001925#line 423 "dtc-parser.y" /* yacc.c:1646 */
1926 {
1927 if ((yyvsp[0].integer) != 0) {
1928 (yyval.integer) = (yyvsp[-2].integer) % (yyvsp[0].integer);
1929 } else {
1930 ERROR(&(yyloc), "Division by zero");
1931 (yyval.integer) = 0;
1932 }
1933 }
1934#line 1935 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001935 break;
1936
1937 case 69:
Rob Herring91feabc2016-01-26 09:04:11 -06001938#line 436 "dtc-parser.y" /* yacc.c:1646 */
Rob Herring47605972015-04-29 16:00:05 -05001939 { (yyval.integer) = -(yyvsp[0].integer); }
Rob Herring91feabc2016-01-26 09:04:11 -06001940#line 1941 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001941 break;
1942
1943 case 70:
Rob Herring91feabc2016-01-26 09:04:11 -06001944#line 437 "dtc-parser.y" /* yacc.c:1646 */
Rob Herring47605972015-04-29 16:00:05 -05001945 { (yyval.integer) = ~(yyvsp[0].integer); }
Rob Herring47605972015-04-29 16:00:05 -05001946#line 1947 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001947 break;
1948
Rob Herring91feabc2016-01-26 09:04:11 -06001949 case 71:
1950#line 438 "dtc-parser.y" /* yacc.c:1646 */
1951 { (yyval.integer) = !(yyvsp[0].integer); }
1952#line 1953 "dtc-parser.tab.c" /* yacc.c:1646 */
1953 break;
1954
1955 case 72:
1956#line 443 "dtc-parser.y" /* yacc.c:1646 */
1957 {
1958 (yyval.data) = empty_data;
1959 }
1960#line 1961 "dtc-parser.tab.c" /* yacc.c:1646 */
1961 break;
1962
Stephen Warrencd296722012-09-28 21:25:59 +00001963 case 73:
Rob Herring91feabc2016-01-26 09:04:11 -06001964#line 447 "dtc-parser.y" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001965 {
Rob Herring47605972015-04-29 16:00:05 -05001966 (yyval.data) = data_append_byte((yyvsp[-1].data), (yyvsp[0].byte));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001967 }
Rob Herring91feabc2016-01-26 09:04:11 -06001968#line 1969 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00001969 break;
1970
1971 case 74:
Rob Herring91feabc2016-01-26 09:04:11 -06001972#line 451 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001973 {
Rob Herring47605972015-04-29 16:00:05 -05001974 (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001975 }
Rob Herring91feabc2016-01-26 09:04:11 -06001976#line 1977 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001977 break;
1978
Stephen Warrencd296722012-09-28 21:25:59 +00001979 case 75:
Rob Herring91feabc2016-01-26 09:04:11 -06001980#line 458 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001981 {
Rob Herring47605972015-04-29 16:00:05 -05001982 (yyval.nodelist) = NULL;
Grant Likely2a6a08c2013-06-13 13:00:43 +01001983 }
Rob Herring91feabc2016-01-26 09:04:11 -06001984#line 1985 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001985 break;
1986
Stephen Warrencd296722012-09-28 21:25:59 +00001987 case 76:
Rob Herring91feabc2016-01-26 09:04:11 -06001988#line 462 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001989 {
Rob Herring47605972015-04-29 16:00:05 -05001990 (yyval.nodelist) = chain_node((yyvsp[-1].node), (yyvsp[0].nodelist));
Grant Likely2a6a08c2013-06-13 13:00:43 +01001991 }
Rob Herring91feabc2016-01-26 09:04:11 -06001992#line 1993 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001993 break;
1994
Stephen Warrencd296722012-09-28 21:25:59 +00001995 case 77:
Rob Herring91feabc2016-01-26 09:04:11 -06001996#line 466 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11001997 {
Rob Herring47605972015-04-29 16:00:05 -05001998 ERROR(&(yylsp[0]), "Properties must precede subnodes");
1999 YYERROR;
Grant Likely2a6a08c2013-06-13 13:00:43 +01002000 }
Rob Herring91feabc2016-01-26 09:04:11 -06002001#line 2002 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11002002 break;
2003
Stephen Warrencd296722012-09-28 21:25:59 +00002004 case 78:
Rob Herring91feabc2016-01-26 09:04:11 -06002005#line 474 "dtc-parser.y" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00002006 {
Rob Herring47605972015-04-29 16:00:05 -05002007 (yyval.node) = name_node((yyvsp[0].node), (yyvsp[-1].propnodename));
Grant Likely2a6a08c2013-06-13 13:00:43 +01002008 }
Rob Herring91feabc2016-01-26 09:04:11 -06002009#line 2010 "dtc-parser.tab.c" /* yacc.c:1646 */
Stephen Warrencd296722012-09-28 21:25:59 +00002010 break;
2011
2012 case 79:
Rob Herring91feabc2016-01-26 09:04:11 -06002013#line 478 "dtc-parser.y" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11002014 {
Rob Herring47605972015-04-29 16:00:05 -05002015 (yyval.node) = name_node(build_node_delete(), (yyvsp[-1].propnodename));
Grant Likely2a6a08c2013-06-13 13:00:43 +01002016 }
Rob Herring91feabc2016-01-26 09:04:11 -06002017#line 2018 "dtc-parser.tab.c" /* yacc.c:1646 */
Rob Herring47605972015-04-29 16:00:05 -05002018 break;
2019
2020 case 80:
Rob Herring91feabc2016-01-26 09:04:11 -06002021#line 482 "dtc-parser.y" /* yacc.c:1646 */
Rob Herring47605972015-04-29 16:00:05 -05002022 {
2023 add_label(&(yyvsp[0].node)->labels, (yyvsp[-1].labelref));
2024 (yyval.node) = (yyvsp[0].node);
2025 }
Rob Herring91feabc2016-01-26 09:04:11 -06002026#line 2027 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11002027 break;
2028
2029
Rob Herring91feabc2016-01-26 09:04:11 -06002030#line 2031 "dtc-parser.tab.c" /* yacc.c:1646 */
David Gibsona4da2e32007-12-18 15:06:42 +11002031 default: break;
2032 }
Grant Likely2a6a08c2013-06-13 13:00:43 +01002033 /* User semantic actions sometimes alter yychar, and that requires
2034 that yytoken be updated with the new translation. We take the
2035 approach of translating immediately before every use of yytoken.
2036 One alternative is translating here after every semantic action,
2037 but that translation would be missed if the semantic action invokes
2038 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2039 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
2040 incorrect destructor might then be invoked immediately. In the
2041 case of YYERROR or YYBACKUP, subsequent parser actions might lead
2042 to an incorrect destructor call or verbose syntax error message
2043 before the lookahead is translated. */
David Gibsona4da2e32007-12-18 15:06:42 +11002044 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2045
2046 YYPOPSTACK (yylen);
2047 yylen = 0;
2048 YY_STACK_PRINT (yyss, yyssp);
2049
2050 *++yyvsp = yyval;
Rob Herring47605972015-04-29 16:00:05 -05002051 *++yylsp = yyloc;
David Gibsona4da2e32007-12-18 15:06:42 +11002052
Rob Herring47605972015-04-29 16:00:05 -05002053 /* Now 'shift' the result of the reduction. Determine what state
David Gibsona4da2e32007-12-18 15:06:42 +11002054 that goes to, based on the state we popped back to and the rule
2055 number reduced by. */
2056
2057 yyn = yyr1[yyn];
2058
2059 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2060 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2061 yystate = yytable[yystate];
2062 else
2063 yystate = yydefgoto[yyn - YYNTOKENS];
2064
2065 goto yynewstate;
2066
2067
Rob Herring47605972015-04-29 16:00:05 -05002068/*--------------------------------------.
2069| yyerrlab -- here on detecting error. |
2070`--------------------------------------*/
David Gibsona4da2e32007-12-18 15:06:42 +11002071yyerrlab:
Grant Likely2a6a08c2013-06-13 13:00:43 +01002072 /* Make sure we have latest lookahead translation. See comments at
2073 user semantic actions for why this is necessary. */
2074 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2075
David Gibsona4da2e32007-12-18 15:06:42 +11002076 /* If not already recovering from an error, report this error. */
2077 if (!yyerrstatus)
2078 {
2079 ++yynerrs;
2080#if ! YYERROR_VERBOSE
2081 yyerror (YY_("syntax error"));
2082#else
Grant Likely2a6a08c2013-06-13 13:00:43 +01002083# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2084 yyssp, yytoken)
David Gibsona4da2e32007-12-18 15:06:42 +11002085 {
Grant Likely2a6a08c2013-06-13 13:00:43 +01002086 char const *yymsgp = YY_("syntax error");
2087 int yysyntax_error_status;
2088 yysyntax_error_status = YYSYNTAX_ERROR;
2089 if (yysyntax_error_status == 0)
2090 yymsgp = yymsg;
2091 else if (yysyntax_error_status == 1)
2092 {
2093 if (yymsg != yymsgbuf)
2094 YYSTACK_FREE (yymsg);
2095 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
2096 if (!yymsg)
2097 {
2098 yymsg = yymsgbuf;
2099 yymsg_alloc = sizeof yymsgbuf;
2100 yysyntax_error_status = 2;
2101 }
2102 else
2103 {
2104 yysyntax_error_status = YYSYNTAX_ERROR;
2105 yymsgp = yymsg;
2106 }
2107 }
2108 yyerror (yymsgp);
2109 if (yysyntax_error_status == 2)
2110 goto yyexhaustedlab;
David Gibsona4da2e32007-12-18 15:06:42 +11002111 }
Grant Likely2a6a08c2013-06-13 13:00:43 +01002112# undef YYSYNTAX_ERROR
David Gibsona4da2e32007-12-18 15:06:42 +11002113#endif
2114 }
2115
Rob Herring47605972015-04-29 16:00:05 -05002116 yyerror_range[1] = yylloc;
David Gibsona4da2e32007-12-18 15:06:42 +11002117
2118 if (yyerrstatus == 3)
2119 {
John Bonesio658f29a2010-11-17 15:28:20 -08002120 /* If just tried and failed to reuse lookahead token after an
Rob Herring47605972015-04-29 16:00:05 -05002121 error, discard it. */
David Gibsona4da2e32007-12-18 15:06:42 +11002122
2123 if (yychar <= YYEOF)
Rob Herring47605972015-04-29 16:00:05 -05002124 {
2125 /* Return failure if at end of input. */
2126 if (yychar == YYEOF)
2127 YYABORT;
2128 }
David Gibsona4da2e32007-12-18 15:06:42 +11002129 else
Rob Herring47605972015-04-29 16:00:05 -05002130 {
2131 yydestruct ("Error: discarding",
2132 yytoken, &yylval, &yylloc);
2133 yychar = YYEMPTY;
2134 }
David Gibsona4da2e32007-12-18 15:06:42 +11002135 }
2136
John Bonesio658f29a2010-11-17 15:28:20 -08002137 /* Else will try to reuse lookahead token after shifting the error
David Gibsona4da2e32007-12-18 15:06:42 +11002138 token. */
2139 goto yyerrlab1;
2140
2141
2142/*---------------------------------------------------.
2143| yyerrorlab -- error raised explicitly by YYERROR. |
2144`---------------------------------------------------*/
2145yyerrorlab:
2146
2147 /* Pacify compilers like GCC when the user code never invokes
2148 YYERROR and the label yyerrorlab therefore never appears in user
2149 code. */
2150 if (/*CONSTCOND*/ 0)
2151 goto yyerrorlab;
2152
Rob Herring47605972015-04-29 16:00:05 -05002153 yyerror_range[1] = yylsp[1-yylen];
2154 /* Do not reclaim the symbols of the rule whose action triggered
David Gibsona4da2e32007-12-18 15:06:42 +11002155 this YYERROR. */
2156 YYPOPSTACK (yylen);
2157 yylen = 0;
2158 YY_STACK_PRINT (yyss, yyssp);
2159 yystate = *yyssp;
2160 goto yyerrlab1;
2161
2162
2163/*-------------------------------------------------------------.
2164| yyerrlab1 -- common code for both syntax error and YYERROR. |
2165`-------------------------------------------------------------*/
2166yyerrlab1:
Rob Herring47605972015-04-29 16:00:05 -05002167 yyerrstatus = 3; /* Each real token shifted decrements this. */
David Gibsona4da2e32007-12-18 15:06:42 +11002168
2169 for (;;)
2170 {
2171 yyn = yypact[yystate];
Grant Likely2a6a08c2013-06-13 13:00:43 +01002172 if (!yypact_value_is_default (yyn))
Rob Herring47605972015-04-29 16:00:05 -05002173 {
2174 yyn += YYTERROR;
2175 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2176 {
2177 yyn = yytable[yyn];
2178 if (0 < yyn)
2179 break;
2180 }
2181 }
David Gibsona4da2e32007-12-18 15:06:42 +11002182
2183 /* Pop the current state because it cannot handle the error token. */
2184 if (yyssp == yyss)
Rob Herring47605972015-04-29 16:00:05 -05002185 YYABORT;
David Gibsona4da2e32007-12-18 15:06:42 +11002186
Rob Herring47605972015-04-29 16:00:05 -05002187 yyerror_range[1] = *yylsp;
David Gibsona4da2e32007-12-18 15:06:42 +11002188 yydestruct ("Error: popping",
Rob Herring47605972015-04-29 16:00:05 -05002189 yystos[yystate], yyvsp, yylsp);
David Gibsona4da2e32007-12-18 15:06:42 +11002190 YYPOPSTACK (1);
2191 yystate = *yyssp;
2192 YY_STACK_PRINT (yyss, yyssp);
2193 }
2194
Grant Likelya878b912014-01-21 12:51:00 +00002195 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
David Gibsona4da2e32007-12-18 15:06:42 +11002196 *++yyvsp = yylval;
Grant Likelya878b912014-01-21 12:51:00 +00002197 YY_IGNORE_MAYBE_UNINITIALIZED_END
David Gibsona4da2e32007-12-18 15:06:42 +11002198
Rob Herring47605972015-04-29 16:00:05 -05002199 yyerror_range[2] = yylloc;
2200 /* Using YYLLOC is tempting, but would change the location of
2201 the lookahead. YYLOC is available though. */
2202 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
2203 *++yylsp = yyloc;
David Gibsona4da2e32007-12-18 15:06:42 +11002204
2205 /* Shift the error token. */
2206 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2207
2208 yystate = yyn;
2209 goto yynewstate;
2210
2211
2212/*-------------------------------------.
2213| yyacceptlab -- YYACCEPT comes here. |
2214`-------------------------------------*/
2215yyacceptlab:
2216 yyresult = 0;
2217 goto yyreturn;
2218
2219/*-----------------------------------.
2220| yyabortlab -- YYABORT comes here. |
2221`-----------------------------------*/
2222yyabortlab:
2223 yyresult = 1;
2224 goto yyreturn;
2225
Grant Likelya878b912014-01-21 12:51:00 +00002226#if !defined yyoverflow || YYERROR_VERBOSE
David Gibsona4da2e32007-12-18 15:06:42 +11002227/*-------------------------------------------------.
2228| yyexhaustedlab -- memory exhaustion comes here. |
2229`-------------------------------------------------*/
2230yyexhaustedlab:
2231 yyerror (YY_("memory exhausted"));
2232 yyresult = 2;
2233 /* Fall through. */
2234#endif
2235
2236yyreturn:
John Bonesio658f29a2010-11-17 15:28:20 -08002237 if (yychar != YYEMPTY)
Grant Likely2a6a08c2013-06-13 13:00:43 +01002238 {
2239 /* Make sure we have latest lookahead translation. See comments at
2240 user semantic actions for why this is necessary. */
2241 yytoken = YYTRANSLATE (yychar);
2242 yydestruct ("Cleanup: discarding lookahead",
Rob Herring47605972015-04-29 16:00:05 -05002243 yytoken, &yylval, &yylloc);
Grant Likely2a6a08c2013-06-13 13:00:43 +01002244 }
Rob Herring47605972015-04-29 16:00:05 -05002245 /* Do not reclaim the symbols of the rule whose action triggered
David Gibsona4da2e32007-12-18 15:06:42 +11002246 this YYABORT or YYACCEPT. */
2247 YYPOPSTACK (yylen);
2248 YY_STACK_PRINT (yyss, yyssp);
2249 while (yyssp != yyss)
2250 {
2251 yydestruct ("Cleanup: popping",
Rob Herring47605972015-04-29 16:00:05 -05002252 yystos[*yyssp], yyvsp, yylsp);
David Gibsona4da2e32007-12-18 15:06:42 +11002253 YYPOPSTACK (1);
2254 }
2255#ifndef yyoverflow
2256 if (yyss != yyssa)
2257 YYSTACK_FREE (yyss);
2258#endif
2259#if YYERROR_VERBOSE
2260 if (yymsg != yymsgbuf)
2261 YYSTACK_FREE (yymsg);
2262#endif
Rob Herring47605972015-04-29 16:00:05 -05002263 return yyresult;
David Gibsona4da2e32007-12-18 15:06:42 +11002264}
Rob Herring91feabc2016-01-26 09:04:11 -06002265#line 488 "dtc-parser.y" /* yacc.c:1906 */
David Gibsona4da2e32007-12-18 15:06:42 +11002266
2267
Rob Herring47605972015-04-29 16:00:05 -05002268void yyerror(char const *s)
David Gibsona4da2e32007-12-18 15:06:42 +11002269{
Rob Herring47605972015-04-29 16:00:05 -05002270 ERROR(&yylloc, "%s", s);
Stephen Warrencd296722012-09-28 21:25:59 +00002271}