checkpoint
authoradam <adam@megacz.com>
Sun, 29 Jan 2006 09:36:13 +0000 (04:36 -0500)
committeradam <adam@megacz.com>
Sun, 29 Jan 2006 09:36:13 +0000 (04:36 -0500)
darcs-hash:20060129093613-5007d-6cdb8018b734e0d6a1575d5de18a12e9383ca96b.gz

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

index 999d765..041e561 100644 (file)
@@ -151,10 +151,8 @@ 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)) {
-            String s = string(tree.child(0));
-            return new PreSequence(new Element[] { string(s) }, s, new boolean[] { true }).buildSequence();
-        } else if ("[".equals(head)) {
+        else if (":".equals(head)) return walk(tree,1);
+        else if ("[".equals(head)) {
             Range[] rr = (Range[])walk(tree, 0);
             Range.Set ret = new Range.Set();
             if (rr!=null) for(Range r : rr) ret.add(r);
index a0d0819..eba580e 100644 (file)
@@ -8,7 +8,7 @@ Conjuncts   ::=  Sequence
               |  Sequence ^"&"  Elements  /ws
               |  Sequence ^"&~" Elements  /ws
 Elements    ::=  e*/ws
-NamedElements    ::=  e*/ws
+NamedElements    ::=  (e | word ^":" e) */ ws
 
 PreSequence ::= NamedElements => "ps"
               | PreSequence !wp ^"/"  !ws e