diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-10 19:58:11 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-10 19:58:11 +0000 |
| commit | b35303b621aa02f7c74143ae089a722d6934a153 (patch) | |
| tree | 5de37f06b649513420626eed40cb8cbc4e9c782b /src/main/java/org/zwobble/couscous/frontends | |
| parent | 911fbc3e5c6ec6aa89aa0c19b31785a12fe2dd05 (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.java | 8 |
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)), |
