summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java')
-rwxr-xr-xsrc/main/java/bjc/rgens/parser/elements/VariableCaseElement.java75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java b/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
deleted file mode 100755
index 63701e0..0000000
--- a/src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package bjc.rgens.parser.elements;
-
-import bjc.rgens.parser.GrammarException;
-
-public abstract class VariableCaseElement extends CaseElement {
- public static enum VariableType {
- NORMAL,
- EXPAND,
- RULE
- }
- /**
- * The name of the variable this element defines.
- */
- public final String varName;
-
- /**
- * The definition of the variable this element defines.
- */
- public final String varDef;
-
- public final VariableType varType;
-
- public VariableCaseElement(String name, String def, VariableType varType) {
- super(false);
-
- varName = name;
- varDef = def;
-
- this.varType = varType;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((varDef == null) ? 0 : varDef.hashCode());
- result = prime * result + ((varName == null) ? 0 : varName.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (!super.equals(obj))
- return false;
- if (getClass() != obj.getClass())
- return false;
- VariableCaseElement other = (VariableCaseElement) obj;
- if (varDef == null) {
- if (other.varDef != null)
- return false;
- } else if (!varDef.equals(other.varDef))
- return false;
- if (varName == null) {
- if (other.varName != null)
- return false;
- } else if (!varName.equals(other.varName))
- return false;
- return true;
- }
-
- public static CaseElement parseVariable(String varName, String varDef, boolean colon) {
- if(varName.startsWith("$")) {
- // Handle normal/expanding variable definitions
- if(colon) return new ExpVariableCaseElement(varName.substring(1), varDef);
-
- return new LitVariableCaseElement(varName.substring(1), varDef);
- } else if(varName.startsWith("@")) {
- return new RuleVariableCaseElement(varName.substring(1), varDef, colon);
- } else {
- throw new GrammarException("Unrecognized declaration sigil " + varName.charAt(0));
- }
- }
-}