From 6c5c032a9dd9a50f8969220bab4140c15b649022 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 14 Dec 2005 02:31:57 -0500 Subject: [PATCH] checkpoint darcs-hash:20051214073157-5007d-a38db9cea40fc9f0b2bbc0cf6790c983a389a710.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 3 +++ tests/meta.g | 7 ++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index cb67cba..1cc57be 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -87,6 +87,9 @@ public class MetaGrammar extends ReflectiveWalker { public PreSequence rewrite(Object[] o) { return new PreSequence(o, null); } public PreSequence _equals__greater_(Object[] o, String s) { return new PreSequence(o, s); } + public Object[] seq(Object[] o, Object sep) { + return sep==null ? o : _slash_(o, sep); + } public Object[] seq(Object[] o) { return o; } public Object[] _slash_(Object[] o, Object sep) { if (o.length <= 1) return o; diff --git a/tests/meta.g b/tests/meta.g index 03bd717..406b09b 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -7,15 +7,12 @@ r ::= word ^"::=" alternatives /ws alternatives ::= equiAlt +/ (ws ">" ws) equiAlt ::= conjuncts +/ (ws "|" ws) -sequence ::= e */ (w**) - > e */ (w**) ws ^"/" e - -ss ::= es => "seq" | es ^"/" e /ws - conjuncts ::= rewrite | rewrite ^"&" e*/ws /ws | rewrite ^"&~" e*/ws /ws +sequence ::= e */ (w**) (ws "/" e)? => "seq" + rewrite ::= sequence /ws => "rewrite" | sequence ^"=>" (word|quoted) /ws -- 1.7.10.4