aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-21 08:13:45 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-21 08:13:45 +0000
commitfe113241971cfe87b163a9eb4dc51e9d5e32410e (patch)
treef9e435c44020ffbbb9231df79719a4d407ea8000 /src/main/java/org/zwobble/couscous/ast
parent22f5765125eea28ae158bab4d9e96ae6472b73d4 (diff)
Move standard type definitions into a Types class
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/Operations.java18
3 files changed, 12 insertions, 14 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
index 1fe8fcb..734a6a2 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
@@ -5,7 +5,7 @@ import com.google.common.collect.ImmutableSet;
import org.zwobble.couscous.ast.identifiers.Identifier;
import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Type;
-import org.zwobble.couscous.values.UnitValue;
+import org.zwobble.couscous.types.Types;
import java.util.List;
import java.util.Optional;
@@ -134,7 +134,7 @@ public class ClassNodeBuilder {
private final Function<MethodBuilder<?>, T> build;
private final ImmutableList.Builder<AnnotationNode> annotations;
private final ImmutableList.Builder<FormalArgumentNode> arguments;
- private ScalarType returnType = UnitValue.REF;
+ private ScalarType returnType = Types.VOID;
private final ImmutableList.Builder<StatementNode> statements;
public MethodBuilder(Function<MethodBuilder<?>, T> build) {
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
index b8f2601..024541f 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
@@ -4,7 +4,7 @@ import com.google.common.collect.ImmutableList;
import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
-import org.zwobble.couscous.values.UnitValue;
+import org.zwobble.couscous.types.Types;
import java.util.List;
import java.util.Optional;
@@ -28,7 +28,7 @@ public class MethodNode implements Node {
private final String name;
private final ImmutableList.Builder<FormalArgumentNode> arguments =
ImmutableList.builder();
- private Type returnType = UnitValue.REF;
+ private Type returnType = Types.VOID;
private final ImmutableList.Builder<StatementNode> body =
ImmutableList.builder();
diff --git a/src/main/java/org/zwobble/couscous/ast/Operations.java b/src/main/java/org/zwobble/couscous/ast/Operations.java
index 0ae4923..04de1de 100644
--- a/src/main/java/org/zwobble/couscous/ast/Operations.java
+++ b/src/main/java/org/zwobble/couscous/ast/Operations.java
@@ -1,9 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.values.BooleanValue;
-import org.zwobble.couscous.values.IntegerValue;
+import org.zwobble.couscous.types.Types;
import org.zwobble.couscous.values.InternalCouscousValue;
-import org.zwobble.couscous.values.ObjectValues;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion;
@@ -11,14 +9,14 @@ import static org.zwobble.couscous.util.ExtraLists.list;
public class Operations {
public static ExpressionNode same(ExpressionNode left, ExpressionNode right) {
- return staticMethodCall(InternalCouscousValue.REF, "same", list(left, right), BooleanValue.REF);
+ return staticMethodCall(InternalCouscousValue.REF, "same", list(left, right), Types.BOOLEAN);
}
public static ExpressionNode not(ExpressionNode value) {
- if (value.getType().equals(BooleanValue.REF)) {
+ if (value.getType().equals(Types.BOOLEAN)) {
return OperationNode.operation(
Operator.BOOLEAN_NOT, list(value),
- BooleanValue.REF);
+ Types.BOOLEAN);
} else {
throw new IllegalArgumentException("Can only negate booleans");
}
@@ -53,7 +51,7 @@ public class Operations {
}
public static ExpressionNode integerOperation(Operator operator, ExpressionNode left, ExpressionNode right) {
- return new OperationNode(operator, list(left, right), IntegerValue.REF);
+ return new OperationNode(operator, list(left, right), Types.INT);
}
public static ExpressionNode equal(ExpressionNode left, ExpressionNode right) {
@@ -81,15 +79,15 @@ public class Operations {
}
private static ExpressionNode booleanOperation(Operator operator, ExpressionNode left, ExpressionNode right) {
- return new OperationNode(operator, list(left, right), BooleanValue.REF);
+ return new OperationNode(operator, list(left, right), Types.BOOLEAN);
}
public static ExpressionNode boxInt(ExpressionNode value) {
- return typeCoercion(value, ObjectValues.BOXED_INT);
+ return typeCoercion(value, Types.BOXED_INT);
}
public static ExpressionNode unboxInt(ExpressionNode value) {
- return typeCoercion(value, IntegerValue.REF);
+ return typeCoercion(value, Types.INT);
}
}