diff options
Diffstat (limited to 'src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/elements/VariableCaseElement.java | 75 |
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)); - } - } -} |
