diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 15:28:52 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 15:28:52 +0000 |
| commit | 15e441ba197d5cf0ae45823439aaaecec7d5435e (patch) | |
| tree | e92c7748d158e89c3869d299863c059a7a70ce58 /src | |
| parent | 7e3a4556f65d03a052c4e5abd165ff4e91da4e93 (diff) | |
Read if statements without else clause
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java | 5 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 12 |
2 files changed, 16 insertions, 1 deletions
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 41629bd..fb40ed3 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java @@ -89,10 +89,13 @@ class JavaStatementReader { } private StatementNode readIfStatement(IfStatement statement) { + List<StatementNode> falseBranch = statement.getElseStatement() == null + ? list() + : readStatement(statement.getElseStatement()); return ifStatement( readExpression(BooleanValue.REF, statement.getExpression()), readStatement(statement.getThenStatement()), - readStatement(statement.getElseStatement())); + falseBranch); } private List<StatementNode> readSwitchStatement(SwitchStatement switchStatement) { diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java index d70f911..de659d3 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -590,6 +590,18 @@ public class JavaReaderTests { } @Test + public void canReadIfStatementsWithoutElse() { + assertEquals( + list( + ifStatement( + literal(true), + list(returns(literal(1))), + list()), + returns(literal(2))), + readStatements("int", "if (true) { return 1; } return 2;")); + } + + @Test public void canReadWhileLoops() { assertEquals( whileLoop( |
