From 601b3a2c0fcd2a439f3083fc409210ec3f9e7156 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 27 Apr 2016 22:00:50 +0100 Subject: Add reading of parenthesized expressions --- .../org/zwobble/couscous/frontends/java/JavaExpressionReader.java | 7 +++++++ .../couscous/tests/frontends/java/ExpressionReadingTests.java | 5 +++++ 2 files changed, 12 insertions(+) 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 f3a4a1f..4f08151 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java @@ -73,6 +73,9 @@ public class JavaExpressionReader { case ASTNode.TYPE_LITERAL: return readTypeLiteral((TypeLiteral)expression); + case ASTNode.PARENTHESIZED_EXPRESSION: + return readParenthesizedExpression((ParenthesizedExpression)expression); + case ASTNode.SIMPLE_NAME: return readSimpleName((SimpleName)expression); @@ -155,6 +158,10 @@ public class JavaExpressionReader { return literal(erasure(typeOf(expression.getType()))); } + private ExpressionNode readParenthesizedExpression(ParenthesizedExpression expression) { + return readExpressionWithoutBoxing(expression.getExpression()); + } + private ExpressionNode readSimpleName(SimpleName expression) { IBinding binding = expression.resolveBinding(); if (binding.getKind() == IBinding.VARIABLE) { diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java index 43d20b7..9291895 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java @@ -46,6 +46,11 @@ public class ExpressionReadingTests { assertEquals(literal(Types.STRING), readExpression("Class", "String.class")); } + @Test + public void canReadParenthesizedExpression() { + assertEquals(literal(42), readIntExpression("(42)")); + } + @Test public void canReadThisReference() { assertEquals( -- cgit v1.2.3