aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-31 19:13:45 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-31 19:13:45 +0100
commit4189eb24789bd5d1d9ef4ecea567f4119cbb325c (patch)
treee6e3812215edcfb68225df2eb715b38c8705ee91 /src/test
parent157aa4fbc6447900c33f668ccaf6de46632e6b5c (diff)
Implement for loops using desugar
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java20
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java1
2 files changed, 11 insertions, 10 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 c7ad81d..fdcfce6 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
@@ -166,17 +166,17 @@ public class JavaReaderTests {
@Test
public void canReadForLoops() {
- List<StatementNode> statements = readStatements("int", "for (int x = 0; true; ++x) { return 1; }");
- LocalVariableDeclarationNode declaration = (LocalVariableDeclarationNode) statements.get(0);
+ StatementNode statement = readStatement("int", "for (int x = 0; true; ++x) { return 1; }");
+ VariableDeclaration loopVariable = var(MAIN_IDENTIFIER.variable("x"), "x", Types.INT);
assertEquals(
- list(
- localVariableDeclaration(declaration.getDeclaration(), literal(0)),
- whileLoop(
- literal(true),
- list(
- returns(literal(1)),
- expressionStatement(assign(declaration, integerAdd(reference(declaration), literal(1))))))),
- statements);
+ new ForNode(
+ list(localVariableDeclaration(loopVariable, literal(0))),
+ literal(true),
+ list(assign(reference(loopVariable), integerAdd(reference(loopVariable), literal(1)))),
+ list(returns(literal(1)))
+ ),
+ statement
+ );
}
@Test
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
index e64de11..eb6e839 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReading.java
@@ -38,6 +38,7 @@ public class JavaReading {
}
static StatementNode readStatement(String returnType, String statementSource) {
+ // TODO: use only()
return readStatements(returnType, statementSource).get(0);
}