summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/RGrammar.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-05-29 19:44:40 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-05-29 19:44:40 -0300
commitc524f46dbd6a460b7374690244888a001023d3af (patch)
tree8dff50b09354027879fe9b3c74c4dfc8274f25c6 /src/main/java/bjc/rgens/parser/RGrammar.java
parente7c2ce4ba9bd684a6722baf9ce58e91dfacc8eb3 (diff)
Refactor to split RuleCase
RuleCase now handles its own generation.
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammar.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammar.java30
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.
*