[PATCH] DTC: Rewrite the propdata and propdataprefix rules.
Jon Loeliger
jdl at jdl.com
Tue Oct 23 08:01:56 EST 2007
After staring at these two rules for a bit, and not quite
groking them, I rewrote them into something I think is a
bit clearer. With any luck, it's the same language still.
Signed-off-by: Jon Loeliger <jdl at freescale.com>
---
You be the judge too!
dtc-parser.y | 31 ++++++++++++++-----------------
1 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/dtc-parser.y b/dtc-parser.y
index 61ed250..f0b0178 100644
--- a/dtc-parser.y
+++ b/dtc-parser.y
@@ -59,7 +59,6 @@ extern struct boot_info *the_boot_info;
%token <str> DT_REF
%type <data> propdata
-%type <data> propdataprefix
%type <re> memreserve
%type <re> memreserves
%type <cbase> opt_cell_base
@@ -143,37 +142,35 @@ propdef:
;
propdata:
- propdataprefix DT_STRING
+ DT_STRING
{
- $$ = data_merge($1, $2);
+ $$ = data_merge(empty_data, $1);
}
- | propdataprefix '<' celllist '>'
+ | '<' celllist '>'
{
- $$ = data_merge(data_append_align($1,
- sizeof(cell_t)), $3);
+ $$ = data_merge(data_append_align(empty_data,
+ sizeof(cell_t)), $2);
}
- | propdataprefix '[' bytestring ']'
+ | '[' bytestring ']'
{
- $$ = data_merge($1, $3);
+ $$ = data_merge(empty_data, $2);
}
| propdata DT_LABEL
{
$$ = data_add_label($1, $2);
}
- ;
-
-propdataprefix:
- /* empty */
+ | propdata ',' DT_STRING
{
- $$ = empty_data;
+ $$ = data_merge($1, $3);
}
- | propdata ','
+ | propdata ',' '<' celllist '>'
{
- $$ = $1;
+ $$ = data_merge(data_append_align($1,
+ sizeof(cell_t)), $4);
}
- | propdataprefix DT_LABEL
+ | propdata ',' '[' bytestring ']'
{
- $$ = data_add_label($1, $2);
+ $$ = data_merge($1, $4);
}
;
--
1.5.3.1.139.g9346b
More information about the Linuxppc-dev
mailing list