From: adam Date: Sun, 29 Jan 2006 08:50:11 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~324 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=025ebe3e707adc361fbfbae9ea6120699f5d045a;p=sbp.git checkpoint darcs-hash:20060129085011-5007d-2654c5689ab9e8b6a9a34b4cbb75817ab81b6f29.gz --- diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 3598efc..c7803be 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -148,7 +148,9 @@ public class MetaGrammar extends StringWalker { else if ("/".equals(head)) return ((PreSequence)walk(tree, 0)).sparse((Element)walk(tree, 1)); else if ("~".equals(head)) return new Hack(new Atom.Invert(new Atom.Infer((Element)walk(tree, 0)))); else if ("ps".equals(head)) return new PreSequence((Element[])walk(tree,0)); - else if ("qprod".equals(head)) { + else if ("ps2".equals(head)) { + return (new PreSequence((Element[])walk(tree,0))).sparse((Element)walk(tree, 1)); + } else if ("qprod".equals(head)) { String s = string(tree.child(0)); return new PreSequence(new Element[] { string(s) }, s, new boolean[] { true }).buildSequence(); } else if ("[".equals(head)) { diff --git a/tests/meta.g b/tests/meta.g index 4f671c6..019d5e3 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -9,9 +9,8 @@ Conjuncts ::= Sequence | Sequence ^"&~" Elements /ws Elements ::= e*/ws -ps ::= Elements => "ps" -psy ::= ps - | ps !wp ^"/" !ws e +psy ::= Elements => "ps" + | Elements !wp "/" !ws e => "ps2" psx ::= psy => "psy" | psy ^"->" e /ws Sequence ::= Quoted => "qprod"