From 107df69fcf9d53c320165e7f3f946c03e3f5bfc4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 21 Jul 2023 16:52:22 +0100 Subject: Add byte data values --- .../shedlang/compiler/patio/PatioSerializerTests.java | 18 +++++++++++++++--- .../java/org/shedlang/compiler/patio/PatioTesting.java | 8 +++++++- 2 files changed, 22 insertions(+), 4 deletions(-) (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 ba602d67..b42a2926 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -5,6 +5,7 @@ import org.shedlang.compiler.patio.ast.PatioFunctionDeclaration; import org.shedlang.compiler.patio.ast.PatioFunctionDefinition; import org.shedlang.compiler.patio.ast.PatioVisibility; import org.shedlang.compiler.patio.ast.types.PatioDataLayouts; +import org.shedlang.compiler.patio.ast.types.PatioDataValues; import org.shedlang.compiler.patio.ast.types.PatioTypes; import org.shedlang.compiler.patio.instructions.Patio; @@ -392,7 +393,7 @@ public class PatioSerializerTests { // == Data layouts == @Test - public void canSerializeArray() { + public void canSerializeDataLayoutArray() { var layout = PatioDataLayouts.array(PatioDataLayouts.scalar(PatioTypes.INT), 4); var string = PatioTesting.serializeDataLayout(layout); @@ -401,7 +402,7 @@ public class PatioSerializerTests { } @Test - public void canSerializeScalar() { + public void canSerializeDataLayoutScalar() { var layout = PatioDataLayouts.scalar(PatioTypes.INT); var string = PatioTesting.serializeDataLayout(layout); @@ -410,7 +411,7 @@ public class PatioSerializerTests { } @Test - public void canSerializeStruct() { + public void canSerializeDataLayoutStruct() { var layout = PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER)); var string = PatioTesting.serializeDataLayout(layout); @@ -419,4 +420,15 @@ public class PatioSerializerTests { (struct (int int data-ptr))""" )); } + + // == Data values == + + @Test + public void canSerializeDataValueByte() { + var value = PatioDataValues.byte_(0xc8); + + var string = PatioTesting.serializeDataValue(value); + + assertThat(string, equalTo("(byte 0xc8)")); + } } diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java index d90f9534..de20da69 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java @@ -4,9 +4,9 @@ import org.shedlang.compiler.patio.ast.PatioCompilationUnit; import org.shedlang.compiler.patio.ast.PatioCompilationUnitElement; import org.shedlang.compiler.patio.ast.PatioSerializer; import org.shedlang.compiler.patio.ast.instructions.PatioInstruction; -import org.shedlang.compiler.patio.ast.operands.PatioLocalRef; import org.shedlang.compiler.patio.ast.operands.PatioOperand; import org.shedlang.compiler.patio.ast.types.PatioDataLayout; +import org.shedlang.compiler.patio.ast.types.PatioDataValue; import org.shedlang.compiler.patio.ast.types.PatioType; class PatioTesting { @@ -72,6 +72,12 @@ class PatioTesting { return builder.toString(); } + static String serializeDataValue(PatioDataValue value) { + var builder = new StringBuilder(); + PatioSerializer.serializeDataValue(value, builder); + return builder.toString(); + } + static String serializeInstruction(PatioInstruction instruction) { var builder = new StringBuilder(); PatioSerializer.serializeInstruction(instruction, builder); -- cgit v1.2.3