From 1dc868ca96048bb9ddbd58b3c74ed965a4e7103a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 15 Dec 2023 11:11:59 +0000 Subject: Mark Patio block as an instruction --- .../compiler/patio/PatioSerializerTests.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java index 23cdf596..fbcc4459 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -160,6 +160,32 @@ public class PatioSerializerTests { assertThat(string, equalTo("(alloc-stack (local \"x\") (struct (int int byte)))")); } + @Test + public void canSerializeBlock() { + var instruction = Patio.block( + List.of( + Patio.localStore(Patio.localRef("x1"), Patio.int_(1)), + Patio.localStore(Patio.localRef("y1"), Patio.int_(2)) + ), + List.of( + Patio.localRef("x1"), + Patio.localRef("y1") + ) + ); + + var string = PatioTesting.serializeInstruction(instruction); + + assertThat(string, equalTo(""" + ( + block + ( + (local-store (local "x1") (int 1)) + (local-store (local "y1") (int 2)) + ) + results=((local "x1") (local "y1")) + )""")); + } + @Test public void canSerializeBoolToInt() { var instruction = Patio.boolToInt(Patio.localRef("target"), Patio.localRef("value")); -- cgit v1.2.3