diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-21 08:13:45 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-21 08:13:45 +0000 |
| commit | fe113241971cfe87b163a9eb4dc51e9d5e32410e (patch) | |
| tree | f9e435c44020ffbbb9231df79719a4d407ea8000 /src/main/java/org/zwobble/couscous/ast | |
| parent | 22f5765125eea28ae158bab4d9e96ae6472b73d4 (diff) | |
Move standard type definitions into a Types class
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
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); } } |
