summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/RGrammar.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-04 22:19:21 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-04 22:19:21 -0300
commit8062cff63f864178a2a73650870362871bc25224 (patch)
tree1da3005e66911182ae2433d7690fe98a0b8b6e37 /src/main/java/bjc/rgens/parser/RGrammar.java
parent63c7fff30d41ab691d6f49d8d7b69e60f9a9e80f (diff)
Exhaustion pt. 2
There is now syntax for rule references. Use @ instead of $, and use := to indicate you want exhaustion enabled Use @ to refer to it
Diffstat (limited to 'src/main/java/bjc/rgens/parser/RGrammar.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/RGrammar.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/bjc/rgens/parser/RGrammar.java b/src/main/java/bjc/rgens/parser/RGrammar.java
index 6b17173..1b68c80 100755
--- a/src/main/java/bjc/rgens/parser/RGrammar.java
+++ b/src/main/java/bjc/rgens/parser/RGrammar.java
@@ -1,11 +1,14 @@
package bjc.rgens.parser;
+import bjc.utils.data.IPair;
+import bjc.utils.data.Pair;
+import bjc.utils.funcutils.StringUtils;
+
import bjc.rgens.parser.elements.CaseElement;
import bjc.rgens.parser.elements.LiteralCaseElement;
import bjc.rgens.parser.elements.RangeCaseElement;
import bjc.rgens.parser.elements.RuleCaseElement;
import bjc.rgens.parser.elements.VariableCaseElement;
-import bjc.utils.funcutils.StringUtils;
import java.util.HashMap;
import java.util.HashSet;
@@ -126,7 +129,8 @@ public class RGrammar {
*
* @return A possible string from the grammar.
*/
- public String generate(String startRule, Random rnd, Map<String, String> vars, Map<String, Rule> rlVars) {
+ public String generate(String startRule, Random rnd, Map<String, String> vars,
+ Map<String, IPair<RGrammar, Rule>> rlVars) {
return generate(startRule, new GenerationState(new StringBuilder(), rnd, vars, rlVars, this));
}