diff options
| author | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-05-29 19:44:40 -0300 |
|---|---|---|
| committer | Benjamin J. Culkin <bjculkin@mix.wvu.edu> | 2018-05-29 19:44:40 -0300 |
| commit | c524f46dbd6a460b7374690244888a001023d3af (patch) | |
| tree | 8dff50b09354027879fe9b3c74c4dfc8274f25c6 /src/main/java/bjc/rgens/parser/RGrammar.java | |
| parent | e7c2ce4ba9bd684a6722baf9ce58e91dfacc8eb3 (diff) | |
Refactor to split RuleCase
RuleCase now handles its own generation.
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammar.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/RGrammar.java | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java index 9d17171..4e21279 100755 --- a/src/main/java/bjc/rgens/parser/RGrammar.java +++ b/src/main/java/bjc/rgens/parser/RGrammar.java @@ -221,41 +221,13 @@ public class RGrammar { */ public void generateCase(RuleCase start, GenerationState state) { try { - switch (start.type) { - case NORMAL: - for (CaseElement elm : start.getElements()) { - generateElement(elm, state); - - if (elm.type != CaseElement.ElementType.VARDEF) { - state.contents.append(" "); - } - } - break; - case SPACEFLATTEN: - for (CaseElement elm : start.getElements()) { - generateElement(elm, state); - } - break; - default: - String msg = String.format("Unknown case type '%s'", start.type); - throw new GrammarException(msg); - } + start.generate(state); } catch (GrammarException gex) { String msg = String.format("Error in generating case (%s)", start); throw new GrammarException(msg, gex); } } - /* Generate a case element. */ - private void generateElement(CaseElement elm, GenerationState state) { - try { - elm.generate(state); - } catch (GrammarException gex) { - String msg = String.format("Error in generating case element (%s)", elm); - throw new GrammarException(msg, gex); - } - } - /** * Get the initial rule of this grammar. * |
