From 63b3e45d88251ec7647bafcc428f59c1c3d8d2ad Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 12 Jan 2025 22:02:25 +0000 Subject: Add Shid declare-native-function instruction --- .../compiler/shid/ShidSerializerTests.java | 26 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java index 6018fa88..70218cc3 100644 --- a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java @@ -1,10 +1,7 @@ package org.shedlang.compiler.shid; import org.junit.jupiter.api.Test; -import org.shedlang.compiler.shid.instructions.Shid; -import org.shedlang.compiler.shid.instructions.ShidDefineFunction; -import org.shedlang.compiler.shid.instructions.ShidInstruction; -import org.shedlang.compiler.shid.instructions.ShidVariable; +import org.shedlang.compiler.shid.instructions.*; import org.shedlang.compiler.types.Effects; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.Types; @@ -45,6 +42,27 @@ public class ShidSerializerTests { assertThat(string, equalTo("(call positional-arg-count=1 named-arg-names=(\"x\" \"y\"))")); } + @Test + public void canSerializeDeclareNativeFunction() { + var instruction = ShidDeclareNativeFunction.builder() + .withName("f") + .addPositionalParam("p1") + .addPositionalParam("p2") + .addNamedParam("n1") + .addNamedParam("n2") + .build(); + + var string = serialize(instruction); + + assertThat(string, equalTo(""" + ( + declare-native-function + name="f" + positional-params=("p1" "p2") + named-params=("n1" "n2") + )""")); + } + @Test public void canSerializeDefineEffect() { var instruction = Shid.defineEffect( -- cgit v1.2.3