From a1c86fe89a5e2b049f81745b0666887766826dd6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 20 Jul 2023 23:52:38 +0100 Subject: Add function-ptr operand --- .../java/org/shedlang/compiler/patio/PatioSerializerTests.java | 9 +++++++++ .../java/org/shedlang/compiler/patio/instructions/Patio.java | 4 ++++ 2 files changed, 13 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 240a9f6c..27118e18 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java @@ -262,6 +262,15 @@ public class PatioSerializerTests { assertThat(string, equalTo("(data-ptr \"x\")")); } + @Test + public void canSerializeFunctionPtr() { + var operand = Patio.functionPtr("x"); + + var string = PatioTesting.serializeOperand(operand); + + assertThat(string, equalTo("(function-ptr \"x\")")); + } + @Test public void canSerializeInt() { var operand = Patio.int_(42); 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 82a4ba13..da00b8e6 100644 --- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java +++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java @@ -56,6 +56,10 @@ public class Patio { ); } + public static PatioOperand functionPtr(String name) { + return new PatioFunctionPtr(name); + } + public static PatioInstruction functionPointerGet(String target, String name) { return new PatioFunctionPointerGet(new PatioLocalRef(target), name, Sources.NULL); } -- cgit v1.2.3