From: adam Date: Wed, 28 Mar 2007 00:28:50 +0000 (-0400) Subject: clean up metagrammar handling of drop and question-mark X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=0c8e6b67673f47003a92c496a9d005ab7d5354fa;hp=eef891a53c43901acccac0dead16a79dbdb34c77 clean up metagrammar handling of drop and question-mark darcs-hash:20070328002850-5007d-fe9e50e8faf3831371b2dc77b062876d200c4ee1.gz --- diff --git a/src/edu/berkeley/sbp/meta/GrammarBuilder.java b/src/edu/berkeley/sbp/meta/GrammarBuilder.java index 3651be3..e6e06ad 100644 --- a/src/edu/berkeley/sbp/meta/GrammarBuilder.java +++ b/src/edu/berkeley/sbp/meta/GrammarBuilder.java @@ -264,7 +264,7 @@ public class GrammarBuilder { public class NonTerminalNode extends UnionNode { public boolean alwaysDrop; public String name = null; - public boolean drop() { return alwaysDrop; } + public boolean drop(Context cx) { return alwaysDrop; } public NonTerminalNode(String name, Seq[][] sequences, boolean rep, String sep, boolean alwaysDrop) { super(sequences, rep, sep==null?null:(prefix + sep)); this.name = prefix + name; @@ -275,7 +275,7 @@ public class GrammarBuilder { public class Seq { public boolean alwaysDrop = false; - public boolean drop() { return alwaysDrop; } + public boolean drop(Context cx) { return alwaysDrop; } HashSet and = new HashSet(); HashSet not = new HashSet(); ElementNode[] elements; @@ -326,13 +326,10 @@ public class GrammarBuilder { public Sequence build0(Context cx, NonTerminalNode cnt, boolean dropall) { boolean[] drops = new boolean[elements.length]; Element[] els = new Element[elements.length]; - dropall |= drop(); + dropall |= drop(cx); for(int i=0; i Z + Y = Y:: "a" B? "a" + Z = Z:: "a" "b"* "a" + B = "b" +}