summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammarBuilder.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammarBuilder.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
index 534d5ec..f1d0938 100755
--- a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
+++ b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java
@@ -1,6 +1,7 @@
package bjc.rgens.parser;
import bjc.rgens.parser.elements.CaseElement;
+import bjc.rgens.parser.elements.VariableDefCaseElement;
import bjc.utils.data.IPair;
import bjc.utils.data.Pair;
@@ -34,11 +35,18 @@ public class RGrammarBuilder {
/* The current grammar name. */
public String name;
+ /* Autovivify variables */
+ private Map<String, CaseElement> autoVars;
+ private Map<String, CaseElement> autoRlVars;
+
/** Create a new randomized grammar builder. */
public RGrammarBuilder() {
rules = new HashMap<>();
exportedRules = new HashSet<>();
+
+ autoVars = new HashMap<>();
+ autoRlVars = new HashMap<>();
}
/**
@@ -93,6 +101,8 @@ public class RGrammarBuilder {
grammar.setExportedRules(exportedRules);
+ grammar.setAutoVars(autoVars, autoRlVars);
+
return grammar;
}
@@ -315,6 +325,13 @@ public class RGrammarBuilder {
rl.trials = trials;
}
+ public void addAutoVar(String name, CaseElement elm) {
+ autoVars.put(name, elm);
+ }
+
+ public void addAutoRlVar(String name, CaseElement elm) {
+ autoRlVars.put(name, elm);
+ }
/*
* @TODO
*