diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 22:09:23 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-06-05 22:09:23 -0300 |
| commit | 05c9922b30cd0dcd2a452673c2e155215d074b19 (patch) | |
| tree | 80f2cc1cfd239761f3d74d20159f780c1673781b /src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java | |
| parent | f25d1062a56a81b17348b799e6d4d7e1dc12a1cc (diff) | |
Templates pt. 3
Templates should now work, though there is no syntax to reference them
from rules yet
In addition, several internal things have been changed so as to improve
code quality
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java')
| -rw-r--r-- | src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java index a7be1bb..3192558 100644 --- a/src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java +++ b/src/main/java/bjc/rgens/parser/elements/RuleVarRefCaseElement.java @@ -19,29 +19,14 @@ public class RuleVarRefCaseElement extends StringCaseElement { throw new GrammarException("No rule variable named " + val); } - IPair<RGrammar, Rule> par = state.rlVars.get(val); + Rule rl = state.rlVars.get(val); GenerationState newState = state.newBuf(); - newState.swapGrammar(par.getLeft()); - if(par.getRight().doRecur()) { - RuleCase cse = par.getRight().getCase(state.rnd); - System.err.printf("\tFINE: Generating %s (from %s)\n", cse, par.getRight().name); - - par.getLeft().generateCase(cse, newState); - - par.getRight().endRecur(); - } else { - throw new RecurLimitException("Rule recurrence limit exceeded"); - } + rl.generate(newState); String res = newState.contents.toString(); - if (par.getRight().name.contains("+")) { - /* Rule names with pluses in them get space-flattened */ - state.contents.append(res.replaceAll("\\s+", "")); - } else { - state.contents.append(res); - } + state.contents.append(res); } } |
