From: adam Date: Tue, 13 Dec 2005 06:29:13 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~612 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=2a43edc3783a51c0ada2269835d833fa4ce8ab33;hp=4e85e3e3519cf88a4469d4ead6369eaa1ab2c4e2 checkpoint darcs-hash:20051213062913-5007d-4c2ccc4dca9a776503811c6424b6d6e6b21469a0.gz --- diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index bfddf72..1b4f1d9 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -72,6 +72,15 @@ public class MetaGrammar extends ReflectiveWalker { public Object _backslash__leftbrace_(String s) { return SELF; } public Object _leftbrace_(String s) { return SELF; } public Object _plus_(final Element r) { return new Rep(r, null, false, false); } + public Object[] _slash_(Object[] o, Object sep) { + if (o.length <= 1) return o; + Object[] ret = new Object[o.length * 2 - 1]; + for(int i=0; i" EquiAlt ::= Conjuncts +/ "|" => "alternatives" -Sequence ::= E+ +Sequence ::= E+ ^"/" E + > E+ + Conjuncts ::= Rewrite | Rewrite ^"&" Sequence | Rewrite ^"&~" Sequence diff --git a/tests/testcase.g b/tests/testcase.g index 9993dce..7245db8 100644 --- a/tests/testcase.g +++ b/tests/testcase.g @@ -1,7 +1,7 @@ ts ::= ws Ts ws => ts Ts ::= Test* ws !::= w* -Test ::= ^"testcase" "{" Input Output+ Grammar "}" +Test ::= ^"testcase" "{" Input output+ Grammar "}" | ^"testcase" "{" Input Grammar "}" -Output ::= "output" quoted ";" +output ::= "output" quoted ";" / w* Input ::= "input" quoted ";"