diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-10-11 22:11:20 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-10-11 22:11:20 -0300 |
| commit | 89668d36167846e002d0f6dcdc1034b5fee44ce3 (patch) | |
| tree | e687080178c00abc28d6ce9fcef88fd2701a371e | |
| parent | a30e080781d5f536d09aa2127a06ffb17fc1cdc0 (diff) | |
Update
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("\\(|\\)", ""); |
