summaryrefslogtreecommitdiff
path: root/RGens/src/main/java/bjc/rgens/newparser/Rule.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-03-21 19:42:12 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-03-21 19:42:12 -0400
commit2cc00686b50d5a28f0ab04ad52e5b075290698d9 (patch)
tree9157f35c50dd12acd87bacb4f30c8d018703adb5 /RGens/src/main/java/bjc/rgens/newparser/Rule.java
parent5444cd4db8a0fa41d25cd303c1145cadd112e12f (diff)
Add ranges
Ranges can now be used with the syntax [start..end] inline to generate numbers instead of having to create a special rule for them.
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/newparser/Rule.java')
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/Rule.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/Rule.java b/RGens/src/main/java/bjc/rgens/newparser/Rule.java
index a65f1ce..eca856f 100644
--- a/RGens/src/main/java/bjc/rgens/newparser/Rule.java
+++ b/RGens/src/main/java/bjc/rgens/newparser/Rule.java
@@ -3,6 +3,8 @@ package bjc.rgens.newparser;
import bjc.utils.funcdata.FunctionalList;
import bjc.utils.funcdata.IList;
+import java.util.Random;
+
/**
* A rule in a randomized grammar.
*
@@ -62,6 +64,18 @@ public class Rule {
}
/**
+ * Get a random case from this rule.
+ *
+ * @param rnd
+ * The random number generator to use.
+ *
+ * @return A random case from this rule.
+ */
+ public RuleCase getCase(Random rnd) {
+ return ruleCases.randItem(rnd::nextInt);
+ }
+
+ /**
* Get all the cases of this rule.
*
* @return All the cases in this rule.