aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java3
-rw-r--r--src/main/java/org/shedlang/compiler/stackir/StackCompiler.java4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java b/src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java
index 4a86975b..61ead210 100644
--- a/src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java
+++ b/src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java
@@ -2,8 +2,11 @@ package org.shedlang.compiler.ast.typed;
import org.shedlang.compiler.sources.Source;
+import java.util.List;
+
public sealed interface TypedTargetNode extends TypedNode {
record Reassign(String name, Source source) implements TypedTargetNode {}
+ record Tuple(List<TypedTargetNode> elements, Source source) implements TypedTargetNode {}
record Val(String name, Source source) implements TypedTargetNode {}
record Var(String name, Source source) implements TypedTargetNode {}
}
diff --git a/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java b/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
index 2c9d6065..31dffc42 100644
--- a/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
+++ b/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
@@ -380,6 +380,10 @@ public class StackCompiler {
yield context;
}
+ case TypedTargetNode.Tuple tuple -> {
+ throw new UnsupportedOperationException("TODO");
+ }
+
case TypedTargetNode.Val val -> {
context = context.addInstruction(
new LocalStoreInstruction(