Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5fab57d authored by Grant Likely's avatar Grant Likely
Browse files

Merge branch 'devicetree/dtc' into devicetree/next

Branch to upgrade DTC toolchain to version 1.4.0
parents 38dbfb59 c8a3e6a8
Loading
Loading
Loading
Loading
+194 −275
Original line number Original line Diff line number Diff line
/* A Bison parser, made by GNU Bison 2.5.  */
/* A Bison parser, made by GNU Bison 2.7.12-4996.  */


/* Bison implementation for Yacc-like parsers in C
/* Bison implementation for Yacc-like parsers in C
   
   
      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
   
   
   This program is free software: you can redistribute it and/or modify
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
#define YYBISON 1
#define YYBISON 1


/* Bison version.  */
/* Bison version.  */
#define YYBISON_VERSION "2.5"
#define YYBISON_VERSION "2.7.12-4996"


/* Skeleton name.  */
/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"
#define YYSKELETON_NAME "yacc.c"
@@ -58,14 +58,11 @@
/* Pull parsers.  */
/* Pull parsers.  */
#define YYPULL 1
#define YYPULL 1


/* Using locations.  */
#define YYLSP_NEEDED 0






/* Copy the first part of user declarations.  */
/* Copy the first part of user declarations.  */

/* Line 371 of yacc.c  */
/* Line 268 of yacc.c  */
#line 21 "dtc-parser.y"
#line 21 "dtc-parser.y"


#include <stdio.h>
#include <stdio.h>
@@ -85,13 +82,15 @@ extern int treesource_error;
static unsigned long long eval_literal(const char *s, int base, int bits);
static unsigned long long eval_literal(const char *s, int base, int bits);
static unsigned char eval_char_literal(const char *s);
static unsigned char eval_char_literal(const char *s);


/* Line 371 of yacc.c  */
#line 87 "dtc-parser.tab.c"


/* Line 268 of yacc.c  */
# ifndef YY_NULL
#line 91 "dtc-parser.tab.c"
#  if defined __cplusplus && 201103L <= __cplusplus

#   define YY_NULL nullptr
/* Enabling traces.  */
#  else
#ifndef YYDEBUG
#   define YY_NULL 0
# define YYDEBUG 0
#  endif
# endif
# endif


/* Enabling verbose error messages.  */
/* Enabling verbose error messages.  */
@@ -102,11 +101,17 @@ static unsigned char eval_char_literal(const char *s);
# define YYERROR_VERBOSE 0
# define YYERROR_VERBOSE 0
#endif
#endif


/* Enabling the token table.  */
/* In a future release of Bison, this section will be replaced
#ifndef YYTOKEN_TABLE
   by #include "dtc-parser.tab.h".  */
# define YYTOKEN_TABLE 0
#ifndef YY_YY_DTC_PARSER_TAB_H_INCLUDED
# define YY_YY_DTC_PARSER_TAB_H_INCLUDED
/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
#endif



/* Tokens.  */
/* Tokens.  */
#ifndef YYTOKENTYPE
#ifndef YYTOKENTYPE
@@ -140,12 +145,10 @@ static unsigned char eval_char_literal(const char *s);
#endif
#endif





#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
typedef union YYSTYPE
{
{

/* Line 387 of yacc.c  */
/* Line 293 of yacc.c  */
#line 40 "dtc-parser.y"
#line 40 "dtc-parser.y"


	char *propnodename;
	char *propnodename;
@@ -168,21 +171,36 @@ typedef union YYSTYPE
	uint64_t integer;
	uint64_t integer;





/* Line 387 of yacc.c  */
/* Line 293 of yacc.c  */
#line 176 "dtc-parser.tab.c"
#line 174 "dtc-parser.tab.c"
} YYSTYPE;
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_DECLARED 1
#endif
#endif


extern YYSTYPE yylval;


/* Copy the second part of user declarations.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */

#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED  */


/* Copy the second part of user declarations.  */


/* Line 343 of yacc.c  */
/* Line 390 of yacc.c  */
#line 186 "dtc-parser.tab.c"
#line 204 "dtc-parser.tab.c"


#ifdef short
#ifdef short
# undef short
# undef short
@@ -235,24 +253,33 @@ typedef short int yytype_int16;
# if defined YYENABLE_NLS && YYENABLE_NLS
# if defined YYENABLE_NLS && YYENABLE_NLS
#  if ENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
#  endif
#  endif
# endif
# endif
# ifndef YY_
# ifndef YY_
#  define YY_(msgid) msgid
#  define YY_(Msgid) Msgid
# endif
#endif

#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later.  */
# if (! defined __GNUC__ || __GNUC__ < 2 \
      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
#  define __attribute__(Spec) /* empty */
# endif
# endif
#endif
#endif


/* Suppress unused-variable warnings by "using" E.  */
/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
# define YYUSE(E) ((void) (E))
#else
#else
# define YYUSE(e) /* empty */
# define YYUSE(E) /* empty */
#endif
#endif



/* Identity function, used to suppress warnings about constant conditions.  */
/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
#ifndef lint
# define YYID(n) (n)
# define YYID(N) (N)
#else
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
     || defined __cplusplus || defined _MSC_VER)
