checkpoint
authoradam <adam@megacz.com>
Sun, 29 Jan 2006 08:50:11 +0000 (03:50 -0500)
committeradam <adam@megacz.com>
Sun, 29 Jan 2006 08:50:11 +0000 (03:50 -0500)
darcs-hash:20060129085011-5007d-2654c5689ab9e8b6a9a34b4cbb75817ab81b6f29.gz

src/edu/berkeley/sbp/misc/MetaGrammar.java
tests/meta.g

index 3598efc..c7803be 100644 (file)
@@ -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)) {
index 4f671c6..019d5e3 100644 (file)
@@ -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"