aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
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/frontends
parent22f5765125eea28ae158bab4d9e96ae6472b73d4 (diff)
Move standard type definitions into a Types class
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java27
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java4
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java13
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java6
4 files changed, 22 insertions, 28 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
index 75e0b6d..c0b69b3 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
@@ -4,9 +4,6 @@ import org.eclipse.jdt.core.dom.*;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.types.Types;
-import org.zwobble.couscous.values.BooleanValue;
-import org.zwobble.couscous.values.IntegerValue;
-import org.zwobble.couscous.values.ObjectValues;
import java.util.List;
import java.util.stream.Collectors;
@@ -47,10 +44,10 @@ public class JavaExpressionReader {
}
private static Type unboxedType(Type type) {
- if (type.equals(ObjectValues.BOXED_INT)) {
- return IntegerValue.REF;
- } else if (type.equals(ObjectValues.BOXED_BOOLEAN)) {
- return BooleanValue.REF;
+ if (type.equals(Types.BOXED_INT)) {
+ return Types.INT;
+ } else if (type.equals(Types.BOXED_BOOLEAN)) {
+ return Types.BOOLEAN;
} else {
return type;
}
@@ -257,8 +254,8 @@ public class JavaExpressionReader {
expression.getLeftOperand(),
expression.getRightOperand());
} else {
- ExpressionNode left = readExpression(ObjectValues.OBJECT, expression.getLeftOperand());
- ExpressionNode right = readExpression(ObjectValues.OBJECT, expression.getRightOperand());
+ ExpressionNode left = readExpression(Types.OBJECT, expression.getLeftOperand());
+ ExpressionNode right = readExpression(Types.OBJECT, expression.getRightOperand());
if (expression.getOperator() == InfixExpression.Operator.EQUALS) {
return Operations.same(left, right);
} else if (expression.getOperator() == InfixExpression.Operator.NOT_EQUALS) {
@@ -279,12 +276,12 @@ public class JavaExpressionReader {
}
private static boolean isPrimitive(Type type) {
- return type.equals(BooleanValue.REF) || type.equals(IntegerValue.REF);
+ return type.equals(Types.BOOLEAN) || type.equals(Types.INT);
}
private ExpressionNode readPrefixExpression(PrefixExpression expression) {
if (expression.getOperator() == PrefixExpression.Operator.NOT) {
- return not(readExpression(BooleanValue.REF, expression.getOperand()));
+ return not(readExpression(Types.BOOLEAN, expression.getOperand()));
} else {
Operator operator = readOperator(expression.getOperator());
return AssignmentNode.assign(
@@ -292,16 +289,16 @@ public class JavaExpressionReader {
operation(
operator,
list(
- readExpression(IntegerValue.REF, expression.getOperand()),
+ readExpression(Types.INT, expression.getOperand()),
literal(1)),
- IntegerValue.REF));
+ Types.INT));
}
}
private ExpressionNode readConditionalExpression(ConditionalExpression expression) {
Type type = typeOf(expression);
return TernaryConditionalNode.ternaryConditional(
- readExpression(BooleanValue.REF, expression.getExpression()),
+ readExpression(Types.BOOLEAN, expression.getExpression()),
readExpression(type, expression.getThenExpression()),
readExpression(type, expression.getElseExpression()));
}
@@ -327,7 +324,7 @@ public class JavaExpressionReader {
return operation(
operator,
list(left, right),
- operator.isBoolean() ? BooleanValue.REF : left.getType());
+ operator.isBoolean() ? Types.BOOLEAN : left.getType());
}
private ExpressionNode readCastExpression(CastExpression expression) {
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index 0df0788..a6da3c3 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -11,8 +11,8 @@ import org.zwobble.couscous.ast.sugar.TypeDeclarationBody;
import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
+import org.zwobble.couscous.types.Types;
import org.zwobble.couscous.util.ExtraLists;
-import org.zwobble.couscous.values.ObjectValues;
import java.io.IOException;
import java.nio.file.Path;
@@ -413,7 +413,7 @@ public class JavaReader {
eagerMap(arguments, argument -> reference(argument)),
methodNode.signature());
- StatementNode body = override.getReturnType().equals(ObjectValues.VOID)
+ StatementNode body = override.getReturnType().equals(Types.VOID)
? expressionStatement(call)
: returns(typeCoercion(call, override.getReturnType()));
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
index b21b4d9..c668774 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
@@ -4,8 +4,7 @@ import org.eclipse.jdt.core.dom.*;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.ast.sugar.SwitchCaseNode;
import org.zwobble.couscous.types.Type;
-import org.zwobble.couscous.values.BooleanValue;
-import org.zwobble.couscous.values.ObjectValues;
+import org.zwobble.couscous.types.Types;
import java.util.List;
import java.util.Optional;
@@ -94,7 +93,7 @@ class JavaStatementReader {
? list()
: readStatement(statement.getElseStatement());
return ifStatement(
- readExpression(BooleanValue.REF, statement.getExpression()),
+ readExpression(Types.BOOLEAN, statement.getExpression()),
readStatement(statement.getThenStatement()),
falseBranch);
}
@@ -128,8 +127,8 @@ class JavaStatementReader {
methodCall(
reference(switchValueAssignment),
"equals",
- list(coerceExpression(ObjectValues.OBJECT, value)),
- BooleanValue.REF),
+ list(coerceExpression(Types.OBJECT, value)),
+ Types.BOOLEAN),
currentCase.getStatements(), handle)))
.orElse(handle)));
}
@@ -157,7 +156,7 @@ class JavaStatementReader {
private WhileNode readWhileStatement(WhileStatement statement) {
return whileLoop(
- readExpression(BooleanValue.REF, statement.getExpression()),
+ readExpression(Types.BOOLEAN, statement.getExpression()),
readStatement(statement.getBody()));
}
@@ -175,7 +174,7 @@ class JavaStatementReader {
return append(
readDeclarationFragments(fragments, typeOf(javaDeclaration.getType())),
whileLoop(
- readExpression(BooleanValue.REF, statement.getExpression()),
+ readExpression(Types.BOOLEAN, statement.getExpression()),
concat(
readStatement(statement.getBody()),
eagerMap(updaters, updater -> expressionStatement(readExpressionWithoutBoxing(updater))))));
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
index d5f21d0..a196004 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
@@ -2,11 +2,9 @@ package org.zwobble.couscous.frontends.java;
import com.google.common.collect.ImmutableSet;
import org.eclipse.jdt.core.dom.*;
+import org.zwobble.couscous.types.*;
import org.zwobble.couscous.types.ParameterizedType;
-import org.zwobble.couscous.types.ScalarType;
-import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.types.TypeParameter;
-import org.zwobble.couscous.values.ObjectValues;
import java.util.List;
import java.util.Optional;
@@ -79,6 +77,6 @@ class JavaTypes {
private static Optional<Type> superClass(ITypeBinding typeBinding) {
return Optional.ofNullable(typeBinding.getSuperclass())
.map(JavaTypes::typeOf)
- .filter(type -> !type.equals(ObjectValues.OBJECT));
+ .filter(type -> !type.equals(Types.OBJECT));
}
}