@@ -288,6 +315,7 @@ YYID (yyi)
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
#     ifndef EXIT_SUCCESS
#     ifndef EXIT_SUCCESS
#      define EXIT_SUCCESS 0
#      define EXIT_SUCCESS 0
#     endif
#     endif
@@ -379,19 +407,19 @@ union yyalloc
#endif
#endif


#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO.  The source and destination do
/* Copy COUNT objects from SRC to DST.  The source and destination do
   not overlap.  */
   not overlap.  */
# ifndef YYCOPY
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
#   define YYCOPY(Dst, Src, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
#  else
#  else
#   define YYCOPY(To, From, Count)		\
#   define YYCOPY(Dst, Src, Count)              \
      do                                        \
      do                                        \
        {                                       \
        {                                       \
          YYSIZE_T yyi;                         \
          YYSIZE_T yyi;                         \
          for (yyi = 0; yyi < (Count); yyi++)   \
          for (yyi = 0; yyi < (Count); yyi++)   \
	    (To)[yyi] = (From)[yyi];		\
            (Dst)[yyi] = (Src)[yyi];            \
        }                                       \
        }                                       \
      while (YYID (0))
      while (YYID (0))
#  endif
#  endif
@@ -513,7 +541,7 @@ static const yytype_uint16 yyrline[] =
};
};
#endif
#endif


#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
static const char *const yytname[] =
@@ -530,7 +558,7 @@ static const char *const yytname[] =
  "integer_expr", "integer_trinary", "integer_or", "integer_and",
  "integer_expr", "integer_trinary", "integer_or", "integer_and",
  "integer_bitor", "integer_bitxor", "integer_bitand", "integer_eq",
  "integer_bitor", "integer_bitxor", "integer_bitand", "integer_eq",
  "integer_rela", "integer_shift", "integer_add", "integer_mul",
  "integer_rela", "integer_shift", "integer_add", "integer_mul",
  "integer_unary", "bytestring", "subnodes", "subnode", 0
  "integer_unary", "bytestring", "subnodes", "subnode", YY_NULL
};
};
#endif
#endif


@@ -655,10 +683,10 @@ static const yytype_uint8 yytable[] =
     137,     0,    73,   139
     137,     0,    73,   139
};
};


#define yypact_value_is_default(yystate) \
#define yypact_value_is_default(Yystate) \
  ((yystate) == (-78))
  (!!((Yystate) == (-78)))


#define yytable_value_is_error(yytable_value) \
#define yytable_value_is_error(Yytable_value) \
  YYID (0)
  YYID (0)


static const yytype_int16 yycheck[] =
static const yytype_int16 yycheck[] =
@@ -729,11 +757,12 @@ static const yytype_uint8 yystos[] =


#define YYBACKUP(Token, Value)                                  \
#define YYBACKUP(Token, Value)                                  \
do                                                              \
do                                                              \
  if (yychar == YYEMPTY && yylen == 1)				\
  if (yychar == YYEMPTY)                                        \
    {                                                           \
    {                                                           \
      yychar = (Token);                                         \
      yychar = (Token);                                         \
      yylval = (Value);                                         \
      yylval = (Value);                                         \
      YYPOPSTACK (1);						\
      YYPOPSTACK (yylen);                                       \
      yystate = *yyssp;                                         \
      goto yybackup;                                            \
      goto yybackup;                                            \
    }                                                           \
    }                                                           \
  else                                                          \
  else                                                          \
@@ -743,46 +772,18 @@ do \
    }								\
    }								\
while (YYID (0))
while (YYID (0))



