summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-04 00:01:38 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-04 00:01:38 -0300
commit2c842ce759095879036bb93321a528f83b77d1ee (patch)
tree00b99aa54fb4066ee93a243a083080d970137503 /src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java
parent5c416488ef63b5004ca424de56894eb17712f116 (diff)
Add syntax features
This adds a few new syntax features, as well as allowing certain ones to be used in pragmas. The next syntax feature to be added will be some sort of quote feature, to allow the inclusion of spaces where they would otherwise not be permitted
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java')
-rw-r--r--src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java b/src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java
new file mode 100644
index 0000000..594595e
--- /dev/null
+++ b/src/main/java/bjc/rgens/parser/elements/SerialCaseElement.java
@@ -0,0 +1,30 @@
+package bjc.rgens.parser.elements;
+
+import bjc.rgens.parser.GenerationState;
+
+public class SerialCaseElement extends CaseElement {
+ public final CaseElement rep;
+
+ public final int lower;
+ public final int upper;
+
+ public SerialCaseElement(CaseElement rep, int lower, int upper) {
+ super(rep.type);
+
+ this.rep = rep;
+
+ this.lower = lower;
+ this.upper = upper;
+ }
+
+ public void generate(GenerationState state) {
+ int num = state.rnd.nextInt(upper - lower) + lower;
+
+ for(int i = 0; i < num; i++) {
+ rep.generate(state);
+
+ if(rep.type.spacing)
+ state.contents.append(" ");
+ }
+ }
+}