diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-09-17 17:20:23 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-09-17 17:20:23 +0100 |
| commit | 3a139894dab4b6e4d7c3bf97ed97a90665d9d6df (patch) | |
| tree | 95cdf02cdc42ef037c190454eddd82335fba0330 /src/main/java | |
| parent | 743b94d61138eb913a85e1c4b753540e91f5f509 (diff) | |
Add typed tuple target
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ast/typed/TypedTargetNode.java | 3 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/stackir/StackCompiler.java | 4 |
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( |
