From c524f46dbd6a460b7374690244888a001023d3af Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Tue, 29 May 2018 19:44:40 -0300 Subject: Refactor to split RuleCase RuleCase now handles its own generation. --- src/main/java/bjc/rgens/parser/RGrammar.java | 30 +--------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) (limited to 'src/main/java/bjc/rgens/parser/RGrammar.java') 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. * -- cgit v1.2.3