/* Error token number */
#define YYTERROR	1
#define YYTERROR	1
#define YYERRCODE	256
#define YYERRCODE	256




/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* This macro is provided for backward compatibility. */
/* This macro is provided for backward compatibility. */

#ifndef YY_LOCATION_PRINT
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
#endif




/* YYLEX -- calling `yylex' with the right arguments.  */
/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
# define YYLEX yylex (YYLEX_PARAM)
#else
#else
@@ -832,6 +833,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    YYSTYPE const * const yyvaluep;
    YYSTYPE const * const yyvaluep;
#endif
#endif
{
{
  FILE *yyo = yyoutput;
  YYUSE (yyo);
  if (!yyvaluep)
  if (!yyvaluep)
    return;
    return;
# ifdef YYPRINT
# ifdef YYPRINT
@@ -840,11 +843,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
# else
# else
  YYUSE (yyoutput);
  YYUSE (yyoutput);
# endif
# endif
  switch (yytype)
  YYUSE (yytype);
    {
      default:
	break;
    }
}
}




@@ -1083,12 +1082,11 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                yytype_int16 *yyssp, int yytoken)
                yytype_int16 *yyssp, int yytoken)
{
{
  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
  YYSIZE_T yysize = yysize0;
  YYSIZE_T yysize = yysize0;
  YYSIZE_T yysize1;
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  /* Internationalized format string. */
  /* Internationalized format string. */
  const char *yyformat = 0;
  const char *yyformat = YY_NULL;
  /* Arguments of yyformat. */
  /* Arguments of yyformat. */
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  /* Number of reported tokens (one for the "unexpected", one per
  /* Number of reported tokens (one for the "unexpected", one per
@@ -1148,7 +1146,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                    break;
                    break;
                  }
                  }
                yyarg[yycount++] = yytname[yyx];
                yyarg[yycount++] = yytname[yyx];
                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
                {
                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
                  if (! (yysize <= yysize1
                  if (! (yysize <= yysize1
                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                    return 2;
                    return 2;
@@ -1156,6 +1155,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                }
                }
              }
              }
        }
        }
    }


  switch (yycount)
  switch (yycount)
    {
    {
@@ -1172,10 +1172,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
# undef YYCASE_
# undef YYCASE_
    }
    }


  yysize1 = yysize + yystrlen (yyformat);
  {
    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
      return 2;
      return 2;
    yysize = yysize1;
    yysize = yysize1;
  }


  if (*yymsg_alloc < yysize)
  if (*yymsg_alloc < yysize)
    {
    {
@@ -1231,36 +1233,26 @@ yydestruct (yymsg, yytype, yyvaluep)
    yymsg = "Deleting";
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);


  switch (yytype)
  YYUSE (yytype);
    {

      default:
	break;
    }
}
}




/* Prevent warnings from -Wmissing-prototypes.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */




/* The lookahead symbol.  */
/* The lookahead symbol.  */
int yychar;
int yychar;



#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif

/* The semantic value of the lookahead symbol.  */
/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;
YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);


/* Number of syntax errors so far.  */
/* Number of syntax errors so far.  */
int yynerrs;
int yynerrs;
@@ -1300,7 +1292,7 @@ yyparse ()
       `yyss': related to states.
       `yyss': related to states.
       `yyvs': related to semantic values.
       `yyvs': related to semantic values.


       Refer to the stacks thru separate pointers, to allow yyoverflow
       Refer to the stacks through separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */
       to reallocate them elsewhere.  */


    /* The state stack.  */
    /* The state stack.  */
@@ -1318,7 +1310,7 @@ yyparse ()
  int yyn;
  int yyn;
  int yyresult;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken;
  int yytoken = 0;
  /* The variables used to return semantic value and location from the
  /* The variables used to return semantic value and location from the
     action routines.  */
     action routines.  */
  YYSTYPE yyval;
  YYSTYPE yyval;
@@ -1336,9 +1328,8 @@ yyparse ()
     Keep to zero when no symbol should be popped.  */
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;
  int yylen = 0;


  yytoken = 0;
  yyssp = yyss = yyssa;
  yyss = yyssa;
  yyvsp = yyvs = yyvsa;
  yyvs = yyvsa;
  yystacksize = YYINITDEPTH;
  yystacksize = YYINITDEPTH;


  YYDPRINTF ((stderr, "Starting parse\n"));
  YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1347,14 +1338,6 @@ yyparse ()
  yyerrstatus = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */
  yychar = YYEMPTY; /* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */
  yyssp = yyss;
  yyvsp = yyvs;

  goto yysetstate;
  goto yysetstate;


/*------------------------------------------------------------.
/*------------------------------------------------------------.
@@ -1495,7 +1478,9 @@ yybackup:
  yychar = YYEMPTY;
  yychar = YYEMPTY;


  yystate = yyn;
  yystate = yyn;
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END


  goto yynewstate;
  goto yynewstate;


@@ -1532,8 +1517,7 @@ yyreduce:
  switch (yyn)
  switch (yyn)
    {
    {
        case 2:
        case 2:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 110 "dtc-parser.y"
#line 110 "dtc-parser.y"
    {
    {
			the_boot_info = build_boot_info((yyvsp[(3) - (4)].re), (yyvsp[(4) - (4)].node),
			the_boot_info = build_boot_info((yyvsp[(3) - (4)].re), (yyvsp[(4) - (4)].node),
@@ -1542,8 +1526,7 @@ yyreduce:
    break;
    break;


  case 3:
  case 3:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 118 "dtc-parser.y"
#line 118 "dtc-parser.y"
    {
    {
			(yyval.re) = NULL;
			(yyval.re) = NULL;
@@ -1551,8 +1534,7 @@ yyreduce:
    break;
    break;


  case 4:
  case 4:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 122 "dtc-parser.y"
#line 122 "dtc-parser.y"
    {
    {
			(yyval.re) = chain_reserve_entry((yyvsp[(1) - (2)].re), (yyvsp[(2) - (2)].re));
			(yyval.re) = chain_reserve_entry((yyvsp[(1) - (2)].re), (yyvsp[(2) - (2)].re));
@@ -1560,8 +1542,7 @@ yyreduce:
    break;
    break;


  case 5:
  case 5:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 129 "dtc-parser.y"
#line 129 "dtc-parser.y"
    {
    {
			(yyval.re) = build_reserve_entry((yyvsp[(2) - (4)].integer), (yyvsp[(3) - (4)].integer));
			(yyval.re) = build_reserve_entry((yyvsp[(2) - (4)].integer), (yyvsp[(3) - (4)].integer));
@@ -1569,8 +1550,7 @@ yyreduce:
    break;
    break;


  case 6:
  case 6:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 133 "dtc-parser.y"
#line 133 "dtc-parser.y"
    {
    {
			add_label(&(yyvsp[(2) - (2)].re)->labels, (yyvsp[(1) - (2)].labelref));
			add_label(&(yyvsp[(2) - (2)].re)->labels, (yyvsp[(1) - (2)].labelref));
@@ -1579,8 +1559,7 @@ yyreduce:
    break;
    break;


  case 7:
  case 7:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 141 "dtc-parser.y"
#line 141 "dtc-parser.y"
    {
    {
			(yyval.node) = name_node((yyvsp[(2) - (2)].node), "");
			(yyval.node) = name_node((yyvsp[(2) - (2)].node), "");
@@ -1588,8 +1567,7 @@ yyreduce:
    break;
    break;


  case 8:
  case 8:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 145 "dtc-parser.y"
#line 145 "dtc-parser.y"
    {
    {
			(yyval.node) = merge_nodes((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
			(yyval.node) = merge_nodes((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -1597,8 +1575,7 @@ yyreduce:
    break;
    break;


  case 9:
  case 9:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 149 "dtc-parser.y"
#line 149 "dtc-parser.y"
    {
    {
			struct node *target = get_node_by_ref((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].labelref));
			struct node *target = get_node_by_ref((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].labelref));
@@ -1612,8 +1589,7 @@ yyreduce:
    break;
    break;


  case 10:
  case 10:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 159 "dtc-parser.y"
#line 159 "dtc-parser.y"
    {
    {
			struct node *target = get_node_by_ref((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].labelref));
			struct node *target = get_node_by_ref((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].labelref));
@@ -1628,8 +1604,7 @@ yyreduce:
    break;
    break;


  case 11:
  case 11:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 173 "dtc-parser.y"
#line 173 "dtc-parser.y"
    {
    {
			(yyval.node) = build_node((yyvsp[(2) - (5)].proplist), (yyvsp[(3) - (5)].nodelist));
			(yyval.node) = build_node((yyvsp[(2) - (5)].proplist), (yyvsp[(3) - (5)].nodelist));
@@ -1637,8 +1612,7 @@ yyreduce:
    break;
    break;


  case 12:
  case 12:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 180 "dtc-parser.y"
#line 180 "dtc-parser.y"
    {
    {
			(yyval.proplist) = NULL;
			(yyval.proplist) = NULL;
@@ -1646,8 +1620,7 @@ yyreduce:
    break;
    break;


  case 13:
  case 13:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 184 "dtc-parser.y"
#line 184 "dtc-parser.y"
    {
    {
			(yyval.proplist) = chain_property((yyvsp[(2) - (2)].prop), (yyvsp[(1) - (2)].proplist));
			(yyval.proplist) = chain_property((yyvsp[(2) - (2)].prop), (yyvsp[(1) - (2)].proplist));
@@ -1655,8 +1628,7 @@ yyreduce:
    break;
    break;


  case 14:
  case 14:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 191 "dtc-parser.y"
#line 191 "dtc-parser.y"
    {
    {
			(yyval.prop) = build_property((yyvsp[(1) - (4)].propnodename), (yyvsp[(3) - (4)].data));
			(yyval.prop) = build_property((yyvsp[(1) - (4)].propnodename), (yyvsp[(3) - (4)].data));
@@ -1664,8 +1636,7 @@ yyreduce:
    break;
    break;


  case 15:
  case 15:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 195 "dtc-parser.y"
#line 195 "dtc-parser.y"
    {
    {
			(yyval.prop) = build_property((yyvsp[(1) - (2)].propnodename), empty_data);
			(yyval.prop) = build_property((yyvsp[(1) - (2)].propnodename), empty_data);
@@ -1673,8 +1644,7 @@ yyreduce:
    break;
    break;


  case 16:
  case 16:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 199 "dtc-parser.y"
#line 199 "dtc-parser.y"
    {
    {
			(yyval.prop) = build_property_delete((yyvsp[(2) - (3)].propnodename));
			(yyval.prop) = build_property_delete((yyvsp[(2) - (3)].propnodename));
@@ -1682,8 +1652,7 @@ yyreduce:
    break;
    break;


  case 17:
  case 17:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 203 "dtc-parser.y"
#line 203 "dtc-parser.y"
    {
    {
			add_label(&(yyvsp[(2) - (2)].prop)->labels, (yyvsp[(1) - (2)].labelref));
			add_label(&(yyvsp[(2) - (2)].prop)->labels, (yyvsp[(1) - (2)].labelref));
@@ -1692,8 +1661,7 @@ yyreduce:
    break;
    break;


  case 18:
  case 18:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 211 "dtc-parser.y"
#line 211 "dtc-parser.y"
    {
    {
			(yyval.data) = data_merge((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].data));
			(yyval.data) = data_merge((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].data));
@@ -1701,8 +1669,7 @@ yyreduce:
    break;
    break;


  case 19:
  case 19:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 215 "dtc-parser.y"
#line 215 "dtc-parser.y"
    {
    {
			(yyval.data) = data_merge((yyvsp[(1) - (3)].data), (yyvsp[(2) - (3)].array).data);
			(yyval.data) = data_merge((yyvsp[(1) - (3)].data), (yyvsp[(2) - (3)].array).data);
@@ -1710,8 +1677,7 @@ yyreduce:
    break;
    break;


  case 20:
  case 20:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 219 "dtc-parser.y"
#line 219 "dtc-parser.y"
    {
    {
			(yyval.data) = data_merge((yyvsp[(1) - (4)].data), (yyvsp[(3) - (4)].data));
			(yyval.data) = data_merge((yyvsp[(1) - (4)].data), (yyvsp[(3) - (4)].data));
@@ -1719,8 +1685,7 @@ yyreduce:
    break;
    break;


  case 21:
  case 21:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 223 "dtc-parser.y"
#line 223 "dtc-parser.y"
    {
    {
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), REF_PATH, (yyvsp[(2) - (2)].labelref));
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), REF_PATH, (yyvsp[(2) - (2)].labelref));
@@ -1728,8 +1693,7 @@ yyreduce:
    break;
    break;


  case 22:
  case 22:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 227 "dtc-parser.y"
#line 227 "dtc-parser.y"
    {
    {
			FILE *f = srcfile_relative_open((yyvsp[(4) - (9)].data).val, NULL);
			FILE *f = srcfile_relative_open((yyvsp[(4) - (9)].data).val, NULL);
@@ -1750,8 +1714,7 @@ yyreduce:
    break;
    break;


  case 23:
  case 23:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 244 "dtc-parser.y"
#line 244 "dtc-parser.y"
    {
    {
			FILE *f = srcfile_relative_open((yyvsp[(4) - (5)].data).val, NULL);
			FILE *f = srcfile_relative_open((yyvsp[(4) - (5)].data).val, NULL);
@@ -1765,8 +1728,7 @@ yyreduce:
    break;
    break;


  case 24:
  case 24:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 254 "dtc-parser.y"
#line 254 "dtc-parser.y"
    {
    {
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
@@ -1774,8 +1736,7 @@ yyreduce:
    break;
    break;


  case 25:
  case 25:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 261 "dtc-parser.y"
#line 261 "dtc-parser.y"
    {
    {
			(yyval.data) = empty_data;
			(yyval.data) = empty_data;
@@ -1783,8 +1744,7 @@ yyreduce:
    break;
    break;


  case 26:
  case 26:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 265 "dtc-parser.y"
#line 265 "dtc-parser.y"
    {
    {
			(yyval.data) = (yyvsp[(1) - (2)].data);
			(yyval.data) = (yyvsp[(1) - (2)].data);
@@ -1792,8 +1752,7 @@ yyreduce:
    break;
    break;


  case 27:
  case 27:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 269 "dtc-parser.y"
#line 269 "dtc-parser.y"
    {
    {
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
@@ -1801,8 +1760,7 @@ yyreduce:
    break;
    break;


  case 28:
  case 28:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 276 "dtc-parser.y"
#line 276 "dtc-parser.y"
    {
    {
			(yyval.array).data = empty_data;
			(yyval.array).data = empty_data;
@@ -1821,8 +1779,7 @@ yyreduce:
    break;
    break;


  case 29:
  case 29:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 291 "dtc-parser.y"
#line 291 "dtc-parser.y"
    {
    {
			(yyval.array).data = empty_data;
			(yyval.array).data = empty_data;
@@ -1831,8 +1788,7 @@ yyreduce:
    break;
    break;


  case 30:
  case 30:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 296 "dtc-parser.y"
#line 296 "dtc-parser.y"
    {
    {
			if ((yyvsp[(1) - (2)].array).bits < 64) {
			if ((yyvsp[(1) - (2)].array).bits < 64) {
@@ -1856,8 +1812,7 @@ yyreduce:
    break;
    break;


  case 31:
  case 31:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 316 "dtc-parser.y"
#line 316 "dtc-parser.y"
    {
    {
			uint64_t val = ~0ULL >> (64 - (yyvsp[(1) - (2)].array).bits);
			uint64_t val = ~0ULL >> (64 - (yyvsp[(1) - (2)].array).bits);
@@ -1875,8 +1830,7 @@ yyreduce:
    break;
    break;


  case 32:
  case 32:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 330 "dtc-parser.y"
#line 330 "dtc-parser.y"
    {
    {
			(yyval.array).data = data_add_marker((yyvsp[(1) - (2)].array).data, LABEL, (yyvsp[(2) - (2)].labelref));
			(yyval.array).data = data_add_marker((yyvsp[(1) - (2)].array).data, LABEL, (yyvsp[(2) - (2)].labelref));
@@ -1884,8 +1838,7 @@ yyreduce:
    break;
    break;


  case 33:
  case 33:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 337 "dtc-parser.y"
#line 337 "dtc-parser.y"
    {
    {
			(yyval.integer) = eval_literal((yyvsp[(1) - (1)].literal), 0, 64);
			(yyval.integer) = eval_literal((yyvsp[(1) - (1)].literal), 0, 64);
@@ -1893,8 +1846,7 @@ yyreduce:
    break;
    break;


  case 34:
  case 34:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 341 "dtc-parser.y"
#line 341 "dtc-parser.y"
    {
    {
			(yyval.integer) = eval_char_literal((yyvsp[(1) - (1)].literal));
			(yyval.integer) = eval_char_literal((yyvsp[(1) - (1)].literal));
@@ -1902,8 +1854,7 @@ yyreduce:
    break;
    break;


  case 35:
  case 35:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 345 "dtc-parser.y"
#line 345 "dtc-parser.y"
    {
    {
			(yyval.integer) = (yyvsp[(2) - (3)].integer);
			(yyval.integer) = (yyvsp[(2) - (3)].integer);
@@ -1911,162 +1862,139 @@ yyreduce:
    break;
    break;


  case 38:
  case 38:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 356 "dtc-parser.y"
#line 356 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (5)].integer) ? (yyvsp[(3) - (5)].integer) : (yyvsp[(5) - (5)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (5)].integer) ? (yyvsp[(3) - (5)].integer) : (yyvsp[(5) - (5)].integer); }
    break;
    break;


  case 40:
  case 40:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 361 "dtc-parser.y"
#line 361 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) || (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) || (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 42:
  case 42:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 366 "dtc-parser.y"
#line 366 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) && (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) && (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 44:
  case 44:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 371 "dtc-parser.y"
#line 371 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) | (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) | (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 46:
  case 46:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 376 "dtc-parser.y"
#line 376 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) ^ (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) ^ (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 48:
  case 48:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 381 "dtc-parser.y"
#line 381 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) & (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) & (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 50:
  case 50:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 386 "dtc-parser.y"
#line 386 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) == (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) == (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 51:
  case 51:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 387 "dtc-parser.y"
#line 387 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) != (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) != (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 53:
  case 53:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 392 "dtc-parser.y"
#line 392 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) < (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) < (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 54:
  case 54:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 393 "dtc-parser.y"
#line 393 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) > (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) > (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 55:
  case 55:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 394 "dtc-parser.y"
#line 394 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) <= (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) <= (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 56:
  case 56:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 395 "dtc-parser.y"
#line 395 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >= (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >= (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 57:
  case 57:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 399 "dtc-parser.y"
#line 399 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) << (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) << (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 58:
  case 58:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 400 "dtc-parser.y"
#line 400 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >> (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >> (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 60:
  case 60:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 405 "dtc-parser.y"
#line 405 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) + (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) + (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 61:
  case 61:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 406 "dtc-parser.y"
#line 406 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) - (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) - (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 63:
  case 63:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 411 "dtc-parser.y"
#line 411 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) * (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) * (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 64:
  case 64:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 412 "dtc-parser.y"
#line 412 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) / (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) / (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 65:
  case 65:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 413 "dtc-parser.y"
#line 413 "dtc-parser.y"
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) % (yyvsp[(3) - (3)].integer); }
    { (yyval.integer) = (yyvsp[(1) - (3)].integer) % (yyvsp[(3) - (3)].integer); }
    break;
    break;


  case 68:
  case 68:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 419 "dtc-parser.y"
#line 419 "dtc-parser.y"
    { (yyval.integer) = -(yyvsp[(2) - (2)].integer); }
    { (yyval.integer) = -(yyvsp[(2) - (2)].integer); }
    break;
    break;


  case 69:
  case 69:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 420 "dtc-parser.y"
#line 420 "dtc-parser.y"
    { (yyval.integer) = ~(yyvsp[(2) - (2)].integer); }
    { (yyval.integer) = ~(yyvsp[(2) - (2)].integer); }
    break;
    break;


  case 70:
  case 70:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 421 "dtc-parser.y"
#line 421 "dtc-parser.y"
    { (yyval.integer) = !(yyvsp[(2) - (2)].integer); }
    { (yyval.integer) = !(yyvsp[(2) - (2)].integer); }
    break;
    break;


  case 71:
  case 71:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 426 "dtc-parser.y"
#line 426 "dtc-parser.y"
    {
    {
			(yyval.data) = empty_data;
			(yyval.data) = empty_data;
@@ -2074,8 +2002,7 @@ yyreduce:
    break;
    break;


  case 72:
  case 72:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 430 "dtc-parser.y"
#line 430 "dtc-parser.y"
    {
    {
			(yyval.data) = data_append_byte((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].byte));
			(yyval.data) = data_append_byte((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].byte));
@@ -2083,8 +2010,7 @@ yyreduce:
    break;
    break;


  case 73:
  case 73:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 434 "dtc-parser.y"
#line 434 "dtc-parser.y"
    {
    {
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
			(yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
@@ -2092,8 +2018,7 @@ yyreduce:
    break;
    break;


  case 74:
  case 74:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 441 "dtc-parser.y"
#line 441 "dtc-parser.y"
    {
    {
			(yyval.nodelist) = NULL;
			(yyval.nodelist) = NULL;
@@ -2101,8 +2026,7 @@ yyreduce:
    break;
    break;


  case 75:
  case 75:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 445 "dtc-parser.y"
#line 445 "dtc-parser.y"
    {
    {
			(yyval.nodelist) = chain_node((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].nodelist));
			(yyval.nodelist) = chain_node((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].nodelist));
@@ -2110,8 +2034,7 @@ yyreduce:
    break;
    break;


  case 76:
  case 76:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 449 "dtc-parser.y"
#line 449 "dtc-parser.y"
    {
    {
			print_error("syntax error: properties must precede subnodes");
			print_error("syntax error: properties must precede subnodes");
@@ -2120,8 +2043,7 @@ yyreduce:
    break;
    break;


  case 77:
  case 77:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 457 "dtc-parser.y"
#line 457 "dtc-parser.y"
    {
    {
			(yyval.node) = name_node((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].propnodename));
			(yyval.node) = name_node((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].propnodename));
@@ -2129,8 +2051,7 @@ yyreduce:
    break;
    break;


  case 78:
  case 78:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 461 "dtc-parser.y"
#line 461 "dtc-parser.y"
    {
    {
			(yyval.node) = name_node(build_node_delete(), (yyvsp[(2) - (3)].propnodename));
			(yyval.node) = name_node(build_node_delete(), (yyvsp[(2) - (3)].propnodename));
@@ -2138,8 +2059,7 @@ yyreduce:
    break;
    break;


  case 79:
  case 79:

/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 465 "dtc-parser.y"
#line 465 "dtc-parser.y"
    {
    {
			add_label(&(yyvsp[(2) - (2)].node)->labels, (yyvsp[(1) - (2)].labelref));
			add_label(&(yyvsp[(2) - (2)].node)->labels, (yyvsp[(1) - (2)].labelref));
@@ -2148,9 +2068,8 @@ yyreduce:
    break;
    break;





/* Line 1787 of yacc.c  */
/* Line 1806 of yacc.c  */
#line 2073 "dtc-parser.tab.c"
#line 2154 "dtc-parser.tab.c"
      default: break;
      default: break;
    }
    }
  /* User semantic actions sometimes alter yychar, and that requires
  /* User semantic actions sometimes alter yychar, and that requires
@@ -2313,7 +2232,9 @@ yyerrlab1:
      YY_STACK_PRINT (yyss, yyssp);
      YY_STACK_PRINT (yyss, yyssp);
    }
    }


  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END




  /* Shift the error token.  */
  /* Shift the error token.  */
