summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-12-03 19:23:06 -0500
committerBen Culkin <scorpress@gmail.com>2020-12-03 19:23:06 -0500
commit223dc6d10617d282204c515cf3794d59a31ebf16 (patch)
treeba95ae5a14eecbef4e1543f154ee2b279b30f033
parent80aa147aedc91356276d4346efb1ea62ea5b06f9 (diff)
Adapt to esodata changes
-rwxr-xr-xsrc/main/java/bjc/rgens/ZadronsPouch.java6
-rw-r--r--src/main/java/bjc/rgens/parser/ConfigLoader.java32
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammar.java20
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarBuilder.java74
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarFormatter.java8
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarParser.java36
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarTest.java4
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/Rule.java26
-rw-r--r--src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java6
-rw-r--r--src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java10
-rw-r--r--src/main/java/bjc/rgens/parser/templates/LiteralTemplateElement.java4
-rw-r--r--src/main/java/bjc/rgens/parser/templates/LiveTemplateElement.java4
12 files changed, 115 insertions, 115 deletions
diff --git a/src/main/java/bjc/rgens/ZadronsPouch.java b/src/main/java/bjc/rgens/ZadronsPouch.java
index 0f5be70..b50c8f1 100755
--- a/src/main/java/bjc/rgens/ZadronsPouch.java
+++ b/src/main/java/bjc/rgens/ZadronsPouch.java
@@ -2,7 +2,7 @@ package bjc.rgens;
import bjc.funcdata.FunctionalList;
import bjc.funcdata.FunctionalStringTokenizer;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
import bjc.utils.gen.RandomGrammar;
/**
@@ -21,7 +21,7 @@ public class ZadronsPouch {
ZadronsPouch zp = new ZadronsPouch();
for (int i = 0; i < 100; i++) {
- IList<String> ls = zp.grammar.generateListValues("[item]", " ");
+ ListEx<String> ls = zp.grammar.generateListValues("[item]", " ");
StringBuilder sb = new StringBuilder();
@@ -179,7 +179,7 @@ public class ZadronsPouch {
}
private void addRule(String rule, String... cases) {
- IList<IList<String>> cses = new FunctionalList<>();
+ ListEx<ListEx<String>> cses = new FunctionalList<>();
for (String strang : cases) {
cses.add(FunctionalStringTokenizer.fromString(strang).toList(s -> s));
diff --git a/src/main/java/bjc/rgens/parser/ConfigLoader.java b/src/main/java/bjc/rgens/parser/ConfigLoader.java
index 8427726..3cfed75 100644
--- a/src/main/java/bjc/rgens/parser/ConfigLoader.java
+++ b/src/main/java/bjc/rgens/parser/ConfigLoader.java
@@ -1,8 +1,8 @@
package bjc.rgens.parser;
-import bjc.data.ITree;
-import bjc.data.QueuedIterator;
import bjc.data.Tree;
+import bjc.data.QueuedIterator;
+import bjc.data.SimpleTree;
import bjc.utils.funcutils.StringUtils;
@@ -53,7 +53,7 @@ public class ConfigLoader {
throws IOException {
String msg = String.format("INFO: Loading config file from path '%s'", cfgFile);
- ITree<String> errTree = new Tree<>(msg);
+ Tree<String> errTree = new SimpleTree<>(msg);
return fromConfigFile(cfgFile, lopts, errTree);
}
@@ -75,7 +75,7 @@ public class ConfigLoader {
* If something goes wrong during configuration loading.
*/
public static ConfigSet fromConfigFile(Path cfgFile, LoadOptions lopts,
- ITree<String> errs) throws IOException {
+ Tree<String> errs) throws IOException {
lopts.cfgFile = cfgFile;
lopts.cfgSet = new ConfigSet();
@@ -113,8 +113,8 @@ public class ConfigLoader {
// We should support some sort of line
// continuation ability, probably using the '\'
// since that what UNIX uses in most places
- ITree<String> header
- = new Tree<>(String.format("INFO: Processing line %d", lno));
+ Tree<String> header
+ = new SimpleTree<>(String.format("INFO: Processing line %d", lno));
String[] parts = StringUtils.levelSplit(ln, " ").toArray(new String[0]);
@@ -179,7 +179,7 @@ public class ConfigLoader {
// Load a line from a config file.
private static void loadConfigLine(String[] parts, LoadOptions lopts,
- ITree<String> errs) throws IOException {
+ Tree<String> errs) throws IOException {
if (parts.length < 2) {
// Must specify the type of config object you wish to
// load.
@@ -243,7 +243,7 @@ public class ConfigLoader {
// Load a 'directory' config object, by recursively attempting to
// auto-load all of the items in the directory as objects
private static void loadDirectory(String name, String[] parts, LoadOptions lopts,
- ITree<String> errs) {
+ Tree<String> errs) {
if (parts.length < 4) {
String fmt = String.format(
"ERROR: Must specify a path to load directory '%s' from", name);
@@ -271,7 +271,7 @@ public class ConfigLoader {
QueuedIterator<File> dirItr
= new QueuedIterator<>(dirPath.toFile().listFiles());
- ITree<String> header = new Tree<>(String.format(
+ Tree<String> header = new SimpleTree<>(String.format(
"INFO: Bulk-loading objects from directory '%s'", lopts.parent));
while (dirItr.hasNext()) {
@@ -279,7 +279,7 @@ public class ConfigLoader {
String fName = curFile.toString();
- ITree<String> kid = new Tree<>(
+ Tree<String> kid = new SimpleTree<>(
String.format("INFO: Processing object from path '%s'", fName));
Path oldPar = lopts.parent;
@@ -328,7 +328,7 @@ public class ConfigLoader {
// Actually do the work of loading a 'template' object
private static void doLoadTemplate(Reader rdr, String name, LoadOptions lopts,
- ITree<String> errs) throws IOException {
+ Tree<String> errs) throws IOException {
String actName;
long startFileTime = System.nanoTime();
@@ -385,7 +385,7 @@ public class ConfigLoader {
// Load a 'template' type grammar object
private static void loadTemplate(String name, String[] parts, LoadOptions lopts,
- ITree<String> errs) throws IOException {
+ Tree<String> errs) throws IOException {
if (parts.length < 4) {
String fmt = String.format(
"ERROR: Must specify a path to load template '%s' from", name);
@@ -413,7 +413,7 @@ public class ConfigLoader {
String fmt = String.format("INFO: Loading template '%s' from '%s'", name,
convPath);
- ITree<String> kid = new Tree<>(fmt);
+ Tree<String> kid = new SimpleTree<>(fmt);
Path oldPar = lopts.parent;
lopts.parent = convPath.getParent();
@@ -430,7 +430,7 @@ public class ConfigLoader {
// Actually load a 'grammar' object
private static void doLoadGrammar(Reader rdr, String name, LoadOptions lopts,
- ITree<String> errs, Path convPath) throws IOException {
+ Tree<String> errs, Path convPath) throws IOException {
String actName;
long startFileTime = System.nanoTime();
@@ -475,7 +475,7 @@ public class ConfigLoader {
// Load a 'grammar' object
private static void loadGrammar(String name, String[] parts, LoadOptions lopts,
- ITree<String> errs) {
+ Tree<String> errs) {
if (parts.length < 4) {
String fmt = String
.format("ERROR: Must provide a path to load grammar '%s' from", name);
@@ -508,7 +508,7 @@ public class ConfigLoader {
Reader rdr = new FileReader(convPath.toFile());
- ITree<String> kid = new Tree<>(String
+ Tree<String> kid = new SimpleTree<>(String
.format("INFO: Loading grammar '%s' from '%s'", name, convPath));
doLoadGrammar(rdr, name, lopts, kid, convPath);
diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java
index 612fcfe..47f2a1c 100755
--- a/src/main/java/bjc/rgens/parser/RGrammar.java
+++ b/src/main/java/bjc/rgens/parser/RGrammar.java
@@ -1,10 +1,10 @@
package bjc.rgens.parser;
-import static bjc.data.IPair.pair;
+import static bjc.data.Pair.pair;
-import bjc.data.IPair;
-import bjc.data.ITree;
+import bjc.data.Pair;
import bjc.data.Tree;
+import bjc.data.SimpleTree;
import bjc.utils.ioutils.ReportWriter;
import bjc.rgens.parser.elements.*;
@@ -44,10 +44,10 @@ public class RGrammar {
/**
* The post-processing find/replace pairs applied to this grammars outputs.
*/
- public List<IPair<String, String>> postprocs;
+ public List<Pair<String, String>> postprocs;
/* The default post-processing rules to apply. */
- private static final List<IPair<String, String>> builtinPostprocs;
+ private static final List<Pair<String, String>> builtinPostprocs;
/**
* Should we use the built-in post-processing procedures?
@@ -104,7 +104,7 @@ public class RGrammar {
static {
/* Collapse duplicate spaces */
- IPair<String, String> collapseDupSpaces = pair("\\s+", " ");
+ Pair<String, String> collapseDupSpaces = pair("\\s+", " ");
/* Built-in post-processing steps */
builtinPostprocs = Arrays.asList(collapseDupSpaces,
@@ -288,12 +288,12 @@ public class RGrammar {
String body = strang;
if (useBuiltinPostprocs) {
- for (IPair<String, String> par : builtinPostprocs) {
+ for (Pair<String, String> par : builtinPostprocs) {
body = body.replaceAll(par.getLeft(), par.getRight());
}
}
- for (IPair<String, String> par : postprocs) {
+ for (Pair<String, String> par : postprocs) {
body = body.replaceAll(par.getLeft(), par.getRight());
}
@@ -335,7 +335,7 @@ public class RGrammar {
* initial rule.
*/
public void setInitialRule(String initRule) {
- setInitialRule(initRule, new Tree<>());
+ setInitialRule(initRule, new SimpleTree<>());
}
/**
@@ -348,7 +348,7 @@ public class RGrammar {
* @param errs
* The tree to store errors in.
*/
- public void setInitialRule(String initRule, ITree<String> errs) {
+ public void setInitialRule(String initRule, Tree<String> errs) {
/* Passing null, nulls our initial rule. */
if (initRule == null) {
this.initialRule = null;
diff --git a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
index e7e799e..a1efcb3 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
@@ -9,13 +9,13 @@ import java.util.Map;
import java.util.Set;
import bjc.rgens.parser.elements.CaseElement;
-import bjc.data.IPair;
-import bjc.data.ITree;
import bjc.data.Pair;
import bjc.data.Tree;
+import bjc.data.SimplePair;
+import bjc.data.SimpleTree;
import bjc.funcdata.FunctionalList;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
import bjc.utils.funcutils.ListUtils;
import bjc.utils.funcutils.SetUtils;
@@ -62,7 +62,7 @@ public class RGrammarBuilder {
* The rule by that name, or a new one if none existed.
*/
public Rule getOrCreateRule(String rName) {
- return getOrCreateRule(rName, new Tree<>());
+ return getOrCreateRule(rName, new SimpleTree<>());
}
/**
@@ -76,7 +76,7 @@ public class RGrammarBuilder {
* @return
* The rule by that name, or a new one if none existed.
*/
- public Rule getOrCreateRule(String rName, ITree<String> errs) {
+ public Rule getOrCreateRule(String rName, Tree<String> errs) {
if(rName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -139,7 +139,7 @@ public class RGrammarBuilder {
* If the rule is either not valid or not defined in the grammar.
*/
public void setInitialRule(String init) {
- ITree<String> errs = new Tree<>();
+ Tree<String> errs = new SimpleTree<>();
setInitialRule(init, errs);
@@ -157,7 +157,7 @@ public class RGrammarBuilder {
* @throws IllegalArgumentException
* If the rule is either not valid or not defined in the grammar.
*/
- public void setInitialRule(String init, ITree<String> errs) {
+ public void setInitialRule(String init, Tree<String> errs) {
if (init == null) {
errs.addChild("init must not be null");
@@ -181,7 +181,7 @@ public class RGrammarBuilder {
* If the rule is either not valid or not defined in the grammar.
*/
public void addExport(String export) {
- addExport(export, new Tree<>());
+ addExport(export, new SimpleTree<>());
}
/**
@@ -195,7 +195,7 @@ public class RGrammarBuilder {
* @throws IllegalArgumentException
* If the rule is either not valid or not defined in the grammar.
*/
- public void addExport(String export, ITree<String> errs) {
+ public void addExport(String export, Tree<String> errs) {
if (export == null) {
errs.addChild("ERROR: Export name must not be null");
@@ -223,7 +223,7 @@ public class RGrammarBuilder {
* grammar, or if the suffix is invalid.
*/
public void suffixWith(String ruleName, List<CaseElement> suffixes) {
- affixWith(ruleName, suffixes, AffixType.SUFFIX, new Tree<>());
+ affixWith(ruleName, suffixes, AffixType.SUFFIX, new SimpleTree<>());
}
@@ -241,7 +241,7 @@ public class RGrammarBuilder {
* grammar, or if the prefix is invalid.
*/
public void prefixWith(String ruleName, List<CaseElement> prefixes) {
- affixWith(ruleName, prefixes, AffixType.PREFIX, new Tree<>());
+ affixWith(ruleName, prefixes, AffixType.PREFIX, new SimpleTree<>());
}
/**
@@ -258,7 +258,7 @@ public class RGrammarBuilder {
* grammar, or if the prefix/suffix is invalid.
*/
public void circumfixWith(String ruleName, List<CaseElement> prefixes) {
- affixWith(ruleName, prefixes, AffixType.CIRCUMFIX, new Tree<>());
+ affixWith(ruleName, prefixes, AffixType.CIRCUMFIX, new SimpleTree<>());
}
/**
@@ -277,7 +277,7 @@ public class RGrammarBuilder {
* grammar, or if the prefix/suffix is invalid.
*/
public void affixWith(String ruleName, List<CaseElement> affixes, AffixType type) {
- affixWith(ruleName, affixes, type, new Tree<>());
+ affixWith(ruleName, affixes, type, new SimpleTree<>());
}
/**
@@ -297,7 +297,7 @@ public class RGrammarBuilder {
* If the rule name is either invalid or not defined by this
* grammar, or if the prefix/suffix is invalid.
*/
- public void affixWith(String ruleName, List<CaseElement> affixes, AffixType type, ITree<String> errs) {
+ public void affixWith(String ruleName, List<CaseElement> affixes, AffixType type, Tree<String> errs) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -318,10 +318,10 @@ public class RGrammarBuilder {
List<List<CaseElement>> affixLists = powerList(elements);
- FunctionalList<IPair<Integer, RuleCase>> newCases = new FunctionalList<>();
- IList<IPair<Integer, RuleCase>> caseList = rules.get(ruleName).getCases();
+ FunctionalList<Pair<Integer, RuleCase>> newCases = new FunctionalList<>();
+ ListEx<Pair<Integer, RuleCase>> caseList = rules.get(ruleName).getCases();
- for (IPair<Integer, RuleCase> ruleCase : caseList) {
+ for (Pair<Integer, RuleCase> ruleCase : caseList) {
RuleCase cas = ruleCase.getRight();
for(List<CaseElement> affixList : affixLists) {
@@ -344,12 +344,12 @@ public class RGrammarBuilder {
}
- newCases.add(new Pair<>(ruleCase.getLeft(), cas.withElements(newCase)));
+ newCases.add(new SimplePair<>(ruleCase.getLeft(), cas.withElements(newCase)));
}
}
- for (IPair<Integer, RuleCase> newCase : newCases) {
+ for (Pair<Integer, RuleCase> newCase : newCases) {
rules.get(ruleName).addCase(newCase.getRight(), newCase.getLeft());
}
}
@@ -360,7 +360,7 @@ public class RGrammarBuilder {
* @param ruleName The rule to perform despacing on.
*/
public void despaceRule(String ruleName) {
- despaceRule(ruleName, new Tree<>(), false);
+ despaceRule(ruleName, new SimpleTree<>(), false);
}
/**
@@ -370,7 +370,7 @@ public class RGrammarBuilder {
* @param errs The place to put errors.
* @param doTrace Whether or not to do tracing.
*/
- public void despaceRule(String ruleName, ITree<String> errs, boolean doTrace) {
+ public void despaceRule(String ruleName, Tree<String> errs, boolean doTrace) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -387,12 +387,12 @@ public class RGrammarBuilder {
return;
}
- IList<IPair<Integer, RuleCase>> caseList = rules.get(ruleName).getCases();
+ ListEx<Pair<Integer, RuleCase>> caseList = rules.get(ruleName).getCases();
- IList<IPair<Integer, RuleCase>> newCaseList = new FunctionalList<>();
+ ListEx<Pair<Integer, RuleCase>> newCaseList = new FunctionalList<>();
- for(IPair<Integer, RuleCase> cse : caseList) {
- newCaseList.add(new Pair<>(cse.getLeft(), new FlatRuleCase(cse.getRight().elementList)));
+ for(Pair<Integer, RuleCase> cse : caseList) {
+ newCaseList.add(new SimplePair<>(cse.getLeft(), new FlatRuleCase(cse.getRight().elementList)));
}
if (doTrace) {
@@ -410,7 +410,7 @@ public class RGrammarBuilder {
* @param ruleName The rule to set the weight for.
*/
public void setWeight(String ruleName) {
- setWeight(ruleName, new Tree<>());
+ setWeight(ruleName, new SimpleTree<>());
}
/**
@@ -419,7 +419,7 @@ public class RGrammarBuilder {
* @param ruleName The rule to set the weight for.
* @param errs The place to put errors.
*/
- public void setWeight(String ruleName, ITree<String> errs) {
+ public void setWeight(String ruleName, Tree<String> errs) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -446,7 +446,7 @@ public class RGrammarBuilder {
* @param recurLimit The limit of the number of times to recur.
*/
public void setRuleRecur(String ruleName, int recurLimit) {
- setRuleRecur(ruleName, recurLimit, new Tree<>());
+ setRuleRecur(ruleName, recurLimit, new SimpleTree<>());
}
/**
@@ -456,7 +456,7 @@ public class RGrammarBuilder {
* @param recurLimit The limit of the number of times to recur.
* @param errs The place to put errors.
*/
- public void setRuleRecur(String ruleName, int recurLimit, ITree<String> errs) {
+ public void setRuleRecur(String ruleName, int recurLimit, Tree<String> errs) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -483,7 +483,7 @@ public class RGrammarBuilder {
* @param descentFactor The amount to descend by every time.
*/
public void setDescent(String ruleName, int descentFactor) {
- setDescent(ruleName, descentFactor, new Tree<>());
+ setDescent(ruleName, descentFactor, new SimpleTree<>());
}
/**
@@ -493,7 +493,7 @@ public class RGrammarBuilder {
* @param descentFactor The amount to descend by every time.
* @param errs Place to put errors.
*/
- public void setDescent(String ruleName, int descentFactor, ITree<String> errs) {
+ public void setDescent(String ruleName, int descentFactor, Tree<String> errs) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -525,7 +525,7 @@ public class RGrammarBuilder {
* @param trials The number of trials for the distribution.
*/
public void setBinomial(String ruleName, int target, int bound, int trials) {
- setBinomial(ruleName, target, bound, trials, new Tree<>());
+ setBinomial(ruleName, target, bound, trials, new SimpleTree<>());
}
/**
@@ -537,7 +537,7 @@ public class RGrammarBuilder {
* @param trials The number of trials for the distribution.
* @param errs The place to put errors.
*/
- public void setBinomial(String ruleName, int target, int bound, int trials, ITree<String> errs) {
+ public void setBinomial(String ruleName, int target, int bound, int trials, Tree<String> errs) {
if (ruleName == null) {
errs.addChild("ERROR: Rule name must not be null");
@@ -589,7 +589,7 @@ public class RGrammarBuilder {
* @param reject The rejection for the rule.
*/
public void rejectRule(String rule, String reject) {
- rejectRule(rule, reject, new Tree<>());
+ rejectRule(rule, reject, new SimpleTree<>());
}
/**
@@ -599,7 +599,7 @@ public class RGrammarBuilder {
* @param reject The rejection for the rule.
* @param errs The place to put errors.
*/
- public void rejectRule(String rule, String reject, ITree<String> errs) {
+ public void rejectRule(String rule, String reject, Tree<String> errs) {
if (rule == null) {
errs.addChild("ERROR: Rule must not be null");
@@ -633,7 +633,7 @@ public class RGrammarBuilder {
* @param replace The replace string.
*/
public void findReplaceRule(String rule, String find, String replace) {
- findReplaceRule(rule, find, replace, new Tree<>());
+ findReplaceRule(rule, find, replace, new SimpleTree<>());
}
/**
@@ -644,7 +644,7 @@ public class RGrammarBuilder {
* @param replace The replace string.
* @param errs The place to put errors.
*/
- public void findReplaceRule(String rule, String find, String replace, ITree<String> errs) {
+ public void findReplaceRule(String rule, String find, String replace, Tree<String> errs) {
if (rule == null) {
errs.addChild("ERROR: Rule must not be null");
diff --git a/src/main/java/bjc/rgens/parser/RGrammarFormatter.java b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
index 773e3a5..4c89281 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarFormatter.java
@@ -5,8 +5,8 @@ import java.util.Map;
import java.util.Set;
import bjc.rgens.parser.elements.CaseElement;
-import bjc.data.IPair;
-import bjc.funcdata.IList;
+import bjc.data.Pair;
+import bjc.funcdata.ListEx;
/**
* @TODO Ben Culkin 9/8/18 :GrammarFormatter
@@ -58,7 +58,7 @@ public class RGrammarFormatter {
/* Format a rule. */
private static void processRule(Rule rule, StringBuilder sb) {
- IList<IPair<Integer, RuleCase>> cases = rule.getCases();
+ ListEx<Pair<Integer, RuleCase>> cases = rule.getCases();
StringBuilder ruleBuilder = new StringBuilder();
@@ -73,7 +73,7 @@ public class RGrammarFormatter {
ruleBuilder = new StringBuilder();
- for (IPair<Integer, RuleCase> cse : cases.tail()) {
+ for (Pair<Integer, RuleCase> cse : cases.tail()) {
sb.append("\n\t");
for (int i = 8; i < markerPos; i++) {
diff --git a/src/main/java/bjc/rgens/parser/RGrammarParser.java b/src/main/java/bjc/rgens/parser/RGrammarParser.java
index b25d036..785c434 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarParser.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarParser.java
@@ -10,8 +10,8 @@ import bjc.rgens.parser.elements.CaseElement;
import bjc.rgens.parser.elements.ChanceCaseElement;
import bjc.rgens.parser.elements.SerialCaseElement;
import bjc.rgens.parser.elements.VariableDefCaseElement;
-import bjc.data.ITree;
import bjc.data.Tree;
+import bjc.data.SimpleTree;
import bjc.utils.funcutils.StringUtils;
import bjc.utils.ioutils.blocks.Block;
import bjc.utils.ioutils.blocks.BlockReader;
@@ -45,7 +45,7 @@ public class RGrammarParser {
private static final String TMPL_TOPLEVEL_BLOCK_DELIM = "\\R\\t{%d}\\.?\\R";
private static void doAffixWith(String body, RGrammarBuilder build, int level,
- AffixType afxType, ITree<String> errs) {
+ AffixType afxType, Tree<String> errs) {
int idx = body.indexOf(" ");
if (idx == -1) {
@@ -69,7 +69,7 @@ public class RGrammarParser {
}
private static void doAutoVar(List<String> bits, RGrammarBuilder build, int level,
- boolean isRule, ITree<String> errs) {
+ boolean isRule, Tree<String> errs) {
if (bits.size() < 1) {
String msg = "Must specify name of variable and definition to autovivify";
@@ -130,7 +130,7 @@ public class RGrammarParser {
* @throws GrammarException
* Thrown if the grammar has a syntax error.
*/
- public static RGrammar readGrammar(Reader is, LoadOptions lopts, ITree<String> errs)
+ public static RGrammar readGrammar(Reader is, LoadOptions lopts, Tree<String> errs)
throws GrammarException {
String dlm = String.format(TMPL_TOPLEVEL_BLOCK_DELIM, 0);
@@ -156,7 +156,7 @@ public class RGrammarParser {
block.lineOffset + block.startLine,
block.lineOffset + block.endLine);
- ITree<String> kid = new Tree<>(msg);
+ Tree<String> kid = new SimpleTree<>(msg);
handleBlock(build, block.contents, 0, block.startLine, lopts, kid);
@@ -187,7 +187,7 @@ public class RGrammarParser {
/* Handles an arbitrary block. */
private static void handleBlock(RGrammarBuilder build, String block, int level,
- int lineOffset, LoadOptions lopts, ITree<String> errs) {
+ int lineOffset, LoadOptions lopts, Tree<String> errs) {
/* Discard empty blocks. */
if (block.equals("") || block.matches("\\R"))
return;
@@ -232,7 +232,7 @@ public class RGrammarParser {
/* Handle reading a block of pragmas. */
private static void handlePragmaBlock(String block, RGrammarBuilder build, int level,
- int lineOffset, LoadOptions lopts, ITree<String> errs) {
+ int lineOffset, LoadOptions lopts, Tree<String> errs) {
String dlm = String.format(TMPL_PRAGMA_BLOCK_DELIM, level);
try (BlockReader pragmaReader
@@ -281,7 +281,7 @@ public class RGrammarParser {
/* Handle an individual pragma in a block. */
private static void handlePragma(String pragma, RGrammarBuilder build, int level,
- int lineOffset, LoadOptions lopts, ITree<String> errs) {
+ int lineOffset, LoadOptions lopts, Tree<String> errs) {
int bodySep = pragma.indexOf(' ');
if (bodySep == -1)
@@ -300,7 +300,7 @@ public class RGrammarParser {
List<String> bits = StringUtils.levelSplit(pragmaBody, " ");
String fmt = String.format("INFO: Pragma '%s'", pragmaName);
- ITree<String> kid = new Tree<>(fmt);
+ Tree<String> kid = new SimpleTree<>(fmt);
switch (pragmaName) {
case "initial-rule": {
@@ -523,12 +523,12 @@ public class RGrammarParser {
/* Handle a block of a rule declaration and one or more cases. */
private static void handleRuleBlock(String ruleBlock, RGrammarBuilder build,
- int level, int lineOffset, LoadOptions lopts, ITree<String> errs) {
+ int level, int lineOffset, LoadOptions lopts, Tree<String> errs) {
String dlm = String.format(TMPL_RULEDECL_BLOCK_DELIM, level);
try (BlockReader ruleReader
= new SimpleBlockReader(dlm, new StringReader(ruleBlock))) {
- ITree<String> kid = new Tree<>();
+ Tree<String> kid = new SimpleTree<>();
if (ruleReader.hasNextBlock()) {
/* Rule with a declaration followed by multiple cases. */
@@ -569,7 +569,7 @@ public class RGrammarParser {
/* Handle a rule declaration and its initial case. */
private static Rule handleRuleDecl(RGrammarBuilder build, String declContents,
- int lineOffset, ITree<String> errs) {
+ int lineOffset, Tree<String> errs) {
int declSep = declContents.indexOf("\u2192");
if (declSep == -1) {
@@ -615,7 +615,7 @@ public class RGrammarParser {
/* Handle a single case of a rule. */
private static void handleRuleCase(String cse, RGrammarBuilder build, Rule rul,
- int lineOffset, ITree<String> errs) {
+ int lineOffset, Tree<String> errs) {
List<CaseElement> elms = new ArrayList<>();
int weights = parseElementString(cse, elms, errs);
@@ -625,7 +625,7 @@ public class RGrammarParser {
/* Handle a where block (a block with local rules). */
private static void handleWhereBlock(String block, RGrammarBuilder build, int level,
- int lineOffset, LoadOptions lopts, ITree<String> errs) {
+ int lineOffset, LoadOptions lopts, Tree<String> errs) {
int nlIndex = block.indexOf("\\nin");
if (nlIndex == -1) {
@@ -678,7 +678,7 @@ public class RGrammarParser {
* @return The weight of the resulting case.
*/
public static int parseElementString(String cses, List<CaseElement> elms) {
- return parseElementString(cses, elms, new Tree<>());
+ return parseElementString(cses, elms, new SimpleTree<>());
}
/**
@@ -694,7 +694,7 @@ public class RGrammarParser {
* @return The weight of the resulting case.
*/
public static int parseElementString(String cses, List<CaseElement> elms,
- ITree<String> errs) {
+ Tree<String> errs) {
/*
* @NOTE
*
@@ -721,7 +721,7 @@ public class RGrammarParser {
* @return The weight of the resulting case.
*/
public static int parseElementString(String[] cses, List<CaseElement> elms) {
- return parseElementString(cses, elms, new Tree<>());
+ return parseElementString(cses, elms, new SimpleTree<>());
}
/**
@@ -737,7 +737,7 @@ public class RGrammarParser {
* @return The weight of the resulting case.
*/
public static int parseElementString(String[] cses, List<CaseElement> caseParts,
- ITree<String> errs) {
+ Tree<String> errs) {
int weight = 1;
int repCount = 1;
diff --git a/src/main/java/bjc/rgens/parser/RGrammarTest.java b/src/main/java/bjc/rgens/parser/RGrammarTest.java
index 4ff3ceb..605fc5b 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarTest.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarTest.java
@@ -3,8 +3,8 @@ package bjc.rgens.parser;
import static bjc.rgens.parser.RGrammarLogging.error;
import static bjc.rgens.parser.RGrammarLogging.perf;
-import bjc.data.ITree;
import bjc.data.Tree;
+import bjc.data.SimpleTree;
import java.io.IOException;
@@ -47,7 +47,7 @@ public class RGrammarTest {
Path cfgPath = Paths.get(rsc.toURI());
String msg = String.format("INFO: Loading config file %s", cfgPath);
- ITree<String> errTree = new Tree<>(msg);
+ Tree<String> errTree = new SimpleTree<>(msg);
ConfigSet cfgSet = ConfigLoader.fromConfigFile(cfgPath, lopts, errTree);
diff --git a/src/main/java/bjc/rgens/parser/Rule.java b/src/main/java/bjc/rgens/parser/Rule.java
index 3ade828..78da82d 100755
--- a/src/main/java/bjc/rgens/parser/Rule.java
+++ b/src/main/java/bjc/rgens/parser/Rule.java
@@ -1,12 +1,12 @@
package bjc.rgens.parser;
import static bjc.rgens.parser.RGrammarLogging.fine;
-import static bjc.data.IPair.pair;
+import static bjc.data.Pair.pair;
-import bjc.data.IPair;
-import bjc.data.ITree;
+import bjc.data.Pair;
import bjc.data.Tree;
-import bjc.funcdata.IList;
+import bjc.data.SimpleTree;
+import bjc.funcdata.ListEx;
import bjc.utils.gen.WeightedRandom;
import java.util.ArrayList;
@@ -86,7 +86,7 @@ public class Rule {
public int trials;
private List<String> rejectionPreds;
- private List<IPair<String, String>> findReplaces;
+ private List<Pair<String, String>> findReplaces;
// @TODO This default should be configurable in some way
/**
@@ -165,7 +165,7 @@ public class Rule {
* @param reject The rejection pattern.
*/
public void addRejection(String reject) {
- addRejection(reject, new Tree<>());
+ addRejection(reject, new SimpleTree<>());
}
/**
@@ -174,7 +174,7 @@ public class Rule {
* @param reject The rejection pattern.
* @param errs The place to put errors.
*/
- public void addRejection(String reject, ITree<String> errs) {
+ public void addRejection(String reject, Tree<String> errs) {
try {
Pattern.compile(reject);
} catch (PatternSyntaxException psex) {
@@ -191,7 +191,7 @@ public class Rule {
* @param replace The replace string.
*/
public void addFindReplace(String find, String replace) {
- addFindReplace(find, replace, new Tree<>());
+ addFindReplace(find, replace, new SimpleTree<>());
}
/**
@@ -201,7 +201,7 @@ public class Rule {
* @param replace The replace string.
* @param errs The place to put errors.
*/
- public void addFindReplace(String find, String replace, ITree<String> errs) {
+ public void addFindReplace(String find, String replace, Tree<String> errs) {
try {
Pattern.compile(find);
} catch (PatternSyntaxException psex) {
@@ -253,7 +253,7 @@ public class Rule {
* @return
* All the cases in this rule.
*/
- public IList<IPair<Integer, RuleCase>> getCases() {
+ public ListEx<Pair<Integer, RuleCase>> getCases() {
return cases.getValues();
}
@@ -263,10 +263,10 @@ public class Rule {
* @param caseList
* The new list of cases.
*/
- public void replaceCases(IList<IPair<Integer, RuleCase>> caseList) {
+ public void replaceCases(ListEx<Pair<Integer, RuleCase>> caseList) {
this.cases = new WeightedRandom<>();
- for(IPair<Integer, RuleCase> cse : caseList) {
+ for(Pair<Integer, RuleCase> cse : caseList) {
RuleCase cs = cse.getRight();
cs.belongsTo = this;
cs.debugName = String.format("%s-%d", name, ++caseCount);
@@ -399,7 +399,7 @@ public class Rule {
conts = conts.replaceAll("\\s+", "");
}
- for(IPair<String, String> findRep : findReplaces) {
+ for(Pair<String, String> findRep : findReplaces) {
conts = conts.replaceAll(findRep.getLeft(), findRep.getRight());
}
state.setContents(conts);
diff --git a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
index 6f3d889..eda2224 100644
--- a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
@@ -4,8 +4,8 @@ import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.RGrammarParser;
-import bjc.data.ITree;
import bjc.data.Tree;
+import bjc.data.SimpleTree;
import bjc.utils.gen.WeightedRandom;
import bjc.utils.ioutils.LevelSplitter;
@@ -31,7 +31,7 @@ public class InlineRuleCaseElement extends CaseElement {
* @param parts The parts of this case element.
*/
public InlineRuleCaseElement(String... parts) {
- this(new Tree<>(), parts);
+ this(new SimpleTree<>(), parts);
}
/**
@@ -40,7 +40,7 @@ public class InlineRuleCaseElement extends CaseElement {
* @param errs The place to store errors in.
* @param parts The parts of this case element.
*/
- public InlineRuleCaseElement(ITree<String> errs, String... parts) {
+ public InlineRuleCaseElement(Tree<String> errs, String... parts) {
super(true);
this.elements = new WeightedRandom<>();
diff --git a/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java b/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java
index 45833f2..6303fa6 100644
--- a/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java
+++ b/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java
@@ -3,8 +3,8 @@ package bjc.rgens.parser.templates;
import bjc.rgens.parser.ConfigSet;
import bjc.rgens.parser.GenerationState;
-import bjc.data.ITree;
import bjc.data.Tree;
+import bjc.data.SimpleTree;
import java.io.Reader;
import java.util.ArrayList;
@@ -72,7 +72,7 @@ public class GrammarTemplate {
*
* @return The generated template.
*/
- public static GrammarTemplate readTemplate(Reader rdr, ITree<String> errs) {
+ public static GrammarTemplate readTemplate(Reader rdr, Tree<String> errs) {
List<TemplateElement> elements = new ArrayList<>();
GrammarTemplate template = new GrammarTemplate(elements);
@@ -84,7 +84,7 @@ public class GrammarTemplate {
String ln = scn.nextLine();
lno += 1;
- ITree<String> kid = new Tree<>(String.format("INFO: Line %d", lno));
+ Tree<String> kid = new SimpleTree<>(String.format("INFO: Line %d", lno));
switch(ln.charAt(0)) {
case '#':
// Ignore comments
@@ -106,7 +106,7 @@ public class GrammarTemplate {
return template;
}
- private static void handleLine(List<TemplateElement> elements, GrammarTemplate template, String ln, ITree<String> errs) {
+ private static void handleLine(List<TemplateElement> elements, GrammarTemplate template, String ln, Tree<String> errs) {
if(ln.matches("^.*?\\$@.+?@\\$.*$")) {
/*
* Handle live templates
@@ -117,7 +117,7 @@ public class GrammarTemplate {
}
}
- private static void handlePragma(List<TemplateElement> elements, GrammarTemplate template, String ln, ITree<String> errs) {
+ private static void handlePragma(List<TemplateElement> elements, GrammarTemplate template, String ln, Tree<String> errs) {
/*
* @TODO 2/8/2019 Ben Culkin :TemplatePragmas
* Implement template pragmas.
diff --git a/src/main/java/bjc/rgens/parser/templates/LiteralTemplateElement.java b/src/main/java/bjc/rgens/parser/templates/LiteralTemplateElement.java
index 6bd8b9f..0d0f611 100644
--- a/src/main/java/bjc/rgens/parser/templates/LiteralTemplateElement.java
+++ b/src/main/java/bjc/rgens/parser/templates/LiteralTemplateElement.java
@@ -1,6 +1,6 @@
package bjc.rgens.parser.templates;
-import bjc.data.ITree;
+import bjc.data.Tree;
import bjc.rgens.parser.GenerationState;
@@ -24,7 +24,7 @@ public class LiteralTemplateElement extends TemplateElement {
* @param errs
* The place to put errors.
*/
- public LiteralTemplateElement(String val, ITree<String> errs) {
+ public LiteralTemplateElement(String val, Tree<String> errs) {
super(true);
this.val = val;
diff --git a/src/main/java/bjc/rgens/parser/templates/LiveTemplateElement.java b/src/main/java/bjc/rgens/parser/templates/LiveTemplateElement.java
index 653ae76..8b9806b 100644
--- a/src/main/java/bjc/rgens/parser/templates/LiveTemplateElement.java
+++ b/src/main/java/bjc/rgens/parser/templates/LiveTemplateElement.java
@@ -7,7 +7,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import bjc.data.BooleanToggle;
-import bjc.data.ITree;
+import bjc.data.Tree;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.RGrammarParser;
@@ -37,7 +37,7 @@ public class LiveTemplateElement extends TemplateElement {
* @param errs
* A tree to add errors &amp; information to.
*/
- public LiveTemplateElement(String val, ITree<String> errs) {
+ public LiveTemplateElement(String val, Tree<String> errs) {
super(true);
elements = new ArrayList<>();