From b8991573e4f186b0d3f8605ba2fdd3cd1eb0104a Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 14 Dec 2005 02:42:50 -0500 Subject: [PATCH] checkpoint darcs-hash:20051214074250-5007d-c4721867d5f8a2e0f24c5999d3a737c194143e9b.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 4 +--- tests/meta.g | 10 +++++----- 2 files changed, 6 insertions(+), 8 deletions(-) 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" -- 1.7.10.4