diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-11-14 14:49:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-11-14 14:49:34 +0000 |
| commit | ce1f94f4fe3d57bc4fc20f6a28297412a4e603f6 (patch) | |
| tree | fba759ca82ccaf38376f93613edc029b5cb1de6b /src/test/java/org/zwobble/couscous/tests/frontends | |
| parent | 8a7cb643ac9b0e895123c176803af15b75f90cf1 (diff) | |
Support prefix expressions rather than postfix expressions
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/frontends')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 48 |
1 files changed, 37 insertions, 11 deletions
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 7782fdc..af62c61 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 @@ -6,17 +6,7 @@ import java.util.Collections; import java.util.List; import org.junit.Test; -import org.zwobble.couscous.ast.ClassNode; -import org.zwobble.couscous.ast.ConstructorNode; -import org.zwobble.couscous.ast.ExpressionNode; -import org.zwobble.couscous.ast.FormalArgumentNode; -import org.zwobble.couscous.ast.LocalVariableDeclarationNode; -import org.zwobble.couscous.ast.MethodNode; -import org.zwobble.couscous.ast.ReturnNode; -import org.zwobble.couscous.ast.StatementNode; -import org.zwobble.couscous.ast.StaticMethodCallNode; -import org.zwobble.couscous.ast.ThisReferenceNode; -import org.zwobble.couscous.ast.TypeName; +import org.zwobble.couscous.ast.*; import org.zwobble.couscous.frontends.java.JavaReader; import org.zwobble.couscous.values.BooleanValue; import org.zwobble.couscous.values.IntegerValue; @@ -345,6 +335,42 @@ public class JavaReaderTests { ReturnNode returnNode = (ReturnNode)method.getBody().get(0); assertEquals(reference(argument), returnNode.getValue()); } + + @Test + public void canReadPrefixIncrement() { + ClassNode classNode = readClass( + "public void go(int value) {" + + " ++value;" + + "}"); + + MethodNode method = classNode.getMethods().get(0); + FormalArgumentNode argument = method.getArguments().get(0); + ExpressionStatementNode statement = (ExpressionStatementNode) + classNode.getMethods().get(0).getBody().get(0); + assertEquals( + assign( + reference(argument), + methodCall(reference(argument), "add", asList(literal(1)), IntegerValue.REF)), + statement.getExpression()); + } + + @Test + public void canReadPrefixDecrement() { + ClassNode classNode = readClass( + "public void go(int value) {" + + " --value;" + + "}"); + + MethodNode method = classNode.getMethods().get(0); + FormalArgumentNode argument = method.getArguments().get(0); + ExpressionStatementNode statement = (ExpressionStatementNode) + classNode.getMethods().get(0).getBody().get(0); + assertEquals( + assign( + reference(argument), + methodCall(reference(argument), "subtract", asList(literal(1)), IntegerValue.REF)), + statement.getExpression()); + } @Test public void canReadExpressionStatements() { |
