diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-07-15 20:41:09 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-07-15 20:41:09 +0100 |
| commit | d51fce58306742dd574b637337aefbf7daf92787 (patch) | |
| tree | ad70037af0e3db86af0826e7ef79be402bd91fed /src/main/java/org/zwobble/couscous/values/CharValue.java | |
| parent | 39556c29e0913bdb4e597d4fc629fa101c555959 (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.java | 45 |
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; + } +} |
