X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FGrammarBuilder.java;h=2b1d7652fb2b87f72a7869137ba781d11b9a106b;hp=c7ef44ac0c696c4092f12624c86e9bb864fb6c7e;hb=c2f1ce888172342cfd428355ee01326dd37c36eb;hpb=8ed318cb9c9f27861adf519522cbe9d95f094dab diff --git a/src/edu/berkeley/sbp/meta/GrammarBuilder.java b/src/edu/berkeley/sbp/meta/GrammarBuilder.java index c7ef44a..2b1d765 100644 --- a/src/edu/berkeley/sbp/meta/GrammarBuilder.java +++ b/src/edu/berkeley/sbp/meta/GrammarBuilder.java @@ -100,7 +100,7 @@ public class GrammarBuilder { if (head.equals("Quoted")) return stringifyChildren(t); if (head.equals("Literal")) return new LiteralNode((String)walk(t.child(0))); if (head.equals("->")) return arrow((Seq)walk(t.child(0)), (ElementNode)walk(t.child(1))); - if (head.equals("DropNT")) return new NonTerminalNode((String)walk(t.child(0)), (Seq[][])walk(t.child(1)), true, null, true); + if (head.equals("DropNT")) return new NonTerminalNode((String)walk(t.child(0)), (Seq[][])walkChildren(t.child(1)), false, null, true); if (head.equals("=") && t.size()==2) return new NonTerminalNode((String)walk(t.child(0)), (Seq[][])walk(t.child(1)), true, null, false); if (head.equals("=")) return new NonTerminalNode((String)walk(t.child(0)), (Seq[][])walk(t.child(2)), true, (String)walk(t.child(1)), false); if (head.equals("&")) return and2((Seq)walk(t.child(0)), (Seq)walk(t.child(1))); @@ -327,8 +327,6 @@ public class GrammarBuilder { if (!drops[i]) if (idx==-1) idx = i; else multiNonDrop = true; - if (tag==null && multiNonDrop) - throw new Error("multiple non-dropped elements in sequence: " + Sequence.create(els, "")); for(int i=0; i