checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / MetaGrammar.java
index 7a98bb4..bc171da 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); }
@@ -104,26 +101,15 @@ public class MetaGrammar extends ReflectiveWalker {
 
     public Object   _plus_(final Element r)                    { return Repeat.many1(r); }
     public PreSequence rewrite(Object[] o)                     { return new PreSequence(o, null); }
-    public PreSequence _equals__greater_(Object[] o, String s) { return new PreSequence(o, s); }
 
-    public PreSequence seqx(PreSequence p, String tag) {
+    public PreSequence seqx(PreSequence p, String tag) { return _equals__greater_(p, tag); }
+    public PreSequence _equals__greater_(PreSequence p, String tag) {
         p.tag = tag;
         return p;
     }
-    public PreSequence seq(Object[] o, Object sep, String tag) { return new PreSequence(sep==null ? o : slash(o, sep), tag); }
-    public Object[] seq(Object[] o)                            { return o; }
+
     public PreSequence ps(Object[] o) { return new PreSequence(o); }
     public PreSequence _slash_(PreSequence p, Object sep) { return p.sparse(sep); }
-    public Object[] slash(Object[] o, Object sep) {
-        if (o.length <= 1) return o;
-        Object[] ret = new Object[o.length * 2 - 1];
-        for(int i=0; i<o.length; i++) {
-            Object oi = o[i];
-            ret[i*2]   = oi;
-            if (i*2+1<ret.length) ret[i*2+1] = new MyDrop(sep);
-        }
-        return ret;
-    }
 
     public Object _plus__slash_(final Element r, Element s) { return Repeat.many1(r, s); }
     public Object _star__slash_(final Element r, Element s) { return Repeat.many0(r, s); }
@@ -277,10 +263,14 @@ 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, null, new Tree[] { new Tree(null, "s", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
@@ -297,8 +287,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "m", new Tree[] { })})})})})}),
         new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
@@ -306,7 +295,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "m", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "r", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})})}),
         new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }),
@@ -317,7 +306,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "r", new Tree[] { })})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})}),
@@ -338,8 +327,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})}),
@@ -360,8 +348,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "s", new Tree[] { })})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }),
         new Tree(null, "l", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
@@ -374,7 +361,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "v", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "j", new Tree[] { }),
@@ -383,20 +370,16 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "|", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ">", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
@@ -406,7 +389,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -414,8 +397,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -429,8 +411,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -444,29 +425,25 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "s", new Tree[] { })})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})}),
         new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { }),
         new Tree(null, "x", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})}),
+        new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
@@ -475,67 +452,58 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { }),
+        new Tree(null, "x", new Tree[] { })})})})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { }),
         new Tree(null, "x", new Tree[] { })})}),
-        new Tree(null, "?", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }),
+        new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }),
         new Tree(null, ">", new Tree[] { })})}),
-        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "d", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
-        new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "q", new Tree[] { }),
-        new Tree(null, "x", new Tree[] { })})})})})}),
+        new Tree(null, "d", new Tree[] { })})})})})})})})})}),
+        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
         new Tree(null, "c", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "-", new Tree[] { })}),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "-", new Tree[] { })}),
         new Tree(null, "range", new Tree[] { new Tree(null, "]", new Tree[] { })}),
         new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })}),
         new Tree(null, "range", new Tree[] { new Tree(null, "~", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
         new Tree(null, "s", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "p", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "d", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "d", new Tree[] { })})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "g", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
         new Tree(null, "c", new Tree[] { })})})})}),
         new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "g", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
         new Tree(null, "c", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "c", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "c", new Tree[] { })})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})})})}),
@@ -550,7 +518,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "l", new Tree[] { })})}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
+        new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
@@ -563,10 +531,9 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "l", new Tree[] { })})}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }),
         new Tree(null, ")", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
@@ -578,27 +545,22 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "}", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})}),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "g", new Tree[] { }),
-        new Tree(null, "e", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "e", new Tree[] { })})})})})})})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { }),
         new Tree(null, "~", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "g", new Tree[] { }),
-        new Tree(null, "e", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "e", new Tree[] { })})})})})})})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
@@ -607,65 +569,49 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { })})}),
-        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}),
-        new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }),
-        new Tree(null, "*", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "*", new Tree[] { })})})})})}),
+        new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})})})})})})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }),
         new Tree(null, "/", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }),
-        new Tree(null, "+", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "+", new Tree[] { })})})})})}),
+        new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})})})})})})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }),
         new Tree(null, "/", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "?", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}),
+        new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })})}),
         new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}),
+        new Tree(null, "s", new Tree[] { })})})})}),
+        new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }),
         new Tree(null, "l", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
@@ -680,55 +626,44 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}),
         new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
-        new Tree(null, "s", new Tree[] { })})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "s", new Tree[] { })})})})})})}),
         new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }),
         new Tree(null, "/", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})})})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "++", new Tree[] { new Tree(null, "[", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { new Tree(null, "a", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "++", new Tree[] { new Tree(null, "[", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { new Tree(null, "a", new Tree[] { }),
         new Tree(null, "z", new Tree[] { })}),
         new Tree(null, "-", new Tree[] { new Tree(null, "A", new Tree[] { }),
         new Tree(null, "Z", new Tree[] { })}),
         new Tree(null, "-", new Tree[] { new Tree(null, "0", new Tree[] { }),
         new Tree(null, "9", new Tree[] { })}),
-        new Tree(null, "range", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "range", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})}),
-        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\"", new Tree[] { })}),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})}),
+        new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\"", new Tree[] { })}),
         new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
         new Tree(null, "s", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "p", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "d", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})})}),
-        new Tree(null, null, new Tree[] { })})})})}),
+        new Tree(null, "d", new Tree[] { })})})})})})})})})})})})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})})})}),
-        new Tree(null, null, new Tree[] { })}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { }),
+        new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { }),
         new Tree(null, "\"", new Tree[] { })})})})}),
         new Tree(null, "", new Tree[] { })})})})}),
         new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }),
@@ -738,16 +673,15 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "p", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "d", new Tree[] { })}),
-        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }),
         new Tree(null, "n", new Tree[] { })})})})}),
         new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }),
+        new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }),
         new Tree(null, "r", new Tree[] { })})})})}),
         new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})}),
-        new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})}),
+        new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})}),
         new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "n", new Tree[] { })}),
-        new Tree(null, "range", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})}),
-        new Tree(null, null, new Tree[] { })})})})})})}),
+        new Tree(null, "range", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})})})})})})}),
         new Tree(null, null, new Tree[] { })})
         // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED
         ;
@@ -786,3 +720,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
 
 
 
+
+
+
+