diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-21 17:09:24 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-21 17:09:24 +0100 |
| commit | 5a0f2590a6b9c20b7ba47375ebff6ebc1eef5973 (patch) | |
| tree | 1c5331ddba980abbc9acd0cff1d7ea67046766ed /src/test/java/org | |
| parent | 55df7731a405508545dc50e6bfdc548faaa54a30 (diff) | |
Add immutable data elements to Patio
Diffstat (limited to 'src/test/java/org')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java | 20 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/instructions/Patio.java | 20 |
2 files changed, 31 insertions, 9 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java index c6e1f237..584df61f 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -47,13 +47,27 @@ public class PatioSerializerTests { // == Compilation unit elements == @Test - public void canSerializeDataElement() { - var element = Patio.dataElement("x", PatioDataLayouts.scalar(PatioTypes.INT)); + public void canSerializeDataElementImmutable() { + var element = Patio.dataElementImmutable( + "x", + PatioDataValues.array(List.of(PatioDataValues.byte_(0x01), PatioDataValues.byte_(0x02))) + ); + + var string = PatioTesting.serializeCompilationUnitElement(element); + + assertThat(string, equalTo(""" + (data-immutable "x" (array ((byte 0x01) (byte 0x02))))""" + )); + } + + @Test + public void canSerializeDataElementMutable() { + var element = Patio.dataElementMutable("x", PatioDataLayouts.scalar(PatioTypes.INT)); var string = PatioTesting.serializeCompilationUnitElement(element); assertThat(string, equalTo(""" - (data "x" int)""" + (data-mutable "x" int)""" )); } 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 dd505326..5d788a89 100644 --- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java +++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java @@ -1,12 +1,10 @@ package org.shedlang.compiler.patio.instructions; -import org.shedlang.compiler.patio.ast.PatioCompilationUnit; -import org.shedlang.compiler.patio.ast.PatioCompilationUnitElement; -import org.shedlang.compiler.patio.ast.PatioDataElement; -import org.shedlang.compiler.patio.ast.PatioLocal; +import org.shedlang.compiler.patio.ast.*; import org.shedlang.compiler.patio.ast.instructions.*; import org.shedlang.compiler.patio.ast.operands.*; import org.shedlang.compiler.patio.ast.types.PatioDataLayout; +import org.shedlang.compiler.patio.ast.types.PatioDataValue; import org.shedlang.compiler.patio.ast.types.PatioType; import org.shedlang.compiler.sources.Sources; @@ -58,8 +56,18 @@ public class Patio { return new PatioCompilationUnit(elements, Sources.NULL); } - public static PatioDataElement dataElement(String name, PatioDataLayout layout) { - return new PatioDataElement(name, layout, Sources.NULL); + public static PatioDataElementImmutable dataElementImmutable( + String name, + PatioDataValue value + ) { + return new PatioDataElementImmutable(name, value, Sources.NULL); + } + + public static PatioDataElementMutable dataElementMutable( + String name, + PatioDataLayout layout + ) { + return new PatioDataElementMutable(name, layout, Sources.NULL); } public static PatioOperand dataPtr(String name) { |
