diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-05 18:10:32 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-05 18:10:32 +0100 |
| commit | 27ffd2d94482ccdcd10acbb1111ce0a0ddae6c01 (patch) | |
| tree | 83104ba83bba3ccfd2dbf0bb1f0d9afc1ea076dd /src/main/java/org/zwobble/couscous/values | |
| parent | 9e850b3a09ceebf6140e77982b45abab0c57ad6c (diff) | |
Add types to expression nodes
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values')
5 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/values/BooleanValue.java b/src/main/java/org/zwobble/couscous/values/BooleanValue.java index e05c246..76f828e 100644 --- a/src/main/java/org/zwobble/couscous/values/BooleanValue.java +++ b/src/main/java/org/zwobble/couscous/values/BooleanValue.java @@ -1,11 +1,15 @@ package org.zwobble.couscous.values; +import static org.zwobble.couscous.values.TypeReference.typeRef; + import lombok.AccessLevel; import lombok.Getter; import lombok.Value; @Value public class BooleanValue implements PrimitiveValue { + public static final TypeReference REF = typeRef("java.lang.Boolean"); + @Getter(value = AccessLevel.NONE) boolean value; @@ -17,4 +21,9 @@ public class BooleanValue implements PrimitiveValue { public <T> T accept(PrimitiveValueVisitor<T> visitor) { return visitor.visit(this); } + + @Override + public TypeReference getType() { + return REF; + } } diff --git a/src/main/java/org/zwobble/couscous/values/IntegerValue.java b/src/main/java/org/zwobble/couscous/values/IntegerValue.java index 71c7a41..5c272a0 100644 --- a/src/main/java/org/zwobble/couscous/values/IntegerValue.java +++ b/src/main/java/org/zwobble/couscous/values/IntegerValue.java @@ -14,4 +14,9 @@ public class IntegerValue implements PrimitiveValue { public <T> T accept(PrimitiveValueVisitor<T> visitor) { return visitor.visit(this); } + + @Override + public TypeReference getType() { + return REF; + } } diff --git a/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java b/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java index 2cfe40a..56da066 100644 --- a/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java +++ b/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java @@ -2,4 +2,5 @@ package org.zwobble.couscous.values; public interface PrimitiveValue { <T> T accept(PrimitiveValueVisitor<T> visitor); + TypeReference getType(); } diff --git a/src/main/java/org/zwobble/couscous/values/StringValue.java b/src/main/java/org/zwobble/couscous/values/StringValue.java index 256d6d1..ba0b1b5 100644 --- a/src/main/java/org/zwobble/couscous/values/StringValue.java +++ b/src/main/java/org/zwobble/couscous/values/StringValue.java @@ -14,4 +14,9 @@ public class StringValue implements PrimitiveValue { public <T> T accept(PrimitiveValueVisitor<T> visitor) { return visitor.visit(this); } + + @Override + public TypeReference getType() { + return REF; + } } diff --git a/src/main/java/org/zwobble/couscous/values/UnitValue.java b/src/main/java/org/zwobble/couscous/values/UnitValue.java index 14bf327..b4f6974 100644 --- a/src/main/java/org/zwobble/couscous/values/UnitValue.java +++ b/src/main/java/org/zwobble/couscous/values/UnitValue.java @@ -1,6 +1,8 @@ package org.zwobble.couscous.values; public class UnitValue implements PrimitiveValue { + public static final TypeReference REF = TypeReference.typeRef("org.zwobble.couscous.runtime.Unit"); + static final UnitValue UNIT = new UnitValue(); private UnitValue() { @@ -10,4 +12,9 @@ public class UnitValue implements PrimitiveValue { public <T> T accept(PrimitiveValueVisitor<T> visitor) { return visitor.visit(this); } + + @Override + public TypeReference getType() { + return REF; + } } |
