From: adam Date: Wed, 5 Jul 2006 04:00:24 +0000 (-0400) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~209 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=8abe88ea7a5d7b1fc20c45b05e6397dad81e7cdb checkpoint darcs-hash:20060705040024-5007d-b154593b9d848adadc403c3979c2d8981db69f2d.gz --- diff --git a/Makefile b/Makefile index 181de0b..8b46585 100644 --- a/Makefile +++ b/Makefile @@ -73,6 +73,13 @@ boot: edu.berkeley.sbp.jar ../tests/meta.g \ edu.berkeley.sbp.misc.MetaGrammarTree +newboot: edu.berkeley.sbp.jar + cd src; \ + $(java) -cp ../$< \ + edu.berkeley.sbp.misc.Demo \ + ../tests/meta.g \ + edu.berkeley.sbp.misc.DemoMetaGrammarTree + edu.berkeley.sbp.jar: $(shell find src -name \*.java) mkdir -p bin javac -cp javax.servlet.jar:tests/ArchSimA3.jar:tests/grappa.jar -d bin -sourcepath src $^ diff --git a/src/edu/berkeley/sbp/Forest.java b/src/edu/berkeley/sbp/Forest.java index 937a229..170604a 100644 --- a/src/edu/berkeley/sbp/Forest.java +++ b/src/edu/berkeley/sbp/Forest.java @@ -222,7 +222,7 @@ public abstract class Forest /*extends PrintableTree>*/ } protected String headToString() { return tag==null?null:tag.toString(); } - protected String headToJava() { return null; } + protected String headToJava() { return "null"; } protected String left() { return "{"; } protected String right() { return "}"; } protected boolean ignoreSingleton() { return false; } @@ -324,7 +324,7 @@ public abstract class Forest /*extends PrintableTree>*/ private static final Forest[] emptyForestArray = new Forest[0]; protected String headToString() { return null; } - protected String headToJava() { return null; } + protected String headToJava() { return "null"; } protected String left() { return ""; } protected boolean ignoreSingleton() { return true; } diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index ca351d3..38fcd32 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -42,7 +42,15 @@ public class Tree } protected String headToString() { return head==null?null:head.toString(); } - protected String headToJava() { return head==null?null:StringUtil.toJavaString(head+""); } + protected String headToJava() { + if (head==null) return null; + if (head instanceof ToJava) { + StringBuffer sb = new StringBuffer(); + ((ToJava)head).toJava(sb); + return sb.toString(); + } + return head==null?"null":("\""+StringUtil.toJavaString(head.toString())+"\""); + } protected String left() { return "{"; } protected String right() { return "}"; } protected boolean ignoreSingleton() { return false; } diff --git a/src/edu/berkeley/sbp/bind/Bindable.java b/src/edu/berkeley/sbp/bind/Bindable.java index 9e5564e..c2c0a02 100644 --- a/src/edu/berkeley/sbp/bind/Bindable.java +++ b/src/edu/berkeley/sbp/bind/Bindable.java @@ -10,7 +10,7 @@ import java.lang.reflect.*; import java.io.*; import static edu.berkeley.sbp.util.Reflection.*; -public abstract class Bindable { +public abstract class Bindable implements ToJava { public abstract String getSimpleName(); public abstract String toString(); @@ -37,6 +37,15 @@ public abstract class Bindable { public Object impose(Object[] fields) { return Reflection.impose(_method, fields); } public Annotation[][] getArgAnnotations() { return _method.getParameterAnnotations(); } public String[] getArgNames() { return new String[_method.getParameterTypes().length]; } + public void toJava(StringBuffer sb) { + sb.append("Bindable.create("); + sb.append(_method.getDeclaringClass().getName().replace('$','.')); + sb.append(".class.getMethod(\""); + sb.append(_method.getName()); + sb.append("\", "); + appendClassArray(sb, _method.getParameterTypes()); + sb.append("))"); + } } private static class BindableConstructor extends Bindable { @@ -48,6 +57,13 @@ public abstract class Bindable { public Object impose(Object[] fields) { return Reflection.impose(_constructor, fields); } public Annotation[][] getArgAnnotations() { return _constructor.getParameterAnnotations(); } public String[] getArgNames() { return new String[_constructor.getParameterTypes().length]; } + public void toJava(StringBuffer sb) { + sb.append("Bindable.create("); + sb.append(_constructor.getDeclaringClass().getName().replace('$','.')); + sb.append(".class.getConstructor("); + appendClassArray(sb, _constructor.getParameterTypes()); + sb.append("))"); + } } private static class BindableClass extends Bindable { @@ -71,6 +87,27 @@ public abstract class Bindable { ret[i] = fields[i].getName(); return ret; } + public void toJava(StringBuffer sb) { + sb.append("Bindable.create("); + sb.append(_class.getName().replace('$','.')); + sb.append(".class)"); + } + } + + + private static void appendClassArray(StringBuffer sb, Class[] c) { + sb.append("new Class[] {"); + for(int i=0; i res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1(); + Tree res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(args[0])).expand1(); MetaGrammar.Meta.MetaGrammarFile mgf = m.new MetaGrammarFile(res); MetaGrammar.BuildContext bc = new MetaGrammar.BuildContext(mgf); Union meta = mgf.get("s").build(bc); - Tree t = new CharParser(meta).parse(new FileInputStream(s[1])).expand1(); - + Tree t = new CharParser(meta).parse(new FileInputStream(args[0])).expand1(); + */ + Tree t = DemoMetaGrammarTree.meta; Union u = Demo.make(t, "s"); System.err.println(); System.err.println("== parsing with parsed grammar ================================================================================="); - t = new CharParser((Union)u).parse(new FileInputStream(s[1])).expand1(); - System.out.println(t.toPrettyString()); - - System.err.println("== parsing with parsed-parsed grammar =========================================================================="); - t = new CharParser(new Context(t, m).build()).parse(new FileInputStream(s[1])).expand1(); + t = new CharParser((Union)u).parse(new FileInputStream(args[0])).expand1(); System.out.println(t.toPrettyString()); + //Forest fs = new CharParser(make()).parse(new FileInputStream(args[0])); + //System.out.println(fs.expand1()); + + //GraphViz gv = new GraphViz(); + //fs.toGraphViz(gv); + //FileOutputStream fox = new FileOutputStream("out.dot"); + //gv.dump(fox); + //fox.close(); + + t.toJava(out); + out.append("\n // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED\n"); + + for(String s = br.readLine(); s != null; s = br.readLine()) out.append(s+"\n"); + br.close(); + + OutputStream os = new FileOutputStream(fileName); + PrintWriter p = new PrintWriter(new OutputStreamWriter(os)); + p.println(out.toString()); + p.flush(); + os.close(); } public static class ReflectiveMetaPlain extends ReflectiveMeta { @@ -43,7 +83,7 @@ public class Demo { } } - public static class ReflectiveMeta extends MetaGrammar.Meta { + public static class ReflectiveMeta /*extends MetaGrammar.Meta*/ { private final Class _cl; private final Class[] _inner; public ReflectiveMeta() { @@ -197,24 +237,34 @@ public class Demo { } } public Sequence makeSequence(Production p) { - return Sequence.rewritingSequence(new TargetReducer(p, buildSequence(p), "reducer-"+this, _bindable, isRaw()), + return Sequence.rewritingSequence(new TargetReducer(buildSequence(p), _bindable, isRaw()), p.elements, p.labels, p.drops); } } - public static class TargetReducer implements Tree.TreeFunctor { + public static class TargetReducer implements Tree.TreeFunctor, ToJava { private int[] map; - private String name; private Bindable _bindable; private boolean _israw; - public TargetReducer(Production p, int[] map, String name, Bindable b, boolean raw) { + + public void toJava(StringBuffer sb) { + sb.append("new Demo.TargetReducer(new int[] {"); + for(int i=0; i> t) { if (_israw) return _bindable.impose(new Object[] { t }); ArrayList ret = new ArrayList(); @@ -241,6 +291,7 @@ public class Demo { public static Union cached = null; public static Union make() { + /* if (cached != null) return cached; try { ReflectiveMeta m = new ReflectiveMeta(); @@ -253,6 +304,8 @@ public class Demo { } catch (Exception e) { throw new RuntimeException(e); } + */ + return make(DemoMetaGrammarTree.meta, "s"); } public static Union make(Tree t, String s) { return make(t, s, new ReflectiveMeta()); } public static Union make(Tree t, String s, ReflectiveMeta rm) { diff --git a/src/edu/berkeley/sbp/misc/DemoMetaGrammarTree.java b/src/edu/berkeley/sbp/misc/DemoMetaGrammarTree.java new file mode 100644 index 0000000..a821ef8 --- /dev/null +++ b/src/edu/berkeley/sbp/misc/DemoMetaGrammarTree.java @@ -0,0 +1,507 @@ +package edu.berkeley.sbp.misc; +import edu.berkeley.sbp.*; +import edu.berkeley.sbp.util.*; +import edu.berkeley.sbp.bind.*; + +public class DemoMetaGrammarTree { + static final Tree meta; + static { + Tree t = null; + try { + t = + + + + + // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED +new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.Grammar.class), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Tree.ArrayBuildingTreeFunctor(), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "g", 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, "m", new edu.berkeley.sbp.Tree[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "G", 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, "m", new edu.berkeley.sbp.Tree[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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, 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plusfollow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("bang", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("starfollow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ":", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ">", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "~", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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[] { }), + 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[] { }), + 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("star", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "+", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("arrow", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "*", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("slash", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class,edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("caret", 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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.Range.class.getConstructor(new Class[] {char.class,char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "0", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "9", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plus", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "\"", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { })})})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("lf", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { })})})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("lf", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tag", new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("starmax", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("star", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.AnonUn.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("tilde", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.CharClass.class.getConstructor(new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.Range.class.getConstructor(new Class[] {char.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})})})})})})})})})})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.StringLiteral.class.getConstructor(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 Demo.TargetReducer(new int[] {}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("retur", new Class[] {})), false), new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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 Demo.TargetReducer(new int[] {0,1}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminal.class.getConstructor(new Class[] {java.lang.String.class,edu.berkeley.sbp.misc.Demo.MG.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, "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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("psx", new Class[] {edu.berkeley.sbp.misc.Demo.MG.Seq.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("seq", new Class[] {edu.berkeley.sbp.misc.Demo.MG.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 Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.class.getMethod("plusmax", new Class[] {edu.berkeley.sbp.misc.Demo.MG.El.class})), false), new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, new Demo.TargetReducer(new int[] {0}, Bindable.create(edu.berkeley.sbp.misc.Demo.MG.NonTerminalReference.class), false), new 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) { + throw new RuntimeException(e); + } + meta = t; + } +} + + + + + + + diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index 9587a14..bd9cb7e 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -478,13 +478,17 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix } public static void main(String[] s) throws Exception { + /* try { + FIXME FIXME + Demo.ReflectiveMeta m = new Demo.ReflectiveMeta(TibDoc.TD.class); Tree res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1(); MetaGrammar.Meta.MetaGrammarFile mgf = m.new MetaGrammarFile(res); MetaGrammar.BuildContext bc = new MetaGrammar.BuildContext(mgf); + Union tibgram = mgf.get("s").build(bc); System.err.println("parsing " + s[1]); @@ -493,6 +497,9 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix Object result = ((Functor)t.head()).invoke(t); System.out.println((TD.Doc)result); + */ + + /* System.out.println("parsing " + s[0]); Tree res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1(); @@ -510,7 +517,7 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix p.println(sb); p.flush(); p.close(); - */ + } catch (Ambiguous a) { FileOutputStream fos = new FileOutputStream("/Users/megacz/Desktop/out.dot"); PrintWriter p = new PrintWriter(new OutputStreamWriter(fos)); @@ -524,6 +531,7 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix } catch (Exception e) { e.printStackTrace(); } + */ } } diff --git a/src/edu/berkeley/sbp/util/PrintableTree.java b/src/edu/berkeley/sbp/util/PrintableTree.java index a6c2f6e..f32b0c9 100644 --- a/src/edu/berkeley/sbp/util/PrintableTree.java +++ b/src/edu/berkeley/sbp/util/PrintableTree.java @@ -70,7 +70,7 @@ public abstract class PrintableTree implements Iterable public void toJava(StringBuffer sb) { sb.append("new "+this.getClass().getName()+"(null, "); String head = headToJava(); - sb.append(head==null ? "null" : "\"" + head + "\""); + sb.append(head); sb.append(", new "+this.getClass().getName()+"[] { "); boolean first = true; for(T t : this) {