aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-27 22:00:50 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-27 22:00:50 +0100
commit601b3a2c0fcd2a439f3083fc409210ec3f9e7156 (patch)
treeaa9beb1f3646cabc63cf5e7f25bc9eea8864aaaf
parentd310a8cf9487f253fbc4152d182dfdef460aeb6d (diff)
Add reading of parenthesized expressions
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java5
2 files changed, 12 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 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
@@ -47,6 +47,11 @@ public class ExpressionReadingTests {
}
@Test
+ public void canReadParenthesizedExpression() {
+ assertEquals(literal(42), readIntExpression("(42)"));
+ }
+
+ @Test
public void canReadThisReference() {
assertEquals(
thisReference(ScalarType.of("com.example.Example")),