summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.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/elements/VariableCaseElement.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/elements/VariableCaseElement.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/VariableCaseElement.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
index 3e691d9..63abe16 100755
--- a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
+++ b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
@@ -1,6 +1,11 @@
package bjc.rgens.parser.elements;
public abstract class VariableCaseElement extends CaseElement {
+ public static enum VariableType {
+ NORMAL,
+ EXPAND,
+ RULE
+ }
/**
* The name of the variable this element defines.
*/
@@ -11,11 +16,15 @@ public abstract class VariableCaseElement extends CaseElement {
*/
public final String varDef;
- public VariableCaseElement(String name, String def, boolean isExp) {
- super(isExp ? ElementType.EXPVARDEF : ElementType.VARDEF);
+ public final VariableType varType;
+
+ public VariableCaseElement(String name, String def, VariableType varType) {
+ super(ElementType.VARIABLE);
varName = name;
varDef = def;
+
+ this.varType = varType;
}
@Override
@@ -51,10 +60,10 @@ public abstract class VariableCaseElement extends CaseElement {
@Override
public String toString() {
- if (type == ElementType.VARDEF) {
- return String.format("{%s:=%s}", varName, varDef);
+ if (type == ElementType.VARIABLE) {
+ return String.format("{$%s:=%s}", varName, varDef);
} else {
- return String.format("{%s=%s}", varName, varDef);
+ return String.format("{$%s=%s}", varName, varDef);
}
}
}