checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / MetaGrammar.java
index e30312e..a4ee08f 100644 (file)
@@ -16,7 +16,7 @@ public class MetaGrammar extends ReflectiveWalker {
     }
 
     // FIXME
-    private static HashSet<Union> dropAll = new HashSet<Union>();
+    private static HashSet<Element> dropAll = new HashSet<Element>();
 
     // Statics //////////////////////////////////////////////////////////////////////////////
 
@@ -78,24 +78,8 @@ public class MetaGrammar extends ReflectiveWalker {
         }
         return ret;
     }
-    //public Element _tilde__slash__tilde_(final Element r) { return Repeat.maximal(r); }
-    public Object _plus__slash_(final Element r, Object s) {
-        if (s instanceof String) s = CharToken.string((String)s);
-        return new Rep(r, (Element)s, false, false);
-    }
-    public Object _dollar__dollar_(final Element r, Object s) {
-        if (s instanceof String) s = CharToken.string((String)s);
-        return new Rep(r, (Element)s, false, false);
-    }
-    public Object _star__slash_(final Element r, Object s) {
-        if (s instanceof String) s = CharToken.string((String)s);
-        return new Rep(r, (Element)s, false, true);
-    }
-    public Object _percent__percent_(final Element r, Object s) {
-        if (s instanceof String) s = CharToken.string((String)s);
-        return new Rep(r, (Element)s, false, true);
-    }
-    //public Element _star__slash_(final Element r, Element s) { return Repeat.many0(r, s); }
+    public Object _plus__slash_(final Element r, Object s) { return new Rep(r, (Element)s, false, false); }
+    public Object _star__slash_(final Element r, Object s) { return new Rep(r, (Element)s, false, true); }
     public Object _star__star_(final Element r) { return new Rep(r, null, true, true); }
     public Object _plus__plus_(final Element r) { return new Rep(r, null, true, false); }
     public Element _question_(final Element r) { return Repeat.maybe(r); }
@@ -104,8 +88,14 @@ public class MetaGrammar extends ReflectiveWalker {
     public MetaGrammar grammar(Object o, Union[] u, Object x) { return this; }
     public char    _backslash_n() { return '\n'; }
     public char    _backslash_r() { return '\r'; }
-    public String  literal(String s) { return s; }
-    //public Element  literal(String s)    { return CharToken.string(s); }
+    //public String  literal(String s) { return s; }
+
+    public Object literal(String s) {
+        Element e = CharToken.string(s);
+        return new MyDrop(e);
+        //dropAll.add(e);
+        //return e;
+    }
 
     public Range     range0(char a)         { return new Range(a, a); }
     public Range     range0(char a, char b) { return new Range(a, b); }
@@ -177,6 +167,7 @@ public class MetaGrammar extends ReflectiveWalker {
         g = new Union(str);
         startSymbol = str;
         nt = new HashMap<String,Union>();
+        dropAll = new HashSet<Element>();
         nt.put(str, g);
         this.dws = Repeat.maximal(Repeat.many0(nonTerminalY("w")));
         return ret;
@@ -257,7 +248,6 @@ public class MetaGrammar extends ReflectiveWalker {
                 if      (oi instanceof PreSequence) o2[j] = ((PreSequence)oi).buildUnion();
                 else if (oi==SELF)                  o2[j] = u.new Subset("(("+u+"))", set);
                 else if (oi instanceof MyLift)      { o2[j] = CharToken.string(tag = ((MyLift)oi).s); drops[j] = true; }
-                else if (oi instanceof String)      { o2[j] = CharToken.string(      ((String)oi)  ); drops[j] = true; }
                 else if (oi instanceof Rep)         o2[j] = ((Rep)oi).build();
                 else                                  o2[j] = (Element)oi;
 
@@ -368,6 +358,11 @@ public class MetaGrammar extends ReflectiveWalker {
 
 
 
+
+
+
+
+
         // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED
 new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "grammar", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { })})}),
@@ -951,3 +946,8 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
 
 
 
+
+
+
+
+