aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-30 13:31:25 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-30 13:33:23 +0100
commit3b71fb59ab9613d73733d6c82cac8ddd74bb5101 (patch)
tree2364b1daea2f7b609ea3cddb8da91dcfe39c41fd /src/test/java
parent209cafc729a344efa002c545cae1f944061709d3 (diff)
Store params and vals as locals in Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineFunctionTests.java12
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenLocalLoadTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java6
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java18
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioTesting.java8
-rw-r--r--src/test/java/org/shedlang/compiler/patio/instructions/Patio.java12
6 files changed, 26 insertions, 32 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineFunctionTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineFunctionTests.java
index 97a78a1f..6d3ebad9 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineFunctionTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineFunctionTests.java
@@ -50,8 +50,8 @@ public class PatioCodeGenDefineFunctionTests {
Sources.NULL
);
var context = PatioCodeGenContext.EMPTY
- .addStackIrArg("a")
- .addStackIrArg("b");
+ .addStackIrParam("a")
+ .addStackIrParam("b");
var result = PatioCodeGen.generateInstruction(instruction, context);
@@ -74,8 +74,8 @@ public class PatioCodeGenDefineFunctionTests {
var context = PatioCodeGenContext.EMPTY;
context = PatioCodeGen.generateInstruction(instruction, context);
- context = context.addStackIrArg("a");
- context = context.addStackIrArg("b");
+ context = context.addStackIrParam("a");
+ context = context.addStackIrParam("b");
snapshotter.assertSnapshot(serialize(context));
}
@@ -98,8 +98,8 @@ public class PatioCodeGenDefineFunctionTests {
Sources.NULL
);
var context = PatioCodeGenContext.EMPTY
- .addStackIrArg("a")
- .addStackIrArg("b");
+ .addStackIrParam("a")
+ .addStackIrParam("b");
var result = PatioCodeGen.generateInstruction(instruction, context);
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenLocalLoadTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenLocalLoadTests.java
index 67412723..1a6302a2 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenLocalLoadTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenLocalLoadTests.java
@@ -16,7 +16,7 @@ public class PatioCodeGenLocalLoadTests {
public void localLoadPushesLocalOntoStack(Snapshotter snapshotter) throws IOException {
var stackIr = Instructions.localLoad("x");
var context = PatioCodeGenContext.EMPTY
- .addStackIrArg("x");
+ .addStackIrParam("x");
var result = PatioCodeGen.generateInstruction(stackIr, context);
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java b/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
index d0fffc12..c4a40645 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
@@ -21,9 +21,9 @@ public abstract class PatioExampleTests {
var patioFunction = PatioFunctionDefinition.builder()
.withName(FUNCTION_NAME)
.withReturnType(PatioTypes.INT)
- .addLocal(Patio.local("x", PatioTypes.INT))
- .addLocal(Patio.local("y", PatioTypes.INT))
- .addLocal(Patio.local("z", PatioTypes.INT))
+ .addLocal(Patio.val("x", PatioTypes.INT))
+ .addLocal(Patio.val("y", PatioTypes.INT))
+ .addLocal(Patio.val("z", PatioTypes.INT))
.addBodyInstruction(Patio.localStore(
Patio.localRef("x"),
Patio.int_(42)
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index 7034196e..92a23504 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -34,7 +34,6 @@ public class PatioSerializerTests {
function
"f"
visibility=private
- params=()
locals=()
return-type=void
body=(
@@ -78,8 +77,8 @@ public class PatioSerializerTests {
public void canSerializeFunctionDeclaration() {
var element = PatioFunctionDeclaration.builder()
.withName("f")
- .addParam(Patio.local("param1", PatioTypes.INT))
- .addParam(Patio.local("param2", PatioTypes.DATA_POINTER))
+ .addParam(Patio.param("param1", PatioTypes.INT))
+ .addParam(Patio.param("param2", PatioTypes.DATA_POINTER))
.withReturnType(PatioTypes.VOID)
.build();
@@ -89,7 +88,7 @@ public class PatioSerializerTests {
(
function-decl
"f"
- params=(("param1" int) ("param2" data-ptr))
+ params=((param "param1" int) (param "param2" data-ptr))
return-type=void
)"""
));
@@ -100,10 +99,10 @@ public class PatioSerializerTests {
var element = PatioFunctionDefinition.builder()
.withName("f")
.withVisibility(PatioVisibility.PRIVATE)
- .addParam(Patio.local("param1", PatioTypes.INT))
- .addParam(Patio.local("param2", PatioTypes.DATA_POINTER))
- .addLocal(Patio.local("local1", PatioTypes.FUNCTION_POINTER))
- .addLocal(Patio.local("local2", PatioTypes.INT))
+ .addLocal(Patio.param("param1", PatioTypes.INT))
+ .addLocal(Patio.param("param2", PatioTypes.DATA_POINTER))
+ .addLocal(Patio.val("local1", PatioTypes.FUNCTION_POINTER))
+ .addLocal(Patio.val("local2", PatioTypes.INT))
.withReturnType(PatioTypes.VOID)
.addBodyInstruction(Patio.localStore(Patio.localRef("local2"), Patio.int_(2)))
.build();
@@ -115,8 +114,7 @@ public class PatioSerializerTests {
function
"f"
visibility=private
- params=(("param1" int) ("param2" data-ptr))
- locals=(("local1" function-ptr) ("local2" int))
+ locals=((param "param1" int) (param "param2" data-ptr) (val "local1" function-ptr) (val "local2" int))
return-type=void
body=(
(local-store (local "local2") (int 2))
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
index de20da69..50a32d87 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
@@ -30,14 +30,6 @@ class PatioTesting {
}
builder.append("\n");
- builder.append("Args:\n");
- for (var arg : context.functionContext().args()) {
- builder.append(" * ");
- builder.append(arg.name());
- builder.append("\n");
- }
- builder.append("\n");
-
builder.append("Instructions:\n\n");
PatioSerializer.serializeInstructions(
context.functionContext().instructions(),
diff --git a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
index 9de86434..c1de1477 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -167,10 +167,6 @@ public class Patio {
);
}
- public static PatioLocal local(String name, PatioType type) {
- return new PatioLocal(name, type);
- }
-
public static PatioInstruction localStore(PatioLocalRef target, PatioOperand value) {
return new PatioLocalStore(
target,
@@ -213,7 +209,15 @@ public class Patio {
);
}
+ public static PatioLocal.Param param(String name, PatioType type) {
+ return new PatioLocal.Param(name, type);
+ }
+
public static PatioInstruction return_(PatioOperand value) {
return new PatioReturn(value, Sources.NULL);
}
+
+ public static PatioLocal.Val val(String name, PatioType type) {
+ return new PatioLocal.Val(name, type);
+ }
}