From 6f52cdc6a2593094652d0ff018b4cde1276a1815 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 14 Jun 2026 10:45:49 +0100 Subject: Add import node --- .../compiler/ast/untyped/UntypedImportNode.java | 29 ++++++++++++++++++++++ .../compiler/ast/untyped/UntypedNamespaceNode.java | 18 ++++++++------ .../zwobble/hobgoblin/compiler/parser/Parser.java | 1 + 3 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNode.java (limited to 'src/main') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNode.java new file mode 100644 index 0000000..d457b60 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNode.java @@ -0,0 +1,29 @@ +// Generated by hobgoblin. + +package org.zwobble.hobgoblin.compiler.ast.untyped; + +public record UntypedImportNode(java.util.List importedNames, org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName) { + public static org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder arbitrary() { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder(java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.untyped.Native.arbitraryNamespaceName()); + } + + public record Builder(java.util.List importedNames, org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName) { + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode build() { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode(importedNames, namespaceName); + } + + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder withImportedNames(java.util.List importedNames) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder(importedNames, namespaceName); + } + + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder withNamespaceName(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder(importedNames, namespaceName); + } + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode.Builder body + } + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode body +} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceNode.java index b5771c2..f944c99 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceNode.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceNode.java @@ -2,26 +2,30 @@ package org.zwobble.hobgoblin.compiler.ast.untyped; -public record UntypedNamespaceNode(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List body, org.zwobble.hobgoblin.compiler.sources.Source source) { +public record UntypedNamespaceNode(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List imports, java.util.List body, org.zwobble.hobgoblin.compiler.sources.Source source) { public static org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder arbitrary() { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(org.zwobble.hobgoblin.compiler.ast.untyped.Native.arbitraryNamespaceName(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.untyped.Native.arbitrarySource()); + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(org.zwobble.hobgoblin.compiler.ast.untyped.Native.arbitraryNamespaceName(), java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.untyped.Native.arbitrarySource()); } - public record Builder(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List body, org.zwobble.hobgoblin.compiler.sources.Source source) { + public record Builder(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List imports, java.util.List body, org.zwobble.hobgoblin.compiler.sources.Source source) { public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode build() { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode(namespaceName, body, source); + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode(namespaceName, imports, body, source); } public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder withNamespaceName(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName) { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, body, source); + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, imports, body, source); + } + + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder withImports(java.util.List imports) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, imports, body, source); } public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder withBody(java.util.List body) { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, body, source); + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, imports, body, source); } public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder withSource(org.zwobble.hobgoblin.compiler.sources.Source source) { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, body, source); + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder(namespaceName, imports, body, source); } // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceNode.Builder body diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java b/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java index 1bafe96..dc35fa0 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java @@ -43,6 +43,7 @@ public class Parser { return new UntypedNamespaceNode( namespaceName, + List.of(), body, source ); -- cgit v1.2.3