summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/gen
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java13
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java2
2 files changed, 11 insertions, 4 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
*
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
index b73b205..4819ca2 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
@@ -75,8 +75,6 @@ public class WeightedRandom<E> {
* @return A random value selected in a weighted fashion.
*/
public E generateValue() {
- System.out.println("Total chance is " + totalChance);
-
IHolder<Integer> randomValue = new Identity<>(
source.nextInt(totalChance));
IHolder<E> currentResult = new Identity<>();