diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-28 21:30:59 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-28 21:30:59 +0100 |
| commit | 01c43d0b0a10744f5b01f8cc6c0fc52bdaabfbb2 (patch) | |
| tree | c04adec6a6650b558c743f845cd2c2cce58aea37 /src/main/java | |
| parent | 9afa33b729e89a33249ad5f92ed85708f32e880a (diff) | |
Add untyped var node
Diffstat (limited to 'src/main/java')
3 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedFunctionStatementNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedFunctionStatementNode.java index a232031b..807751c8 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedFunctionStatementNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedFunctionStatementNode.java @@ -2,6 +2,6 @@ package org.shedlang.compiler.ast.untyped; import java.util.List; -public sealed interface UntypedFunctionStatementNode extends UntypedNode permits UntypedBlockReturnNode, UntypedExpressionStatementNode, UntypedFunctionReturnNode, UntypedValNode { +public sealed interface UntypedFunctionStatementNode extends UntypedNode permits UntypedBlockReturnNode, UntypedExpressionStatementNode, UntypedFunctionReturnNode, UntypedValNode, UntypedVarNode { UntypedFunctionStatementBehaviour behaviour(); } diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedVarNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedVarNode.java new file mode 100644 index 00000000..3cd533b9 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedVarNode.java @@ -0,0 +1,14 @@ +package org.shedlang.compiler.ast.untyped; + +import org.shedlang.compiler.sources.Source; + +public record UntypedVarNode( + UntypedTargetNode target, + UntypedExpressionNode expression, + Source source +) implements UntypedFunctionStatementNode { + @Override + public UntypedFunctionStatementBehaviour behaviour() { + return UntypedFunctionStatementBehaviour.CONTINUE; + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 6d96a98f..a238fd21 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -536,6 +536,9 @@ public class TypeChecker { case UntypedValNode val -> typeCheckVal(val).typeCheckAllPhases(context); + + case UntypedVarNode var -> + throw new UnsupportedOperationException(); }; } |
