X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FGrammarBuilder.java;h=c7ef44ac0c696c4092f12624c86e9bb864fb6c7e;hp=d9b04c23dd0d63327530a12fd0b750b3d5b779b5;hb=8ed318cb9c9f27861adf519522cbe9d95f094dab;hpb=bf51becde116f08ec503a4a83e709277aaa98e36 diff --git a/src/edu/berkeley/sbp/meta/GrammarBuilder.java b/src/edu/berkeley/sbp/meta/GrammarBuilder.java index d9b04c2..c7ef44a 100644 --- a/src/edu/berkeley/sbp/meta/GrammarBuilder.java +++ b/src/edu/berkeley/sbp/meta/GrammarBuilder.java @@ -84,6 +84,7 @@ public class GrammarBuilder { if (head.equals("Elements")) return seq2((ElementNode[])Reflection.rebuild(walkChildren(t), ElementNode[].class)); if (head.equals("NonTerminalReference")) return new ReferenceNode(stringifyChildren(t.child(0))); //if (head.equals(")")) return new ReferenceNode(stringifyChildren(t.child(0))); + if (head.equals("{")) return new XTree((Seq)walk(t.child(0))); if (head.equals("::")) return tag((String)walk(t.child(0)), (Seq)walk(t.child(1))); if (head.equals("++")) return plusmax((ElementNode)walk(t.child(0))); if (head.equals("+")) return plus((ElementNode)walk(t.child(0))); @@ -501,9 +502,9 @@ public class GrammarBuilder { } - /* - public class XTree extends ElementNode { - public Seq body; + public class XTree extends ElementNode { + public Seq body; + public XTree(Seq seq) { this.body = seq; } public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { Union u = new Union(null, false); Sequence s = body.build(cx, u, null, dropall); @@ -518,5 +519,4 @@ public class GrammarBuilder { return u2; } } - */ }