summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-10-11 22:11:20 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-10-11 22:11:20 -0300
commit89668d36167846e002d0f6dcdc1034b5fee44ce3 (patch)
treee687080178c00abc28d6ce9fcef88fd2701a371e
parenta30e080781d5f536d09aa2127a06ffb17fc1cdc0 (diff)
Update
-rw-r--r--src/main/java/bjc/rgens/parser/ConfigLoader.java5
-rw-r--r--src/main/java/bjc/rgens/parser/ConfigSet.java15
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarSet.java14
-rw-r--r--src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java1
4 files changed, 23 insertions, 12 deletions
diff --git a/src/main/java/bjc/rgens/parser/ConfigLoader.java b/src/main/java/bjc/rgens/parser/ConfigLoader.java
index 97ca257..269a45b 100644
--- a/src/main/java/bjc/rgens/parser/ConfigLoader.java
+++ b/src/main/java/bjc/rgens/parser/ConfigLoader.java
@@ -31,10 +31,7 @@ public class ConfigLoader {
ConfigSet cfgSet = new ConfigSet();
/* The grammar set we're parsing into. */
- RGrammarSet set = new RGrammarSet();
- cfgSet.grammars.put("default", set);
- set.belongsTo = cfgSet;
- set.name = "default";
+ RGrammarSet set = cfgSet.createGSet("default");
long startCFGTime = System.nanoTime();
diff --git a/src/main/java/bjc/rgens/parser/ConfigSet.java b/src/main/java/bjc/rgens/parser/ConfigSet.java
index 8945a0f..8d7c63e 100644
--- a/src/main/java/bjc/rgens/parser/ConfigSet.java
+++ b/src/main/java/bjc/rgens/parser/ConfigSet.java
@@ -6,13 +6,24 @@ import java.util.Map;
import bjc.rgens.parser.templates.GrammarTemplate;
public class ConfigSet {
- public final Map<String, RGrammarSet> grammars;
+ public final Map<String, RGrammarSet> grammars;
public final Map<String, GrammarTemplate> templates;
- public final Map<String, ConfigSet> subconfigs;
+ public final Map<String, ConfigSet> subconfigs;
public ConfigSet() {
grammars = new HashMap<>();
templates = new HashMap<>();
subconfigs = new HashMap<>();
}
+
+ public RGrammarSet createGSet(String name) {
+ RGrammarSet st = new RGrammarSet();
+
+ st.belongsTo = this;
+ st.name = name;
+
+ grammars.put(name, st);
+
+ return st;
+ }
}
diff --git a/src/main/java/bjc/rgens/parser/RGrammarSet.java b/src/main/java/bjc/rgens/parser/RGrammarSet.java
index 30f08a4..56ed1c8 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarSet.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarSet.java
@@ -29,17 +29,20 @@ public class RGrammarSet {
public Map<String, String> loadedFrom;
/* @NOTE These are replaced by the logging setup */
- public static final boolean PERF = true;
- public static final boolean DEBUG = true;
+ public static final boolean PERF = true;
/** Create a new set of randomized grammars. */
public RGrammarSet() {
+ this(false);
+ }
+
+ public RGrammarSet(boolean orderExports) {
grammars = new HashMap<>();
// @NOTE
// Swap which line is commented to toggle ordering of exports
- //exportedRules = new TreeMap<>();
- exportedRules = new HashMap<>();
+ if (orderExports) exportedRules = new TreeMap<>();
+ else exportedRules = new HashMap<>();
loadedFrom = new HashMap<>();
@@ -78,8 +81,7 @@ public class RGrammarSet {
exportedRules.put(export.name, export);
- if(DEBUG)
- debug("%s (%d cases) exported from %s", export.name, export.getCases().getSize(), grammarName);
+ debug("%s (%d cases) exported from %s", export.name, export.getCases().getSize(), grammarName);
}
/* Add exports to grammar. */
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 2193b3c..77eb151 100644
--- a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java
@@ -38,6 +38,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("\\(|\\)", "");