summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/CaseElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/CaseElement.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/CaseElement.java24
1 files changed, 7 insertions, 17 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
index fa398e7..6c3bd2e 100755
--- a/src/main/java/bjc/rgens/parser/elements/CaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
@@ -1,13 +1,10 @@
package bjc.rgens.parser.elements;
-import bjc.utils.funcutils.StringUtils;
+import static bjc.rgens.parser.RGrammarLogging.trace;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.GrammarException;
-
-import java.util.Arrays;
-
-import static bjc.rgens.parser.RGrammarLogging.*;
+import bjc.utils.ioutils.LevelSplitter;
/**
* A element in a rule case.
@@ -85,7 +82,7 @@ public abstract class CaseElement {
String specialBody = csepart.substring(1, csepart.length() - 1);
if (specialBody.matches("\\S+:\\S=\\S+")) {
- String[] parts = StringUtils.levelSplit(specialBody, "=").toArray(new String[0]);
+ String[] parts = LevelSplitter.def.levelSplit(specialBody, "=").toArray(new String[0]);
if(parts.length != 2) {
throw new GrammarException("Colon variables must have a name and a definition");
@@ -102,7 +99,7 @@ public abstract class CaseElement {
return VariableDefCaseElement.parseVariable(varName, parts[1], op, true);
} else if (specialBody.matches("\\S+:=\\S+")) {
- String[] parts = StringUtils.levelSplit(specialBody, "=").toArray(new String[0]);
+ String[] parts = LevelSplitter.def.levelSplit(specialBody, "=").toArray(new String[0]);
if(parts.length != 2) {
throw new GrammarException("Colon variables must have a name and a definition");
@@ -114,7 +111,7 @@ public abstract class CaseElement {
return VariableDefCaseElement.parseVariable(varName, parts[1], ' ', true);
} else if (specialBody.matches("\\S+=\\S+")) {
- String[] parts = StringUtils.levelSplit(specialBody, "=").toArray(new String[0]);
+ String[] parts = LevelSplitter.def.levelSplit(specialBody, "=").toArray(new String[0]);
if(parts.length != 2) {
throw new GrammarException("Variables must have a name and a definition");
}
@@ -136,21 +133,14 @@ public abstract class CaseElement {
return new RangeCaseElement(firstNum, secondNum);
} else if(rawCase.contains("||")) {
- String[] elms = StringUtils.levelSplit(rawCase, "||").toArray(new String[0]);
+ String[] elms = LevelSplitter.def.levelSplit(rawCase, "||").toArray(new String[0]);
return new InlineRuleCaseElement(elms);
} else if(rawCase.contains("|")) {
throw new GrammarException("Inline rule using | found, they use || now");
- // String[] elms = StringUtils.levelSplit(rawCase, "|").toArray(new String[0]);
+ // String[] elms = LevelSplitter.def.levelSplit(rawCase, "|").toArray(new String[0]);
// return new InlineRuleCaseElement(elms);
- } else if (StringUtils.levelContains(rawCase, ".")) {
- String[] parts = StringUtils.levelSplit(rawCase, ".").toArray(new String[0]);
-
- CaseElement base = createElement(parts[0]);
-
- parts = Arrays.copyOfRange(parts, 1, parts.length);
- return new MethodCaseElement(base, parts);
} else {
return new RuleCaseElement(rawCase);
}