diff options
Diffstat (limited to 'src/main/java/bjc/rgens/parser/GenerationState.java')
| -rw-r--r-- | src/main/java/bjc/rgens/parser/GenerationState.java | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/src/main/java/bjc/rgens/parser/GenerationState.java b/src/main/java/bjc/rgens/parser/GenerationState.java index bda7472..7a7adb9 100644 --- a/src/main/java/bjc/rgens/parser/GenerationState.java +++ b/src/main/java/bjc/rgens/parser/GenerationState.java @@ -1,19 +1,17 @@ package bjc.rgens.parser; -import bjc.utils.esodata.MapSet; -import bjc.utils.data.IPair; -import bjc.utils.data.Pair; -import bjc.utils.ioutils.ReportWriter; +import static bjc.rgens.parser.RGrammarLogging.warn; import java.io.IOException; import java.io.StringWriter; - import java.util.HashMap; import java.util.Map; import java.util.Random; -import static bjc.rgens.parser.RGrammarLogging.*; +import bjc.utils.esodata.MapSet; +import bjc.utils.ioutils.ReportWriter; +import static bjc.rgens.parser.RGrammarLogging.*; /** * The current state during generation. * @@ -43,7 +41,6 @@ public class GenerationState { /** * Create a new generation state. * - * @param rw * The place to write output to. * * @param rand @@ -58,19 +55,19 @@ public class GenerationState { * @param gram * The grammar we are generating from. */ - public GenerationState(ReportWriter rw, Random rand, Map<String, String> vs, - Map<String, Rule> rvs, RGrammar gram) { - vars = new MapSet<>(); + public GenerationState(ReportWriter rw, Random rand, Map<String, String> vs, Map<String, Rule> rvs, + RGrammar gram) { + vars = new MapSet<>(); rlVars = new MapSet<>(); contents = rw; - rnd = rand; + rnd = rand; vars.setPutMap(gram.name, vs); rlVars.setPutMap(gram.name, rvs); this.gram = gram; - + this.rules = gram.getRules(); this.importRules = gram.getImportRules(); } @@ -114,12 +111,12 @@ public class GenerationState { * The grammar to swap to. */ public void swapGrammar(RGrammar gram) { - if(this.gram == gram) return; + if (this.gram == gram) return; this.gram = gram; rules = gram.getRules(); - + importRules = gram.getImportRules(); vars.setCreateMap(gram.name); @@ -165,11 +162,11 @@ public class GenerationState { * name happen to exist. */ public Rule findRule(String ruleName, boolean allowImports) { - if(rules.containsKey(ruleName)) { + if (rules.containsKey(ruleName)) { return rules.get(ruleName); } - if(allowImports) return findImport(ruleName); + if (allowImports) return findImport(ruleName); return null; } @@ -184,8 +181,8 @@ public class GenerationState { * name happen to exist. */ public Rule findImport(String ruleName) { - if(importRules.containsKey(ruleName)) { - return importRules.get(ruleName); + if (importRules.containsKey(ruleName)) { + return importRules.get(ruleName); } return null; @@ -201,12 +198,10 @@ public class GenerationState { * The value to give the variable. */ public void defineVar(String name, String val) { - if(vars.containsKey(name)) - warn("Shadowing variable %s with value %s (old value %s)", - name, val, vars.get(name)); + if (vars.containsKey(name)) + warn("Shadowing variable %s with value %s (old value %s)", name, val, vars.get(name)); else if (gram.autoVars.containsKey(name)) - warn("Shadowing autovariable %s with value %s (defn. %s)", - name, val, gram.autoVars.get(name)); + warn("Shadowing autovariable %s with value %s (defn. %s)", name, val, gram.autoVars.get(name)); vars.put(name, val); } @@ -221,12 +216,11 @@ public class GenerationState { * The value to give the variable. */ public void defineRuleVar(String name, Rule rle) { - if(rlVars.containsKey(name)) - warn("Shadowing rule variable %s with value %s (old value %s)", - name, rlVars.get(name), rle); + if (rlVars.containsKey(name)) + warn("Shadowing rule variable %s with value %s (old value %s)", name, rlVars.get(name), rle); else if (gram.autoRlVars.containsKey(name)) - warn("Shadowing rule autovariable %s with value %s (defn. %s)", - name, rle, gram.autoRlVars.get(name)); + warn("Shadowing rule autovariable %s with value %s (defn. %s)", name, rle, + gram.autoRlVars.get(name)); rlVars.put(name, rle); } @@ -243,12 +237,11 @@ public class GenerationState { * auto-variable that failed to generate succesfully. */ public String findVar(String name) { - if(!vars.containsKey(name)) - if(gram.autoVars.containsKey(name)) { - gram.autoVars.get(name).generate(this); - } else { - throw new GrammarException(String.format("Variable %s not defined", name)); - } + if (!vars.containsKey(name)) if (gram.autoVars.containsKey(name)) { + gram.autoVars.get(name).generate(this); + } else { + throw new GrammarException(String.format("Variable %s not defined", name)); + } return vars.get(name); } @@ -265,12 +258,11 @@ public class GenerationState { * auto-variable that failed to generate succesfully. */ public Rule findRuleVar(String name) { - if(!rlVars.containsKey(name)) - if(gram.autoRlVars.containsKey(name)) { - gram.autoRlVars.get(name).generate(this); - } else { - throw new GrammarException(String.format("Rule variable %s not defined", name)); - } + if (!rlVars.containsKey(name)) if (gram.autoRlVars.containsKey(name)) { + gram.autoRlVars.get(name).generate(this); + } else { + throw new GrammarException(String.format("Rule variable %s not defined", name)); + } return rlVars.get(name); } |
