summaryrefslogtreecommitdiff
path: root/RGens/src/main/java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-03-21 19:43:11 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-03-21 19:43:11 -0400
commit9a5a155fbd2c9d87e698f9e25cd504bb2fcacffc (patch)
tree6dd77f0888422f4d541f911c6893c67ed1b7a776 /RGens/src/main/java
parent2cc00686b50d5a28f0ab04ad52e5b075290698d9 (diff)
Add flat rules.
Flat rules, which are any rules that have the symbol '+' in their name, have all of their spaces replaced with "" to have the effect of directly conjoining a bunch of rules together.
Diffstat (limited to 'RGens/src/main/java')
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/RGrammar.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
index aa5307d..ed02e87 100644
--- a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
+++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
@@ -174,7 +174,14 @@ public class RGrammar {
throw new GrammarException(String.format("No rule by name '%s' found", refersTo));
}
+ if(refersTo.contains("+")) {
+ /*
+ * Rule names with pluses in them get space-flattened
+ */
+ state.contents.append(newState.contents.toString().replaceAll("\\s+", ""));
+ } else {
state.contents.append(newState.contents.toString());
+ }
}
/**