aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/values
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-05 18:10:32 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-05 18:10:32 +0100
commit27ffd2d94482ccdcd10acbb1111ce0a0ddae6c01 (patch)
tree83104ba83bba3ccfd2dbf0bb1f0d9afc1ea076dd /src/main/java/org/zwobble/couscous/values
parent9e850b3a09ceebf6140e77982b45abab0c57ad6c (diff)
Add types to expression nodes
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values')
-rw-r--r--src/main/java/org/zwobble/couscous/values/BooleanValue.java9
-rw-r--r--src/main/java/org/zwobble/couscous/values/IntegerValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/values/PrimitiveValue.java1
-rw-r--r--src/main/java/org/zwobble/couscous/values/StringValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/values/UnitValue.java7
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;
+ }
}