diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java index 63b9ca6..2a13be7 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java @@ -295,7 +295,7 @@ public class WeightedGrammar<E> { IList<T> returnedList = new FunctionalList<>(); - IList<E> genRules = new FunctionalList(initRules); + IList<E> genRules = new FunctionalList<>(initRules); if(specialMarker != null) { if(specialMarker.test(initRules)) { @@ -390,7 +390,12 @@ public class WeightedGrammar<E> { * @return The set of all rule names in this grammar */ public IList<E> getRuleNames() { - return rules.keyList(); + IList<E> ruleNames = new FunctionalList<>(); + + ruleNames.addAll(rules.keyList()); + ruleNames.addAll(specialRules.keyList()); + + return ruleNames; } /** @@ -417,6 +422,10 @@ public class WeightedGrammar<E> { return initialRule != null && !initialRule.equalsIgnoreCase(""); } + public boolean hasRule(E ruleName) { + return rules.containsKey(ruleName) || specialRules.containsKey(ruleName); + } + /** * Prefix a given rule with a token multiple times * |
