summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/BlankCaseElement.java2
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/CaseElement.java17
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java4
-rw-r--r--src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java8
-rw-r--r--src/main/java/bjc/rgens/parser/elements/MethodCaseElement.java1
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/RuleCaseElement.java19
-rw-r--r--src/main/java/bjc/rgens/parser/elements/RuleVariableCaseElement.java5
-rw-r--r--src/main/java/bjc/rgens/parser/elements/vars/ARefVariableElement.java1
-rw-r--r--src/main/java/bjc/rgens/parser/elements/vars/TRefVariableElement.java2
-rw-r--r--src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java7
10 files changed, 23 insertions, 43 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java b/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java
index 66ff310..7229e92 100755
--- a/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/BlankCaseElement.java
@@ -1,7 +1,5 @@
package bjc.rgens.parser.elements;
-import bjc.rgens.parser.GenerationState;
-
public class BlankCaseElement extends LiteralCaseElement {
public BlankCaseElement() {
super("");
diff --git a/src/main/java/bjc/rgens/parser/elements/CaseElement.java b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
index fa398e7..9c23ef2 100755
--- a/src/main/java/bjc/rgens/parser/elements/CaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/CaseElement.java
@@ -1,7 +1,6 @@
package bjc.rgens.parser.elements;
-import bjc.utils.funcutils.StringUtils;
-
+import bjc.utils.ioutils.LevelSplitter;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.GrammarException;
@@ -85,7 +84,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 +101,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 +113,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,16 +135,16 @@ 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]);
+ } else if (LevelSplitter.def.levelContains(rawCase, ".")) {
+ String[] parts = LevelSplitter.def.levelSplit(rawCase, ".").toArray(new String[0]);
CaseElement base = createElement(parts[0]);
diff --git a/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java
index c221f4a..03eebe3 100755
--- a/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/ExpVariableCaseElement.java
@@ -1,13 +1,9 @@
package bjc.rgens.parser.elements;
-import bjc.utils.data.IPair;
-
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.GrammarException;
-import bjc.rgens.parser.RecurLimitException;
import bjc.rgens.parser.RGrammar;
import bjc.rgens.parser.Rule;
-import bjc.rgens.parser.RuleCase;
public class ExpVariableCaseElement extends VariableDefCaseElement {
public ExpVariableCaseElement(String name, String def) {
diff --git a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
index 917dd33..82bc6ee 100644
--- a/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/InlineRuleCaseElement.java
@@ -2,12 +2,10 @@ package bjc.rgens.parser.elements;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.RGrammarParser;
-
import bjc.utils.data.IPair;
-import bjc.utils.funcdata.FunctionalList;
import bjc.utils.funcdata.IList;
-import bjc.utils.funcutils.StringUtils;
import bjc.utils.gen.WeightedRandom;
+import bjc.utils.ioutils.LevelSplitter;
public class InlineRuleCaseElement extends CaseElement {
public final WeightedRandom<CaseElement> elements;
@@ -20,8 +18,8 @@ public class InlineRuleCaseElement extends CaseElement {
for(String part : parts) {
String[] partArr;
- if(StringUtils.levelContains(part, "|")) {
- partArr = StringUtils.levelSplit(part, "||").toArray(new String[0]);
+ if(LevelSplitter.def.levelContains(part, "|")) {
+ partArr = LevelSplitter.def.levelSplit(part, "||").toArray(new String[0]);
} else {
partArr = new String[] {part};
}
diff --git a/src/main/java/bjc/rgens/parser/elements/MethodCaseElement.java b/src/main/java/bjc/rgens/parser/elements/MethodCaseElement.java
index 13f58e9..342d407 100644
--- a/src/main/java/bjc/rgens/parser/elements/MethodCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/MethodCaseElement.java
@@ -1,7 +1,6 @@
package bjc.rgens.parser.elements;
import bjc.rgens.parser.GenerationState;
-import bjc.rgens.parser.GrammarException;
import bjc.rgens.parser.elements.CaseElement;
import bjc.rgens.parser.elements.methods.MethodElement;
diff --git a/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java
index e42647c..1a2cf85 100755
--- a/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/RuleCaseElement.java
@@ -1,15 +1,12 @@
package bjc.rgens.parser.elements;
-import bjc.utils.data.IPair;
-import bjc.utils.data.Pair;
-
-import bjc.rgens.parser.*;
-import bjc.rgens.parser.elements.vars.*;
-
-import java.util.ArrayList;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+
+import bjc.rgens.parser.GenerationState;
+import bjc.rgens.parser.GrammarException;
+import bjc.rgens.parser.RGrammar;
+import bjc.rgens.parser.Rule;
+import bjc.rgens.parser.elements.vars.VariableElement;
public class RuleCaseElement extends CaseElement {
public List<VariableElement> elements;
@@ -46,11 +43,13 @@ public class RuleCaseElement extends CaseElement {
}
}
- protected void doGenerate(String actName, GenerationState state) {
+ protected void doGenerate(String acName, GenerationState state) {
GenerationState newState = state.newBuf();
Rule rl;
+ String actName = acName;
+
if (actName.startsWith("[^")) {
actName = "[" + actName.substring(2);
diff --git a/src/main/java/bjc/rgens/parser/elements/RuleVariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/RuleVariableCaseElement.java
index a7fdbec..d344162 100644
--- a/src/main/java/bjc/rgens/parser/elements/RuleVariableCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/RuleVariableCaseElement.java
@@ -1,13 +1,8 @@
package bjc.rgens.parser.elements;
-import bjc.utils.data.IPair;
-import bjc.utils.data.Pair;
-
import bjc.rgens.parser.GrammarException;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.Rule;
-import bjc.rgens.parser.RGrammar;
-
import static bjc.rgens.parser.RGrammarLogging.*;
public class RuleVariableCaseElement extends VariableDefCaseElement {
diff --git a/src/main/java/bjc/rgens/parser/elements/vars/ARefVariableElement.java b/src/main/java/bjc/rgens/parser/elements/vars/ARefVariableElement.java
index 17db660..5df0f46 100644
--- a/src/main/java/bjc/rgens/parser/elements/vars/ARefVariableElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/vars/ARefVariableElement.java
@@ -1,7 +1,6 @@
package bjc.rgens.parser.elements.vars;
import bjc.rgens.parser.GenerationState;
-import bjc.rgens.parser.GrammarException;
import bjc.rgens.parser.Rule;
public class ARefVariableElement extends VariableElement {
diff --git a/src/main/java/bjc/rgens/parser/elements/vars/TRefVariableElement.java b/src/main/java/bjc/rgens/parser/elements/vars/TRefVariableElement.java
index a33d78c..c753dfe 100644
--- a/src/main/java/bjc/rgens/parser/elements/vars/TRefVariableElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/vars/TRefVariableElement.java
@@ -1,8 +1,6 @@
package bjc.rgens.parser.elements.vars;
import bjc.rgens.parser.GenerationState;
-import bjc.rgens.parser.GrammarException;
-import bjc.rgens.parser.templates.GrammarTemplate;
/*
* @TODO
diff --git a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java
index 2193b3c..916ac3d 100644
--- a/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/vars/VariableElement.java
@@ -1,7 +1,6 @@
package bjc.rgens.parser.elements.vars;
-import bjc.utils.funcutils.StringUtils;
-
+import bjc.utils.ioutils.LevelSplitter;
import bjc.rgens.parser.GenerationState;
import bjc.rgens.parser.GrammarException;
@@ -18,12 +17,12 @@ public abstract class VariableElement {
public abstract void generate(GenerationState state);
public static List<VariableElement> parseElementString(String varElm) {
- boolean forbidSpaces = StringUtils.levelContains(varElm, "-", "+");
+ boolean forbidSpaces = LevelSplitter.def.levelContains(varElm, "-", "+");
String[] parts;
if(forbidSpaces) {
- parts = StringUtils.levelSplit(varElm, true, "-", "+").toArray(new String[0]);
+ parts = LevelSplitter.def.levelSplit(varElm, true, "-", "+").toArray(new String[0]);
} else {
parts = new String[] { varElm };
}