summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/CaseElement.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-03 20:00:46 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-03 20:00:46 -0300
commitaea83f40c087ee32cbc1ad4e7940d53f887fbff8 (patch)
treee8213d170022a54fa6529b92fda7b07998f00020 /src/main/java/bjc/rgens/parser/elements/CaseElement.java
parenta13f1f396d28c0b900a10bede57f30be3a35003a (diff)
Add inline case elements
This adds inline case elements, essentially cutting down on the need for short 2-3 alternative rules. You'll still need explicit rules for things involving spaces though. Perhaps I will add a quoting feature to solve that problem.
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/CaseElement.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/CaseElement.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
index 785ac1a..d7889a9 100755
--- a/src/main/java/bjc/rgens/parser/elements/CaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
@@ -118,6 +118,8 @@ public abstract class CaseElement {
} else if (specialBody.matches("empty")) {
/* Literal blank, for empty cases. */
return new BlankCaseElement();
+ } else if (specialBody.contains("|")) {
+ return new InlineRuleCaseElement(specialBody.split("|"));
} else {
throw new IllegalArgumentException(String.format("Unknown special case part '%s'", specialBody));
}