diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-07-21 15:52:00 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-07-21 15:52:00 -0400 |
| commit | 6b810efa8765047a669be0e9ff6501ddda5c49a9 (patch) | |
| tree | 0e65344afe3a58efdc662a22867bc8ab2948f3e6 /src/main/java/bjc/rgens/parser/RGrammar.java | |
| parent | dd4bdab11c715fa2dcc438f287806b50f8467fd3 (diff) | |
| parent | a4d1507727e9aeeea0982ebbda785a961902d46c (diff) | |
Merge cleanups
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammar.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RGrammar.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java index a2410c8..5b2ae08 100755 --- a/src/main/java/bjc/rgens/parser/RGrammar.java +++ b/src/main/java/bjc/rgens/parser/RGrammar.java @@ -2,6 +2,15 @@ package bjc.rgens.parser; import static bjc.utils.data.IPair.pair; +import bjc.utils.data.IPair; +import bjc.utils.data.ITree; +import bjc.utils.data.Pair; +import bjc.utils.data.Tree; +import bjc.utils.funcutils.StringUtils; +import bjc.utils.ioutils.ReportWriter; + +import bjc.rgens.parser.elements.*; + import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; @@ -14,7 +23,6 @@ import java.util.Set; import org.apache.commons.text.similarity.LevenshteinDistance; -import bjc.rgens.parser.elements.CaseElement; import bjc.utils.data.IPair; import bjc.utils.ioutils.ReportWriter; import edu.gatech.gtri.bktree.BkTreeSearcher; @@ -285,18 +293,27 @@ public class RGrammar { * initial rule. */ public void setInitialRule(String initRule) { + setInitialRule(initRule, new Tree<>()); + } + + public void setInitialRule(String initRule, ITree<String> errs) { /* Passing null, nulls our initial rule. */ if (initRule == null) { this.initialRule = null; + return; } if (initRule.equals("")) { - throw new GrammarException("The empty string is not a valid rule name"); + errs.addChild("ERROR: The empty string is not a valid rule name"); + + return; } else if (!rules.containsKey(initRule)) { - String msg = String.format("No rule '%s' local to this grammar (%s) defined.", initRule, name); + String msg = String.format("ERROR: No rule '%s' local to this grammar (%s) defined.", initRule, name); - throw new GrammarException(msg); + errs.addChild(msg); + + return; } initialRule = initRule; |
