diff options
Diffstat (limited to 'src/main/java')
4 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/UntypedFunctionDefinitionNode.java b/src/main/java/org/shedlang/compiler/ast/UntypedFunctionDefinitionNode.java new file mode 100644 index 00000000..395a5f4a --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/UntypedFunctionDefinitionNode.java @@ -0,0 +1,14 @@ +package org.shedlang.compiler.ast; + +import org.shedlang.compiler.sources.Source; + +import java.util.Optional; + +public record UntypedFunctionDefinitionNode( + String name, + UntypedParamsNode params, + Optional<UntypedTypeLevelExpressionNode> effect, + UntypedTypeLevelExpressionNode returnType, + Source source +) implements UntypedNamespaceStatementNode { +} diff --git a/src/main/java/org/shedlang/compiler/ast/UntypedNamespaceStatementNode.java b/src/main/java/org/shedlang/compiler/ast/UntypedNamespaceStatementNode.java new file mode 100644 index 00000000..06de16b6 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/UntypedNamespaceStatementNode.java @@ -0,0 +1,4 @@ +package org.shedlang.compiler.ast; + +public sealed interface UntypedNamespaceStatementNode extends UntypedNode permits UntypedFunctionDefinitionNode { +} diff --git a/src/main/java/org/shedlang/compiler/ast/UntypedParamNode.java b/src/main/java/org/shedlang/compiler/ast/UntypedParamNode.java new file mode 100644 index 00000000..7bb6212b --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/UntypedParamNode.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.ast; + +import org.shedlang.compiler.sources.Source; + +public record UntypedParamNode( + String name, + UntypedTypeLevelExpressionNode type, + Source source +) implements UntypedNode { +} diff --git a/src/main/java/org/shedlang/compiler/ast/UntypedParamsNode.java b/src/main/java/org/shedlang/compiler/ast/UntypedParamsNode.java new file mode 100644 index 00000000..f5c9e4a0 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/UntypedParamsNode.java @@ -0,0 +1,12 @@ +package org.shedlang.compiler.ast; + +import org.shedlang.compiler.sources.Source; + +import java.util.List; + +public record UntypedParamsNode( + List<UntypedParamNode> positional, + List<UntypedParamNode> named, + Source source +) implements UntypedNode { +} |
