From d51fce58306742dd574b637337aefbf7daf92787 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 15 Jul 2016 20:41:09 +0100 Subject: Handle char literals properly --- .../org/zwobble/couscous/values/CharValue.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/org/zwobble/couscous/values/CharValue.java (limited to 'src/main/java/org/zwobble/couscous/values/CharValue.java') 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 accept(Visitor 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; + } +} -- cgit v1.2.3