aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/values/CharValue.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-15 20:41:09 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-15 20:41:09 +0100
commitd51fce58306742dd574b637337aefbf7daf92787 (patch)
treead70037af0e3db86af0826e7ef79be402bd91fed /src/main/java/org/zwobble/couscous/values/CharValue.java
parent39556c29e0913bdb4e597d4fc629fa101c555959 (diff)
Handle char literals properly
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values/CharValue.java')
-rw-r--r--src/main/java/org/zwobble/couscous/values/CharValue.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/values/CharValue.java b/src/main/java/org/zwobble/couscous/values/CharValue.java
new file mode 100644
index 0000000..3ce252e
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/values/CharValue.java
@@ -0,0 +1,45 @@
+package org.zwobble.couscous.values;
+
+import org.zwobble.couscous.types.Type;
+import org.zwobble.couscous.types.Types;
+
+public class CharValue implements PrimitiveValue {
+ private final char value;
+
+ public CharValue(char value) {
+ this.value = value;
+ }
+
+ @Override
+ public <T> T accept(Visitor<T> visitor) {
+ return visitor.visitChar(value);
+ }
+
+ @Override
+ public Type getType() {
+ return Types.CHAR;
+ }
+
+ @Override
+ public String toString() {
+ return "CharValue(" +
+ "value=" + value +
+ ')';
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CharValue charValue = (CharValue) o;
+
+ return value == charValue.value;
+
+ }
+
+ @Override
+ public int hashCode() {
+ return (int) value;
+ }
+}