brcm2708: update linux 4.4 patches to latest version
[librecmc/librecmc.git] / target / linux / brcm2708 / patches-4.4 / 0175-Revert-scripts-dtc-Add-overlay-support.patch
1 From de37d281502aff4e4a88872cf0a6ef5e36b7484d Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Mon, 10 Aug 2015 09:44:59 +0100
4 Subject: [PATCH 175/304] Revert "scripts/dtc: Add overlay support"
5
6 This reverts commit fa6d1755c2fdd9451077d8248e3804f0619f19b9.
7 ---
8  scripts/dtc/checks.c                 |  119 +--
9  scripts/dtc/dtc-lexer.l              |    5 -
10  scripts/dtc/dtc-lexer.lex.c_shipped  |  490 +++++----
11  scripts/dtc/dtc-parser.tab.c_shipped | 1896 +++++++++++++++-------------------
12  scripts/dtc/dtc-parser.tab.h_shipped |  107 +-
13  scripts/dtc/dtc-parser.y             |   23 +-
14  scripts/dtc/dtc.c                    |    9 +-
15  scripts/dtc/dtc.h                    |   38 -
16  scripts/dtc/flattree.c               |  141 +--
17  scripts/dtc/version_gen.h            |    2 +-
18  10 files changed, 1145 insertions(+), 1685 deletions(-)
19
20 --- a/scripts/dtc/checks.c
21 +++ b/scripts/dtc/checks.c
22 @@ -458,91 +458,21 @@ static void fixup_phandle_references(str
23                                      struct node *node, struct property *prop)
24  {
25         struct marker *m = prop->val.markers;
26 -       struct fixup *f, **fp;
27 -       struct fixup_entry *fe, **fep;
28         struct node *refnode;
29         cell_t phandle;
30 -       int has_phandle_refs;
31 -
32 -       has_phandle_refs = 0;
33 -       for_each_marker_of_type(m, REF_PHANDLE) {
34 -               has_phandle_refs = 1;
35 -               break;
36 -       }
37 -
38 -       if (!has_phandle_refs)
39 -               return;
40  
41         for_each_marker_of_type(m, REF_PHANDLE) {
42                 assert(m->offset + sizeof(cell_t) <= prop->val.len);
43  
44                 refnode = get_node_by_ref(dt, m->ref);
45 -               if (!refnode && !symbol_fixup_support) {
46 +               if (! refnode) {
47                         FAIL(c, "Reference to non-existent node or label \"%s\"\n",
48 -                               m->ref);
49 +                            m->ref);
50                         continue;
51                 }
52  
53 -               if (!refnode) {
54 -                       /* allocate fixup entry */
55 -                       fe = xmalloc(sizeof(*fe));
56 -
57 -                       fe->node = node;
58 -                       fe->prop = prop;
59 -                       fe->offset = m->offset;
60 -                       fe->next = NULL;
61 -
62 -                       /* search for an already existing fixup */
63 -                       for_each_fixup(dt, f)
64 -                               if (strcmp(f->ref, m->ref) == 0)
65 -                                       break;
66 -
67 -                       /* no fixup found, add new */
68 -                       if (f == NULL) {
69 -                               f = xmalloc(sizeof(*f));
70 -                               f->ref = m->ref;
71 -                               f->entries = NULL;
72 -                               f->next = NULL;
73 -
74 -                               /* add it to the tree */
75 -                               fp = &dt->fixups;
76 -                               while (*fp)
77 -                                       fp = &(*fp)->next;
78 -                               *fp = f;
79 -                       }
80 -
81 -                       /* and now append fixup entry */
82 -                       fep = &f->entries;
83 -                       while (*fep)
84 -                               fep = &(*fep)->next;
85 -                       *fep = fe;
86 -
87 -                       /* mark the entry as unresolved */
88 -                       phandle = 0xdeadbeef;
89 -               } else {
90 -                       phandle = get_node_phandle(dt, refnode);
91 -
92 -                       /* if it's a plugin, we need to record it */
93 -                       if (symbol_fixup_support && dt->is_plugin) {
94 -
95 -                               /* allocate a new local fixup entry */
96 -                               fe = xmalloc(sizeof(*fe));
97 -
98 -                               fe->node = node;
99 -                               fe->prop = prop;
100 -                               fe->offset = m->offset;
101 -                               fe->next = NULL;
102 -
103 -                               /* append it to the local fixups */
104 -                               fep = &dt->local_fixups;
105 -                               while (*fep)
106 -                                       fep = &(*fep)->next;
107 -                               *fep = fe;
108 -                       }
109 -               }
110 -
111 -               *((cell_t *)(prop->val.val + m->offset)) =
112 -                       cpu_to_fdt32(phandle);
113 +               phandle = get_node_phandle(dt, refnode);
114 +               *((cell_t *)(prop->val.val + m->offset)) = cpu_to_fdt32(phandle);
115         }
116  }
117  ERROR(phandle_references, NULL, NULL, fixup_phandle_references, NULL,
118 @@ -722,45 +652,6 @@ static void check_obsolete_chosen_interr
119  }
120  TREE_WARNING(obsolete_chosen_interrupt_controller, NULL);
121  
122 -static void check_auto_label_phandles(struct check *c, struct node *dt,
123 -                                      struct node *node)
124 -{
125 -       struct label *l;
126 -       struct symbol *s, **sp;
127 -       int has_label;
128 -
129 -       if (!symbol_fixup_support)
130 -               return;
131 -
132 -       has_label = 0;
133 -       for_each_label(node->labels, l) {
134 -               has_label = 1;
135 -               break;
136 -       }
137 -
138 -       if (!has_label)
139 -               return;
140 -
141 -       /* force allocation of a phandle for this node */
142 -       (void)get_node_phandle(dt, node);
143 -
144 -       /* add the symbol */
145 -       for_each_label(node->labels, l) {
146 -
147 -               s = xmalloc(sizeof(*s));
148 -               s->label = l;
149 -               s->node = node;
150 -               s->next = NULL;
151 -
152 -               /* add it to the symbols list */
153 -               sp = &dt->symbols;
154 -               while (*sp)
155 -                       sp = &((*sp)->next);
156 -               *sp = s;
157 -       }
158 -}
159 -NODE_WARNING(auto_label_phandles, NULL);
160 -
161  static struct check *check_table[] = {
162         &duplicate_node_names, &duplicate_property_names,
163         &node_name_chars, &node_name_format, &property_name_chars,
164 @@ -779,8 +670,6 @@ static struct check *check_table[] = {
165         &avoid_default_addr_size,
166         &obsolete_chosen_interrupt_controller,
167  
168 -       &auto_label_phandles,
169 -
170         &always_fail,
171  };
172  
173 --- a/scripts/dtc/dtc-lexer.l
174 +++ b/scripts/dtc/dtc-lexer.l
175 @@ -113,11 +113,6 @@ static void lexical_error(const char *fm
176                         return DT_V1;
177                 }
178  
179 -<*>"/plugin/"  {
180 -                       DPRINT("Keyword: /plugin/\n");
181 -                       return DT_PLUGIN;
182 -               }
183 -
184  <*>"/memreserve/"      {
185                         DPRINT("Keyword: /memreserve/\n");
186                         BEGIN_DEFAULT();
187 --- a/scripts/dtc/dtc-lexer.lex.c_shipped
188 +++ b/scripts/dtc/dtc-lexer.lex.c_shipped
189 @@ -9,7 +9,7 @@
190  #define FLEX_SCANNER
191  #define YY_FLEX_MAJOR_VERSION 2
192  #define YY_FLEX_MINOR_VERSION 5
193 -#define YY_FLEX_SUBMINOR_VERSION 35
194 +#define YY_FLEX_SUBMINOR_VERSION 39
195  #if YY_FLEX_SUBMINOR_VERSION > 0
196  #define FLEX_BETA
197  #endif
198 @@ -162,7 +162,12 @@ typedef unsigned int flex_uint32_t;
199  typedef struct yy_buffer_state *YY_BUFFER_STATE;
200  #endif
201  
202 -extern int yyleng;
203 +#ifndef YY_TYPEDEF_YY_SIZE_T
204 +#define YY_TYPEDEF_YY_SIZE_T
205 +typedef size_t yy_size_t;
206 +#endif
207 +
208 +extern yy_size_t yyleng;
209  
210  extern FILE *yyin, *yyout;
211  
212 @@ -171,6 +176,7 @@ extern FILE *yyin, *yyout;
213  #define EOB_ACT_LAST_MATCH 2
214  
215      #define YY_LESS_LINENO(n)
216 +    #define YY_LINENO_REWIND_TO(ptr)
217      
218  /* Return all but the first "n" matched characters back to the input stream. */
219  #define yyless(n) \
220 @@ -188,11 +194,6 @@ extern FILE *yyin, *yyout;
221  
222  #define unput(c) yyunput( c, (yytext_ptr)  )
223  
224 -#ifndef YY_TYPEDEF_YY_SIZE_T
225 -#define YY_TYPEDEF_YY_SIZE_T
226 -typedef size_t yy_size_t;
227 -#endif
228 -
229  #ifndef YY_STRUCT_YY_BUFFER_STATE
230  #define YY_STRUCT_YY_BUFFER_STATE
231  struct yy_buffer_state
232 @@ -210,7 +211,7 @@ struct yy_buffer_state
233         /* Number of characters read into yy_ch_buf, not including EOB
234          * characters.
235          */
236 -       int yy_n_chars;
237 +       yy_size_t yy_n_chars;
238  
239         /* Whether we "own" the buffer - i.e., we know we created it,
240          * and can realloc() it to grow it, and should free() it to
241 @@ -280,8 +281,8 @@ static YY_BUFFER_STATE * yy_buffer_stack
242  
243  /* yy_hold_char holds the character lost when yytext is formed. */
244  static char yy_hold_char;
245 -static int yy_n_chars;         /* number of characters read into yy_ch_buf */
246 -int yyleng;
247 +static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
248 +yy_size_t yyleng;
249  
250  /* Points to current character in buffer. */
251  static char *yy_c_buf_p = (char *) 0;
252 @@ -309,7 +310,7 @@ static void yy_init_buffer (YY_BUFFER_ST
253  
254  YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
255  YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
256 -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
257 +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
258  
259  void *yyalloc (yy_size_t  );
260  void *yyrealloc (void *,yy_size_t  );
261 @@ -341,7 +342,7 @@ void yyfree (void *  );
262  
263  /* Begin user sect3 */
264  
265 -#define yywrap(n) 1
266 +#define yywrap() 1
267  #define YY_SKIP_YYWRAP
268  
269  typedef unsigned char YY_CHAR;
270 @@ -372,8 +373,8 @@ static void yy_fatal_error (yyconst char
271         *yy_cp = '\0'; \
272         (yy_c_buf_p) = yy_cp;
273  
274 -#define YY_NUM_RULES 31
275 -#define YY_END_OF_BUFFER 32
276 +#define YY_NUM_RULES 30
277 +#define YY_END_OF_BUFFER 31
278  /* This struct is not used in this scanner,
279     but its presence is necessary. */
280  struct yy_trans_info
281 @@ -381,26 +382,25 @@ struct yy_trans_info
282         flex_int32_t yy_verify;
283         flex_int32_t yy_nxt;
284         };
285 -static yyconst flex_int16_t yy_accept[166] =
286 +static yyconst flex_int16_t yy_accept[159] =
287      {   0,
288 -        0,    0,    0,    0,    0,    0,    0,    0,   32,   30,
289 -       19,   19,   30,   30,   30,   30,   30,   30,   30,   30,
290 -       30,   30,   30,   30,   30,   30,   16,   17,   17,   30,
291 -       17,   11,   11,   19,   27,    0,    3,    0,   28,   13,
292 -        0,    0,   12,    0,    0,    0,    0,    0,    0,    0,
293 -        0,   22,   24,   26,   25,   23,    0,   10,   29,    0,
294 -        0,    0,   15,   15,   17,   17,   17,   11,   11,   11,
295 -        0,   13,    0,   12,    0,    0,    0,   21,    0,    0,
296 -        0,    0,    0,    0,    0,    0,    0,   17,   11,   11,
297 -       11,    0,   14,   20,    0,    0,    0,    0,    0,    0,
298 -
299 -        0,    0,    0,    0,   17,    0,    0,    0,    0,    0,
300 -        0,    0,    0,    0,    0,   17,    7,    0,    0,    0,
301 -        0,    0,    0,    0,    2,    0,    0,    0,    0,    0,
302 -        0,    0,    0,    0,    4,   18,    0,    0,    5,    2,
303 -        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
304 -        0,    0,    1,    0,    0,    0,    0,    6,    9,    0,
305 -        0,    0,    0,    8,    0
306 +        0,    0,    0,    0,    0,    0,    0,    0,   31,   29,
307 +       18,   18,   29,   29,   29,   29,   29,   29,   29,   29,
308 +       29,   29,   29,   29,   29,   29,   15,   16,   16,   29,
309 +       16,   10,   10,   18,   26,    0,    3,    0,   27,   12,
310 +        0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
311 +       21,   23,   25,   24,   22,    0,    9,   28,    0,    0,
312 +        0,   14,   14,   16,   16,   16,   10,   10,   10,    0,
313 +       12,    0,   11,    0,    0,    0,   20,    0,    0,    0,
314 +        0,    0,    0,    0,    0,   16,   10,   10,   10,    0,
315 +       13,   19,    0,    0,    0,    0,    0,    0,    0,    0,
316 +
317 +        0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
318 +        0,   16,    6,    0,    0,    0,    0,    0,    0,    2,
319 +        0,    0,    0,    0,    0,    0,    0,    0,    4,   17,
320 +        0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
321 +        0,    0,    0,    0,    0,    1,    0,    0,    0,    0,
322 +        5,    8,    0,    0,    0,    0,    7,    0
323      } ;
324  
325  static yyconst flex_int32_t yy_ec[256] =
326 @@ -416,9 +416,9 @@ static yyconst flex_int32_t yy_ec[256] =
327         22,   22,   22,   22,   24,   22,   22,   25,   22,   22,
328          1,   26,   27,    1,   22,    1,   21,   28,   29,   30,
329  
330 -       31,   21,   32,   22,   33,   22,   22,   34,   35,   36,
331 -       37,   38,   22,   39,   40,   41,   42,   43,   22,   25,
332 -       44,   22,   45,   46,   47,    1,    1,    1,    1,    1,
333 +       31,   21,   22,   22,   32,   22,   22,   33,   34,   35,
334 +       36,   37,   22,   38,   39,   40,   41,   42,   22,   25,
335 +       43,   22,   44,   45,   46,    1,    1,    1,    1,    1,
336          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
337          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
338          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
339 @@ -435,165 +435,163 @@ static yyconst flex_int32_t yy_ec[256] =
340          1,    1,    1,    1,    1
341      } ;
342  
343 -static yyconst flex_int32_t yy_meta[48] =
344 +static yyconst flex_int32_t yy_meta[47] =
345      {   0,
346          1,    1,    1,    1,    1,    1,    2,    3,    1,    2,
347          2,    2,    4,    5,    5,    5,    6,    1,    1,    1,
348          7,    8,    8,    8,    8,    1,    1,    7,    7,    7,
349          7,    8,    8,    8,    8,    8,    8,    8,    8,    8,
350 -        8,    8,    8,    8,    3,    1,    4
351 +        8,    8,    8,    3,    1,    4
352      } ;
353  
354 -static yyconst flex_int16_t yy_base[180] =
355 +static yyconst flex_int16_t yy_base[173] =
356      {   0,
357 -        0,  393,   35,  392,   66,  391,   38,  107,  397,  401,
358 -       55,  113,  377,  112,  111,  111,  114,   42,  376,  106,
359 -      377,  347,  126,  120,    0,  147,  401,    0,  124,    0,
360 -      137,  158,  170,  163,  401,  153,  401,  389,  401,    0,
361 -      378,  120,  401,  131,  380,  386,  355,  139,  351,  355,
362 -      351,  401,  401,  401,  401,  401,  367,  401,  401,  185,
363 -      350,  346,  401,  364,    0,  185,  347,  189,  356,  355,
364 -        0,    0,  330,  180,  366,  141,  372,  361,  332,  338,
365 -      331,  341,  334,  326,  205,  331,  337,  329,  401,  341,
366 -      167,  316,  401,  349,  348,  320,  328,  346,  180,  318,
367 -
368 -      324,  209,  324,  320,  322,  342,  338,  309,  306,  315,
369 -      305,  315,  312,  192,  342,  341,  401,  293,  306,  282,
370 -      268,  252,  255,  203,  285,  282,  272,  268,  252,  233,
371 -      232,  239,  208,  107,  401,  401,  238,  211,  401,  211,
372 -      212,  208,  228,  203,  215,  207,  233,  222,  212,  211,
373 -      203,  227,  401,  237,  225,  204,  185,  401,  401,  149,
374 -      128,   88,   42,  401,  401,  253,  259,  267,  271,  275,
375 -      281,  288,  292,  300,  308,  312,  318,  326,  334
376 +        0,  383,   34,  382,   65,  381,   37,  105,  387,  391,
377 +       54,  111,  367,  110,  109,  109,  112,   41,  366,  104,
378 +      367,  338,  124,  117,    0,  144,  391,    0,  121,    0,
379 +      135,  155,  140,  179,  391,  160,  391,  379,  391,    0,
380 +      368,  141,  391,  167,  370,  376,  346,  103,  342,  345,
381 +      391,  391,  391,  391,  391,  358,  391,  391,  175,  342,
382 +      338,  391,  355,    0,  185,  339,  184,  347,  346,    0,
383 +        0,  322,  175,  357,  175,  363,  352,  324,  330,  323,
384 +      332,  326,  201,  324,  329,  322,  391,  333,  181,  309,
385 +      391,  341,  340,  313,  320,  338,  178,  311,  146,  317,
386 +
387 +      314,  315,  335,  331,  303,  300,  309,  299,  308,  188,
388 +      336,  335,  391,  305,  320,  281,  283,  271,  203,  288,
389 +      281,  271,  266,  264,  245,  242,  208,  104,  391,  391,
390 +      244,  218,  204,  219,  206,  224,  201,  212,  204,  229,
391 +      215,  208,  207,  200,  219,  391,  233,  221,  200,  181,
392 +      391,  391,  149,  122,   86,   41,  391,  391,  245,  251,
393 +      259,  263,  267,  273,  280,  284,  292,  300,  304,  310,
394 +      318,  326
395      } ;
396  
397 -static yyconst flex_int16_t yy_def[180] =
398 +static yyconst flex_int16_t yy_def[173] =
399      {   0,
400 -      165,    1,    1,    3,  165,    5,    1,    1,  165,  165,
401 -      165,  165,  165,  166,  167,  168,  165,  165,  165,  165,
402 -      169,  165,  165,  165,  170,  169,  165,  171,  172,  171,
403 -      171,  165,  165,  165,  165,  166,  165,  166,  165,  173,
404 -      165,  168,  165,  168,  174,  175,  165,  165,  165,  165,
405 -      165,  165,  165,  165,  165,  165,  169,  165,  165,  165,
406 -      165,  165,  165,  169,  171,  172,  171,  165,  165,  165,
407 -      176,  173,  177,  168,  174,  174,  175,  165,  165,  165,
408 -      165,  165,  165,  165,  165,  165,  165,  171,  165,  165,
409 -      176,  177,  165,  165,  165,  165,  165,  165,  165,  165,
410 -
411 -      165,  165,  165,  165,  171,  165,  165,  165,  165,  165,
412 -      165,  165,  165,  178,  165,  171,  165,  165,  165,  165,
413 -      165,  165,  165,  178,  165,  178,  165,  165,  165,  165,
414 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
415 -      165,  165,  165,  165,  165,  165,  165,  179,  165,  165,
416 -      165,  179,  165,  179,  165,  165,  165,  165,  165,  165,
417 -      165,  165,  165,  165,    0,  165,  165,  165,  165,  165,
418 -      165,  165,  165,  165,  165,  165,  165,  165,  165
419 +      158,    1,    1,    3,  158,    5,    1,    1,  158,  158,
420 +      158,  158,  158,  159,  160,  161,  158,  158,  158,  158,
421 +      162,  158,  158,  158,  163,  162,  158,  164,  165,  164,
422 +      164,  158,  158,  158,  158,  159,  158,  159,  158,  166,
423 +      158,  161,  158,  161,  167,  168,  158,  158,  158,  158,
424 +      158,  158,  158,  158,  158,  162,  158,  158,  158,  158,
425 +      158,  158,  162,  164,  165,  164,  158,  158,  158,  169,
426 +      166,  170,  161,  167,  167,  168,  158,  158,  158,  158,
427 +      158,  158,  158,  158,  158,  164,  158,  158,  169,  170,
428 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
429 +
430 +      158,  164,  158,  158,  158,  158,  158,  158,  158,  171,
431 +      158,  164,  158,  158,  158,  158,  158,  158,  171,  158,
432 +      171,  158,  158,  158,  158,  158,  158,  158,  158,  158,
433 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
434 +      172,  158,  158,  158,  172,  158,  172,  158,  158,  158,
435 +      158,  158,  158,  158,  158,  158,  158,    0,  158,  158,
436 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
437 +      158,  158
438      } ;
439  
440 -static yyconst flex_int16_t yy_nxt[449] =
441 +static yyconst flex_int16_t yy_nxt[438] =
442      {   0,
443         10,   11,   12,   11,   13,   14,   10,   15,   16,   10,
444         10,   10,   17,   10,   10,   10,   10,   18,   19,   20,
445         21,   21,   21,   21,   21,   10,   10,   21,   21,   21,
446         21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
447 -       21,   21,   21,   21,   10,   22,   10,   24,   25,   25,
448 -       25,   32,   33,   33,  164,   26,   34,   34,   34,   52,
449 -       53,   27,   26,   26,   26,   26,   10,   11,   12,   11,
450 -       13,   14,   28,   15,   16,   28,   28,   28,   24,   28,
451 -       28,   28,   10,   18,   19,   20,   29,   29,   29,   29,
452 -       29,   30,   10,   29,   29,   29,   29,   29,   29,   29,
453 -
454 -       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
455 -       10,   22,   10,   23,   34,   34,   34,   37,   39,   43,
456 -       32,   33,   33,   45,   55,   56,   46,   60,   43,   45,
457 -       65,  163,   46,   65,   65,   65,   44,   38,   60,   74,
458 -       58,   47,  141,   48,  142,   44,   49,   47,   50,   48,
459 -       76,   51,   62,   94,   50,   41,   44,   51,   37,   61,
460 -       64,   64,   64,   58,   34,   34,   34,   64,  162,   80,
461 -       67,   68,   68,   68,   64,   64,   64,   64,   38,   81,
462 -       69,   70,   71,   68,   68,   68,   60,  161,   43,   69,
463 -       70,   65,   69,   70,   65,   65,   65,  125,   85,   85,
464 -
465 -       85,   58,   68,   68,   68,   44,  102,  110,  125,  133,
466 -      102,   69,   70,  111,  114,  160,  159,  126,   85,   85,
467 -       85,  140,  140,  140,  140,  140,  140,  153,  126,  147,
468 -      147,  147,  153,  148,  147,  147,  147,  158,  148,  165,
469 -      157,  156,  155,  151,  150,  149,  146,  154,  145,  144,
470 -      143,  139,  154,   36,   36,   36,   36,   36,   36,   36,
471 -       36,   40,  138,  137,  136,   40,   40,   42,   42,   42,
472 -       42,   42,   42,   42,   42,   57,   57,   57,   57,   63,
473 -      135,   63,   65,  134,  165,   65,  133,   65,   65,   66,
474 -      132,  131,   66,   66,   66,   66,   72,  130,   72,   72,
475 -
476 -       75,   75,   75,   75,   75,   75,   75,   75,   77,   77,
477 -       77,   77,   77,   77,   77,   77,   91,  129,   91,   92,
478 -      128,   92,   92,  127,   92,   92,  124,  124,  124,  124,
479 -      124,  124,  124,  124,  152,  152,  152,  152,  152,  152,
480 -      152,  152,   60,   60,  123,  122,  121,  120,  119,  118,
481 -      117,   45,  116,  111,  115,  113,  112,  109,  108,  107,
482 -       46,  106,   93,   89,  105,  104,  103,  101,  100,   99,
483 -       98,   97,   96,   95,   78,   76,   93,   90,   89,   88,
484 -       58,   87,   86,   58,   84,   83,   82,   79,   78,   76,
485 -       73,  165,   59,   58,   54,   35,  165,   31,   23,   23,
486 -
487 -        9,  165,  165,  165,  165,  165,  165,  165,  165,  165,
488 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
489 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
490 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
491 -      165,  165,  165,  165,  165,  165,  165,  165
492 +       21,   21,   21,   10,   22,   10,   24,   25,   25,   25,
493 +       32,   33,   33,  157,   26,   34,   34,   34,   51,   52,
494 +       27,   26,   26,   26,   26,   10,   11,   12,   11,   13,
495 +       14,   28,   15,   16,   28,   28,   28,   24,   28,   28,
496 +       28,   10,   18,   19,   20,   29,   29,   29,   29,   29,
497 +       30,   10,   29,   29,   29,   29,   29,   29,   29,   29,
498 +
499 +       29,   29,   29,   29,   29,   29,   29,   29,   10,   22,
500 +       10,   23,   34,   34,   34,   37,   39,   43,   32,   33,
501 +       33,   45,   54,   55,   46,   59,   45,   64,  156,   46,
502 +       64,   64,   64,   79,   44,   38,   59,   57,  134,   47,
503 +      135,   48,   80,   49,   47,   50,   48,   99,   61,   43,
504 +       50,  110,   41,   67,   67,   67,   60,   63,   63,   63,
505 +       57,  155,   68,   69,   63,   37,   44,   66,   67,   67,
506 +       67,   63,   63,   63,   63,   73,   59,   68,   69,   70,
507 +       34,   34,   34,   43,   75,   38,  154,   92,   83,   83,
508 +       83,   64,   44,  120,   64,   64,   64,   67,   67,   67,
509 +
510 +       44,   57,   99,   68,   69,  107,   68,   69,  120,  127,
511 +      108,  153,  152,  121,   83,   83,   83,  133,  133,  133,
512 +      146,  133,  133,  133,  146,  140,  140,  140,  121,  141,
513 +      140,  140,  140,  151,  141,  158,  150,  149,  148,  144,
514 +      147,  143,  142,  139,  147,   36,   36,   36,   36,   36,
515 +       36,   36,   36,   40,  138,  137,  136,   40,   40,   42,
516 +       42,   42,   42,   42,   42,   42,   42,   56,   56,   56,
517 +       56,   62,  132,   62,   64,  131,  130,   64,  129,   64,
518 +       64,   65,  128,  158,   65,   65,   65,   65,   71,  127,
519 +       71,   71,   74,   74,   74,   74,   74,   74,   74,   74,
520 +
521 +       76,   76,   76,   76,   76,   76,   76,   76,   89,  126,
522 +       89,   90,  125,   90,   90,  124,   90,   90,  119,  119,
523 +      119,  119,  119,  119,  119,  119,  145,  145,  145,  145,
524 +      145,  145,  145,  145,  123,  122,   59,   59,  118,  117,
525 +      116,  115,  114,  113,   45,  112,  108,  111,  109,  106,
526 +      105,  104,   46,  103,   91,   87,  102,  101,  100,   98,
527 +       97,   96,   95,   94,   93,   77,   75,   91,   88,   87,
528 +       86,   57,   85,   84,   57,   82,   81,   78,   77,   75,
529 +       72,  158,   58,   57,   53,   35,  158,   31,   23,   23,
530 +        9,  158,  158,  158,  158,  158,  158,  158,  158,  158,
531 +
532 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
533 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
534 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
535 +      158,  158,  158,  158,  158,  158,  158
536      } ;
537  
538 -static yyconst flex_int16_t yy_chk[449] =
539 +static yyconst flex_int16_t yy_chk[438] =
540      {   0,
541          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
542          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
543          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
544          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
545 -        1,    1,    1,    1,    1,    1,    1,    3,    3,    3,
546 -        3,    7,    7,    7,  163,    3,   11,   11,   11,   18,
547 -       18,    3,    3,    3,    3,    3,    5,    5,    5,    5,
548 +        1,    1,    1,    1,    1,    1,    3,    3,    3,    3,
549 +        7,    7,    7,  156,    3,   11,   11,   11,   18,   18,
550 +        3,    3,    3,    3,    3,    5,    5,    5,    5,    5,
551          5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
552          5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
553          5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
554  
555          5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
556 -        5,    5,    5,    8,   12,   12,   12,   14,   15,   16,
557 -        8,    8,    8,   17,   20,   20,   17,   23,   42,   24,
558 -       29,  162,   24,   29,   29,   29,   16,   14,   31,   44,
559 -       29,   17,  134,   17,  134,   42,   17,   24,   17,   24,
560 -       76,   17,   24,   76,   24,   15,   44,   24,   36,   23,
561 -       26,   26,   26,   26,   34,   34,   34,   26,  161,   48,
562 -       31,   32,   32,   32,   26,   26,   26,   26,   36,   48,
563 -       32,   32,   32,   33,   33,   33,   60,  160,   74,   91,
564 -       91,   66,   33,   33,   66,   66,   66,  114,   60,   60,
565 -
566 -       60,   66,   68,   68,   68,   74,   85,   99,  124,  133,
567 -      102,   68,   68,   99,  102,  157,  156,  114,   85,   85,
568 -       85,  133,  133,  133,  140,  140,  140,  148,  124,  143,
569 -      143,  143,  152,  143,  147,  147,  147,  155,  147,  154,
570 -      151,  150,  149,  146,  145,  144,  142,  148,  141,  138,
571 -      137,  132,  152,  166,  166,  166,  166,  166,  166,  166,
572 -      166,  167,  131,  130,  129,  167,  167,  168,  168,  168,
573 -      168,  168,  168,  168,  168,  169,  169,  169,  169,  170,
574 -      128,  170,  171,  127,  126,  171,  125,  171,  171,  172,
575 -      123,  122,  172,  172,  172,  172,  173,  121,  173,  173,
576 -
577 -      174,  174,  174,  174,  174,  174,  174,  174,  175,  175,
578 -      175,  175,  175,  175,  175,  175,  176,  120,  176,  177,
579 -      119,  177,  177,  118,  177,  177,  178,  178,  178,  178,
580 -      178,  178,  178,  178,  179,  179,  179,  179,  179,  179,
581 -      179,  179,  116,  115,  113,  112,  111,  110,  109,  108,
582 -      107,  106,  105,  104,  103,  101,  100,   98,   97,   96,
583 -       95,   94,   92,   90,   88,   87,   86,   84,   83,   82,
584 -       81,   80,   79,   78,   77,   75,   73,   70,   69,   67,
585 -       64,   62,   61,   57,   51,   50,   49,   47,   46,   45,
586 +        5,    8,   12,   12,   12,   14,   15,   16,    8,    8,
587 +        8,   17,   20,   20,   17,   23,   24,   29,  155,   24,
588 +       29,   29,   29,   48,   16,   14,   31,   29,  128,   17,
589 +      128,   17,   48,   17,   24,   17,   24,   99,   24,   42,
590 +       24,   99,   15,   33,   33,   33,   23,   26,   26,   26,
591 +       26,  154,   33,   33,   26,   36,   42,   31,   32,   32,
592 +       32,   26,   26,   26,   26,   44,   59,   32,   32,   32,
593 +       34,   34,   34,   73,   75,   36,  153,   75,   59,   59,
594 +       59,   65,   44,  110,   65,   65,   65,   67,   67,   67,
595 +
596 +       73,   65,   83,   89,   89,   97,   67,   67,  119,  127,
597 +       97,  150,  149,  110,   83,   83,   83,  133,  133,  133,
598 +      141,  127,  127,  127,  145,  136,  136,  136,  119,  136,
599 +      140,  140,  140,  148,  140,  147,  144,  143,  142,  139,
600 +      141,  138,  137,  135,  145,  159,  159,  159,  159,  159,
601 +      159,  159,  159,  160,  134,  132,  131,  160,  160,  161,
602 +      161,  161,  161,  161,  161,  161,  161,  162,  162,  162,
603 +      162,  163,  126,  163,  164,  125,  124,  164,  123,  164,
604 +      164,  165,  122,  121,  165,  165,  165,  165,  166,  120,
605 +      166,  166,  167,  167,  167,  167,  167,  167,  167,  167,
606 +
607 +      168,  168,  168,  168,  168,  168,  168,  168,  169,  118,
608 +      169,  170,  117,  170,  170,  116,  170,  170,  171,  171,
609 +      171,  171,  171,  171,  171,  171,  172,  172,  172,  172,
610 +      172,  172,  172,  172,  115,  114,  112,  111,  109,  108,
611 +      107,  106,  105,  104,  103,  102,  101,  100,   98,   96,
612 +       95,   94,   93,   92,   90,   88,   86,   85,   84,   82,
613 +       81,   80,   79,   78,   77,   76,   74,   72,   69,   68,
614 +       66,   63,   61,   60,   56,   50,   49,   47,   46,   45,
615         41,   38,   22,   21,   19,   13,    9,    6,    4,    2,
616 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
617  
618 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
619 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
620 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
621 -      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
622 -      165,  165,  165,  165,  165,  165,  165,  165
623 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
624 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
625 +      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
626 +      158,  158,  158,  158,  158,  158,  158
627      } ;
628  
629  static yy_state_type yy_last_accepting_state;
630 @@ -664,7 +662,7 @@ static int dts_version = 1;
631  static void push_input_file(const char *filename);
632  static bool pop_input_file(void);
633  static void lexical_error(const char *fmt, ...);
634 -#line 668 "dtc-lexer.lex.c"
635 +#line 666 "dtc-lexer.lex.c"
636  
637  #define INITIAL 0
638  #define BYTESTRING 1
639 @@ -706,7 +704,7 @@ FILE *yyget_out (void );
640  
641  void yyset_out  (FILE * out_str  );
642  
643 -int yyget_leng (void );
644 +yy_size_t yyget_leng (void );
645  
646  char *yyget_text (void );
647  
648 @@ -855,10 +853,6 @@ YY_DECL
649         register char *yy_cp, *yy_bp;
650         register int yy_act;
651      
652 -#line 68 "dtc-lexer.l"
653 -
654 -#line 861 "dtc-lexer.lex.c"
655 -
656         if ( !(yy_init) )
657                 {
658                 (yy_init) = 1;
659 @@ -885,6 +879,11 @@ YY_DECL
660                 yy_load_buffer_state( );
661                 }
662  
663 +       {
664 +#line 68 "dtc-lexer.l"
665 +
666 +#line 886 "dtc-lexer.lex.c"
667 +
668         while ( 1 )             /* loops until end-of-file is reached */
669                 {
670                 yy_cp = (yy_c_buf_p);
671 @@ -902,7 +901,7 @@ YY_DECL
672  yy_match:
673                 do
674                         {
675 -                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
676 +                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
677                         if ( yy_accept[yy_current_state] )
678                                 {
679                                 (yy_last_accepting_state) = yy_current_state;
680 @@ -911,13 +910,13 @@ yy_match:
681                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
682                                 {
683                                 yy_current_state = (int) yy_def[yy_current_state];
684 -                               if ( yy_current_state >= 166 )
685 +                               if ( yy_current_state >= 159 )
686                                         yy_c = yy_meta[(unsigned int) yy_c];
687                                 }
688                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
689                         ++yy_cp;
690                         }
691 -               while ( yy_current_state != 165 );
692 +               while ( yy_current_state != 158 );
693                 yy_cp = (yy_last_accepting_cpos);
694                 yy_current_state = (yy_last_accepting_state);
695  
696 @@ -1008,31 +1007,23 @@ case 5:
697  YY_RULE_SETUP
698  #line 116 "dtc-lexer.l"
699  {
700 -                       DPRINT("Keyword: /plugin/\n");
701 -                       return DT_PLUGIN;
702 -               }
703 -       YY_BREAK
704 -case 6:
705 -YY_RULE_SETUP
706 -#line 121 "dtc-lexer.l"
707 -{
708                         DPRINT("Keyword: /memreserve/\n");
709                         BEGIN_DEFAULT();
710                         return DT_MEMRESERVE;
711                 }
712         YY_BREAK
713 -case 7:
714 +case 6:
715  YY_RULE_SETUP
716 -#line 127 "dtc-lexer.l"
717 +#line 122 "dtc-lexer.l"
718  {
719                         DPRINT("Keyword: /bits/\n");
720                         BEGIN_DEFAULT();
721                         return DT_BITS;
722                 }
723         YY_BREAK
724 -case 8:
725 +case 7:
726  YY_RULE_SETUP
727 -#line 133 "dtc-lexer.l"
728 +#line 128 "dtc-lexer.l"
729  {
730                         DPRINT("Keyword: /delete-property/\n");
731                         DPRINT("<PROPNODENAME>\n");
732 @@ -1040,9 +1031,9 @@ YY_RULE_SETUP
733                         return DT_DEL_PROP;
734                 }
735         YY_BREAK
736 -case 9:
737 +case 8:
738  YY_RULE_SETUP
739 -#line 140 "dtc-lexer.l"
740 +#line 135 "dtc-lexer.l"
741  {
742                         DPRINT("Keyword: /delete-node/\n");
743                         DPRINT("<PROPNODENAME>\n");
744 @@ -1050,9 +1041,9 @@ YY_RULE_SETUP
745                         return DT_DEL_NODE;
746                 }
747         YY_BREAK
748 -case 10:
749 +case 9:
750  YY_RULE_SETUP
751 -#line 147 "dtc-lexer.l"
752 +#line 142 "dtc-lexer.l"
753  {
754                         DPRINT("Label: %s\n", yytext);
755                         yylval.labelref = xstrdup(yytext);
756 @@ -1060,9 +1051,9 @@ YY_RULE_SETUP
757                         return DT_LABEL;
758                 }
759         YY_BREAK
760 -case 11:
761 +case 10:
762  YY_RULE_SETUP
763 -#line 154 "dtc-lexer.l"
764 +#line 149 "dtc-lexer.l"
765  {
766                         char *e;
767                         DPRINT("Integer Literal: '%s'\n", yytext);
768 @@ -1082,10 +1073,10 @@ YY_RULE_SETUP
769                         return DT_LITERAL;
770                 }
771         YY_BREAK
772 -case 12:
773 -/* rule 12 can match eol */
774 +case 11:
775 +/* rule 11 can match eol */
776  YY_RULE_SETUP
777 -#line 173 "dtc-lexer.l"
778 +#line 168 "dtc-lexer.l"
779  {
780                         struct data d;
781                         DPRINT("Character literal: %s\n", yytext);
782 @@ -1107,18 +1098,18 @@ YY_RULE_SETUP
783                         return DT_CHAR_LITERAL;
784                 }
785         YY_BREAK
786 -case 13:
787 +case 12:
788  YY_RULE_SETUP
789 -#line 194 "dtc-lexer.l"
790 +#line 189 "dtc-lexer.l"
791  {      /* label reference */
792                         DPRINT("Ref: %s\n", yytext+1);
793                         yylval.labelref = xstrdup(yytext+1);
794                         return DT_REF;
795                 }
796         YY_BREAK
797 -case 14:
798 +case 13:
799  YY_RULE_SETUP
800 -#line 200 "dtc-lexer.l"
801 +#line 195 "dtc-lexer.l"
802  {      /* new-style path reference */
803                         yytext[yyleng-1] = '\0';
804                         DPRINT("Ref: %s\n", yytext+2);
805 @@ -1126,27 +1117,27 @@ YY_RULE_SETUP
806                         return DT_REF;
807                 }
808         YY_BREAK
809 -case 15:
810 +case 14:
811  YY_RULE_SETUP
812 -#line 207 "dtc-lexer.l"
813 +#line 202 "dtc-lexer.l"
814  {
815                         yylval.byte = strtol(yytext, NULL, 16);
816                         DPRINT("Byte: %02x\n", (int)yylval.byte);
817                         return DT_BYTE;
818                 }
819         YY_BREAK
820 -case 16:
821 +case 15:
822  YY_RULE_SETUP
823 -#line 213 "dtc-lexer.l"
824 +#line 208 "dtc-lexer.l"
825  {
826                         DPRINT("/BYTESTRING\n");
827                         BEGIN_DEFAULT();
828                         return ']';
829                 }
830         YY_BREAK
831 -case 17:
832 +case 16:
833  YY_RULE_SETUP
834 -#line 219 "dtc-lexer.l"
835 +#line 214 "dtc-lexer.l"
836  {
837                         DPRINT("PropNodeName: %s\n", yytext);
838                         yylval.propnodename = xstrdup((yytext[0] == '\\') ?
839 @@ -1155,75 +1146,75 @@ YY_RULE_SETUP
840                         return DT_PROPNODENAME;
841                 }
842         YY_BREAK
843 -case 18:
844 +case 17:
845  YY_RULE_SETUP
846 -#line 227 "dtc-lexer.l"
847 +#line 222 "dtc-lexer.l"
848  {
849                         DPRINT("Binary Include\n");
850                         return DT_INCBIN;
851                 }
852         YY_BREAK
853 -case 19:
854 -/* rule 19 can match eol */
855 +case 18:
856 +/* rule 18 can match eol */
857  YY_RULE_SETUP
858 -#line 232 "dtc-lexer.l"
859 +#line 227 "dtc-lexer.l"
860  /* eat whitespace */
861         YY_BREAK
862 -case 20:
863 -/* rule 20 can match eol */
864 +case 19:
865 +/* rule 19 can match eol */
866  YY_RULE_SETUP
867 -#line 233 "dtc-lexer.l"
868 +#line 228 "dtc-lexer.l"
869  /* eat C-style comments */
870         YY_BREAK
871 -case 21:
872 -/* rule 21 can match eol */
873 +case 20:
874 +/* rule 20 can match eol */
875  YY_RULE_SETUP
876 -#line 234 "dtc-lexer.l"
877 +#line 229 "dtc-lexer.l"
878  /* eat C++-style comments */
879         YY_BREAK
880 -case 22:
881 +case 21:
882  YY_RULE_SETUP
883 -#line 236 "dtc-lexer.l"
884 +#line 231 "dtc-lexer.l"
885  { return DT_LSHIFT; };
886         YY_BREAK
887 -case 23:
888 +case 22:
889  YY_RULE_SETUP
890 -#line 237 "dtc-lexer.l"
891 +#line 232 "dtc-lexer.l"
892  { return DT_RSHIFT; };
893         YY_BREAK
894 -case 24:
895 +case 23:
896  YY_RULE_SETUP
897 -#line 238 "dtc-lexer.l"
898 +#line 233 "dtc-lexer.l"
899  { return DT_LE; };
900         YY_BREAK
901 -case 25:
902 +case 24:
903  YY_RULE_SETUP
904 -#line 239 "dtc-lexer.l"
905 +#line 234 "dtc-lexer.l"
906  { return DT_GE; };
907         YY_BREAK
908 -case 26:
909 +case 25:
910  YY_RULE_SETUP
911 -#line 240 "dtc-lexer.l"
912 +#line 235 "dtc-lexer.l"
913  { return DT_EQ; };
914         YY_BREAK
915 -case 27:
916 +case 26:
917  YY_RULE_SETUP
918 -#line 241 "dtc-lexer.l"
919 +#line 236 "dtc-lexer.l"
920  { return DT_NE; };
921         YY_BREAK
922 -case 28:
923 +case 27:
924  YY_RULE_SETUP
925 -#line 242 "dtc-lexer.l"
926 +#line 237 "dtc-lexer.l"
927  { return DT_AND; };
928         YY_BREAK
929 -case 29:
930 +case 28:
931  YY_RULE_SETUP
932 -#line 243 "dtc-lexer.l"
933 +#line 238 "dtc-lexer.l"
934  { return DT_OR; };
935         YY_BREAK
936 -case 30:
937 +case 29:
938  YY_RULE_SETUP
939 -#line 245 "dtc-lexer.l"
940 +#line 240 "dtc-lexer.l"
941  {
942                         DPRINT("Char: %c (\\x%02x)\n", yytext[0],
943                                 (unsigned)yytext[0]);
944 @@ -1239,12 +1230,12 @@ YY_RULE_SETUP
945                         return yytext[0];
946                 }
947         YY_BREAK
948 -case 31:
949 +case 30:
950  YY_RULE_SETUP
951 -#line 260 "dtc-lexer.l"
952 +#line 255 "dtc-lexer.l"
953  ECHO;
954         YY_BREAK
955 -#line 1248 "dtc-lexer.lex.c"
956 +#line 1239 "dtc-lexer.lex.c"
957  
958         case YY_END_OF_BUFFER:
959                 {
960 @@ -1374,6 +1365,7 @@ ECHO;
961                         "fatal flex scanner internal error--no action found" );
962         } /* end of action switch */
963                 } /* end of scanning one token */
964 +       } /* end of user's declarations */
965  } /* end of yylex */
966  
967  /* yy_get_next_buffer - try to read in a new buffer
968 @@ -1429,21 +1421,21 @@ static int yy_get_next_buffer (void)
969  
970         else
971                 {
972 -                       int num_to_read =
973 +                       yy_size_t num_to_read =
974                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
975  
976                 while ( num_to_read <= 0 )
977                         { /* Not enough room in the buffer - grow it. */
978  
979                         /* just a shorter name for the current buffer */
980 -                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
981 +                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
982  
983                         int yy_c_buf_p_offset =
984                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
985  
986                         if ( b->yy_is_our_buffer )
987                                 {
988 -                               int new_size = b->yy_buf_size * 2;
989 +                               yy_size_t new_size = b->yy_buf_size * 2;
990  
991                                 if ( new_size <= 0 )
992                                         b->yy_buf_size += b->yy_buf_size / 8;
993 @@ -1474,7 +1466,7 @@ static int yy_get_next_buffer (void)
994  
995                 /* Read in more data. */
996                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
997 -                       (yy_n_chars), (size_t) num_to_read );
998 +                       (yy_n_chars), num_to_read );
999  
1000                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1001                 }
1002 @@ -1536,7 +1528,7 @@ static int yy_get_next_buffer (void)
1003                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1004                         {
1005                         yy_current_state = (int) yy_def[yy_current_state];
1006 -                       if ( yy_current_state >= 166 )
1007 +                       if ( yy_current_state >= 159 )
1008                                 yy_c = yy_meta[(unsigned int) yy_c];
1009                         }
1010                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1011 @@ -1564,13 +1556,13 @@ static int yy_get_next_buffer (void)
1012         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1013                 {
1014                 yy_current_state = (int) yy_def[yy_current_state];
1015 -               if ( yy_current_state >= 166 )
1016 +               if ( yy_current_state >= 159 )
1017                         yy_c = yy_meta[(unsigned int) yy_c];
1018                 }
1019         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1020 -       yy_is_jam = (yy_current_state == 165);
1021 +       yy_is_jam = (yy_current_state == 158);
1022  
1023 -       return yy_is_jam ? 0 : yy_current_state;
1024 +               return yy_is_jam ? 0 : yy_current_state;
1025  }
1026  
1027  #ifndef YY_NO_INPUT
1028 @@ -1597,7 +1589,7 @@ static int yy_get_next_buffer (void)
1029  
1030                 else
1031                         { /* need more input */
1032 -                       int offset = (yy_c_buf_p) - (yytext_ptr);
1033 +                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
1034                         ++(yy_c_buf_p);
1035  
1036                         switch ( yy_get_next_buffer(  ) )
1037 @@ -1871,7 +1863,7 @@ void yypop_buffer_state (void)
1038   */
1039  static void yyensure_buffer_stack (void)
1040  {
1041 -       int num_to_alloc;
1042 +       yy_size_t num_to_alloc;
1043      
1044         if (!(yy_buffer_stack)) {
1045  
1046 @@ -1968,12 +1960,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst
1047   * 
1048   * @return the newly allocated buffer state object.
1049   */
1050 -YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1051 +YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
1052  {
1053         YY_BUFFER_STATE b;
1054         char *buf;
1055         yy_size_t n;
1056 -       int i;
1057 +       yy_size_t i;
1058      
1059         /* Get memory for full buffer, including space for trailing EOB's. */
1060         n = _yybytes_len + 2;
1061 @@ -2055,7 +2047,7 @@ FILE *yyget_out  (void)
1062  /** Get the length of the current token.
1063   * 
1064   */
1065 -int yyget_leng  (void)
1066 +yy_size_t yyget_leng  (void)
1067  {
1068          return yyleng;
1069  }
1070 @@ -2203,7 +2195,7 @@ void yyfree (void * ptr )
1071  
1072  #define YYTABLES_NAME "yytables"
1073  
1074 -#line 260 "dtc-lexer.l"
1075 +#line 254 "dtc-lexer.l"
1076  
1077  
1078  
1079 --- a/scripts/dtc/dtc-parser.tab.c_shipped
1080 +++ b/scripts/dtc/dtc-parser.tab.c_shipped
1081 @@ -1,19 +1,19 @@
1082 -/* A Bison parser, made by GNU Bison 2.5.  */
1083 +/* A Bison parser, made by GNU Bison 3.0.2.  */
1084  
1085  /* Bison implementation for Yacc-like parsers in C
1086 -   
1087 -      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
1088 -   
1089 +
1090 +   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
1091 +
1092     This program is free software: you can redistribute it and/or modify
1093     it under the terms of the GNU General Public License as published by
1094     the Free Software Foundation, either version 3 of the License, or
1095     (at your option) any later version.
1096 -   
1097 +
1098     This program is distributed in the hope that it will be useful,
1099     but WITHOUT ANY WARRANTY; without even the implied warranty of
1100     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1101     GNU General Public License for more details.
1102 -   
1103 +
1104     You should have received a copy of the GNU General Public License
1105     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1106  
1107 @@ -26,7 +26,7 @@
1108     special exception, which will cause the skeleton and the resulting
1109     Bison output files to be licensed under the GNU General Public
1110     License without this special exception.
1111 -   
1112 +
1113     This special exception was added by the Free Software Foundation in
1114     version 2.2 of Bison.  */
1115  
1116 @@ -44,7 +44,7 @@
1117  #define YYBISON 1
1118  
1119  /* Bison version.  */
1120 -#define YYBISON_VERSION "2.5"
1121 +#define YYBISON_VERSION "3.0.2"
1122  
1123  /* Skeleton name.  */
1124  #define YYSKELETON_NAME "yacc.c"
1125 @@ -58,18 +58,13 @@
1126  /* Pull parsers.  */
1127  #define YYPULL 1
1128  
1129 -/* Using locations.  */
1130 -#define YYLSP_NEEDED 1
1131  
1132  
1133  
1134  /* Copy the first part of user declarations.  */
1135 -
1136 -/* Line 268 of yacc.c  */
1137 -#line 20 "dtc-parser.y"
1138 +#line 20 "dtc-parser.y" /* yacc.c:339  */
1139  
1140  #include <stdio.h>
1141 -#include <inttypes.h>
1142  
1143  #include "dtc.h"
1144  #include "srcpos.h"
1145 @@ -85,14 +80,15 @@ extern void yyerror(char const *s);
1146  extern struct boot_info *the_boot_info;
1147  extern bool treesource_error;
1148  
1149 +#line 84 "dtc-parser.tab.c" /* yacc.c:339  */
1150  
1151 -/* Line 268 of yacc.c  */
1152 -#line 91 "dtc-parser.tab.c"
1153 -
1154 -/* Enabling traces.  */
1155 -#ifndef YYDEBUG
1156 -# define YYDEBUG 0
1157 -#endif
1158 +# ifndef YY_NULLPTR
1159 +#  if defined __cplusplus && 201103L <= __cplusplus
1160 +#   define YY_NULLPTR nullptr
1161 +#  else
1162 +#   define YY_NULLPTR 0
1163 +#  endif
1164 +# endif
1165  
1166  /* Enabling verbose error messages.  */
1167  #ifdef YYERROR_VERBOSE
1168 @@ -102,51 +98,53 @@ extern bool treesource_error;
1169  # define YYERROR_VERBOSE 0
1170  #endif
1171  
1172 -/* Enabling the token table.  */
1173 -#ifndef YYTOKEN_TABLE
1174 -# define YYTOKEN_TABLE 0
1175 +/* In a future release of Bison, this section will be replaced
1176 +   by #include "dtc-parser.tab.h".  */
1177 +#ifndef YY_YY_DTC_PARSER_TAB_H_INCLUDED
1178 +# define YY_YY_DTC_PARSER_TAB_H_INCLUDED
1179 +/* Debug traces.  */
1180 +#ifndef YYDEBUG
1181 +# define YYDEBUG 0
1182 +#endif
1183 +#if YYDEBUG
1184 +extern int yydebug;
1185  #endif
1186  
1187 -
1188 -/* Tokens.  */
1189 +/* Token type.  */
1190  #ifndef YYTOKENTYPE
1191  # define YYTOKENTYPE
1192 -   /* Put the tokens into the symbol table, so that GDB and other debuggers
1193 -      know about them.  */
1194 -   enum yytokentype {
1195 -     DT_V1 = 258,
1196 -     DT_PLUGIN = 259,
1197 -     DT_MEMRESERVE = 260,
1198 -     DT_LSHIFT = 261,
1199 -     DT_RSHIFT = 262,
1200 -     DT_LE = 263,
1201 -     DT_GE = 264,
1202 -     DT_EQ = 265,
1203 -     DT_NE = 266,
1204 -     DT_AND = 267,
1205 -     DT_OR = 268,
1206 -     DT_BITS = 269,
1207 -     DT_DEL_PROP = 270,
1208 -     DT_DEL_NODE = 271,
1209 -     DT_PROPNODENAME = 272,
1210 -     DT_LITERAL = 273,
1211 -     DT_CHAR_LITERAL = 274,
1212 -     DT_BYTE = 275,
1213 -     DT_STRING = 276,
1214 -     DT_LABEL = 277,
1215 -     DT_REF = 278,
1216 -     DT_INCBIN = 279
1217 -   };
1218 +  enum yytokentype
1219 +  {
1220 +    DT_V1 = 258,
1221 +    DT_MEMRESERVE = 259,
1222 +    DT_LSHIFT = 260,
1223 +    DT_RSHIFT = 261,
1224 +    DT_LE = 262,
1225 +    DT_GE = 263,
1226 +    DT_EQ = 264,
1227 +    DT_NE = 265,
1228 +    DT_AND = 266,
1229 +    DT_OR = 267,
1230 +    DT_BITS = 268,
1231 +    DT_DEL_PROP = 269,
1232 +    DT_DEL_NODE = 270,
1233 +    DT_PROPNODENAME = 271,
1234 +    DT_LITERAL = 272,
1235 +    DT_CHAR_LITERAL = 273,
1236 +    DT_BYTE = 274,
1237 +    DT_STRING = 275,
1238 +    DT_LABEL = 276,
1239 +    DT_REF = 277,
1240 +    DT_INCBIN = 278
1241 +  };
1242  #endif
1243  
1244 -
1245 -
1246 +/* Value type.  */
1247  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1248 -typedef union YYSTYPE
1249 +typedef union YYSTYPE YYSTYPE;
1250 +union YYSTYPE
1251  {
1252 -
1253 -/* Line 293 of yacc.c  */
1254 -#line 39 "dtc-parser.y"
1255 +#line 38 "dtc-parser.y" /* yacc.c:355  */
1256  
1257         char *propnodename;
1258         char *labelref;
1259 @@ -164,37 +162,37 @@ typedef union YYSTYPE
1260         struct node *nodelist;
1261         struct reserve_info *re;
1262         uint64_t integer;
1263 -       int is_plugin;
1264 -
1265 -
1266  
1267 -/* Line 293 of yacc.c  */
1268 -#line 173 "dtc-parser.tab.c"
1269 -} YYSTYPE;
1270 +#line 167 "dtc-parser.tab.c" /* yacc.c:355  */
1271 +};
1272  # define YYSTYPE_IS_TRIVIAL 1
1273 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */
1274  # define YYSTYPE_IS_DECLARED 1
1275  #endif
1276  
1277 +/* Location type.  */
1278  #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1279 -typedef struct YYLTYPE
1280 +typedef struct YYLTYPE YYLTYPE;
1281 +struct YYLTYPE
1282  {
1283    int first_line;
1284    int first_column;
1285    int last_line;
1286    int last_column;
1287 -} YYLTYPE;
1288 -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
1289 +};
1290  # define YYLTYPE_IS_DECLARED 1
1291  # define YYLTYPE_IS_TRIVIAL 1
1292  #endif
1293  
1294  
1295 -/* Copy the second part of user declarations.  */
1296 +extern YYSTYPE yylval;
1297 +extern YYLTYPE yylloc;
1298 +int yyparse (void);
1299 +
1300 +#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED  */
1301  
1302 +/* Copy the second part of user declarations.  */
1303  
1304 -/* Line 343 of yacc.c  */
1305 -#line 198 "dtc-parser.tab.c"
1306 +#line 196 "dtc-parser.tab.c" /* yacc.c:358  */
1307  
1308  #ifdef short
1309  # undef short
1310 @@ -208,11 +206,8 @@ typedef unsigned char yytype_uint8;
1311  
1312  #ifdef YYTYPE_INT8
1313  typedef YYTYPE_INT8 yytype_int8;
1314 -#elif (defined __STDC__ || defined __C99__FUNC__ \
1315 -     || defined __cplusplus || defined _MSC_VER)
1316 -typedef signed char yytype_int8;
1317  #else
1318 -typedef short int yytype_int8;
1319 +typedef signed char yytype_int8;
1320  #endif
1321  
1322  #ifdef YYTYPE_UINT16
1323 @@ -232,8 +227,7 @@ typedef short int yytype_int16;
1324  #  define YYSIZE_T __SIZE_TYPE__
1325  # elif defined size_t
1326  #  define YYSIZE_T size_t
1327 -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1328 -     || defined __cplusplus || defined _MSC_VER)
1329 +# elif ! defined YYSIZE_T
1330  #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1331  #  define YYSIZE_T size_t
1332  # else
1333 @@ -247,39 +241,68 @@ typedef short int yytype_int16;
1334  # if defined YYENABLE_NLS && YYENABLE_NLS
1335  #  if ENABLE_NLS
1336  #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1337 -#   define YY_(msgid) dgettext ("bison-runtime", msgid)
1338 +#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1339  #  endif
1340  # endif
1341  # ifndef YY_
1342 -#  define YY_(msgid) msgid
1343 +#  define YY_(Msgid) Msgid
1344 +# endif
1345 +#endif
1346 +
1347 +#ifndef YY_ATTRIBUTE
1348 +# if (defined __GNUC__                                               \
1349 +      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
1350 +     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
1351 +#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
1352 +# else
1353 +#  define YY_ATTRIBUTE(Spec) /* empty */
1354 +# endif
1355 +#endif
1356 +
1357 +#ifndef YY_ATTRIBUTE_PURE
1358 +# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
1359 +#endif
1360 +
1361 +#ifndef YY_ATTRIBUTE_UNUSED
1362 +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
1363 +#endif
1364 +
1365 +#if !defined _Noreturn \
1366 +     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
1367 +# if defined _MSC_VER && 1200 <= _MSC_VER
1368 +#  define _Noreturn __declspec (noreturn)
1369 +# else
1370 +#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
1371  # endif
1372  #endif
1373  
1374  /* Suppress unused-variable warnings by "using" E.  */
1375  #if ! defined lint || defined __GNUC__
1376 -# define YYUSE(e) ((void) (e))
1377 +# define YYUSE(E) ((void) (E))
1378  #else
1379 -# define YYUSE(e) /* empty */
1380 +# define YYUSE(E) /* empty */
1381  #endif
1382  
1383 -/* Identity function, used to suppress warnings about constant conditions.  */
1384 -#ifndef lint
1385 -# define YYID(n) (n)
1386 -#else
1387 -#if (defined __STDC__ || defined __C99__FUNC__ \
1388 -     || defined __cplusplus || defined _MSC_VER)
1389 -static int
1390 -YYID (int yyi)
1391 +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1392 +/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
1393 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1394 +    _Pragma ("GCC diagnostic push") \
1395 +    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
1396 +    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1397 +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1398 +    _Pragma ("GCC diagnostic pop")
1399  #else
1400 -static int
1401 -YYID (yyi)
1402 -    int yyi;
1403 +# define YY_INITIAL_VALUE(Value) Value
1404  #endif
1405 -{
1406 -  return yyi;
1407 -}
1408 +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1409 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1410 +# define YY_IGNORE_MAYBE_UNINITIALIZED_END
1411 +#endif
1412 +#ifndef YY_INITIAL_VALUE
1413 +# define YY_INITIAL_VALUE(Value) /* Nothing. */
1414  #endif
1415  
1416 +
1417  #if ! defined yyoverflow || YYERROR_VERBOSE
1418  
1419  /* The parser invokes alloca or malloc; define the necessary symbols.  */
1420 @@ -297,9 +320,9 @@ YYID (yyi)
1421  #    define alloca _alloca
1422  #   else
1423  #    define YYSTACK_ALLOC alloca
1424 -#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1425 -     || defined __cplusplus || defined _MSC_VER)
1426 +#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1427  #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1428 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
1429  #     ifndef EXIT_SUCCESS
1430  #      define EXIT_SUCCESS 0
1431  #     endif
1432 @@ -309,8 +332,8 @@ YYID (yyi)
1433  # endif
1434  
1435  # ifdef YYSTACK_ALLOC
1436 -   /* Pacify GCC's `empty if-body' warning.  */
1437 -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1438 +   /* Pacify GCC's 'empty if-body' warning.  */
1439 +#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1440  #  ifndef YYSTACK_ALLOC_MAXIMUM
1441      /* The OS might guarantee only one guard page at the bottom of the stack,
1442         and a page size can be as small as 4096 bytes.  So we cannot safely
1443 @@ -326,7 +349,7 @@ YYID (yyi)
1444  #  endif
1445  #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1446         && ! ((defined YYMALLOC || defined malloc) \
1447 -            && (defined YYFREE || defined free)))
1448 +             && (defined YYFREE || defined free)))
1449  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1450  #   ifndef EXIT_SUCCESS
1451  #    define EXIT_SUCCESS 0
1452 @@ -334,15 +357,13 @@ YYID (yyi)
1453  #  endif
1454  #  ifndef YYMALLOC
1455  #   define YYMALLOC malloc
1456 -#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1457 -     || defined __cplusplus || defined _MSC_VER)
1458 +#   if ! defined malloc && ! defined EXIT_SUCCESS
1459  void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1460  #   endif
1461  #  endif
1462  #  ifndef YYFREE
1463  #   define YYFREE free
1464 -#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1465 -     || defined __cplusplus || defined _MSC_VER)
1466 +#   if ! defined free && ! defined EXIT_SUCCESS
1467  void free (void *); /* INFRINGES ON USER NAME SPACE */
1468  #   endif
1469  #  endif
1470 @@ -352,8 +373,8 @@ void free (void *); /* INFRINGES ON USER
1471  
1472  #if (! defined yyoverflow \
1473       && (! defined __cplusplus \
1474 -        || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1475 -            && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1476 +         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1477 +             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1478  
1479  /* A type that is properly aligned for any stack member.  */
1480  union yyalloc
1481 @@ -379,35 +400,35 @@ union yyalloc
1482     elements in the stack, and YYPTR gives the new location of the
1483     stack.  Advance YYPTR to a properly aligned location for the next
1484     stack.  */
1485 -# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
1486 -    do                                                                 \
1487 -      {                                                                        \
1488 -       YYSIZE_T yynewbytes;                                            \
1489 -       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1490 -       Stack = &yyptr->Stack_alloc;                                    \
1491 -       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1492 -       yyptr += yynewbytes / sizeof (*yyptr);                          \
1493 -      }                                                                        \
1494 -    while (YYID (0))
1495 +# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1496 +    do                                                                  \
1497 +      {                                                                 \
1498 +        YYSIZE_T yynewbytes;                                            \
1499 +        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1500 +        Stack = &yyptr->Stack_alloc;                                    \
1501 +        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1502 +        yyptr += yynewbytes / sizeof (*yyptr);                          \
1503 +      }                                                                 \
1504 +    while (0)
1505  
1506  #endif
1507  
1508  #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1509 -/* Copy COUNT objects from FROM to TO.  The source and destination do
1510 +/* Copy COUNT objects from SRC to DST.  The source and destination do
1511     not overlap.  */
1512  # ifndef YYCOPY
1513  #  if defined __GNUC__ && 1 < __GNUC__
1514 -#   define YYCOPY(To, From, Count) \
1515 -      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1516 +#   define YYCOPY(Dst, Src, Count) \
1517 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
1518  #  else
1519 -#   define YYCOPY(To, From, Count)             \
1520 -      do                                       \
1521 -       {                                       \
1522 -         YYSIZE_T yyi;                         \
1523 -         for (yyi = 0; yyi < (Count); yyi++)   \
1524 -           (To)[yyi] = (From)[yyi];            \
1525 -       }                                       \
1526 -      while (YYID (0))
1527 +#   define YYCOPY(Dst, Src, Count)              \
1528 +      do                                        \
1529 +        {                                       \
1530 +          YYSIZE_T yyi;                         \
1531 +          for (yyi = 0; yyi < (Count); yyi++)   \
1532 +            (Dst)[yyi] = (Src)[yyi];            \
1533 +        }                                       \
1534 +      while (0)
1535  #  endif
1536  # endif
1537  #endif /* !YYCOPY_NEEDED */
1538 @@ -418,37 +439,39 @@ union yyalloc
1539  #define YYLAST   136
1540  
1541  /* YYNTOKENS -- Number of terminals.  */
1542 -#define YYNTOKENS  48
1543 +#define YYNTOKENS  47
1544  /* YYNNTS -- Number of nonterminals.  */
1545 -#define YYNNTS  29
1546 +#define YYNNTS  28
1547  /* YYNRULES -- Number of rules.  */
1548 -#define YYNRULES  82
1549 -/* YYNRULES -- Number of states.  */
1550 -#define YYNSTATES  147
1551 +#define YYNRULES  80
1552 +/* YYNSTATES -- Number of states.  */
1553 +#define YYNSTATES  144
1554  
1555 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
1556 +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
1557 +   by yylex, with out-of-bounds checking.  */
1558  #define YYUNDEFTOK  2
1559 -#define YYMAXUTOK   279
1560 +#define YYMAXUTOK   278
1561  
1562 -#define YYTRANSLATE(YYX)                                               \
1563 +#define YYTRANSLATE(YYX)                                                \
1564    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1565  
1566 -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
1567 +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1568 +   as returned by yylex, without out-of-bounds checking.  */
1569  static const yytype_uint8 yytranslate[] =
1570  {
1571         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1572         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1573         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1574 -       2,     2,     2,    47,     2,     2,     2,    45,    41,     2,
1575 -      33,    35,    44,    42,    34,    43,     2,    26,     2,     2,
1576 -       2,     2,     2,     2,     2,     2,     2,     2,    38,    25,
1577 -      36,    29,    30,    37,     2,     2,     2,     2,     2,     2,
1578 +       2,     2,     2,    46,     2,     2,     2,    44,    40,     2,
1579 +      32,    34,    43,    41,    33,    42,     2,    25,     2,     2,
1580 +       2,     2,     2,     2,     2,     2,     2,     2,    37,    24,
1581 +      35,    28,    29,    36,     2,     2,     2,     2,     2,     2,
1582         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1583         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1584 -       2,    31,     2,    32,    40,     2,     2,     2,     2,     2,
1585 +       2,    30,     2,    31,    39,     2,     2,     2,     2,     2,
1586         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1587         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1588 -       2,     2,     2,    27,    39,    28,    46,     2,     2,     2,
1589 +       2,     2,     2,    26,    38,    27,    45,     2,     2,     2,
1590         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1591         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1592         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1593 @@ -463,335 +486,292 @@ static const yytype_uint8 yytranslate[]
1594         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1595         2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
1596         5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1597 -      15,    16,    17,    18,    19,    20,    21,    22,    23,    24
1598 +      15,    16,    17,    18,    19,    20,    21,    22,    23
1599  };
1600  
1601  #if YYDEBUG
1602 -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1603 -   YYRHS.  */
1604 -static const yytype_uint16 yyprhs[] =
1605 -{
1606 -       0,     0,     3,     9,    10,    13,    14,    17,    22,    25,
1607 -      28,    32,    37,    41,    46,    52,    53,    56,    61,    64,
1608 -      68,    71,    74,    78,    83,    86,    96,   102,   105,   106,
1609 -     109,   112,   116,   118,   121,   124,   127,   129,   131,   135,
1610 -     137,   139,   145,   147,   151,   153,   157,   159,   163,   165,
1611 -     169,   171,   175,   177,   181,   185,   187,   191,   195,   199,
1612 -     203,   207,   211,   213,   217,   221,   223,   227,   231,   235,
1613 -     237,   239,   242,   245,   248,   249,   252,   255,   256,   259,
1614 -     262,   265,   269
1615 -};
1616 -
1617 -/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1618 -static const yytype_int8 yyrhs[] =
1619 -{
1620 -      49,     0,    -1,     3,    25,    50,    51,    53,    -1,    -1,
1621 -       4,    25,    -1,    -1,    52,    51,    -1,     5,    60,    60,
1622 -      25,    -1,    22,    52,    -1,    26,    54,    -1,    53,    26,
1623 -      54,    -1,    53,    22,    23,    54,    -1,    53,    23,    54,
1624 -      -1,    53,    16,    23,    25,    -1,    27,    55,    75,    28,
1625 -      25,    -1,    -1,    55,    56,    -1,    17,    29,    57,    25,
1626 -      -1,    17,    25,    -1,    15,    17,    25,    -1,    22,    56,
1627 -      -1,    58,    21,    -1,    58,    59,    30,    -1,    58,    31,
1628 -      74,    32,    -1,    58,    23,    -1,    58,    24,    33,    21,
1629 -      34,    60,    34,    60,    35,    -1,    58,    24,    33,    21,
1630 -      35,    -1,    57,    22,    -1,    -1,    57,    34,    -1,    58,
1631 -      22,    -1,    14,    18,    36,    -1,    36,    -1,    59,    60,
1632 -      -1,    59,    23,    -1,    59,    22,    -1,    18,    -1,    19,
1633 -      -1,    33,    61,    35,    -1,    62,    -1,    63,    -1,    63,
1634 -      37,    61,    38,    62,    -1,    64,    -1,    63,    13,    64,
1635 -      -1,    65,    -1,    64,    12,    65,    -1,    66,    -1,    65,
1636 -      39,    66,    -1,    67,    -1,    66,    40,    67,    -1,    68,
1637 -      -1,    67,    41,    68,    -1,    69,    -1,    68,    10,    69,
1638 -      -1,    68,    11,    69,    -1,    70,    -1,    69,    36,    70,
1639 -      -1,    69,    30,    70,    -1,    69,     8,    70,    -1,    69,
1640 -       9,    70,    -1,    70,     6,    71,    -1,    70,     7,    71,
1641 -      -1,    71,    -1,    71,    42,    72,    -1,    71,    43,    72,
1642 -      -1,    72,    -1,    72,    44,    73,    -1,    72,    26,    73,
1643 -      -1,    72,    45,    73,    -1,    73,    -1,    60,    -1,    43,
1644 -      73,    -1,    46,    73,    -1,    47,    73,    -1,    -1,    74,
1645 -      20,    -1,    74,    22,    -1,    -1,    76,    75,    -1,    76,
1646 -      56,    -1,    17,    54,    -1,    16,    17,    25,    -1,    22,
1647 -      76,    -1
1648 -};
1649 -
1650 -/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1651 +  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1652  static const yytype_uint16 yyrline[] =
1653  {
1654 -       0,   108,   108,   119,   122,   130,   133,   140,   144,   152,
1655 -     156,   161,   172,   182,   197,   205,   208,   215,   219,   223,
1656 -     227,   235,   239,   243,   247,   251,   267,   277,   285,   288,
1657 -     292,   299,   315,   320,   339,   353,   360,   361,   362,   369,
1658 -     373,   374,   378,   379,   383,   384,   388,   389,   393,   394,
1659 -     398,   399,   403,   404,   405,   409,   410,   411,   412,   413,
1660 -     417,   418,   419,   423,   424,   425,   429,   430,   431,   432,
1661 -     436,   437,   438,   439,   444,   447,   451,   459,   462,   466,
1662 -     474,   478,   482
1663 +       0,   104,   104,   113,   116,   123,   127,   135,   139,   144,
1664 +     155,   165,   180,   188,   191,   198,   202,   206,   210,   218,
1665 +     222,   226,   230,   234,   250,   260,   268,   271,   275,   282,
1666 +     298,   303,   322,   336,   343,   344,   345,   352,   356,   357,
1667 +     361,   362,   366,   367,   371,   372,   376,   377,   381,   382,
1668 +     386,   387,   388,   392,   393,   394,   395,   396,   400,   401,
1669 +     402,   406,   407,   408,   412,   413,   414,   415,   419,   420,
1670 +     421,   422,   427,   430,   434,   442,   445,   449,   457,   461,
1671 +     465
1672  };
1673  #endif
1674  
1675 -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1676 +#if YYDEBUG || YYERROR_VERBOSE || 0
1677  /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1678     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1679  static const char *const yytname[] =
1680  {
1681 -  "$end", "error", "$undefined", "DT_V1", "DT_PLUGIN", "DT_MEMRESERVE",
1682 -  "DT_LSHIFT", "DT_RSHIFT", "DT_LE", "DT_GE", "DT_EQ", "DT_NE", "DT_AND",
1683 -  "DT_OR", "DT_BITS", "DT_DEL_PROP", "DT_DEL_NODE", "DT_PROPNODENAME",
1684 -  "DT_LITERAL", "DT_CHAR_LITERAL", "DT_BYTE", "DT_STRING", "DT_LABEL",
1685 -  "DT_REF", "DT_INCBIN", "';'", "'/'", "'{'", "'}'", "'='", "'>'", "'['",
1686 -  "']'", "'('", "','", "')'", "'<'", "'?'", "':'", "'|'", "'^'", "'&'",
1687 -  "'+'", "'-'", "'*'", "'%'", "'~'", "'!'", "$accept", "sourcefile",
1688 -  "plugindecl", "memreserves", "memreserve", "devicetree", "nodedef",
1689 -  "proplist", "propdef", "propdata", "propdataprefix", "arrayprefix",
1690 -  "integer_prim", "integer_expr", "integer_trinary", "integer_or",
1691 -  "integer_and", "integer_bitor", "integer_bitxor", "integer_bitand",
1692 -  "integer_eq", "integer_rela", "integer_shift", "integer_add",
1693 -  "integer_mul", "integer_unary", "bytestring", "subnodes", "subnode", 0
1694 +  "$end", "error", "$undefined", "DT_V1", "DT_MEMRESERVE", "DT_LSHIFT",
1695 +  "DT_RSHIFT", "DT_LE", "DT_GE", "DT_EQ", "DT_NE", "DT_AND", "DT_OR",
1696 +  "DT_BITS", "DT_DEL_PROP", "DT_DEL_NODE", "DT_PROPNODENAME", "DT_LITERAL",
1697 +  "DT_CHAR_LITERAL", "DT_BYTE", "DT_STRING", "DT_LABEL", "DT_REF",
1698 +  "DT_INCBIN", "';'", "'/'", "'{'", "'}'", "'='", "'>'", "'['", "']'",
1699 +  "'('", "','", "')'", "'<'", "'?'", "':'", "'|'", "'^'", "'&'", "'+'",
1700 +  "'-'", "'*'", "'%'", "'~'", "'!'", "$accept", "sourcefile",
1701 +  "memreserves", "memreserve", "devicetree", "nodedef", "proplist",
1702 +  "propdef", "propdata", "propdataprefix", "arrayprefix", "integer_prim",
1703 +  "integer_expr", "integer_trinary", "integer_or", "integer_and",
1704 +  "integer_bitor", "integer_bitxor", "integer_bitand", "integer_eq",
1705 +  "integer_rela", "integer_shift", "integer_add", "integer_mul",
1706 +  "integer_unary", "bytestring", "subnodes", "subnode", YY_NULLPTR
1707  };
1708  #endif
1709  
1710  # ifdef YYPRINT
1711 -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1712 -   token YYLEX-NUM.  */
1713 +/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1714 +   (internal) symbol number NUM (which must be that of a token).  */
1715  static const yytype_uint16 yytoknum[] =
1716  {
1717         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1718       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1719 -     275,   276,   277,   278,   279,    59,    47,   123,   125,    61,
1720 -      62,    91,    93,    40,    44,    41,    60,    63,    58,   124,
1721 -      94,    38,    43,    45,    42,    37,   126,    33
1722 +     275,   276,   277,   278,    59,    47,   123,   125,    61,    62,
1723 +      91,    93,    40,    44,    41,    60,    63,    58,   124,    94,
1724 +      38,    43,    45,    42,    37,   126,    33
1725  };
1726  # endif
1727  
1728 -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1729 -static const yytype_uint8 yyr1[] =
1730 -{
1731 -       0,    48,    49,    50,    50,    51,    51,    52,    52,    53,
1732 -      53,    53,    53,    53,    54,    55,    55,    56,    56,    56,
1733 -      56,    57,    57,    57,    57,    57,    57,    57,    58,    58,
1734 -      58,    59,    59,    59,    59,    59,    60,    60,    60,    61,
1735 -      62,    62,    63,    63,    64,    64,    65,    65,    66,    66,
1736 -      67,    67,    68,    68,    68,    69,    69,    69,    69,    69,
1737 -      70,    70,    70,    71,    71,    71,    72,    72,    72,    72,
1738 -      73,    73,    73,    73,    74,    74,    74,    75,    75,    75,
1739 -      76,    76,    76
1740 -};
1741 +#define YYPACT_NINF -81
1742  
1743 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1744 -static const yytype_uint8 yyr2[] =
1745 +#define yypact_value_is_default(Yystate) \
1746 +  (!!((Yystate) == (-81)))
1747 +
1748 +#define YYTABLE_NINF -1
1749 +
1750 +#define yytable_value_is_error(Yytable_value) \
1751 +  0
1752 +
1753 +  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1754 +     STATE-NUM.  */
1755 +static const yytype_int8 yypact[] =
1756  {
1757 -       0,     2,     5,     0,     2,     0,     2,     4,     2,     2,
1758 -       3,     4,     3,     4,     5,     0,     2,     4,     2,     3,
1759 -       2,     2,     3,     4,     2,     9,     5,     2,     0,     2,
1760 -       2,     3,     1,     2,     2,     2,     1,     1,     3,     1,
1761 -       1,     5,     1,     3,     1,     3,     1,     3,     1,     3,
1762 -       1,     3,     1,     3,     3,     1,     3,     3,     3,     3,
1763 -       3,     3,     1,     3,     3,     1,     3,     3,     3,     1,
1764 -       1,     2,     2,     2,     0,     2,     2,     0,     2,     2,
1765 -       2,     3,     2
1766 +      16,   -11,    21,    10,   -81,    25,    10,    19,    10,   -81,
1767 +     -81,    -9,    25,   -81,     2,    51,   -81,    -9,    -9,    -9,
1768 +     -81,     1,   -81,    -6,    50,    14,    28,    29,    36,     3,
1769 +      58,    44,    -3,   -81,    47,   -81,   -81,    65,    68,     2,
1770 +       2,   -81,   -81,   -81,   -81,    -9,    -9,    -9,    -9,    -9,
1771 +      -9,    -9,    -9,    -9,    -9,    -9,    -9,    -9,    -9,    -9,
1772 +      -9,    -9,    -9,    -9,   -81,    63,    69,     2,   -81,   -81,
1773 +      50,    57,    14,    28,    29,    36,     3,     3,    58,    58,
1774 +      58,    58,    44,    44,    -3,    -3,   -81,   -81,   -81,    79,
1775 +      80,    -8,    63,   -81,    72,    63,   -81,   -81,    -9,    76,
1776 +      77,   -81,   -81,   -81,   -81,   -81,    78,   -81,   -81,   -81,
1777 +     -81,   -81,    35,     4,   -81,   -81,   -81,   -81,    86,   -81,
1778 +     -81,   -81,    73,   -81,   -81,    33,    71,    84,    39,   -81,
1779 +     -81,   -81,   -81,   -81,    41,   -81,   -81,   -81,    25,   -81,
1780 +      74,    25,    75,   -81
1781  };
1782  
1783 -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1784 -   Performed when YYTABLE doesn't specify something else to do.  Zero
1785 -   means the default is an error.  */
1786 +  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1787 +     Performed when YYTABLE does not specify something else to do.  Zero
1788 +     means the default is an error.  */
1789  static const yytype_uint8 yydefact[] =
1790  {
1791 -       0,     0,     0,     3,     1,     0,     5,     4,     0,     0,
1792 -       0,     5,    36,    37,     0,     0,     8,     0,     2,     6,
1793 -       0,     0,     0,    70,     0,    39,    40,    42,    44,    46,
1794 -      48,    50,    52,    55,    62,    65,    69,     0,    15,     9,
1795 -       0,     0,     0,     0,    71,    72,    73,    38,     0,     0,
1796 +       0,     0,     0,     3,     1,     0,     0,     0,     3,    34,
1797 +      35,     0,     0,     6,     0,     2,     4,     0,     0,     0,
1798 +      68,     0,    37,    38,    40,    42,    44,    46,    48,    50,
1799 +      53,    60,    63,    67,     0,    13,     7,     0,     0,     0,
1800 +       0,    69,    70,    71,    36,     0,     0,     0,     0,     0,
1801         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1802 -       0,     0,     0,     0,     0,     0,     0,     7,    77,     0,
1803 -       0,    12,    10,    43,     0,    45,    47,    49,    51,    53,
1804 -      54,    58,    59,    57,    56,    60,    61,    63,    64,    67,
1805 -      66,    68,     0,     0,     0,     0,    16,     0,    77,    13,
1806 -      11,     0,     0,     0,    18,    28,    80,    20,    82,     0,
1807 -      79,    78,    41,    19,    81,     0,     0,    14,    27,    17,
1808 -      29,     0,    21,    30,    24,     0,    74,    32,     0,     0,
1809 -       0,     0,    35,    34,    22,    33,    31,     0,    75,    76,
1810 -      23,     0,    26,     0,     0,     0,    25
1811 +       0,     0,     0,     0,     5,    75,     0,     0,    10,     8,
1812 +      41,     0,    43,    45,    47,    49,    51,    52,    56,    57,
1813 +      55,    54,    58,    59,    61,    62,    65,    64,    66,     0,
1814 +       0,     0,     0,    14,     0,    75,    11,     9,     0,     0,
1815 +       0,    16,    26,    78,    18,    80,     0,    77,    76,    39,
1816 +      17,    79,     0,     0,    12,    25,    15,    27,     0,    19,
1817 +      28,    22,     0,    72,    30,     0,     0,     0,     0,    33,
1818 +      32,    20,    31,    29,     0,    73,    74,    21,     0,    24,
1819 +       0,     0,     0,    23
1820  };
1821  
1822 -/* YYDEFGOTO[NTERM-NUM].  */
1823 -static const yytype_int16 yydefgoto[] =
1824 +  /* YYPGOTO[NTERM-NUM].  */
1825 +static const yytype_int8 yypgoto[] =
1826  {
1827 -      -1,     2,     6,    10,    11,    18,    39,    68,    96,   115,
1828 -     116,   128,    23,    24,    25,    26,    27,    28,    29,    30,
1829 -      31,    32,    33,    34,    35,    36,   131,    97,    98
1830 +     -81,   -81,   100,   104,   -81,   -38,   -81,   -80,   -81,   -81,
1831 +     -81,    -5,    66,    13,   -81,    70,    67,    81,    64,    82,
1832 +      37,    27,    34,    38,   -14,   -81,    22,    24
1833  };
1834  
1835 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1836 -   STATE-NUM.  */
1837 -#define YYPACT_NINF -84
1838 -static const yytype_int8 yypact[] =
1839 +  /* YYDEFGOTO[NTERM-NUM].  */
1840 +static const yytype_int16 yydefgoto[] =
1841  {
1842 -      15,   -12,    35,    42,   -84,    27,     9,   -84,    24,     9,
1843 -      43,     9,   -84,   -84,   -10,    24,   -84,    60,    44,   -84,
1844 -     -10,   -10,   -10,   -84,    55,   -84,    -7,    52,    53,    51,
1845 -      54,    10,     2,    38,    37,    -4,   -84,    68,   -84,   -84,
1846 -      71,    73,    60,    60,   -84,   -84,   -84,   -84,   -10,   -10,
1847 -     -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,
1848 -     -10,   -10,   -10,   -10,   -10,   -10,   -10,   -84,    56,    72,
1849 -      60,   -84,   -84,    52,    61,    53,    51,    54,    10,     2,
1850 -       2,    38,    38,    38,    38,    37,    37,    -4,    -4,   -84,
1851 -     -84,   -84,    81,    83,    34,    56,   -84,    74,    56,   -84,
1852 -     -84,   -10,    76,    78,   -84,   -84,   -84,   -84,   -84,    79,
1853 -     -84,   -84,   -84,   -84,   -84,    -6,     3,   -84,   -84,   -84,
1854 -     -84,    87,   -84,   -84,   -84,    75,   -84,   -84,    32,    70,
1855 -      86,    36,   -84,   -84,   -84,   -84,   -84,    47,   -84,   -84,
1856 -     -84,    24,   -84,    77,    24,    80,   -84
1857 +      -1,     2,     7,     8,    15,    36,    65,    93,   112,   113,
1858 +     125,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1859 +      29,    30,    31,    32,    33,   128,    94,    95
1860  };
1861  
1862 -/* YYPGOTO[NTERM-NUM].  */
1863 -static const yytype_int8 yypgoto[] =
1864 +  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1865 +     positive, shift that token.  If negative, reduce the rule whose
1866 +     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1867 +static const yytype_uint8 yytable[] =
1868  {
1869 -     -84,   -84,   -84,    98,   101,   -84,   -41,   -84,   -83,   -84,
1870 -     -84,   -84,    -8,    63,    12,   -84,    66,    67,    65,    69,
1871 -      82,    29,    18,    25,    26,   -17,   -84,    20,    28
1872 +      12,    68,    69,    41,    42,    43,    45,    34,     9,    10,
1873 +      53,    54,   104,     3,     5,   107,   101,   118,    35,     1,
1874 +     102,     4,    61,    11,   119,   120,   121,   122,    35,    97,
1875 +      46,     6,    55,    17,   123,    44,    18,    19,    56,   124,
1876 +      62,    63,     9,    10,    14,    51,    52,    86,    87,    88,
1877 +       9,    10,    48,   103,   129,   130,   115,    11,   135,   116,
1878 +     136,    47,   131,    57,    58,    11,    37,    49,   117,    50,
1879 +     137,    64,    38,    39,   138,   139,    40,    89,    90,    91,
1880 +      78,    79,    80,    81,    92,    59,    60,    66,    76,    77,
1881 +      67,    82,    83,    96,    98,    99,   100,    84,    85,   106,
1882 +     110,   111,   114,   126,   134,   127,   133,   141,    16,   143,
1883 +      13,   109,    71,    74,    72,    70,   105,   108,     0,     0,
1884 +     132,     0,     0,     0,     0,     0,     0,     0,     0,    73,
1885 +       0,     0,    75,   140,     0,     0,   142
1886  };
1887  
1888 -/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1889 -   positive, shift that token.  If negative, reduce the rule which
1890 -   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1891 -#define YYTABLE_NINF -1
1892 -static const yytype_uint8 yytable[] =
1893 +static const yytype_int16 yycheck[] =
1894  {
1895 -      15,    71,    72,    44,    45,    46,    48,    37,    12,    13,
1896 -      56,    57,   107,     3,     8,   110,   118,   121,     1,   119,
1897 -      54,    55,    64,    14,   122,   123,   124,   125,   120,   100,
1898 -      49,     9,    58,    20,   126,     4,    21,    22,    59,   127,
1899 -      65,    66,    12,    13,    60,    61,     5,    89,    90,    91,
1900 -      12,    13,     7,   106,   132,   133,   138,    14,   139,   104,
1901 -      40,    38,   134,   105,    50,    14,    41,    42,   140,    17,
1902 -      43,    92,    93,    94,    81,    82,    83,    84,    95,    62,
1903 -      63,   141,   142,    79,    80,    85,    86,    38,    87,    88,
1904 -      47,    52,    51,    67,    69,    53,    70,    99,   102,   101,
1905 -     103,   113,   109,   114,   117,   129,   136,   137,   130,    19,
1906 -      16,   144,    74,   112,    73,   146,    76,    75,   111,     0,
1907 -     135,    77,     0,   108,     0,     0,     0,     0,     0,     0,
1908 -       0,     0,     0,   143,     0,    78,   145
1909 +       5,    39,    40,    17,    18,    19,    12,    12,    17,    18,
1910 +       7,     8,    92,    24,     4,    95,    24,    13,    26,     3,
1911 +      28,     0,    25,    32,    20,    21,    22,    23,    26,    67,
1912 +      36,    21,    29,    42,    30,    34,    45,    46,    35,    35,
1913 +      43,    44,    17,    18,    25,     9,    10,    61,    62,    63,
1914 +      17,    18,    38,    91,    21,    22,    21,    32,    19,    24,
1915 +      21,    11,    29,     5,     6,    32,    15,    39,    33,    40,
1916 +      31,    24,    21,    22,    33,    34,    25,    14,    15,    16,
1917 +      53,    54,    55,    56,    21,    41,    42,    22,    51,    52,
1918 +      22,    57,    58,    24,    37,    16,    16,    59,    60,    27,
1919 +      24,    24,    24,    17,    20,    32,    35,    33,     8,    34,
1920 +       6,    98,    46,    49,    47,    45,    92,    95,    -1,    -1,
1921 +     125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
1922 +      -1,    -1,    50,   138,    -1,    -1,   141
1923  };
1924  
1925 -#define yypact_value_is_default(yystate) \
1926 -  ((yystate) == (-84))
1927 -
1928 -#define yytable_value_is_error(yytable_value) \
1929 -  YYID (0)
1930 +  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1931 +     symbol of state STATE-NUM.  */
1932 +static const yytype_uint8 yystos[] =
1933 +{
1934 +       0,     3,    48,    24,     0,     4,    21,    49,    50,    17,
1935 +      18,    32,    58,    50,    25,    51,    49,    42,    45,    46,
1936 +      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1937 +      68,    69,    70,    71,    58,    26,    52,    15,    21,    22,
1938 +      25,    71,    71,    71,    34,    12,    36,    11,    38,    39,
1939 +      40,     9,    10,     7,     8,    29,    35,     5,     6,    41,
1940 +      42,    25,    43,    44,    24,    53,    22,    22,    52,    52,
1941 +      62,    59,    63,    64,    65,    66,    67,    67,    68,    68,
1942 +      68,    68,    69,    69,    70,    70,    71,    71,    71,    14,
1943 +      15,    16,    21,    54,    73,    74,    24,    52,    37,    16,
1944 +      16,    24,    28,    52,    54,    74,    27,    54,    73,    60,
1945 +      24,    24,    55,    56,    24,    21,    24,    33,    13,    20,
1946 +      21,    22,    23,    30,    35,    57,    17,    32,    72,    21,
1947 +      22,    29,    58,    35,    20,    19,    21,    31,    33,    34,
1948 +      58,    33,    58,    34
1949 +};
1950  
1951 -static const yytype_int16 yycheck[] =
1952 +  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1953 +static const yytype_uint8 yyr1[] =
1954  {
1955 -       8,    42,    43,    20,    21,    22,    13,    15,    18,    19,
1956 -       8,     9,    95,    25,     5,    98,    22,    14,     3,    25,
1957 -      10,    11,    26,    33,    21,    22,    23,    24,    34,    70,
1958 -      37,    22,    30,    43,    31,     0,    46,    47,    36,    36,
1959 -      44,    45,    18,    19,     6,     7,     4,    64,    65,    66,
1960 -      18,    19,    25,    94,    22,    23,    20,    33,    22,    25,
1961 -      16,    27,    30,    29,    12,    33,    22,    23,    32,    26,
1962 -      26,    15,    16,    17,    56,    57,    58,    59,    22,    42,
1963 -      43,    34,    35,    54,    55,    60,    61,    27,    62,    63,
1964 -      35,    40,    39,    25,    23,    41,    23,    25,    17,    38,
1965 -      17,    25,    28,    25,    25,    18,    36,    21,    33,    11,
1966 -       9,    34,    49,   101,    48,    35,    51,    50,    98,    -1,
1967 -     128,    52,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
1968 -      -1,    -1,    -1,   141,    -1,    53,   144
1969 +       0,    47,    48,    49,    49,    50,    50,    51,    51,    51,
1970 +      51,    51,    52,    53,    53,    54,    54,    54,    54,    55,
1971 +      55,    55,    55,    55,    55,    55,    56,    56,    56,    57,
1972 +      57,    57,    57,    57,    58,    58,    58,    59,    60,    60,
1973 +      61,    61,    62,    62,    63,    63,    64,    64,    65,    65,
1974 +      66,    66,    66,    67,    67,    67,    67,    67,    68,    68,
1975 +      68,    69,    69,    69,    70,    70,    70,    70,    71,    71,
1976 +      71,    71,    72,    72,    72,    73,    73,    73,    74,    74,
1977 +      74
1978  };
1979  
1980 -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1981 -   symbol of state STATE-NUM.  */
1982 -static const yytype_uint8 yystos[] =
1983 +  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1984 +static const yytype_uint8 yyr2[] =
1985  {
1986 -       0,     3,    49,    25,     0,     4,    50,    25,     5,    22,
1987 -      51,    52,    18,    19,    33,    60,    52,    26,    53,    51,
1988 -      43,    46,    47,    60,    61,    62,    63,    64,    65,    66,
1989 -      67,    68,    69,    70,    71,    72,    73,    60,    27,    54,
1990 -      16,    22,    23,    26,    73,    73,    73,    35,    13,    37,
1991 -      12,    39,    40,    41,    10,    11,     8,     9,    30,    36,
1992 -       6,     7,    42,    43,    26,    44,    45,    25,    55,    23,
1993 -      23,    54,    54,    64,    61,    65,    66,    67,    68,    69,
1994 -      69,    70,    70,    70,    70,    71,    71,    72,    72,    73,
1995 -      73,    73,    15,    16,    17,    22,    56,    75,    76,    25,
1996 -      54,    38,    17,    17,    25,    29,    54,    56,    76,    28,
1997 -      56,    75,    62,    25,    25,    57,    58,    25,    22,    25,
1998 -      34,    14,    21,    22,    23,    24,    31,    36,    59,    18,
1999 -      33,    74,    22,    23,    30,    60,    36,    21,    20,    22,
2000 -      32,    34,    35,    60,    34,    60,    35
2001 +       0,     2,     4,     0,     2,     4,     2,     2,     3,     4,
2002 +       3,     4,     5,     0,     2,     4,     2,     3,     2,     2,
2003 +       3,     4,     2,     9,     5,     2,     0,     2,     2,     3,
2004 +       1,     2,     2,     2,     1,     1,     3,     1,     1,     5,
2005 +       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
2006 +       1,     3,     3,     1,     3,     3,     3,     3,     3,     3,
2007 +       1,     3,     3,     1,     3,     3,     3,     1,     1,     2,
2008 +       2,     2,     0,     2,     2,     0,     2,     2,     2,     3,
2009 +       2
2010  };
2011  
2012 -#define yyerrok                (yyerrstatus = 0)
2013 -#define yyclearin      (yychar = YYEMPTY)
2014 -#define YYEMPTY                (-2)
2015 -#define YYEOF          0
2016 -
2017 -#define YYACCEPT       goto yyacceptlab
2018 -#define YYABORT                goto yyabortlab
2019 -#define YYERROR                goto yyerrorlab
2020 -
2021 -
2022 -/* Like YYERROR except do call yyerror.  This remains here temporarily
2023 -   to ease the transition to the new meaning of YYERROR, for GCC.
2024 -   Once GCC version 2 has supplanted version 1, this can go.  However,
2025 -   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2026 -   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2027 -   discussed.  */
2028 -
2029 -#define YYFAIL         goto yyerrlab
2030 -#if defined YYFAIL
2031 -  /* This is here to suppress warnings from the GCC cpp's
2032 -     -Wunused-macros.  Normally we don't worry about that warning, but
2033 -     some users do, and we want to make it easy for users to remove
2034 -     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2035 -#endif
2036  
2037 -#define YYRECOVERING()  (!!yyerrstatus)
2038 +#define yyerrok         (yyerrstatus = 0)
2039 +#define yyclearin       (yychar = YYEMPTY)
2040 +#define YYEMPTY         (-2)
2041 +#define YYEOF           0
2042 +
2043 +#define YYACCEPT        goto yyacceptlab
2044 +#define YYABORT         goto yyabortlab
2045 +#define YYERROR         goto yyerrorlab
2046  
2047 -#define YYBACKUP(Token, Value)                                 \
2048 -do                                                             \
2049 -  if (yychar == YYEMPTY && yylen == 1)                         \
2050 -    {                                                          \
2051 -      yychar = (Token);                                                \
2052 -      yylval = (Value);                                                \
2053 -      YYPOPSTACK (1);                                          \
2054 -      goto yybackup;                                           \
2055 -    }                                                          \
2056 -  else                                                         \
2057 -    {                                                          \
2058 -      yyerror (YY_("syntax error: cannot back up")); \
2059 -      YYERROR;                                                 \
2060 -    }                                                          \
2061 -while (YYID (0))
2062  
2063 +#define YYRECOVERING()  (!!yyerrstatus)
2064  
2065 -#define YYTERROR       1
2066 -#define YYERRCODE      256
2067 +#define YYBACKUP(Token, Value)                                  \
2068 +do                                                              \
2069 +  if (yychar == YYEMPTY)                                        \
2070 +    {                                                           \
2071 +      yychar = (Token);                                         \
2072 +      yylval = (Value);                                         \
2073 +      YYPOPSTACK (yylen);                                       \
2074 +      yystate = *yyssp;                                         \
2075 +      goto yybackup;                                            \
2076 +    }                                                           \
2077 +  else                                                          \
2078 +    {                                                           \
2079 +      yyerror (YY_("syntax error: cannot back up")); \
2080 +      YYERROR;                                                  \
2081 +    }                                                           \
2082 +while (0)
2083 +
2084 +/* Error token number */
2085 +#define YYTERROR        1
2086 +#define YYERRCODE       256
2087  
2088  
2089  /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2090     If N is 0, then set CURRENT to the empty location which ends
2091     the previous symbol: RHS[0] (always defined).  */
2092  
2093 -#define YYRHSLOC(Rhs, K) ((Rhs)[K])
2094  #ifndef YYLLOC_DEFAULT
2095 -# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
2096 -    do                                                                 \
2097 -      if (YYID (N))                                                    \
2098 -       {                                                               \
2099 -         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2100 -         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2101 -         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2102 -         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2103 -       }                                                               \
2104 -      else                                                             \
2105 -       {                                                               \
2106 -         (Current).first_line   = (Current).last_line   =              \
2107 -           YYRHSLOC (Rhs, 0).last_line;                                \
2108 -         (Current).first_column = (Current).last_column =              \
2109 -           YYRHSLOC (Rhs, 0).last_column;                              \
2110 -       }                                                               \
2111 -    while (YYID (0))
2112 +# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2113 +    do                                                                  \
2114 +      if (N)                                                            \
2115 +        {                                                               \
2116 +          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2117 +          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2118 +          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2119 +          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2120 +        }                                                               \
2121 +      else                                                              \
2122 +        {                                                               \
2123 +          (Current).first_line   = (Current).last_line   =              \
2124 +            YYRHSLOC (Rhs, 0).last_line;                                \
2125 +          (Current).first_column = (Current).last_column =              \
2126 +            YYRHSLOC (Rhs, 0).last_column;                              \
2127 +        }                                                               \
2128 +    while (0)
2129  #endif
2130  
2131 +#define YYRHSLOC(Rhs, K) ((Rhs)[K])
2132 +
2133 +
2134 +/* Enable debugging if requested.  */
2135 +#if YYDEBUG
2136 +
2137 +# ifndef YYFPRINTF
2138 +#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2139 +#  define YYFPRINTF fprintf
2140 +# endif
2141 +
2142 +# define YYDPRINTF(Args)                        \
2143 +do {                                            \
2144 +  if (yydebug)                                  \
2145 +    YYFPRINTF Args;                             \
2146 +} while (0)
2147 +
2148  
2149  /* YY_LOCATION_PRINT -- Print the location on the stream.
2150     This macro was not mandated originally: define only if we know
2151 @@ -799,82 +779,73 @@ while (YYID (0))
2152  
2153  #ifndef YY_LOCATION_PRINT
2154  # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2155 -#  define YY_LOCATION_PRINT(File, Loc)                 \
2156 -     fprintf (File, "%d.%d-%d.%d",                     \
2157 -             (Loc).first_line, (Loc).first_column,     \
2158 -             (Loc).last_line,  (Loc).last_column)
2159 -# else
2160 -#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2161 -# endif
2162 -#endif
2163 -
2164  
2165 -/* YYLEX -- calling `yylex' with the right arguments.  */
2166 +/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2167  
2168 -#ifdef YYLEX_PARAM
2169 -# define YYLEX yylex (YYLEX_PARAM)
2170 -#else
2171 -# define YYLEX yylex ()
2172 -#endif
2173 +YY_ATTRIBUTE_UNUSED
2174 +static unsigned
2175 +yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2176 +{
2177 +  unsigned res = 0;
2178 +  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2179 +  if (0 <= yylocp->first_line)
2180 +    {
2181 +      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2182 +      if (0 <= yylocp->first_column)
2183 +        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2184 +    }
2185 +  if (0 <= yylocp->last_line)
2186 +    {
2187 +      if (yylocp->first_line < yylocp->last_line)
2188 +        {
2189 +          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2190 +          if (0 <= end_col)
2191 +            res += YYFPRINTF (yyo, ".%d", end_col);
2192 +        }
2193 +      else if (0 <= end_col && yylocp->first_column < end_col)
2194 +        res += YYFPRINTF (yyo, "-%d", end_col);
2195 +    }
2196 +  return res;
2197 + }
2198  
2199 -/* Enable debugging if requested.  */
2200 -#if YYDEBUG
2201 +#  define YY_LOCATION_PRINT(File, Loc)          \
2202 +  yy_location_print_ (File, &(Loc))
2203  
2204 -# ifndef YYFPRINTF
2205 -#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2206 -#  define YYFPRINTF fprintf
2207 +# else
2208 +#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2209  # endif
2210 +#endif
2211  
2212 -# define YYDPRINTF(Args)                       \
2213 -do {                                           \
2214 -  if (yydebug)                                 \
2215 -    YYFPRINTF Args;                            \
2216 -} while (YYID (0))
2217 -
2218 -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
2219 -do {                                                                     \
2220 -  if (yydebug)                                                           \
2221 -    {                                                                    \
2222 -      YYFPRINTF (stderr, "%s ", Title);                                          \
2223 -      yy_symbol_print (stderr,                                           \
2224 -                 Type, Value, Location); \
2225 -      YYFPRINTF (stderr, "\n");                                                  \
2226 -    }                                                                    \
2227 -} while (YYID (0))
2228  
2229 +# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2230 +do {                                                                      \
2231 +  if (yydebug)                                                            \
2232 +    {                                                                     \
2233 +      YYFPRINTF (stderr, "%s ", Title);                                   \
2234 +      yy_symbol_print (stderr,                                            \
2235 +                  Type, Value, Location); \
2236 +      YYFPRINTF (stderr, "\n");                                           \
2237 +    }                                                                     \
2238 +} while (0)
2239  
2240 -/*--------------------------------.
2241 -| Print this symbol on YYOUTPUT.  |
2242 -`--------------------------------*/
2243  
2244 -/*ARGSUSED*/
2245 -#if (defined __STDC__ || defined __C99__FUNC__ \
2246 -     || defined __cplusplus || defined _MSC_VER)
2247 +/*----------------------------------------.
2248 +| Print this symbol's value on YYOUTPUT.  |
2249 +`----------------------------------------*/
2250 +
2251  static void
2252  yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2253 -#else
2254 -static void
2255 -yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
2256 -    FILE *yyoutput;
2257 -    int yytype;
2258 -    YYSTYPE const * const yyvaluep;
2259 -    YYLTYPE const * const yylocationp;
2260 -#endif
2261  {
2262 +  FILE *yyo = yyoutput;
2263 +  YYUSE (yyo);
2264 +  YYUSE (yylocationp);
2265    if (!yyvaluep)
2266      return;
2267 -  YYUSE (yylocationp);
2268  # ifdef YYPRINT
2269    if (yytype < YYNTOKENS)
2270      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2271 -# else
2272 -  YYUSE (yyoutput);
2273  # endif
2274 -  switch (yytype)
2275 -    {
2276 -      default:
2277 -       break;
2278 -    }
2279 +  YYUSE (yytype);
2280  }
2281  
2282  
2283 @@ -882,23 +853,11 @@ yy_symbol_value_print (yyoutput, yytype,
2284  | Print this symbol on YYOUTPUT.  |
2285  `--------------------------------*/
2286  
2287 -#if (defined __STDC__ || defined __C99__FUNC__ \
2288 -     || defined __cplusplus || defined _MSC_VER)
2289  static void
2290  yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2291 -#else
2292 -static void
2293 -yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
2294 -    FILE *yyoutput;
2295 -    int yytype;
2296 -    YYSTYPE const * const yyvaluep;
2297 -    YYLTYPE const * const yylocationp;
2298 -#endif
2299  {
2300 -  if (yytype < YYNTOKENS)
2301 -    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2302 -  else
2303 -    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2304 +  YYFPRINTF (yyoutput, "%s %s (",
2305 +             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2306  
2307    YY_LOCATION_PRINT (yyoutput, *yylocationp);
2308    YYFPRINTF (yyoutput, ": ");
2309 @@ -911,16 +870,8 @@ yy_symbol_print (yyoutput, yytype, yyval
2310  | TOP (included).                                                   |
2311  `------------------------------------------------------------------*/
2312  
2313 -#if (defined __STDC__ || defined __C99__FUNC__ \
2314 -     || defined __cplusplus || defined _MSC_VER)
2315  static void
2316  yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2317 -#else
2318 -static void
2319 -yy_stack_print (yybottom, yytop)
2320 -    yytype_int16 *yybottom;
2321 -    yytype_int16 *yytop;
2322 -#endif
2323  {
2324    YYFPRINTF (stderr, "Stack now");
2325    for (; yybottom <= yytop; yybottom++)
2326 @@ -931,50 +882,42 @@ yy_stack_print (yybottom, yytop)
2327    YYFPRINTF (stderr, "\n");
2328  }
2329  
2330 -# define YY_STACK_PRINT(Bottom, Top)                           \
2331 -do {                                                           \
2332 -  if (yydebug)                                                 \
2333 -    yy_stack_print ((Bottom), (Top));                          \
2334 -} while (YYID (0))
2335 +# define YY_STACK_PRINT(Bottom, Top)                            \
2336 +do {                                                            \
2337 +  if (yydebug)                                                  \
2338 +    yy_stack_print ((Bottom), (Top));                           \
2339 +} while (0)
2340  
2341  
2342  /*------------------------------------------------.
2343  | Report that the YYRULE is going to be reduced.  |
2344  `------------------------------------------------*/
2345  
2346 -#if (defined __STDC__ || defined __C99__FUNC__ \
2347 -     || defined __cplusplus || defined _MSC_VER)
2348 -static void
2349 -yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
2350 -#else
2351  static void
2352 -yy_reduce_print (yyvsp, yylsp, yyrule)
2353 -    YYSTYPE *yyvsp;
2354 -    YYLTYPE *yylsp;
2355 -    int yyrule;
2356 -#endif
2357 +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
2358  {
2359 +  unsigned long int yylno = yyrline[yyrule];
2360    int yynrhs = yyr2[yyrule];
2361    int yyi;
2362 -  unsigned long int yylno = yyrline[yyrule];
2363    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2364 -            yyrule - 1, yylno);
2365 +             yyrule - 1, yylno);
2366    /* The symbols being reduced.  */
2367    for (yyi = 0; yyi < yynrhs; yyi++)
2368      {
2369        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2370 -      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2371 -                      &(yyvsp[(yyi + 1) - (yynrhs)])
2372 -                      , &(yylsp[(yyi + 1) - (yynrhs)])                );
2373 +      yy_symbol_print (stderr,
2374 +                       yystos[yyssp[yyi + 1 - yynrhs]],
2375 +                       &(yyvsp[(yyi + 1) - (yynrhs)])
2376 +                       , &(yylsp[(yyi + 1) - (yynrhs)])                       );
2377        YYFPRINTF (stderr, "\n");
2378      }
2379  }
2380  
2381 -# define YY_REDUCE_PRINT(Rule)         \
2382 -do {                                   \
2383 -  if (yydebug)                         \
2384 -    yy_reduce_print (yyvsp, yylsp, Rule); \
2385 -} while (YYID (0))
2386 +# define YY_REDUCE_PRINT(Rule)          \
2387 +do {                                    \
2388 +  if (yydebug)                          \
2389 +    yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \
2390 +} while (0)
2391  
2392  /* Nonzero means print parse trace.  It is left uninitialized so that
2393     multiple parsers can coexist.  */
2394 @@ -988,7 +931,7 @@ int yydebug;
2395  
2396  
2397  /* YYINITDEPTH -- initial size of the parser's stacks.  */
2398 -#ifndef        YYINITDEPTH
2399 +#ifndef YYINITDEPTH
2400  # define YYINITDEPTH 200
2401  #endif
2402  
2403 @@ -1011,15 +954,8 @@ int yydebug;
2404  #   define yystrlen strlen
2405  #  else
2406  /* Return the length of YYSTR.  */
2407 -#if (defined __STDC__ || defined __C99__FUNC__ \
2408 -     || defined __cplusplus || defined _MSC_VER)
2409  static YYSIZE_T
2410  yystrlen (const char *yystr)
2411 -#else
2412 -static YYSIZE_T
2413 -yystrlen (yystr)
2414 -    const char *yystr;
2415 -#endif
2416  {
2417    YYSIZE_T yylen;
2418    for (yylen = 0; yystr[yylen]; yylen++)
2419 @@ -1035,16 +971,8 @@ yystrlen (yystr)
2420  #  else
2421  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2422     YYDEST.  */
2423 -#if (defined __STDC__ || defined __C99__FUNC__ \
2424 -     || defined __cplusplus || defined _MSC_VER)
2425  static char *
2426  yystpcpy (char *yydest, const char *yysrc)
2427 -#else
2428 -static char *
2429 -yystpcpy (yydest, yysrc)
2430 -    char *yydest;
2431 -    const char *yysrc;
2432 -#endif
2433  {
2434    char *yyd = yydest;
2435    const char *yys = yysrc;
2436 @@ -1074,27 +1002,27 @@ yytnamerr (char *yyres, const char *yyst
2437        char const *yyp = yystr;
2438  
2439        for (;;)
2440 -       switch (*++yyp)
2441 -         {
2442 -         case '\'':
2443 -         case ',':
2444 -           goto do_not_strip_quotes;
2445 -
2446 -         case '\\':
2447 -           if (*++yyp != '\\')
2448 -             goto do_not_strip_quotes;
2449 -           /* Fall through.  */
2450 -         default:
2451 -           if (yyres)
2452 -             yyres[yyn] = *yyp;
2453 -           yyn++;
2454 -           break;
2455 -
2456 -         case '"':
2457 -           if (yyres)
2458 -             yyres[yyn] = '\0';
2459 -           return yyn;
2460 -         }
2461 +        switch (*++yyp)
2462 +          {
2463 +          case '\'':
2464 +          case ',':
2465 +            goto do_not_strip_quotes;
2466 +
2467 +          case '\\':
2468 +            if (*++yyp != '\\')
2469 +              goto do_not_strip_quotes;
2470 +            /* Fall through.  */
2471 +          default:
2472 +            if (yyres)
2473 +              yyres[yyn] = *yyp;
2474 +            yyn++;
2475 +            break;
2476 +
2477 +          case '"':
2478 +            if (yyres)
2479 +              yyres[yyn] = '\0';
2480 +            return yyn;
2481 +          }
2482      do_not_strip_quotes: ;
2483      }
2484  
2485 @@ -1117,12 +1045,11 @@ static int
2486  yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2487                  yytype_int16 *yyssp, int yytoken)
2488  {
2489 -  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2490 +  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2491    YYSIZE_T yysize = yysize0;
2492 -  YYSIZE_T yysize1;
2493    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2494    /* Internationalized format string. */
2495 -  const char *yyformat = 0;
2496 +  const char *yyformat = YY_NULLPTR;
2497    /* Arguments of yyformat. */
2498    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2499    /* Number of reported tokens (one for the "unexpected", one per
2500 @@ -1130,10 +1057,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
2501    int yycount = 0;
2502  
2503    /* There are many possibilities here to consider:
2504 -     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2505 -       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2506 -       for details.  YYERROR is fine as it does not invoke this
2507 -       function.
2508       - If this state is a consistent state with a default action, then
2509         the only way this function was invoked is if the default action
2510         is an error action.  In that case, don't check for expected
2511 @@ -1182,11 +1105,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
2512                      break;
2513                    }
2514                  yyarg[yycount++] = yytname[yyx];
2515 -                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2516 -                if (! (yysize <= yysize1
2517 -                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2518 -                  return 2;
2519 -                yysize = yysize1;
2520 +                {
2521 +                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2522 +                  if (! (yysize <= yysize1
2523 +                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2524 +                    return 2;
2525 +                  yysize = yysize1;
2526 +                }
2527                }
2528          }
2529      }
2530 @@ -1206,10 +1131,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
2531  # undef YYCASE_
2532      }
2533  
2534 -  yysize1 = yysize + yystrlen (yyformat);
2535 -  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2536 -    return 2;
2537 -  yysize = yysize1;
2538 +  {
2539 +    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2540 +    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2541 +      return 2;
2542 +    yysize = yysize1;
2543 +  }
2544  
2545    if (*yymsg_alloc < yysize)
2546      {
2547 @@ -1246,50 +1173,21 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
2548  | Release the memory associated to this symbol.  |
2549  `-----------------------------------------------*/
2550  
2551 -/*ARGSUSED*/
2552 -#if (defined __STDC__ || defined __C99__FUNC__ \
2553 -     || defined __cplusplus || defined _MSC_VER)
2554  static void
2555  yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
2556 -#else
2557 -static void
2558 -yydestruct (yymsg, yytype, yyvaluep, yylocationp)
2559 -    const char *yymsg;
2560 -    int yytype;
2561 -    YYSTYPE *yyvaluep;
2562 -    YYLTYPE *yylocationp;
2563 -#endif
2564  {
2565    YYUSE (yyvaluep);
2566    YYUSE (yylocationp);
2567 -
2568    if (!yymsg)
2569      yymsg = "Deleting";
2570    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2571  
2572 -  switch (yytype)
2573 -    {
2574 -
2575 -      default:
2576 -       break;
2577 -    }
2578 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2579 +  YYUSE (yytype);
2580 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2581  }
2582  
2583  
2584 -/* Prevent warnings from -Wmissing-prototypes.  */
2585 -#ifdef YYPARSE_PARAM
2586 -#if defined __STDC__ || defined __cplusplus
2587 -int yyparse (void *YYPARSE_PARAM);
2588 -#else
2589 -int yyparse ();
2590 -#endif
2591 -#else /* ! YYPARSE_PARAM */
2592 -#if defined __STDC__ || defined __cplusplus
2593 -int yyparse (void);
2594 -#else
2595 -int yyparse ();
2596 -#endif
2597 -#endif /* ! YYPARSE_PARAM */
2598  
2599  
2600  /* The lookahead symbol.  */
2601 @@ -1297,10 +1195,12 @@ int yychar;
2602  
2603  /* The semantic value of the lookahead symbol.  */
2604  YYSTYPE yylval;
2605 -
2606  /* Location data for the lookahead symbol.  */
2607 -YYLTYPE yylloc;
2608 -
2609 +YYLTYPE yylloc
2610 +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2611 +  = { 1, 1, 1, 1 }
2612 +# endif
2613 +;
2614  /* Number of syntax errors so far.  */
2615  int yynerrs;
2616  
2617 @@ -1309,38 +1209,19 @@ int yynerrs;
2618  | yyparse.  |
2619  `----------*/
2620  
2621 -#ifdef YYPARSE_PARAM
2622 -#if (defined __STDC__ || defined __C99__FUNC__ \
2623 -     || defined __cplusplus || defined _MSC_VER)
2624 -int
2625 -yyparse (void *YYPARSE_PARAM)
2626 -#else
2627 -int
2628 -yyparse (YYPARSE_PARAM)
2629 -    void *YYPARSE_PARAM;
2630 -#endif
2631 -#else /* ! YYPARSE_PARAM */
2632 -#if (defined __STDC__ || defined __C99__FUNC__ \
2633 -     || defined __cplusplus || defined _MSC_VER)
2634  int
2635  yyparse (void)
2636 -#else
2637 -int
2638 -yyparse ()
2639 -
2640 -#endif
2641 -#endif
2642  {
2643      int yystate;
2644      /* Number of tokens to shift before error messages enabled.  */
2645      int yyerrstatus;
2646  
2647      /* The stacks and their tools:
2648 -       `yyss': related to states.
2649 -       `yyvs': related to semantic values.
2650 -       `yyls': related to locations.
2651 +       'yyss': related to states.
2652 +       'yyvs': related to semantic values.
2653 +       'yyls': related to locations.
2654  
2655 -       Refer to the stacks thru separate pointers, to allow yyoverflow
2656 +       Refer to the stacks through separate pointers, to allow yyoverflow
2657         to reallocate them elsewhere.  */
2658  
2659      /* The state stack.  */
2660 @@ -1366,7 +1247,7 @@ yyparse ()
2661    int yyn;
2662    int yyresult;
2663    /* Lookahead token as an internal (translated) token number.  */
2664 -  int yytoken;
2665 +  int yytoken = 0;
2666    /* The variables used to return semantic value and location from the
2667       action routines.  */
2668    YYSTYPE yyval;
2669 @@ -1385,10 +1266,9 @@ yyparse ()
2670       Keep to zero when no symbol should be popped.  */
2671    int yylen = 0;
2672  
2673 -  yytoken = 0;
2674 -  yyss = yyssa;
2675 -  yyvs = yyvsa;
2676 -  yyls = yylsa;
2677 +  yyssp = yyss = yyssa;
2678 +  yyvsp = yyvs = yyvsa;
2679 +  yylsp = yyls = yylsa;
2680    yystacksize = YYINITDEPTH;
2681  
2682    YYDPRINTF ((stderr, "Starting parse\n"));
2683 @@ -1397,21 +1277,7 @@ yyparse ()
2684    yyerrstatus = 0;
2685    yynerrs = 0;
2686    yychar = YYEMPTY; /* Cause a token to be read.  */
2687 -
2688 -  /* Initialize stack pointers.
2689 -     Waste one element of value and location stack
2690 -     so that they stay on the same level as the state stack.
2691 -     The wasted elements are never initialized.  */
2692 -  yyssp = yyss;
2693 -  yyvsp = yyvs;
2694 -  yylsp = yyls;
2695 -
2696 -#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2697 -  /* Initialize the default location before parsing starts.  */
2698 -  yylloc.first_line   = yylloc.last_line   = 1;
2699 -  yylloc.first_column = yylloc.last_column = 1;
2700 -#endif
2701 -
2702 +  yylsp[0] = yylloc;
2703    goto yysetstate;
2704  
2705  /*------------------------------------------------------------.
2706 @@ -1432,26 +1298,26 @@ yyparse ()
2707  
2708  #ifdef yyoverflow
2709        {
2710 -       /* Give user a chance to reallocate the stack.  Use copies of
2711 -          these so that the &'s don't force the real ones into
2712 -          memory.  */
2713 -       YYSTYPE *yyvs1 = yyvs;
2714 -       yytype_int16 *yyss1 = yyss;
2715 -       YYLTYPE *yyls1 = yyls;
2716 -
2717 -       /* Each stack pointer address is followed by the size of the
2718 -          data in use in that stack, in bytes.  This used to be a
2719 -          conditional around just the two extra args, but that might
2720 -          be undefined if yyoverflow is a macro.  */
2721 -       yyoverflow (YY_("memory exhausted"),
2722 -                   &yyss1, yysize * sizeof (*yyssp),
2723 -                   &yyvs1, yysize * sizeof (*yyvsp),
2724 -                   &yyls1, yysize * sizeof (*yylsp),
2725 -                   &yystacksize);
2726 -
2727 -       yyls = yyls1;
2728 -       yyss = yyss1;
2729 -       yyvs = yyvs1;
2730 +        /* Give user a chance to reallocate the stack.  Use copies of
2731 +           these so that the &'s don't force the real ones into
2732 +           memory.  */
2733 +        YYSTYPE *yyvs1 = yyvs;
2734 +        yytype_int16 *yyss1 = yyss;
2735 +        YYLTYPE *yyls1 = yyls;
2736 +
2737 +        /* Each stack pointer address is followed by the size of the
2738 +           data in use in that stack, in bytes.  This used to be a
2739 +           conditional around just the two extra args, but that might
2740 +           be undefined if yyoverflow is a macro.  */
2741 +        yyoverflow (YY_("memory exhausted"),
2742 +                    &yyss1, yysize * sizeof (*yyssp),
2743 +                    &yyvs1, yysize * sizeof (*yyvsp),
2744 +                    &yyls1, yysize * sizeof (*yylsp),
2745 +                    &yystacksize);
2746 +
2747 +        yyls = yyls1;
2748 +        yyss = yyss1;
2749 +        yyvs = yyvs1;
2750        }
2751  #else /* no yyoverflow */
2752  # ifndef YYSTACK_RELOCATE
2753 @@ -1459,23 +1325,23 @@ yyparse ()
2754  # else
2755        /* Extend the stack our own way.  */
2756        if (YYMAXDEPTH <= yystacksize)
2757 -       goto yyexhaustedlab;
2758 +        goto yyexhaustedlab;
2759        yystacksize *= 2;
2760        if (YYMAXDEPTH < yystacksize)
2761 -       yystacksize = YYMAXDEPTH;
2762 +        yystacksize = YYMAXDEPTH;
2763  
2764        {
2765 -       yytype_int16 *yyss1 = yyss;
2766 -       union yyalloc *yyptr =
2767 -         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2768 -       if (! yyptr)
2769 -         goto yyexhaustedlab;
2770 -       YYSTACK_RELOCATE (yyss_alloc, yyss);
2771 -       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2772 -       YYSTACK_RELOCATE (yyls_alloc, yyls);
2773 +        yytype_int16 *yyss1 = yyss;
2774 +        union yyalloc *yyptr =
2775 +          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2776 +        if (! yyptr)
2777 +          goto yyexhaustedlab;
2778 +        YYSTACK_RELOCATE (yyss_alloc, yyss);
2779 +        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2780 +        YYSTACK_RELOCATE (yyls_alloc, yyls);
2781  #  undef YYSTACK_RELOCATE
2782 -       if (yyss1 != yyssa)
2783 -         YYSTACK_FREE (yyss1);
2784 +        if (yyss1 != yyssa)
2785 +          YYSTACK_FREE (yyss1);
2786        }
2787  # endif
2788  #endif /* no yyoverflow */
2789 @@ -1485,10 +1351,10 @@ yyparse ()
2790        yylsp = yyls + yysize - 1;
2791  
2792        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2793 -                 (unsigned long int) yystacksize));
2794 +                  (unsigned long int) yystacksize));
2795  
2796        if (yyss + yystacksize - 1 <= yyssp)
2797 -       YYABORT;
2798 +        YYABORT;
2799      }
2800  
2801    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2802 @@ -1517,7 +1383,7 @@ yybackup:
2803    if (yychar == YYEMPTY)
2804      {
2805        YYDPRINTF ((stderr, "Reading a token: "));
2806 -      yychar = YYLEX;
2807 +      yychar = yylex ();
2808      }
2809  
2810    if (yychar <= YYEOF)
2811 @@ -1557,7 +1423,9 @@ yybackup:
2812    yychar = YYEMPTY;
2813  
2814    yystate = yyn;
2815 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2816    *++yyvsp = yylval;
2817 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2818    *++yylsp = yylloc;
2819    goto yynewstate;
2820  
2821 @@ -1580,7 +1448,7 @@ yyreduce:
2822    yylen = yyr2[yyn];
2823  
2824    /* If YYLEN is nonzero, implement the default value of the action:
2825 -     `$$ = $1'.
2826 +     '$$ = $1'.
2827  
2828       Otherwise, the following line sets YYVAL to garbage.
2829       This behavior is undocumented and Bison
2830 @@ -1595,322 +1463,273 @@ yyreduce:
2831    switch (yyn)
2832      {
2833          case 2:
2834 -
2835 -/* Line 1806 of yacc.c  */
2836 -#line 109 "dtc-parser.y"
2837 +#line 105 "dtc-parser.y" /* yacc.c:1646  */
2838      {
2839 -                       (yyvsp[(5) - (5)].node)->is_plugin = (yyvsp[(3) - (5)].is_plugin);
2840 -                       (yyvsp[(5) - (5)].node)->is_root = 1;
2841 -                       the_boot_info = build_boot_info((yyvsp[(4) - (5)].re), (yyvsp[(5) - (5)].node),
2842 -                                                       guess_boot_cpuid((yyvsp[(5) - (5)].node)));
2843 +                       the_boot_info = build_boot_info((yyvsp[-1].re), (yyvsp[0].node),
2844 +                                                       guess_boot_cpuid((yyvsp[0].node)));
2845                 }
2846 +#line 1472 "dtc-parser.tab.c" /* yacc.c:1646  */
2847      break;
2848  
2849    case 3:
2850 -
2851 -/* Line 1806 of yacc.c  */
2852 -#line 119 "dtc-parser.y"
2853 +#line 113 "dtc-parser.y" /* yacc.c:1646  */
2854      {
2855 -                       (yyval.is_plugin) = 0;
2856 +                       (yyval.re) = NULL;
2857                 }
2858 +#line 1480 "dtc-parser.tab.c" /* yacc.c:1646  */
2859      break;
2860  
2861    case 4:
2862 -
2863 -/* Line 1806 of yacc.c  */
2864 -#line 123 "dtc-parser.y"
2865 +#line 117 "dtc-parser.y" /* yacc.c:1646  */
2866      {
2867 -                       (yyval.is_plugin) = 1;
2868 +                       (yyval.re) = chain_reserve_entry((yyvsp[-1].re), (yyvsp[0].re));
2869                 }
2870 +#line 1488 "dtc-parser.tab.c" /* yacc.c:1646  */
2871      break;
2872  
2873    case 5:
2874 -
2875 -/* Line 1806 of yacc.c  */
2876 -#line 130 "dtc-parser.y"
2877 +#line 124 "dtc-parser.y" /* yacc.c:1646  */
2878      {
2879 -                       (yyval.re) = NULL;
2880 +                       (yyval.re) = build_reserve_entry((yyvsp[-2].integer), (yyvsp[-1].integer));
2881                 }
2882 +#line 1496 "dtc-parser.tab.c" /* yacc.c:1646  */
2883      break;
2884  
2885    case 6:
2886 -
2887 -/* Line 1806 of yacc.c  */
2888 -#line 134 "dtc-parser.y"
2889 +#line 128 "dtc-parser.y" /* yacc.c:1646  */
2890      {
2891 -                       (yyval.re) = chain_reserve_entry((yyvsp[(1) - (2)].re), (yyvsp[(2) - (2)].re));
2892 +                       add_label(&(yyvsp[0].re)->labels, (yyvsp[-1].labelref));
2893 +                       (yyval.re) = (yyvsp[0].re);
2894                 }
2895 +#line 1505 "dtc-parser.tab.c" /* yacc.c:1646  */
2896      break;
2897  
2898    case 7:
2899 -
2900 -/* Line 1806 of yacc.c  */
2901 -#line 141 "dtc-parser.y"
2902 +#line 136 "dtc-parser.y" /* yacc.c:1646  */
2903      {
2904 -                       (yyval.re) = build_reserve_entry((yyvsp[(2) - (4)].integer), (yyvsp[(3) - (4)].integer));
2905 +                       (yyval.node) = name_node((yyvsp[0].node), "");
2906                 }
2907 +#line 1513 "dtc-parser.tab.c" /* yacc.c:1646  */
2908      break;
2909  
2910    case 8:
2911 -
2912 -/* Line 1806 of yacc.c  */
2913 -#line 145 "dtc-parser.y"
2914 +#line 140 "dtc-parser.y" /* yacc.c:1646  */
2915      {
2916 -                       add_label(&(yyvsp[(2) - (2)].re)->labels, (yyvsp[(1) - (2)].labelref));
2917 -                       (yyval.re) = (yyvsp[(2) - (2)].re);
2918 +                       (yyval.node) = merge_nodes((yyvsp[-2].node), (yyvsp[0].node));
2919                 }
2920 +#line 1521 "dtc-parser.tab.c" /* yacc.c:1646  */
2921      break;
2922  
2923    case 9:
2924 -
2925 -/* Line 1806 of yacc.c  */
2926 -#line 153 "dtc-parser.y"
2927 +#line 145 "dtc-parser.y" /* yacc.c:1646  */
2928      {
2929 -                       (yyval.node) = name_node((yyvsp[(2) - (2)].node), "");
2930 +                       struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
2931 +
2932 +                       add_label(&target->labels, (yyvsp[-2].labelref));
2933 +                       if (target)
2934 +                               merge_nodes(target, (yyvsp[0].node));
2935 +                       else
2936 +                               ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
2937 +                       (yyval.node) = (yyvsp[-3].node);
2938                 }
2939 +#line 1536 "dtc-parser.tab.c" /* yacc.c:1646  */
2940      break;
2941  
2942    case 10:
2943 -
2944 -/* Line 1806 of yacc.c  */
2945 -#line 157 "dtc-parser.y"
2946 +#line 156 "dtc-parser.y" /* yacc.c:1646  */
2947      {
2948 -                       (yyval.node) = merge_nodes((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
2949 +                       struct node *target = get_node_by_ref((yyvsp[-2].node), (yyvsp[-1].labelref));
2950 +
2951 +                       if (target)
2952 +                               merge_nodes(target, (yyvsp[0].node));
2953 +                       else
2954 +                               ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
2955 +                       (yyval.node) = (yyvsp[-2].node);
2956                 }
2957 +#line 1550 "dtc-parser.tab.c" /* yacc.c:1646  */
2958      break;
2959  
2960    case 11:
2961 -
2962 -/* Line 1806 of yacc.c  */
2963 -#line 162 "dtc-parser.y"
2964 +#line 166 "dtc-parser.y" /* yacc.c:1646  */
2965      {
2966 -                       struct node *target = get_node_by_ref((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].labelref));
2967 +                       struct node *target = get_node_by_ref((yyvsp[-3].node), (yyvsp[-1].labelref));
2968  
2969 -                       add_label(&target->labels, (yyvsp[(2) - (4)].labelref));
2970                         if (target)
2971 -                               merge_nodes(target, (yyvsp[(4) - (4)].node));
2972 +                               delete_node(target);
2973                         else
2974 -                               ERROR(&(yylsp[(3) - (4)]), "Label or path %s not found", (yyvsp[(3) - (4)].labelref));
2975 -                       (yyval.node) = (yyvsp[(1) - (4)].node);
2976 +                               ERROR(&(yylsp[-1]), "Label or path %s not found", (yyvsp[-1].labelref));
2977 +
2978 +
2979 +                       (yyval.node) = (yyvsp[-3].node);
2980                 }
2981 +#line 1566 "dtc-parser.tab.c" /* yacc.c:1646  */
2982      break;
2983  
2984    case 12:
2985 -
2986 -/* Line 1806 of yacc.c  */
2987 -#line 173 "dtc-parser.y"
2988 +#line 181 "dtc-parser.y" /* yacc.c:1646  */
2989      {
2990 -                       struct node *target = get_node_by_ref((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].labelref));
2991 -
2992 -                       if (target)
2993 -                               merge_nodes(target, (yyvsp[(3) - (3)].node));
2994 -                       else
2995 -                               ERROR(&(yylsp[(2) - (3)]), "Label or path %s not found", (yyvsp[(2) - (3)].labelref));
2996 -                       (yyval.node) = (yyvsp[(1) - (3)].node);
2997 +                       (yyval.node) = build_node((yyvsp[-3].proplist), (yyvsp[-2].nodelist));
2998                 }
2999 +#line 1574 "dtc-parser.tab.c" /* yacc.c:1646  */
3000      break;
3001  
3002    case 13:
3003 -
3004 -/* Line 1806 of yacc.c  */
3005 -#line 183 "dtc-parser.y"
3006 +#line 188 "dtc-parser.y" /* yacc.c:1646  */
3007      {
3008 -                       struct node *target = get_node_by_ref((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].labelref));
3009 -
3010 -                       if (target)
3011 -                               delete_node(target);
3012 -                       else
3013 -                               ERROR(&(yylsp[(3) - (4)]), "Label or path %s not found", (yyvsp[(3) - (4)].labelref));
3014 -
3015 -
3016 -                       (yyval.node) = (yyvsp[(1) - (4)].node);
3017 +                       (yyval.proplist) = NULL;
3018                 }
3019 +#line 1582 "dtc-parser.tab.c" /* yacc.c:1646  */
3020      break;
3021  
3022    case 14:
3023 -
3024 -/* Line 1806 of yacc.c  */
3025 -#line 198 "dtc-parser.y"
3026 +#line 192 "dtc-parser.y" /* yacc.c:1646  */
3027      {
3028 -                       (yyval.node) = build_node((yyvsp[(2) - (5)].proplist), (yyvsp[(3) - (5)].nodelist));
3029 +                       (yyval.proplist) = chain_property((yyvsp[0].prop), (yyvsp[-1].proplist));
3030                 }
3031 +#line 1590 "dtc-parser.tab.c" /* yacc.c:1646  */
3032      break;
3033  
3034    case 15:
3035 -
3036 -/* Line 1806 of yacc.c  */
3037 -#line 205 "dtc-parser.y"
3038 +#line 199 "dtc-parser.y" /* yacc.c:1646  */
3039      {
3040 -                       (yyval.proplist) = NULL;
3041 +                       (yyval.prop) = build_property((yyvsp[-3].propnodename), (yyvsp[-1].data));
3042                 }
3043 +#line 1598 "dtc-parser.tab.c" /* yacc.c:1646  */
3044      break;
3045  
3046    case 16:
3047 -
3048 -/* Line 1806 of yacc.c  */
3049 -#line 209 "dtc-parser.y"
3050 +#line 203 "dtc-parser.y" /* yacc.c:1646  */
3051      {
3052 -                       (yyval.proplist) = chain_property((yyvsp[(2) - (2)].prop), (yyvsp[(1) - (2)].proplist));
3053 +                       (yyval.prop) = build_property((yyvsp[-1].propnodename), empty_data);
3054                 }
3055 +#line 1606 "dtc-parser.tab.c" /* yacc.c:1646  */
3056      break;
3057  
3058    case 17:
3059 -
3060 -/* Line 1806 of yacc.c  */
3061 -#line 216 "dtc-parser.y"
3062 +#line 207 "dtc-parser.y" /* yacc.c:1646  */
3063      {
3064 -                       (yyval.prop) = build_property((yyvsp[(1) - (4)].propnodename), (yyvsp[(3) - (4)].data));
3065 +                       (yyval.prop) = build_property_delete((yyvsp[-1].propnodename));
3066                 }
3067 +#line 1614 "dtc-parser.tab.c" /* yacc.c:1646  */
3068      break;
3069  
3070    case 18:
3071 -
3072 -/* Line 1806 of yacc.c  */
3073 -#line 220 "dtc-parser.y"
3074 +#line 211 "dtc-parser.y" /* yacc.c:1646  */
3075      {
3076 -                       (yyval.prop) = build_property((yyvsp[(1) - (2)].propnodename), empty_data);
3077 +                       add_label(&(yyvsp[0].prop)->labels, (yyvsp[-1].labelref));
3078 +                       (yyval.prop) = (yyvsp[0].prop);
3079                 }
3080 +#line 1623 "dtc-parser.tab.c" /* yacc.c:1646  */
3081      break;
3082  
3083    case 19:
3084 -
3085 -/* Line 1806 of yacc.c  */
3086 -#line 224 "dtc-parser.y"
3087 +#line 219 "dtc-parser.y" /* yacc.c:1646  */
3088      {
3089 -                       (yyval.prop) = build_property_delete((yyvsp[(2) - (3)].propnodename));
3090 +                       (yyval.data) = data_merge((yyvsp[-1].data), (yyvsp[0].data));
3091                 }
3092 +#line 1631 "dtc-parser.tab.c" /* yacc.c:1646  */
3093      break;
3094  
3095    case 20:
3096 -
3097 -/* Line 1806 of yacc.c  */
3098 -#line 228 "dtc-parser.y"
3099 +#line 223 "dtc-parser.y" /* yacc.c:1646  */
3100      {
3101 -                       add_label(&(yyvsp[(2) - (2)].prop)->labels, (yyvsp[(1) - (2)].labelref));
3102 -                       (yyval.prop) = (yyvsp[(2) - (2)].prop);
3103 +                       (yyval.data) = data_merge((yyvsp[-2].data), (yyvsp[-1].array).data);
3104                 }
3105 +#line 1639 "dtc-parser.tab.c" /* yacc.c:1646  */
3106      break;
3107  
3108    case 21:
3109 -
3110 -/* Line 1806 of yacc.c  */
3111 -#line 236 "dtc-parser.y"
3112 +#line 227 "dtc-parser.y" /* yacc.c:1646  */
3113      {
3114 -                       (yyval.data) = data_merge((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].data));
3115 +                       (yyval.data) = data_merge((yyvsp[-3].data), (yyvsp[-1].data));
3116                 }
3117 +#line 1647 "dtc-parser.tab.c" /* yacc.c:1646  */
3118      break;
3119  
3120    case 22:
3121 -
3122 -/* Line 1806 of yacc.c  */
3123 -#line 240 "dtc-parser.y"
3124 +#line 231 "dtc-parser.y" /* yacc.c:1646  */
3125      {
3126 -                       (yyval.data) = data_merge((yyvsp[(1) - (3)].data), (yyvsp[(2) - (3)].array).data);
3127 +                       (yyval.data) = data_add_marker((yyvsp[-1].data), REF_PATH, (yyvsp[0].labelref));
3128                 }
3129 +#line 1655 "dtc-parser.tab.c" /* yacc.c:1646  */
3130      break;
3131  
3132    case 23:
3133 -
3134 -/* Line 1806 of yacc.c  */
3135 -#line 244 "dtc-parser.y"
3136 -    {
3137 -                       (yyval.data) = data_merge((yyvsp[(1) - (4)].data), (yyvsp[(3) - (4)].data));
3138 -               }
3139 -    break;
3140 -
3141 -  case 24:
3142 -
3143 -/* Line 1806 of yacc.c  */
3144 -#line 248 "dtc-parser.y"
3145 -    {
3146 -                       (yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), REF_PATH, (yyvsp[(2) - (2)].labelref));
3147 -               }
3148 -    break;
3149 -
3150 -  case 25:
3151 -
3152 -/* Line 1806 of yacc.c  */
3153 -#line 252 "dtc-parser.y"
3154 +#line 235 "dtc-parser.y" /* yacc.c:1646  */
3155      {
3156 -                       FILE *f = srcfile_relative_open((yyvsp[(4) - (9)].data).val, NULL);
3157 +                       FILE *f = srcfile_relative_open((yyvsp[-5].data).val, NULL);
3158                         struct data d;
3159  
3160 -                       if ((yyvsp[(6) - (9)].integer) != 0)
3161 -                               if (fseek(f, (yyvsp[(6) - (9)].integer), SEEK_SET) != 0)
3162 +                       if ((yyvsp[-3].integer) != 0)
3163 +                               if (fseek(f, (yyvsp[-3].integer), SEEK_SET) != 0)
3164                                         die("Couldn't seek to offset %llu in \"%s\": %s",
3165 -                                           (unsigned long long)(yyvsp[(6) - (9)].integer), (yyvsp[(4) - (9)].data).val,
3166 +                                           (unsigned long long)(yyvsp[-3].integer), (yyvsp[-5].data).val,
3167                                             strerror(errno));
3168  
3169 -                       d = data_copy_file(f, (yyvsp[(8) - (9)].integer));
3170 +                       d = data_copy_file(f, (yyvsp[-1].integer));
3171  
3172 -                       (yyval.data) = data_merge((yyvsp[(1) - (9)].data), d);
3173 +                       (yyval.data) = data_merge((yyvsp[-8].data), d);
3174                         fclose(f);
3175                 }
3176 +#line 1675 "dtc-parser.tab.c" /* yacc.c:1646  */
3177      break;
3178  
3179 -  case 26:
3180 -
3181 -/* Line 1806 of yacc.c  */
3182 -#line 268 "dtc-parser.y"
3183 +  case 24:
3184 +#line 251 "dtc-parser.y" /* yacc.c:1646  */
3185      {
3186 -                       FILE *f = srcfile_relative_open((yyvsp[(4) - (5)].data).val, NULL);
3187 +                       FILE *f = srcfile_relative_open((yyvsp[-1].data).val, NULL);
3188                         struct data d = empty_data;
3189  
3190                         d = data_copy_file(f, -1);
3191  
3192 -                       (yyval.data) = data_merge((yyvsp[(1) - (5)].data), d);
3193 +                       (yyval.data) = data_merge((yyvsp[-4].data), d);
3194                         fclose(f);
3195                 }
3196 +#line 1689 "dtc-parser.tab.c" /* yacc.c:1646  */
3197      break;
3198  
3199 -  case 27:
3200 -
3201 -/* Line 1806 of yacc.c  */
3202 -#line 278 "dtc-parser.y"
3203 +  case 25:
3204 +#line 261 "dtc-parser.y" /* yacc.c:1646  */
3205      {
3206 -                       (yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
3207 +                       (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
3208                 }
3209 +#line 1697 "dtc-parser.tab.c" /* yacc.c:1646  */
3210      break;
3211  
3212 -  case 28:
3213 -
3214 -/* Line 1806 of yacc.c  */
3215 -#line 285 "dtc-parser.y"
3216 +  case 26:
3217 +#line 268 "dtc-parser.y" /* yacc.c:1646  */
3218      {
3219                         (yyval.data) = empty_data;
3220                 }
3221 +#line 1705 "dtc-parser.tab.c" /* yacc.c:1646  */
3222      break;
3223  
3224 -  case 29:
3225 -
3226 -/* Line 1806 of yacc.c  */
3227 -#line 289 "dtc-parser.y"
3228 +  case 27:
3229 +#line 272 "dtc-parser.y" /* yacc.c:1646  */
3230      {
3231 -                       (yyval.data) = (yyvsp[(1) - (2)].data);
3232 +                       (yyval.data) = (yyvsp[-1].data);
3233                 }
3234 +#line 1713 "dtc-parser.tab.c" /* yacc.c:1646  */
3235      break;
3236  
3237 -  case 30:
3238 -
3239 -/* Line 1806 of yacc.c  */
3240 -#line 293 "dtc-parser.y"
3241 +  case 28:
3242 +#line 276 "dtc-parser.y" /* yacc.c:1646  */
3243      {
3244 -                       (yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
3245 +                       (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
3246                 }
3247 +#line 1721 "dtc-parser.tab.c" /* yacc.c:1646  */
3248      break;
3249  
3250 -  case 31:
3251 -
3252 -/* Line 1806 of yacc.c  */
3253 -#line 300 "dtc-parser.y"
3254 +  case 29:
3255 +#line 283 "dtc-parser.y" /* yacc.c:1646  */
3256      {
3257                         unsigned long long bits;
3258  
3259 -                       bits = (yyvsp[(2) - (3)].integer);
3260 +                       bits = (yyvsp[-1].integer);
3261  
3262                         if ((bits !=  8) && (bits != 16) &&
3263                             (bits != 32) && (bits != 64)) {
3264 -                               ERROR(&(yylsp[(2) - (3)]), "Array elements must be"
3265 +                               ERROR(&(yylsp[-1]), "Array elements must be"
3266                                       " 8, 16, 32 or 64-bits");
3267                                 bits = 32;
3268                         }
3269 @@ -1918,25 +1737,23 @@ yyreduce:
3270                         (yyval.array).data = empty_data;
3271                         (yyval.array).bits = bits;
3272                 }
3273 +#line 1741 "dtc-parser.tab.c" /* yacc.c:1646  */
3274      break;
3275  
3276 -  case 32:
3277 -
3278 -/* Line 1806 of yacc.c  */
3279 -#line 316 "dtc-parser.y"
3280 +  case 30:
3281 +#line 299 "dtc-parser.y" /* yacc.c:1646  */
3282      {
3283                         (yyval.array).data = empty_data;
3284                         (yyval.array).bits = 32;
3285                 }
3286 +#line 1750 "dtc-parser.tab.c" /* yacc.c:1646  */
3287      break;
3288  
3289 -  case 33:
3290 -
3291 -/* Line 1806 of yacc.c  */
3292 -#line 321 "dtc-parser.y"
3293 +  case 31:
3294 +#line 304 "dtc-parser.y" /* yacc.c:1646  */
3295      {
3296 -                       if ((yyvsp[(1) - (2)].array).bits < 64) {
3297 -                               uint64_t mask = (1ULL << (yyvsp[(1) - (2)].array).bits) - 1;
3298 +                       if ((yyvsp[-1].array).bits < 64) {
3299 +                               uint64_t mask = (1ULL << (yyvsp[-1].array).bits) - 1;
3300                                 /*
3301                                  * Bits above mask must either be all zero
3302                                  * (positive within range of mask) or all one
3303 @@ -1945,293 +1762,258 @@ yyreduce:
3304                                  * within the mask to one (i.e. | in the
3305                                  * mask), all bits are one.
3306                                  */
3307 -                               if (((yyvsp[(2) - (2)].integer) > mask) && (((yyvsp[(2) - (2)].integer) | mask) != -1ULL))
3308 -                                       ERROR(&(yylsp[(2) - (2)]), "Value out of range for"
3309 -                                             " %d-bit array element", (yyvsp[(1) - (2)].array).bits);
3310 +                               if (((yyvsp[0].integer) > mask) && (((yyvsp[0].integer) | mask) != -1ULL))
3311 +                                       ERROR(&(yylsp[0]), "Value out of range for"
3312 +                                             " %d-bit array element", (yyvsp[-1].array).bits);
3313                         }
3314  
3315 -                       (yyval.array).data = data_append_integer((yyvsp[(1) - (2)].array).data, (yyvsp[(2) - (2)].integer), (yyvsp[(1) - (2)].array).bits);
3316 +                       (yyval.array).data = data_append_integer((yyvsp[-1].array).data, (yyvsp[0].integer), (yyvsp[-1].array).bits);
3317                 }
3318 +#line 1773 "dtc-parser.tab.c" /* yacc.c:1646  */
3319      break;
3320  
3321 -  case 34:
3322 -
3323 -/* Line 1806 of yacc.c  */
3324 -#line 340 "dtc-parser.y"
3325 +  case 32:
3326 +#line 323 "dtc-parser.y" /* yacc.c:1646  */
3327      {
3328 -                       uint64_t val = ~0ULL >> (64 - (yyvsp[(1) - (2)].array).bits);
3329 +                       uint64_t val = ~0ULL >> (64 - (yyvsp[-1].array).bits);
3330  
3331 -                       if ((yyvsp[(1) - (2)].array).bits == 32)
3332 -                               (yyvsp[(1) - (2)].array).data = data_add_marker((yyvsp[(1) - (2)].array).data,
3333 +                       if ((yyvsp[-1].array).bits == 32)
3334 +                               (yyvsp[-1].array).data = data_add_marker((yyvsp[-1].array).data,
3335                                                           REF_PHANDLE,
3336 -                                                         (yyvsp[(2) - (2)].labelref));
3337 +                                                         (yyvsp[0].labelref));
3338                         else
3339 -                               ERROR(&(yylsp[(2) - (2)]), "References are only allowed in "
3340 +                               ERROR(&(yylsp[0]), "References are only allowed in "
3341                                             "arrays with 32-bit elements.");
3342  
3343 -                       (yyval.array).data = data_append_integer((yyvsp[(1) - (2)].array).data, val, (yyvsp[(1) - (2)].array).bits);
3344 +                       (yyval.array).data = data_append_integer((yyvsp[-1].array).data, val, (yyvsp[-1].array).bits);
3345                 }
3346 +#line 1791 "dtc-parser.tab.c" /* yacc.c:1646  */
3347      break;
3348  
3349 -  case 35:
3350 -
3351 -/* Line 1806 of yacc.c  */
3352 -#line 354 "dtc-parser.y"
3353 +  case 33:
3354 +#line 337 "dtc-parser.y" /* yacc.c:1646  */
3355      {
3356 -                       (yyval.array).data = data_add_marker((yyvsp[(1) - (2)].array).data, LABEL, (yyvsp[(2) - (2)].labelref));
3357 +                       (yyval.array).data = data_add_marker((yyvsp[-1].array).data, LABEL, (yyvsp[0].labelref));
3358                 }
3359 +#line 1799 "dtc-parser.tab.c" /* yacc.c:1646  */
3360      break;
3361  
3362 -  case 38:
3363 -
3364 -/* Line 1806 of yacc.c  */
3365 -#line 363 "dtc-parser.y"
3366 +  case 36:
3367 +#line 346 "dtc-parser.y" /* yacc.c:1646  */
3368      {
3369 -                       (yyval.integer) = (yyvsp[(2) - (3)].integer);
3370 +                       (yyval.integer) = (yyvsp[-1].integer);
3371                 }
3372 +#line 1807 "dtc-parser.tab.c" /* yacc.c:1646  */
3373      break;
3374  
3375 -  case 41:
3376 +  case 39:
3377 +#line 357 "dtc-parser.y" /* yacc.c:1646  */
3378 +    { (yyval.integer) = (yyvsp[-4].integer) ? (yyvsp[-2].integer) : (yyvsp[0].integer); }
3379 +#line 1813 "dtc-parser.tab.c" /* yacc.c:1646  */
3380 +    break;
3381  
3382 -/* Line 1806 of yacc.c  */
3383 -#line 374 "dtc-parser.y"
3384 -    { (yyval.integer) = (yyvsp[(1) - (5)].integer) ? (yyvsp[(3) - (5)].integer) : (yyvsp[(5) - (5)].integer); }
3385 +  case 41:
3386 +#line 362 "dtc-parser.y" /* yacc.c:1646  */
3387 +    { (yyval.integer) = (yyvsp[-2].integer) || (yyvsp[0].integer); }
3388 +#line 1819 "dtc-parser.tab.c" /* yacc.c:1646  */
3389      break;
3390  
3391    case 43:
3392 -
3393 -/* Line 1806 of yacc.c  */
3394 -#line 379 "dtc-parser.y"
3395 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) || (yyvsp[(3) - (3)].integer); }
3396 +#line 367 "dtc-parser.y" /* yacc.c:1646  */
3397 +    { (yyval.integer) = (yyvsp[-2].integer) && (yyvsp[0].integer); }
3398 +#line 1825 "dtc-parser.tab.c" /* yacc.c:1646  */
3399      break;
3400  
3401    case 45:
3402 -
3403 -/* Line 1806 of yacc.c  */
3404 -#line 384 "dtc-parser.y"
3405 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) && (yyvsp[(3) - (3)].integer); }
3406 +#line 372 "dtc-parser.y" /* yacc.c:1646  */
3407 +    { (yyval.integer) = (yyvsp[-2].integer) | (yyvsp[0].integer); }
3408 +#line 1831 "dtc-parser.tab.c" /* yacc.c:1646  */
3409      break;
3410  
3411    case 47:
3412 -
3413 -/* Line 1806 of yacc.c  */
3414 -#line 389 "dtc-parser.y"
3415 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) | (yyvsp[(3) - (3)].integer); }
3416 +#line 377 "dtc-parser.y" /* yacc.c:1646  */
3417 +    { (yyval.integer) = (yyvsp[-2].integer) ^ (yyvsp[0].integer); }
3418 +#line 1837 "dtc-parser.tab.c" /* yacc.c:1646  */
3419      break;
3420  
3421    case 49:
3422 -
3423 -/* Line 1806 of yacc.c  */
3424 -#line 394 "dtc-parser.y"
3425 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) ^ (yyvsp[(3) - (3)].integer); }
3426 +#line 382 "dtc-parser.y" /* yacc.c:1646  */
3427 +    { (yyval.integer) = (yyvsp[-2].integer) & (yyvsp[0].integer); }
3428 +#line 1843 "dtc-parser.tab.c" /* yacc.c:1646  */
3429      break;
3430  
3431    case 51:
3432 -
3433 -/* Line 1806 of yacc.c  */
3434 -#line 399 "dtc-parser.y"
3435 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) & (yyvsp[(3) - (3)].integer); }
3436 +#line 387 "dtc-parser.y" /* yacc.c:1646  */
3437 +    { (yyval.integer) = (yyvsp[-2].integer) == (yyvsp[0].integer); }
3438 +#line 1849 "dtc-parser.tab.c" /* yacc.c:1646  */
3439      break;
3440  
3441 -  case 53:
3442 -
3443 -/* Line 1806 of yacc.c  */
3444 -#line 404 "dtc-parser.y"
3445 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) == (yyvsp[(3) - (3)].integer); }
3446 +  case 52:
3447 +#line 388 "dtc-parser.y" /* yacc.c:1646  */
3448 +    { (yyval.integer) = (yyvsp[-2].integer) != (yyvsp[0].integer); }
3449 +#line 1855 "dtc-parser.tab.c" /* yacc.c:1646  */
3450      break;
3451  
3452    case 54:
3453 +#line 393 "dtc-parser.y" /* yacc.c:1646  */
3454 +    { (yyval.integer) = (yyvsp[-2].integer) < (yyvsp[0].integer); }
3455 +#line 1861 "dtc-parser.tab.c" /* yacc.c:1646  */
3456 +    break;
3457  
3458 -/* Line 1806 of yacc.c  */
3459 -#line 405 "dtc-parser.y"
3460 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) != (yyvsp[(3) - (3)].integer); }
3461 +  case 55:
3462 +#line 394 "dtc-parser.y" /* yacc.c:1646  */
3463 +    { (yyval.integer) = (yyvsp[-2].integer) > (yyvsp[0].integer); }
3464 +#line 1867 "dtc-parser.tab.c" /* yacc.c:1646  */
3465      break;
3466  
3467    case 56:
3468 -
3469 -/* Line 1806 of yacc.c  */
3470 -#line 410 "dtc-parser.y"
3471 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) < (yyvsp[(3) - (3)].integer); }
3472 +#line 395 "dtc-parser.y" /* yacc.c:1646  */
3473 +    { (yyval.integer) = (yyvsp[-2].integer) <= (yyvsp[0].integer); }
3474 +#line 1873 "dtc-parser.tab.c" /* yacc.c:1646  */
3475      break;
3476  
3477    case 57:
3478 -
3479 -/* Line 1806 of yacc.c  */
3480 -#line 411 "dtc-parser.y"
3481 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) > (yyvsp[(3) - (3)].integer); }
3482 +#line 396 "dtc-parser.y" /* yacc.c:1646  */
3483 +    { (yyval.integer) = (yyvsp[-2].integer) >= (yyvsp[0].integer); }
3484 +#line 1879 "dtc-parser.tab.c" /* yacc.c:1646  */
3485      break;
3486  
3487    case 58:
3488 -
3489 -/* Line 1806 of yacc.c  */
3490 -#line 412 "dtc-parser.y"
3491 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) <= (yyvsp[(3) - (3)].integer); }
3492 +#line 400 "dtc-parser.y" /* yacc.c:1646  */
3493 +    { (yyval.integer) = (yyvsp[-2].integer) << (yyvsp[0].integer); }
3494 +#line 1885 "dtc-parser.tab.c" /* yacc.c:1646  */
3495      break;
3496  
3497    case 59:
3498 -
3499 -/* Line 1806 of yacc.c  */
3500 -#line 413 "dtc-parser.y"
3501 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >= (yyvsp[(3) - (3)].integer); }
3502 -    break;
3503 -
3504 -  case 60:
3505 -
3506 -/* Line 1806 of yacc.c  */
3507 -#line 417 "dtc-parser.y"
3508 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) << (yyvsp[(3) - (3)].integer); }
3509 +#line 401 "dtc-parser.y" /* yacc.c:1646  */
3510 +    { (yyval.integer) = (yyvsp[-2].integer) >> (yyvsp[0].integer); }
3511 +#line 1891 "dtc-parser.tab.c" /* yacc.c:1646  */
3512      break;
3513  
3514    case 61:
3515 -
3516 -/* Line 1806 of yacc.c  */
3517 -#line 418 "dtc-parser.y"
3518 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) >> (yyvsp[(3) - (3)].integer); }
3519 +#line 406 "dtc-parser.y" /* yacc.c:1646  */
3520 +    { (yyval.integer) = (yyvsp[-2].integer) + (yyvsp[0].integer); }
3521 +#line 1897 "dtc-parser.tab.c" /* yacc.c:1646  */
3522      break;
3523  
3524 -  case 63:
3525 -
3526 -/* Line 1806 of yacc.c  */
3527 -#line 423 "dtc-parser.y"
3528 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) + (yyvsp[(3) - (3)].integer); }
3529 +  case 62:
3530 +#line 407 "dtc-parser.y" /* yacc.c:1646  */
3531 +    { (yyval.integer) = (yyvsp[-2].integer) - (yyvsp[0].integer); }
3532 +#line 1903 "dtc-parser.tab.c" /* yacc.c:1646  */
3533      break;
3534  
3535    case 64:
3536 +#line 412 "dtc-parser.y" /* yacc.c:1646  */
3537 +    { (yyval.integer) = (yyvsp[-2].integer) * (yyvsp[0].integer); }
3538 +#line 1909 "dtc-parser.tab.c" /* yacc.c:1646  */
3539 +    break;
3540  
3541 -/* Line 1806 of yacc.c  */
3542 -#line 424 "dtc-parser.y"
3543 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) - (yyvsp[(3) - (3)].integer); }
3544 +  case 65:
3545 +#line 413 "dtc-parser.y" /* yacc.c:1646  */
3546 +    { (yyval.integer) = (yyvsp[-2].integer) / (yyvsp[0].integer); }
3547 +#line 1915 "dtc-parser.tab.c" /* yacc.c:1646  */
3548      break;
3549  
3550    case 66:
3551 -
3552 -/* Line 1806 of yacc.c  */
3553 -#line 429 "dtc-parser.y"
3554 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) * (yyvsp[(3) - (3)].integer); }
3555 +#line 414 "dtc-parser.y" /* yacc.c:1646  */
3556 +    { (yyval.integer) = (yyvsp[-2].integer) % (yyvsp[0].integer); }
3557 +#line 1921 "dtc-parser.tab.c" /* yacc.c:1646  */
3558      break;
3559  
3560 -  case 67:
3561 -
3562 -/* Line 1806 of yacc.c  */
3563 -#line 430 "dtc-parser.y"
3564 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) / (yyvsp[(3) - (3)].integer); }
3565 +  case 69:
3566 +#line 420 "dtc-parser.y" /* yacc.c:1646  */
3567 +    { (yyval.integer) = -(yyvsp[0].integer); }
3568 +#line 1927 "dtc-parser.tab.c" /* yacc.c:1646  */
3569      break;
3570  
3571 -  case 68:
3572 -
3573 -/* Line 1806 of yacc.c  */
3574 -#line 431 "dtc-parser.y"
3575 -    { (yyval.integer) = (yyvsp[(1) - (3)].integer) % (yyvsp[(3) - (3)].integer); }
3576 +  case 70:
3577 +#line 421 "dtc-parser.y" /* yacc.c:1646  */
3578 +    { (yyval.integer) = ~(yyvsp[0].integer); }
3579 +#line 1933 "dtc-parser.tab.c" /* yacc.c:1646  */
3580      break;
3581  
3582    case 71:
3583 -
3584 -/* Line 1806 of yacc.c  */
3585 -#line 437 "dtc-parser.y"
3586 -    { (yyval.integer) = -(yyvsp[(2) - (2)].integer); }
3587 +#line 422 "dtc-parser.y" /* yacc.c:1646  */
3588 +    { (yyval.integer) = !(yyvsp[0].integer); }
3589 +#line 1939 "dtc-parser.tab.c" /* yacc.c:1646  */
3590      break;
3591  
3592    case 72:
3593 -
3594 -/* Line 1806 of yacc.c  */
3595 -#line 438 "dtc-parser.y"
3596 -    { (yyval.integer) = ~(yyvsp[(2) - (2)].integer); }
3597 +#line 427 "dtc-parser.y" /* yacc.c:1646  */
3598 +    {
3599 +                       (yyval.data) = empty_data;
3600 +               }
3601 +#line 1947 "dtc-parser.tab.c" /* yacc.c:1646  */
3602      break;
3603  
3604    case 73:
3605 -
3606 -/* Line 1806 of yacc.c  */
3607 -#line 439 "dtc-parser.y"
3608 -    { (yyval.integer) = !(yyvsp[(2) - (2)].integer); }
3609 +#line 431 "dtc-parser.y" /* yacc.c:1646  */
3610 +    {
3611 +                       (yyval.data) = data_append_byte((yyvsp[-1].data), (yyvsp[0].byte));
3612 +               }
3613 +#line 1955 "dtc-parser.tab.c" /* yacc.c:1646  */
3614      break;
3615  
3616    case 74:
3617 -
3618 -/* Line 1806 of yacc.c  */
3619 -#line 444 "dtc-parser.y"
3620 +#line 435 "dtc-parser.y" /* yacc.c:1646  */
3621      {
3622 -                       (yyval.data) = empty_data;
3623 +                       (yyval.data) = data_add_marker((yyvsp[-1].data), LABEL, (yyvsp[0].labelref));
3624                 }
3625 +#line 1963 "dtc-parser.tab.c" /* yacc.c:1646  */
3626      break;
3627  
3628    case 75:
3629 -
3630 -/* Line 1806 of yacc.c  */
3631 -#line 448 "dtc-parser.y"
3632 +#line 442 "dtc-parser.y" /* yacc.c:1646  */
3633      {
3634 -                       (yyval.data) = data_append_byte((yyvsp[(1) - (2)].data), (yyvsp[(2) - (2)].byte));
3635 +                       (yyval.nodelist) = NULL;
3636                 }
3637 +#line 1971 "dtc-parser.tab.c" /* yacc.c:1646  */
3638      break;
3639  
3640    case 76:
3641 -
3642 -/* Line 1806 of yacc.c  */
3643 -#line 452 "dtc-parser.y"
3644 +#line 446 "dtc-parser.y" /* yacc.c:1646  */
3645      {
3646 -                       (yyval.data) = data_add_marker((yyvsp[(1) - (2)].data), LABEL, (yyvsp[(2) - (2)].labelref));
3647 +                       (yyval.nodelist) = chain_node((yyvsp[-1].node), (yyvsp[0].nodelist));
3648                 }
3649 +#line 1979 "dtc-parser.tab.c" /* yacc.c:1646  */
3650      break;
3651  
3652    case 77:
3653 -
3654 -/* Line 1806 of yacc.c  */
3655 -#line 459 "dtc-parser.y"
3656 +#line 450 "dtc-parser.y" /* yacc.c:1646  */
3657      {
3658 -                       (yyval.nodelist) = NULL;
3659 +                       ERROR(&(yylsp[0]), "Properties must precede subnodes");
3660 +                       YYERROR;
3661                 }
3662 +#line 1988 "dtc-parser.tab.c" /* yacc.c:1646  */
3663      break;
3664  
3665    case 78:
3666 -
3667 -/* Line 1806 of yacc.c  */
3668 -#line 463 "dtc-parser.y"
3669 +#line 458 "dtc-parser.y" /* yacc.c:1646  */
3670      {
3671 -                       (yyval.nodelist) = chain_node((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].nodelist));
3672 +                       (yyval.node) = name_node((yyvsp[0].node), (yyvsp[-1].propnodename));
3673                 }
3674 +#line 1996 "dtc-parser.tab.c" /* yacc.c:1646  */
3675      break;
3676  
3677    case 79:
3678 -
3679 -/* Line 1806 of yacc.c  */
3680 -#line 467 "dtc-parser.y"
3681 +#line 462 "dtc-parser.y" /* yacc.c:1646  */
3682      {
3683 -                       ERROR(&(yylsp[(2) - (2)]), "Properties must precede subnodes");
3684 -                       YYERROR;
3685 +                       (yyval.node) = name_node(build_node_delete(), (yyvsp[-1].propnodename));
3686                 }
3687 +#line 2004 "dtc-parser.tab.c" /* yacc.c:1646  */
3688      break;
3689  
3690    case 80:
3691 -
3692 -/* Line 1806 of yacc.c  */
3693 -#line 475 "dtc-parser.y"
3694 +#line 466 "dtc-parser.y" /* yacc.c:1646  */
3695      {
3696 -                       (yyval.node) = name_node((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].propnodename));
3697 +                       add_label(&(yyvsp[0].node)->labels, (yyvsp[-1].labelref));
3698 +                       (yyval.node) = (yyvsp[0].node);
3699                 }
3700 +#line 2013 "dtc-parser.tab.c" /* yacc.c:1646  */
3701      break;
3702  
3703 -  case 81:
3704  
3705 -/* Line 1806 of yacc.c  */
3706 -#line 479 "dtc-parser.y"
3707 -    {
3708 -                       (yyval.node) = name_node(build_node_delete(), (yyvsp[(2) - (3)].propnodename));
3709 -               }
3710 -    break;
3711 -
3712 -  case 82:
3713 -
3714 -/* Line 1806 of yacc.c  */
3715 -#line 483 "dtc-parser.y"
3716 -    {
3717 -                       add_label(&(yyvsp[(2) - (2)].node)->labels, (yyvsp[(1) - (2)].labelref));
3718 -                       (yyval.node) = (yyvsp[(2) - (2)].node);
3719 -               }
3720 -    break;
3721 -
3722 -
3723 -
3724 -/* Line 1806 of yacc.c  */
3725 -#line 2235 "dtc-parser.tab.c"
3726 +#line 2017 "dtc-parser.tab.c" /* yacc.c:1646  */
3727        default: break;
3728      }
3729    /* User semantic actions sometimes alter yychar, and that requires
3730 @@ -2254,7 +2036,7 @@ yyreduce:
3731    *++yyvsp = yyval;
3732    *++yylsp = yyloc;
3733  
3734 -  /* Now `shift' the result of the reduction.  Determine what state
3735 +  /* Now 'shift' the result of the reduction.  Determine what state
3736       that goes to, based on the state we popped back to and the rule
3737       number reduced by.  */
3738  
3739 @@ -2269,9 +2051,9 @@ yyreduce:
3740    goto yynewstate;
3741  
3742  
3743 -/*------------------------------------.
3744 -| yyerrlab -- here on detecting error |
3745 -`------------------------------------*/
3746 +/*--------------------------------------.
3747 +| yyerrlab -- here on detecting error.  |
3748 +`--------------------------------------*/
3749  yyerrlab:
3750    /* Make sure we have latest lookahead translation.  See comments at
3751       user semantic actions for why this is necessary.  */
3752 @@ -2322,20 +2104,20 @@ yyerrlab:
3753    if (yyerrstatus == 3)
3754      {
3755        /* If just tried and failed to reuse lookahead token after an
3756 -        error, discard it.  */
3757 +         error, discard it.  */
3758  
3759        if (yychar <= YYEOF)
3760 -       {
3761 -         /* Return failure if at end of input.  */
3762 -         if (yychar == YYEOF)
3763 -           YYABORT;
3764 -       }
3765 +        {
3766 +          /* Return failure if at end of input.  */
3767 +          if (yychar == YYEOF)
3768 +            YYABORT;
3769 +        }
3770        else
3771 -       {
3772 -         yydestruct ("Error: discarding",
3773 -                     yytoken, &yylval, &yylloc);
3774 -         yychar = YYEMPTY;
3775 -       }
3776 +        {
3777 +          yydestruct ("Error: discarding",
3778 +                      yytoken, &yylval, &yylloc);
3779 +          yychar = YYEMPTY;
3780 +        }
3781      }
3782  
3783    /* Else will try to reuse lookahead token after shifting the error
3784 @@ -2355,7 +2137,7 @@ yyerrorlab:
3785       goto yyerrorlab;
3786  
3787    yyerror_range[1] = yylsp[1-yylen];
3788 -  /* Do not reclaim the symbols of the rule which action triggered
3789 +  /* Do not reclaim the symbols of the rule whose action triggered
3790       this YYERROR.  */
3791    YYPOPSTACK (yylen);
3792    yylen = 0;
3793 @@ -2368,35 +2150,37 @@ yyerrorlab:
3794  | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3795  `-------------------------------------------------------------*/
3796  yyerrlab1:
3797 -  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
3798 +  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3799  
3800    for (;;)
3801      {
3802        yyn = yypact[yystate];
3803        if (!yypact_value_is_default (yyn))
3804 -       {
3805 -         yyn += YYTERROR;
3806 -         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3807 -           {
3808 -             yyn = yytable[yyn];
3809 -             if (0 < yyn)
3810 -               break;
3811 -           }
3812 -       }
3813 +        {
3814 +          yyn += YYTERROR;
3815 +          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3816 +            {
3817 +              yyn = yytable[yyn];
3818 +              if (0 < yyn)
3819 +                break;
3820 +            }
3821 +        }
3822  
3823        /* Pop the current state because it cannot handle the error token.  */
3824        if (yyssp == yyss)
3825 -       YYABORT;
3826 +        YYABORT;
3827  
3828        yyerror_range[1] = *yylsp;
3829        yydestruct ("Error: popping",
3830 -                 yystos[yystate], yyvsp, yylsp);
3831 +                  yystos[yystate], yyvsp, yylsp);
3832        YYPOPSTACK (1);
3833        yystate = *yyssp;
3834        YY_STACK_PRINT (yyss, yyssp);
3835      }
3836  
3837 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3838    *++yyvsp = yylval;
3839 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3840  
3841    yyerror_range[2] = yylloc;
3842    /* Using YYLLOC is tempting, but would change the location of
3843 @@ -2425,7 +2209,7 @@ yyabortlab:
3844    yyresult = 1;
3845    goto yyreturn;
3846  
3847 -#if !defined(yyoverflow) || YYERROR_VERBOSE
3848 +#if !defined yyoverflow || YYERROR_VERBOSE
3849  /*-------------------------------------------------.
3850  | yyexhaustedlab -- memory exhaustion comes here.  |
3851  `-------------------------------------------------*/
3852 @@ -2444,14 +2228,14 @@ yyreturn:
3853        yydestruct ("Cleanup: discarding lookahead",
3854                    yytoken, &yylval, &yylloc);
3855      }
3856 -  /* Do not reclaim the symbols of the rule which action triggered
3857 +  /* Do not reclaim the symbols of the rule whose action triggered
3858       this YYABORT or YYACCEPT.  */
3859    YYPOPSTACK (yylen);
3860    YY_STACK_PRINT (yyss, yyssp);
3861    while (yyssp != yyss)
3862      {
3863        yydestruct ("Cleanup: popping",
3864 -                 yystos[*yyssp], yyvsp, yylsp);
3865 +                  yystos[*yyssp], yyvsp, yylsp);
3866        YYPOPSTACK (1);
3867      }
3868  #ifndef yyoverflow
3869 @@ -2462,18 +2246,12 @@ yyreturn:
3870    if (yymsg != yymsgbuf)
3871      YYSTACK_FREE (yymsg);
3872  #endif
3873 -  /* Make sure YYID is used.  */
3874 -  return YYID (yyresult);
3875 +  return yyresult;
3876  }
3877 -
3878 -
3879 -
3880 -/* Line 2067 of yacc.c  */
3881 -#line 489 "dtc-parser.y"
3882 +#line 472 "dtc-parser.y" /* yacc.c:1906  */
3883  
3884  
3885  void yyerror(char const *s)
3886  {
3887         ERROR(&yylloc, "%s", s);
3888  }
3889 -
3890 --- a/scripts/dtc/dtc-parser.tab.h_shipped
3891 +++ b/scripts/dtc/dtc-parser.tab.h_shipped
3892 @@ -1,19 +1,19 @@
3893 -/* A Bison parser, made by GNU Bison 2.5.  */
3894 +/* A Bison parser, made by GNU Bison 3.0.2.  */
3895  
3896  /* Bison interface for Yacc-like parsers in C
3897 -   
3898 -      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
3899 -   
3900 +
3901 +   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
3902 +
3903     This program is free software: you can redistribute it and/or modify
3904     it under the terms of the GNU General Public License as published by
3905     the Free Software Foundation, either version 3 of the License, or
3906     (at your option) any later version.
3907 -   
3908 +
3909     This program is distributed in the hope that it will be useful,
3910     but WITHOUT ANY WARRANTY; without even the implied warranty of
3911     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3912     GNU General Public License for more details.
3913 -   
3914 +
3915     You should have received a copy of the GNU General Public License
3916     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
3917  
3918 @@ -26,50 +26,55 @@
3919     special exception, which will cause the skeleton and the resulting
3920     Bison output files to be licensed under the GNU General Public
3921     License without this special exception.
3922 -   
3923 +
3924     This special exception was added by the Free Software Foundation in
3925     version 2.2 of Bison.  */
3926  
3927 +#ifndef YY_YY_DTC_PARSER_TAB_H_INCLUDED
3928 +# define YY_YY_DTC_PARSER_TAB_H_INCLUDED
3929 +/* Debug traces.  */
3930 +#ifndef YYDEBUG
3931 +# define YYDEBUG 0
3932 +#endif
3933 +#if YYDEBUG
3934 +extern int yydebug;
3935 +#endif
3936  
3937 -/* Tokens.  */
3938 +/* Token type.  */
3939  #ifndef YYTOKENTYPE
3940  # define YYTOKENTYPE
3941 -   /* Put the tokens into the symbol table, so that GDB and other debuggers
3942 -      know about them.  */
3943 -   enum yytokentype {
3944 -     DT_V1 = 258,
3945 -     DT_PLUGIN = 259,
3946 -     DT_MEMRESERVE = 260,
3947 -     DT_LSHIFT = 261,
3948 -     DT_RSHIFT = 262,
3949 -     DT_LE = 263,
3950 -     DT_GE = 264,
3951 -     DT_EQ = 265,
3952 -     DT_NE = 266,
3953 -     DT_AND = 267,
3954 -     DT_OR = 268,
3955 -     DT_BITS = 269,
3956 -     DT_DEL_PROP = 270,
3957 -     DT_DEL_NODE = 271,
3958 -     DT_PROPNODENAME = 272,
3959 -     DT_LITERAL = 273,
3960 -     DT_CHAR_LITERAL = 274,
3961 -     DT_BYTE = 275,
3962 -     DT_STRING = 276,
3963 -     DT_LABEL = 277,
3964 -     DT_REF = 278,
3965 -     DT_INCBIN = 279
3966 -   };
3967 +  enum yytokentype
3968 +  {
3969 +    DT_V1 = 258,
3970 +    DT_MEMRESERVE = 259,
3971 +    DT_LSHIFT = 260,
3972 +    DT_RSHIFT = 261,
3973 +    DT_LE = 262,
3974 +    DT_GE = 263,
3975 +    DT_EQ = 264,
3976 +    DT_NE = 265,
3977 +    DT_AND = 266,
3978 +    DT_OR = 267,
3979 +    DT_BITS = 268,
3980 +    DT_DEL_PROP = 269,
3981 +    DT_DEL_NODE = 270,
3982 +    DT_PROPNODENAME = 271,
3983 +    DT_LITERAL = 272,
3984 +    DT_CHAR_LITERAL = 273,
3985 +    DT_BYTE = 274,
3986 +    DT_STRING = 275,
3987 +    DT_LABEL = 276,
3988 +    DT_REF = 277,
3989 +    DT_INCBIN = 278
3990 +  };
3991  #endif
3992  
3993 -
3994 -
3995 +/* Value type.  */
3996  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
3997 -typedef union YYSTYPE
3998 +typedef union YYSTYPE YYSTYPE;
3999 +union YYSTYPE
4000  {
4001 -
4002 -/* Line 2068 of yacc.c  */
4003 -#line 39 "dtc-parser.y"
4004 +#line 38 "dtc-parser.y" /* yacc.c:1909  */
4005  
4006         char *propnodename;
4007         char *labelref;
4008 @@ -87,32 +92,30 @@ typedef union YYSTYPE
4009         struct node *nodelist;
4010         struct reserve_info *re;
4011         uint64_t integer;
4012 -       int is_plugin;
4013 -
4014 -
4015  
4016 -/* Line 2068 of yacc.c  */
4017 -#line 96 "dtc-parser.tab.h"
4018 -} YYSTYPE;
4019 +#line 97 "dtc-parser.tab.h" /* yacc.c:1909  */
4020 +};
4021  # define YYSTYPE_IS_TRIVIAL 1
4022 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */
4023  # define YYSTYPE_IS_DECLARED 1
4024  #endif
4025  
4026 -extern YYSTYPE yylval;
4027 -
4028 +/* Location type.  */
4029  #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
4030 -typedef struct YYLTYPE
4031 +typedef struct YYLTYPE YYLTYPE;
4032 +struct YYLTYPE
4033  {
4034    int first_line;
4035    int first_column;
4036    int last_line;
4037    int last_column;
4038 -} YYLTYPE;
4039 -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
4040 +};
4041  # define YYLTYPE_IS_DECLARED 1
4042  # define YYLTYPE_IS_TRIVIAL 1
4043  #endif
4044  
4045 +
4046 +extern YYSTYPE yylval;
4047  extern YYLTYPE yylloc;
4048 +int yyparse (void);
4049  
4050 +#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED  */
4051 --- a/scripts/dtc/dtc-parser.y
4052 +++ b/scripts/dtc/dtc-parser.y
4053 @@ -19,7 +19,6 @@
4054   */
4055  %{
4056  #include <stdio.h>
4057 -#include <inttypes.h>
4058  
4059  #include "dtc.h"
4060  #include "srcpos.h"
4061 @@ -53,11 +52,9 @@ extern bool treesource_error;
4062         struct node *nodelist;
4063         struct reserve_info *re;
4064         uint64_t integer;
4065 -       int is_plugin;
4066  }
4067  
4068  %token DT_V1
4069 -%token DT_PLUGIN
4070  %token DT_MEMRESERVE
4071  %token DT_LSHIFT DT_RSHIFT DT_LE DT_GE DT_EQ DT_NE DT_AND DT_OR
4072  %token DT_BITS
4073 @@ -74,7 +71,6 @@ extern bool treesource_error;
4074  
4075  %type <data> propdata
4076  %type <data> propdataprefix
4077 -%type <is_plugin> plugindecl
4078  %type <re> memreserve
4079  %type <re> memreserves
4080  %type <array> arrayprefix
4081 @@ -105,23 +101,10 @@ extern bool treesource_error;
4082  %%
4083  
4084  sourcefile:
4085 -         DT_V1 ';' plugindecl memreserves devicetree
4086 +         DT_V1 ';' memreserves devicetree
4087                 {
4088 -                       $5->is_plugin = $3;
4089 -                       $5->is_root = 1;
4090 -                       the_boot_info = build_boot_info($4, $5,
4091 -                                                       guess_boot_cpuid($5));
4092 -               }
4093 -       ;
4094 -
4095 -plugindecl:
4096 -       /* empty */
4097 -               {
4098 -                       $$ = 0;
4099 -               }
4100 -       | DT_PLUGIN ';'
4101 -               {
4102 -                       $$ = 1;
4103 +                       the_boot_info = build_boot_info($3, $4,
4104 +                                                       guess_boot_cpuid($4));
4105                 }
4106         ;
4107  
4108 --- a/scripts/dtc/dtc.c
4109 +++ b/scripts/dtc/dtc.c
4110 @@ -29,7 +29,6 @@ int reservenum;               /* Number of memory res
4111  int minsize;           /* Minimum blob size */
4112  int padsize;           /* Additional padding to blob */
4113  int phandle_format = PHANDLE_BOTH;     /* Use linux,phandle or phandle properties */
4114 -int symbol_fixup_support = 0;
4115  
4116  static void fill_fullpaths(struct node *tree, const char *prefix)
4117  {
4118 @@ -52,7 +51,7 @@ static void fill_fullpaths(struct node *
4119  #define FDT_VERSION(version)   _FDT_VERSION(version)
4120  #define _FDT_VERSION(version)  #version
4121  static const char usage_synopsis[] = "dtc [options] <input file>";
4122 -static const char usage_short_opts[] = "qI:O:o:V:d:R:S:p:fb:i:H:sW:E:hv@";
4123 +static const char usage_short_opts[] = "qI:O:o:V:d:R:S:p:fb:i:H:sW:E:hv";
4124  static struct option const usage_long_opts[] = {
4125         {"quiet",            no_argument, NULL, 'q'},
4126         {"in-format",         a_argument, NULL, 'I'},
4127 @@ -70,7 +69,6 @@ static struct option const usage_long_op
4128         {"phandle",           a_argument, NULL, 'H'},
4129         {"warning",           a_argument, NULL, 'W'},
4130         {"error",             a_argument, NULL, 'E'},
4131 -       {"symbols",           a_argument, NULL, '@'},
4132         {"help",             no_argument, NULL, 'h'},
4133         {"version",          no_argument, NULL, 'v'},
4134         {NULL,               no_argument, NULL, 0x0},
4135 @@ -101,7 +99,6 @@ static const char * const usage_opts_hel
4136          "\t\tboth   - Both \"linux,phandle\" and \"phandle\" properties",
4137         "\n\tEnable/disable warnings (prefix with \"no-\")",
4138         "\n\tEnable/disable errors (prefix with \"no-\")",
4139 -       "\n\tSymbols and Fixups support",
4140         "\n\tPrint this help and exit",
4141         "\n\tPrint version and exit",
4142         NULL,
4143 @@ -189,9 +186,7 @@ int main(int argc, char *argv[])
4144                 case 'E':
4145                         parse_checks_option(false, true, optarg);
4146                         break;
4147 -               case '@':
4148 -                       symbol_fixup_support = 1;
4149 -                       break;
4150 +
4151                 case 'h':
4152                         usage(NULL);
4153                 default:
4154 --- a/scripts/dtc/dtc.h
4155 +++ b/scripts/dtc/dtc.h
4156 @@ -54,7 +54,6 @@ extern int reservenum;                /* Number of mem
4157  extern int minsize;            /* Minimum blob size */
4158  extern int padsize;            /* Additional padding to blob */
4159  extern int phandle_format;     /* Use linux,phandle or phandle properties */
4160 -extern int symbol_fixup_support;/* enable symbols & fixup support */
4161  
4162  #define PHANDLE_LEGACY 0x1
4163  #define PHANDLE_EPAPR  0x2
4164 @@ -133,25 +132,6 @@ struct label {
4165         struct label *next;
4166  };
4167  
4168 -struct fixup_entry {
4169 -       int offset;
4170 -       struct node *node;
4171 -       struct property *prop;
4172 -       struct fixup_entry *next;
4173 -};
4174 -
4175 -struct fixup {
4176 -       char *ref;
4177 -       struct fixup_entry *entries;
4178 -       struct fixup *next;
4179 -};
4180 -
4181 -struct symbol {
4182 -       struct label *label;
4183 -       struct node *node;
4184 -       struct symbol *next;
4185 -};
4186 -
4187  struct property {
4188         bool deleted;
4189         char *name;
4190 @@ -178,12 +158,6 @@ struct node {
4191         int addr_cells, size_cells;
4192  
4193         struct label *labels;
4194 -
4195 -       int is_root;
4196 -       int is_plugin;
4197 -       struct fixup *fixups;
4198 -       struct symbol *symbols;
4199 -       struct fixup_entry *local_fixups;
4200  };
4201  
4202  #define for_each_label_withdel(l0, l) \
4203 @@ -207,18 +181,6 @@ struct node {
4204         for_each_child_withdel(n, c) \
4205                 if (!(c)->deleted)
4206  
4207 -#define for_each_fixup(n, f) \
4208 -       for ((f) = (n)->fixups; (f); (f) = (f)->next)
4209 -
4210 -#define for_each_fixup_entry(f, fe) \
4211 -       for ((fe) = (f)->entries; (fe); (fe) = (fe)->next)
4212 -
4213 -#define for_each_symbol(n, s) \
4214 -       for ((s) = (n)->symbols; (s); (s) = (s)->next)
4215 -
4216 -#define for_each_local_fixup_entry(n, fe) \
4217 -       for ((fe) = (n)->local_fixups; (fe); (fe) = (fe)->next)
4218 -
4219  void add_label(struct label **labels, char *label);
4220  void delete_labels(struct label **labels);
4221  
4222 --- a/scripts/dtc/flattree.c
4223 +++ b/scripts/dtc/flattree.c
4224 @@ -262,12 +262,6 @@ static void flatten_tree(struct node *tr
4225         struct property *prop;
4226         struct node *child;
4227         bool seen_name_prop = false;
4228 -       struct symbol *sym;
4229 -       struct fixup *f;
4230 -       struct fixup_entry *fe;
4231 -       char *name, *s;
4232 -       const char *fullpath;
4233 -       int namesz, nameoff, vallen;
4234  
4235         if (tree->deleted)
4236                 return;
4237 @@ -282,6 +276,8 @@ static void flatten_tree(struct node *tr
4238         emit->align(etarget, sizeof(cell_t));
4239  
4240         for_each_property(tree, prop) {
4241 +               int nameoff;
4242 +
4243                 if (streq(prop->name, "name"))
4244                         seen_name_prop = true;
4245  
4246 @@ -314,139 +310,6 @@ static void flatten_tree(struct node *tr
4247                 flatten_tree(child, emit, etarget, strbuf, vi);
4248         }
4249  
4250 -       if (!symbol_fixup_support)
4251 -               goto no_symbols;
4252 -
4253 -       /* add the symbol nodes (if any) */
4254 -       if (tree->symbols) {
4255 -
4256 -               emit->beginnode(etarget, NULL);
4257 -               emit->string(etarget, "__symbols__", 0);
4258 -               emit->align(etarget, sizeof(cell_t));
4259 -
4260 -               for_each_symbol(tree, sym) {
4261 -
4262 -                       vallen = strlen(sym->node->fullpath);
4263 -
4264 -                       nameoff = stringtable_insert(strbuf, sym->label->label);
4265 -
4266 -                       emit->property(etarget, NULL);
4267 -                       emit->cell(etarget, vallen + 1);
4268 -                       emit->cell(etarget, nameoff);
4269 -
4270 -                       if ((vi->flags & FTF_VARALIGN) && vallen >= 8)
4271 -                               emit->align(etarget, 8);
4272 -
4273 -                       emit->string(etarget, sym->node->fullpath,
4274 -                                       strlen(sym->node->fullpath));
4275 -                       emit->align(etarget, sizeof(cell_t));
4276 -               }
4277 -
4278 -               emit->endnode(etarget, NULL);
4279 -       }
4280 -
4281 -       /* add the fixup nodes */
4282 -       if (tree->fixups) {
4283 -
4284 -               /* emit the external fixups */
4285 -               emit->beginnode(etarget, NULL);
4286 -               emit->string(etarget, "__fixups__", 0);
4287 -               emit->align(etarget, sizeof(cell_t));
4288 -
4289 -               for_each_fixup(tree, f) {
4290 -
4291 -                       namesz = 0;
4292 -                       for_each_fixup_entry(f, fe) {
4293 -                               fullpath = fe->node->fullpath;
4294 -                               if (fullpath[0] == '\0')
4295 -                                       fullpath = "/";
4296 -                               namesz += strlen(fullpath) + 1;
4297 -                               namesz += strlen(fe->prop->name) + 1;
4298 -                               namesz += 32;   /* space for :<number> + '\0' */
4299 -                       }
4300 -
4301 -                       name = xmalloc(namesz);
4302 -
4303 -                       s = name;
4304 -                       for_each_fixup_entry(f, fe) {
4305 -                               fullpath = fe->node->fullpath;
4306 -                               if (fullpath[0] == '\0')
4307 -                                       fullpath = "/";
4308 -                               snprintf(s, name + namesz - s, "%s:%s:%d",
4309 -                                               fullpath,
4310 -                                               fe->prop->name, fe->offset);
4311 -                               s += strlen(s) + 1;
4312 -                       }
4313 -
4314 -                       nameoff = stringtable_insert(strbuf, f->ref);
4315 -                       vallen = s - name - 1;
4316 -
4317 -                       emit->property(etarget, NULL);
4318 -                       emit->cell(etarget, vallen + 1);
4319 -                       emit->cell(etarget, nameoff);
4320 -
4321 -                       if ((vi->flags & FTF_VARALIGN) && vallen >= 8)
4322 -                               emit->align(etarget, 8);
4323 -
4324 -                       emit->string(etarget, name, vallen);
4325 -                       emit->align(etarget, sizeof(cell_t));
4326 -
4327 -                       free(name);
4328 -               }
4329 -
4330 -               emit->endnode(etarget, tree->labels);
4331 -       }
4332 -
4333 -       /* add the local fixup property */
4334 -       if (tree->local_fixups) {
4335 -
4336 -               /* emit the external fixups */
4337 -               emit->beginnode(etarget, NULL);
4338 -               emit->string(etarget, "__local_fixups__", 0);
4339 -               emit->align(etarget, sizeof(cell_t));
4340 -
4341 -               namesz = 0;
4342 -               for_each_local_fixup_entry(tree, fe) {
4343 -                       fullpath = fe->node->fullpath;
4344 -                       if (fullpath[0] == '\0')
4345 -                               fullpath = "/";
4346 -                       namesz += strlen(fullpath) + 1;
4347 -                       namesz += strlen(fe->prop->name) + 1;
4348 -                       namesz += 32;   /* space for :<number> + '\0' */
4349 -               }
4350 -
4351 -               name = xmalloc(namesz);
4352 -
4353 -               s = name;
4354 -               for_each_local_fixup_entry(tree, fe) {
4355 -                       fullpath = fe->node->fullpath;
4356 -                       if (fullpath[0] == '\0')
4357 -                               fullpath = "/";
4358 -                       snprintf(s, name + namesz - s, "%s:%s:%d",
4359 -                                       fullpath, fe->prop->name,
4360 -                                       fe->offset);
4361 -                       s += strlen(s) + 1;
4362 -               }
4363 -
4364 -               nameoff = stringtable_insert(strbuf, "fixup");
4365 -               vallen = s - name - 1;
4366 -
4367 -               emit->property(etarget, NULL);
4368 -               emit->cell(etarget, vallen + 1);
4369 -               emit->cell(etarget, nameoff);
4370 -
4371 -               if ((vi->flags & FTF_VARALIGN) && vallen >= 8)
4372 -                       emit->align(etarget, 8);
4373 -
4374 -               emit->string(etarget, name, vallen);
4375 -               emit->align(etarget, sizeof(cell_t));
4376 -
4377 -               free(name);
4378 -
4379 -               emit->endnode(etarget, tree->labels);
4380 -       }
4381 -
4382 -no_symbols:
4383         emit->endnode(etarget, tree->labels);
4384  }
4385  
4386 --- a/scripts/dtc/version_gen.h
4387 +++ b/scripts/dtc/version_gen.h
4388 @@ -1 +1 @@
4389 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd-dirty"
4390 +#define DTC_VERSION "DTC 1.4.1-g9d3649bd"