summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/scl/StringSCLToken.java
diff options
context:
space:
mode:
authorstudent <student@localhost>2018-02-12 12:01:53 -0500
committerstudent <student@localhost>2018-02-12 12:01:53 -0500
commitc25b68c6b24d86b7d1169ad4ec1e619d79a2b38d (patch)
treedc9579836d6856cf93ae7f682446a4e69a94e37f /base/src/bjc/dicelang/scl/StringSCLToken.java
parentd7af27dab45dd6f82c27519e6b4fd2faa162f884 (diff)
Split SCLToken into subclasses.
Instead of one class with a lot of fields whose state varies based on an enum, we now have a hierarchy of classes that does the same in a more obvious manner.
Diffstat (limited to 'base/src/bjc/dicelang/scl/StringSCLToken.java')
-rw-r--r--base/src/bjc/dicelang/scl/StringSCLToken.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/base/src/bjc/dicelang/scl/StringSCLToken.java b/base/src/bjc/dicelang/scl/StringSCLToken.java
new file mode 100644
index 0000000..d50b7e9
--- /dev/null
+++ b/base/src/bjc/dicelang/scl/StringSCLToken.java
@@ -0,0 +1,46 @@
+package bjc.dicelang.scl;
+
+public class StringSCLToken extends SCLToken {
+ /* Used for SYMBOL & SLIT */
+ public String stringVal;
+
+ public StringSCLToken(boolean isSymbol, String val) {
+ if(isSymbol) {
+ type = Type.SYMBOL;
+ } else {
+ type = Type.SLIT;
+ }
+
+ stringVal = val;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((stringVal == null) ? 0 : stringVal.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;
+ StringSCLToken other = (StringSCLToken) obj;
+ if (stringVal == null) {
+ if (other.stringVal != null)
+ return false;
+ } else if (!stringVal.equals(other.stringVal))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "StringSCLToken [stringVal=" + stringVal + "]";
+ }
+}