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