aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-20 23:52:38 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-20 23:52:38 +0100
commita1c86fe89a5e2b049f81745b0666887766826dd6 (patch)
tree502f569c035a74252f9925bbfe2392ba84569d1d /src/main/java
parent496326a4f3443092a3b0a1128de66f9e3bff1683 (diff)
Add function-ptr operand
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java3
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/operands/PatioFunctionPtr.java4
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/operands/PatioOperand.java2
3 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
index 50ab1e42..523ac805 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
@@ -219,6 +219,9 @@ public class PatioSerializer {
case PatioDataPtr dataPtr ->
treeList(treeIdentifier("data-ptr"), treeString(dataPtr.name()));
+ case PatioFunctionPtr functionPtr ->
+ treeList(treeIdentifier("function-ptr"), treeString(functionPtr.name()));
+
case PatioInt int_ ->
treeList(treeIdentifier("int"), treeInt(int_.value()));
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioFunctionPtr.java b/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioFunctionPtr.java
new file mode 100644
index 00000000..87b4dd19
--- /dev/null
+++ b/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioFunctionPtr.java
@@ -0,0 +1,4 @@
+package org.shedlang.compiler.patio.ast.operands;
+
+public record PatioFunctionPtr(String name) implements PatioOperand {
+}
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioOperand.java b/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioOperand.java
index 47d0d0ec..ccad9a11 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioOperand.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/operands/PatioOperand.java
@@ -1,5 +1,5 @@
package org.shedlang.compiler.patio.ast.operands;
-public sealed interface PatioOperand permits PatioBool, PatioDataPtr, PatioInt, PatioLocalRef {
+public sealed interface PatioOperand permits PatioBool, PatioDataPtr, PatioFunctionPtr, PatioInt, PatioLocalRef {
}