From: adam Date: Wed, 14 Dec 2005 07:42:50 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~534 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=b8991573e4f186b0d3f8605ba2fdd3cd1eb0104a checkpoint darcs-hash:20051214074250-5007d-c4721867d5f8a2e0f24c5999d3a737c194143e9b.gz --- diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 1cc57be..9fc3382 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -87,9 +87,7 @@ 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 PreSequence seq(Object[] o, Object sep, String tag) { return new PreSequence(sep==null ? o : _slash_(o, sep), tag); } 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 4fed049..359319d 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -11,10 +11,11 @@ conjuncts ::= rewrite | rewrite ^"&" e*/ws /ws | rewrite ^"&~" e*/ws /ws -sequence ::= e*/ws (ws "/" e)? => "seq" +sequence ::= e*/ws + (ws "/" e)? + (ws "=>" ws (word|quoted))? => "seq" -rewrite ::= sequence /ws => "rewrite" - | sequence ^"=>" (word|quoted) /ws +rewrite ::= sequence ec ::= [~\-\]\\\~] | escaped @@ -45,8 +46,7 @@ w !::= " " | "//" ([~\n]*) "\n" | "\n" | "\r" -an ::= [a-zA-Z0-9_] -word ::= an++ +word ::= [a-zA-Z0-9_]++ quoted ::= "\"" (([~\"\\] | escaped)+) "\"" | "\"\"" => "" escaped ::= "\\n" => "\n"