aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-24 23:47:35 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-24 23:47:35 +0100
commit65ab9014d79e2236208ab899710ee7ac1ba81aa1 (patch)
tree664b62a9285cfd1bbf1cecf62106d1a50a1bfd1f /src/test/java
parentf061f3e94e0996c8853407ac2813385acf38025a (diff)
Use context in StackCompiler
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerBlockReturnTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerBoolLiteralTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerCallTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerExpressionStatementTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionReturnTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIfTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIntAddTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIntEqualsTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIntLiteralTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIntNotEqualTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerIntSubTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerReferenceTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerStringAddTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerStringLiteralTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java10
16 files changed, 59 insertions, 41 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerBlockReturnTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerBlockReturnTests.java
index 7ff57a10..df738405 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerBlockReturnTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerBlockReturnTests.java
@@ -11,10 +11,11 @@ public class StackCompilerBlockReturnTests {
@Test
public void expressionIsEvaluated() {
var node = Typed.blockReturn(Typed.stringLiteral("hello"));
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileFunctionStatement(node);
+ var result = StackCompiler.compileFunctionStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello")
));
}
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerBoolLiteralTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerBoolLiteralTests.java
index 19f3a6a6..ac96c48e 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerBoolLiteralTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerBoolLiteralTests.java
@@ -11,10 +11,11 @@ public class StackCompilerBoolLiteralTests {
@Test
public void boolLiteralIsCompiledToPushBoolInstruction() {
var node = Typed.boolLiteral(true);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushBoolInstruction(true)
));
}
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerCallTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerCallTests.java
index f4a2f229..be2dda99 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerCallTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerCallTests.java
@@ -24,10 +24,11 @@ public class StackCompilerCallTests {
Typed.namedArg("x1", Typed.stringLiteral("n1"))
)
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isLocalLoadInstruction("f"),
isPushStringInstruction("p1"),
isPushStringInstruction("p2"),
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerExpressionStatementTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerExpressionStatementTests.java
index a408f19d..f644408b 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerExpressionStatementTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerExpressionStatementTests.java
@@ -3,9 +3,8 @@ package org.shedlang.compiler.stackir;
import org.junit.jupiter.api.Test;
import org.shedlang.compiler.ast.typed.Typed;
-import java.util.List;
-
-import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.*;
+import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.isDiscardInstruction;
+import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.isPushStringInstruction;
import static org.zwobble.precisely.AssertThat.assertThat;
import static org.zwobble.precisely.Matchers.isSequence;
@@ -13,10 +12,11 @@ public class StackCompilerExpressionStatementTests {
@Test
public void expressionIsEvaluatedAndTheResultDiscarded() {
var node = Typed.expressionStatement(Typed.stringLiteral("hello"));
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileFunctionStatement(node);
+ var result = StackCompiler.compileFunctionStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello"),
isDiscardInstruction()
));
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
index 051b0fb6..44e1118e 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
@@ -20,10 +20,11 @@ public class StackCompilerFunctionDefinitionTests {
.addFreeVariable("z")
.addStatement(Typed.expressionStatement(Typed.stringLiteral("hello")))
.build();
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileNamespaceStatement(node);
+ var result = StackCompiler.compileNamespaceStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
instanceOf(
DefineFunctionInstruction.class,
has("name", x -> x.name(), equalTo("f")),
@@ -56,10 +57,11 @@ public class StackCompilerFunctionDefinitionTests {
.addFreeVariable("z")
.addStatement(Typed.blockReturn(Typed.stringLiteral("hello")))
.build();
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileNamespaceStatement(node);
+ var result = StackCompiler.compileNamespaceStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
instanceOf(
DefineFunctionInstruction.class,
has("body", x -> x.body(), isSequence(
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionReturnTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionReturnTests.java
index 0baf9acb..6ef9b63a 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionReturnTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionReturnTests.java
@@ -11,10 +11,11 @@ public class StackCompilerFunctionReturnTests {
@Test
public void expressionIsEvaluatedAndTheResultDiscarded() {
var node = Typed.functionReturn(Typed.stringLiteral("hello"));
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileFunctionStatement(node);
+ var result = StackCompiler.compileFunctionStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello"),
isReturnInstruction()
));
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIfTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIfTests.java
index a07e9aa6..ecc55608 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIfTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIfTests.java
@@ -27,10 +27,11 @@ public class StackCompilerIfTests {
)),
Types.INT
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isLocalLoadInstruction("c"),
isIfInstruction(
isSequence(
@@ -66,10 +67,11 @@ public class StackCompilerIfTests {
)),
Types.INT
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isLocalLoadInstruction("c"),
isIfInstruction(
isSequence(
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntAddTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntAddTests.java
index 55283682..4724b867 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntAddTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntAddTests.java
@@ -15,10 +15,11 @@ public class StackCompilerIntAddTests {
Typed.intLiteral(42),
Typed.intLiteral(47)
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushIntInstruction(42),
isPushIntInstruction(47),
isIntAddInstruction()
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntEqualsTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntEqualsTests.java
index 805c23ac..61eb93f9 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntEqualsTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntEqualsTests.java
@@ -14,10 +14,11 @@ public class StackCompilerIntEqualsTests {
Typed.intLiteral(42),
Typed.intLiteral(47)
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushIntInstruction(42),
isPushIntInstruction(47),
isIntEqualsInstruction()
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntLiteralTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntLiteralTests.java
index 38448bb9..402c6dac 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntLiteralTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntLiteralTests.java
@@ -11,10 +11,11 @@ public class StackCompilerIntLiteralTests {
@Test
public void intLiteralIsCompiledToPushIntInstruction() {
var node = Typed.intLiteral(42);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushIntInstruction(42)
));
}
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntNotEqualTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntNotEqualTests.java
index 63543b11..8364bc81 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntNotEqualTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntNotEqualTests.java
@@ -14,10 +14,11 @@ public class StackCompilerIntNotEqualTests {
Typed.intLiteral(42),
Typed.intLiteral(47)
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushIntInstruction(42),
isPushIntInstruction(47),
isIntNotEqualInstruction()
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntSubTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntSubTests.java
index b11863c5..110be63a 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntSubTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerIntSubTests.java
@@ -14,10 +14,11 @@ public class StackCompilerIntSubTests {
Typed.intLiteral(42),
Typed.intLiteral(47)
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushIntInstruction(42),
isPushIntInstruction(47),
isIntSubInstruction()
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerReferenceTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerReferenceTests.java
index 2b5115c5..269326aa 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerReferenceTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerReferenceTests.java
@@ -11,10 +11,11 @@ public class StackCompilerReferenceTests {
@Test
public void referenceIsCompiledToLocalLoad() {
var node = Typed.reference("x");
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isLocalLoadInstruction("x")
));
}
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringAddTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringAddTests.java
index 29bf576d..42557970 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringAddTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringAddTests.java
@@ -14,10 +14,11 @@ public class StackCompilerStringAddTests {
Typed.stringLiteral("a"),
Typed.stringLiteral("b")
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("a"),
isPushStringInstruction("b"),
isStringAddInstruction()
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringLiteralTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringLiteralTests.java
index 2d2e7af1..44133713 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringLiteralTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerStringLiteralTests.java
@@ -11,10 +11,11 @@ public class StackCompilerStringLiteralTests {
@Test
public void stringLiteralIsCompiledToPushStringInstruction() {
var node = Typed.stringLiteral("hello");
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileExpression(node);
+ var result = StackCompiler.compileExpression(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello")
));
}
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java
index a03e91b6..144b0461 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java
@@ -14,10 +14,11 @@ public class StackCompilerValTests {
Typed.targetVariable("x"),
Typed.stringLiteral("hello")
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileFunctionStatement(node);
+ var result = StackCompiler.compileFunctionStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello"),
isLocalStoreInstruction("x")
));
@@ -29,10 +30,11 @@ public class StackCompilerValTests {
Typed.targetVariable("x"),
Typed.stringLiteral("hello")
);
+ var context = StackCompiler.Context.EMPTY;
- var instructions = StackCompiler.compileNamespaceStatement(node);
+ var result = StackCompiler.compileNamespaceStatement(node, context);
- assertThat(instructions, isSequence(
+ assertThat(result.instructions(), isSequence(
isPushStringInstruction("hello"),
isLocalStoreInstruction("x")
));