Skip to contentSkip to conversation

DTC: Rewrite the propdata and propdataprefix rules.

PATCH In review Jon Loeliger 2 participants 3 messages Oct 22, 2007 – Oct 23, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 DTC: Rewrite the propdata and propdataprefix rules.

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.

---

You be the judge too!

 dtc-parser.y |   31 ++++++++++++++-----------------
 1 files changed, 14 insertions(+), 17 deletions(-)
dtc-parser.y +14 -17
index 61ed250..f0b0178 100644
@@ -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);
 		}
 	;
 
Signature · 1 line
1.5.3.1.139.g9346b
#1 lore raw

So, like, the other day Jon Loeliger mumbled:

Quoted 9 lines

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.

---

You be the judge too!

Yeah, so, I botched this one. It's NOT the same language, so don't apply it or think about it at all...

jdl

#2 lore raw
Quoted 6 lines · Jon Loeliger

So, like, the other day Jon Loeliger mumbled:

Quoted 5 lines

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.

Quoted 7 lines
Quoted 4 lines

---

You be the judge too!

Yeah, so, I botched this one. It's NOT the same language, so don't apply it or think about it at all...

Yeah, I remember finding the whole propdataprefix confusing myself. But the form was suggested by someone (forgotten whom now), and I never did figure out a better way of doing it.

Signature · 4 lines
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson