summaryrefslogtreecommitdiff
path: root/dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 20:10:36 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-10 20:10:36 -0400
commitbf726639e1bc70b30dc5e5ae2cf349a5bbdfb0ae (patch)
tree0ebe89df2fe7f2b1c6ff9564959191e3ede2e002 /dice-lang/src/main/java/bjc/dicelang/old/ast/nodes/VariableDiceNode.java
parent90d1cc6c9f47f1b6f74fb57e07865795a46c23b8 (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.java101
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