checkpoint
[sbp.git] / src / edu / berkeley / sbp / meta / MetaGrammarTree.java
index 064ae41..423d059 100644 (file)
@@ -22,9 +22,27 @@ class MetaGrammarTree {
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
         // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED
 new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Grammar.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "G", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
@@ -42,7 +60,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "T", new edu.berkeley.sbp.Tree[] { }),
@@ -66,20 +84,51 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "H", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "H", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "H", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "H", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
@@ -87,14 +136,14 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "|", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "|", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ">", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ">", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("bang", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }),
@@ -105,7 +154,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starfollow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
@@ -119,23 +168,21 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
@@ -154,7 +201,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
@@ -169,7 +216,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
@@ -196,7 +243,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "x", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
@@ -207,7 +254,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
@@ -226,7 +273,7 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
@@ -248,10 +295,10 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "-", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "-", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "]", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
@@ -263,32 +310,27 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "g", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "g", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "-", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ":", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "T", new edu.berkeley.sbp.Tree[] { }),
@@ -298,27 +340,26 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "f", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "L", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })}),
+        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "{", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "{", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
@@ -330,105 +371,128 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "}", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "}", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "[", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "[", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("star", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "g", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "]", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "]", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "!", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "!", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "?", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("slash", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class,edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "H", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { })})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "~", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("caret", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "~", new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "T", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "R", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "f", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "L", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "W", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class,char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class,char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "z", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class,char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "A", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "Z", new edu.berkeley.sbp.Tree[] { })}),
@@ -441,20 +505,41 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plus", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plus", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { }),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "g", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "i", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }),
+        new edu.berkeley.sbp.Tree(null, "g", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }),
@@ -463,35 +548,35 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
         new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("lf", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("c", new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\\", new edu.berkeley.sbp.Tree[] { })})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, " ", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("lf", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, " ", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("lf", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})}),
         new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("star", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})}),
-        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.StringLiteral.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("star", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Range[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})}),
+        new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.Literal.class.getConstructor(new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("quoted", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})}),
         new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.meta.MetaGrammarBindings.Seq[][].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
         new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { })})}),
-        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})
+        new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("psx", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("seq2", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El[].class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.meta.MetaGrammarBindings.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.NonTerminalReference.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.meta.MetaGrammarBindings.class.getMethod("word", new Class[] {java.lang.String.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})})})
         // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED
                 ;
         } catch (Exception e) {
@@ -515,3 +600,21 @@ new edu.berkeley.sbp.Tree(null, new MetaGrammar.TargetReducer(new int[] {0}, Bin
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+