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