diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-30 19:12:25 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-30 19:12:25 +0100 |
| commit | 52ea9be878308da4113abcd14b70ba4b39503ef6 (patch) | |
| tree | 080ec7fa00167728aa4d37d944a0f175a600373d /src/main/java/org/shedlang/compiler/stackir | |
| parent | d198788e4d4da184bf6a931ce2cceb19288659d5 (diff) | |
Add namespace-import instruction
Diffstat (limited to 'src/main/java/org/shedlang/compiler/stackir')
3 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java b/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java index 12592b42..35789b18 100644 --- a/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java +++ b/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java @@ -93,6 +93,12 @@ public class InstructionSerializer { treeString(namespaceFieldStore.namespaceName().toString()), treeString(namespaceFieldStore.fieldName()) ); + + case NamespaceImportInstruction namespaceImport -> + treeList( + treeIdentifier("namespace-import"), + treeString(namespaceImport.namespaceName().toString()) + ); case PushBoolInstruction pushBoolInstruction -> treeList( diff --git a/src/main/java/org/shedlang/compiler/stackir/instructions/Instruction.java b/src/main/java/org/shedlang/compiler/stackir/instructions/Instruction.java index 50607e02..1fb0bede 100644 --- a/src/main/java/org/shedlang/compiler/stackir/instructions/Instruction.java +++ b/src/main/java/org/shedlang/compiler/stackir/instructions/Instruction.java @@ -3,7 +3,7 @@ package org.shedlang.compiler.stackir.instructions; import org.shedlang.compiler.sources.Source; public sealed interface Instruction - permits CallInstruction, DefineFunctionInstruction, DiscardInstruction, LocalLoadInstruction, LocalStoreInstruction, NamespaceFieldStoreInstruction, PushBoolInstruction, PushIntInstruction, PushStringInstruction, PushUnitInstruction, ReturnInstruction { + permits CallInstruction, DefineFunctionInstruction, DiscardInstruction, LocalLoadInstruction, LocalStoreInstruction, NamespaceFieldStoreInstruction, NamespaceImportInstruction, PushBoolInstruction, PushIntInstruction, PushStringInstruction, PushUnitInstruction, ReturnInstruction { Source source(); } diff --git a/src/main/java/org/shedlang/compiler/stackir/instructions/NamespaceImportInstruction.java b/src/main/java/org/shedlang/compiler/stackir/instructions/NamespaceImportInstruction.java new file mode 100644 index 00000000..3e7abd7f --- /dev/null +++ b/src/main/java/org/shedlang/compiler/stackir/instructions/NamespaceImportInstruction.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.stackir.instructions; + +import org.shedlang.compiler.sources.Source; +import org.shedlang.compiler.types.NamespaceName; + +public record NamespaceImportInstruction( + NamespaceName namespaceName, + Source source +) implements Instruction { +} |
