checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / MetaGrammar.java
index d5a70b3..a62c9a1 100644 (file)
@@ -22,9 +22,6 @@ public class MetaGrammar extends ReflectiveWalker {
 
     private static final Union SELF = new Union("()");
 
-    public static Union epsilon = new Union("()");
-    static { epsilon.add(Sequence.empty); }
-
     ////////////////////////////////////////////////////////////////////////////////
 
     private Union g;
@@ -58,11 +55,11 @@ public class MetaGrammar extends ReflectiveWalker {
     public PreSequence _amp_(PreSequence p, Object[] o)        { return p.and(new PreSequence(o, null).buildSequence(null, true, false, true)); }
     public PreSequence _amp__tilde_(PreSequence p, Object[] o) { return p.not(new PreSequence(o, null).buildSequence(null, true, false, true)); }
     public Object      _star_(Element r)                                              { return Repeat.many0(r); }
-    public Element     epsilon(Object o, Object b)                                    { return epsilon; }
+    public Element     epsilon(Object o, Object b)                                    { return Union.epsilon; }
+    public Object      _leftparen__rightparen_(Object o)                              { return Union.epsilon; }
     public Element     _rightparen_(Object e)                                         { return SELF; }
     public Element     _bang_(Element r)                                              { return r; }
     public Object      _caret_(String s)                                              { return new MyLift(s); }
-    public Object      _leftparen__rightparen_(Object o)                              { return epsilon; }
     public Union       nonTerminal(String s)                                          { return nonTerminal(s, null, false, false); }
     public Union       _colon__colon__equals_(String s, PreSequence[][] p)            { return nonTerminal(s, p, false, false); }
     public Union       _bang__colon__colon__equals_(String s, PreSequence[][] p)      { return nonTerminal(s, p, false, true); }