aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-10 19:58:11 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-10 19:58:11 +0000
commitb35303b621aa02f7c74143ae089a722d6934a153 (patch)
tree5de37f06b649513420626eed40cb8cbc4e9c782b /src/main/java/org/zwobble/couscous/frontends
parent911fbc3e5c6ec6aa89aa0c19b31785a12fe2dd05 (diff)
Add reading of casts
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java8
1 files changed, 8 insertions, 0 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 114e4ef..86a3868 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
@@ -10,6 +10,7 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import static org.zwobble.couscous.ast.CastNode.cast;
import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
@@ -102,6 +103,9 @@ public class JavaExpressionReader {
case ASTNode.ASSIGNMENT:
return readAssignment((Assignment)expression);
+ case ASTNode.CAST_EXPRESSION:
+ return readCastExpression((CastExpression)expression);
+
default:
throw new RuntimeException("Unsupported expression: " + expression.getClass());
@@ -307,6 +311,10 @@ public class JavaExpressionReader {
operator.isBoolean() ? BooleanValue.REF : left.getType());
}
+ private ExpressionNode readCastExpression(CastExpression expression) {
+ return cast(readExpressionWithoutBoxing(expression.getExpression()), typeOf(expression));
+ }
+
private ExpressionNode readUnboxedExpression(Expression expression) {
return readExpression(
unboxedType(typeOf(expression)),