diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-10 20:10:36 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-10 20:10:36 -0400 |
| commit | bf726639e1bc70b30dc5e5ae2cf349a5bbdfb0ae (patch) | |
| tree | 0ebe89df2fe7f2b1c6ff9564959191e3ede2e002 /dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java | |
| parent | 90d1cc6c9f47f1b6f74fb57e07865795a46c23b8 (diff) | |
Moved things around for rewrite of AST mechanisms
Diffstat (limited to 'dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java')
| -rw-r--r-- | dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java b/dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java new file mode 100644 index 0000000..262f99b --- /dev/null +++ b/dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java @@ -0,0 +1,101 @@ +package bjc.dicelang.old.ast.nodes; + +/** + * A node that represents a variable reference + * + * @author ben + * + */ +public class VariableDiceNode implements IDiceASTNode { + /** + * The variable referenced by this node + */ + private String variableName; + + /** + * Create a new node representing the specified variable + * + * @param varName + * The name of the variable being referenced + */ + public VariableDiceNode(String varName) { + this.variableName = varName; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + // Handle special cases + if (this == obj) { + return true; + } else if (obj == null) { + return false; + } else if (getClass() != obj.getClass()) { + return false; + } else { + VariableDiceNode other = (VariableDiceNode) obj; + + if (variableName == null) { + if (other.variableName != null) { + return false; + } + } else if (!variableName.equals(other.variableName)) { + return false; + } + + return true; + } + } + + @Override + public DiceASTType getType() { + return DiceASTType.VARIABLE; + } + + /** + * Get the variable referenced by this AST node + * + * @return the variable referenced by this AST node + */ + public String getVariable() { + return variableName; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((variableName == null) ? 0 : variableName.hashCode()); + return result; + } + + /* + * (non-Javadoc) + * + * @see bjc.utils.dice.ast.IDiceASTNode#isOperator() + */ + @Override + public boolean isOperator() { + return false; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return variableName; + } +}
\ No newline at end of file |
