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/elements | |
| parent | dd4bdab11c715fa2dcc438f287806b50f8467fd3 (diff) | |
| parent | a4d1507727e9aeeea0982ebbda785a961902d46c (diff) | |
Merge cleanups
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements')
| -rw-r--r-- | src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java | 21 | ||||
| -rw-r--r-- | src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java | 1 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java index 82bc6ee..9385ded 100644 --- a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java @@ -2,15 +2,30 @@ package bjc.rgens.parser.elements; import bjc.rgens.parser.GenerationState; import bjc.rgens.parser.RGrammarParser; + import bjc.utils.data.IPair; import bjc.utils.funcdata.IList; + + +import bjc.utils.data.ITree; +import bjc.utils.data.Tree; +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcutils.StringUtils; + import bjc.utils.gen.WeightedRandom; import bjc.utils.ioutils.LevelSplitter; +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<>(); @@ -24,10 +39,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); } } diff --git a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java index 013f903..eb36af8 100644 --- a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java +++ b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java @@ -37,6 +37,7 @@ public abstract class VariableElement { for (String npart : parts) { // @HACK + // // This is so that inline refs to hypenized rule names // work. Not sure this is a good impl. strategy String part = npart.replaceAll("\\(|\\)", ""); |