@@ -2337,7 +2258,7 @@ yyabortlab:
  yyresult = 1;
  yyresult = 1;
  goto yyreturn;
  goto yyreturn;


#if !defined(yyoverflow) || YYERROR_VERBOSE
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
`-------------------------------------------------*/
@@ -2379,8 +2300,7 @@ yyreturn:
}
}





/* Line 2050 of yacc.c  */
/* Line 2067 of yacc.c  */
#line 471 "dtc-parser.y"
#line 471 "dtc-parser.y"




@@ -2444,4 +2364,3 @@ static unsigned char eval_char_literal(const char *s)


	return c;
	return c;
}
}
+28 −8

File changed.

Preview size limit exceeded, changes collapsed.

+59 −60

File changed.

Preview size limit exceeded, changes collapsed.

+0 −1
Original line number Original line Diff line number Diff line
@@ -66,7 +66,6 @@ typedef uint32_t cell_t;
#define strneq(a, b, n)	(strncmp((a), (b), (n)) == 0)
#define strneq(a, b, n)	(strncmp((a), (b), (n)) == 0)


#define ALIGN(x, a)	(((x) + (a) - 1) & ~((a) - 1))
#define ALIGN(x, a)	(((x) + (a) - 1) & ~((a) - 1))
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))


/* Data blobs */
/* Data blobs */
enum markertype {
enum markertype {
+3 −3
Original line number Original line Diff line number Diff line
@@ -297,9 +297,9 @@ srcpos_verror(struct srcpos *pos, char const *fmt, va_list va)


       srcstr = srcpos_string(pos);
       srcstr = srcpos_string(pos);


       fprintf(stdout, "Error: %s ", srcstr);
       fprintf(stderr, "Error: %s ", srcstr);
       vfprintf(stdout, fmt, va);
       vfprintf(stderr, fmt, va);
       fprintf(stdout, "\n");
       fprintf(stderr, "\n");
}
}


void
void
Loading