summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java')
-rw-r--r--src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
index 917dd33..269cc4f 100644
--- a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
@@ -3,16 +3,23 @@ package bjc.rgens.parser.elements;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.RGrammarParser;
-import bjc.utils.data.IPair;
+import bjc.utils.data.ITree;
+import bjc.utils.data.Tree;
import bjc.utils.funcdata.FunctionalList;
-import bjc.utils.funcdata.IList;
import bjc.utils.funcutils.StringUtils;
import bjc.utils.gen.WeightedRandom;
+import java.util.ArrayList;
+import java.util.List;
+
public class InlineRuleCaseElement extends CaseElement {
public final WeightedRandom<CaseElement> elements;
public InlineRuleCaseElement(String... parts) {
+ this(new Tree<>(), parts);
+ }
+
+ public InlineRuleCaseElement(ITree<String> errs, String... parts) {
super(true);
this.elements = new WeightedRandom<>();
@@ -26,10 +33,10 @@ public class InlineRuleCaseElement extends CaseElement {
partArr = new String[] {part};
}
- IPair<IList<CaseElement>, Integer> par = RGrammarParser.parseElementString(partArr);
- int prob = par.getRight();
+ List<CaseElement> elms = new ArrayList<>();
+ int prob = RGrammarParser.parseElementString(partArr, elms, errs);
- for(CaseElement elm : par.getLeft()) {
+ for(CaseElement elm : elms) {
elements.addProbability(prob, elm);
}
}