summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-14 10:45:49 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-14 10:45:49 +0100
commit6f52cdc6a2593094652d0ff018b4cde1276a1815 (patch)
treeb551c21e84a340bb8c78ac45714ce6272f33a59e /src/main
parent7c03dc797ea3ac5f41ced2a79b5c254557355a84 (diff)
Add import node
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNode.java29
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceNode.java18
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java1
3 files changed, 41 insertions, 7 deletions
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<String> 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<String> 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<String> 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<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode> body, org.zwobble.hobgoblin.compiler.sources.Source source) {
+public record UntypedNamespaceNode(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode> imports, java.util.List<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode> 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<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode> body, org.zwobble.hobgoblin.compiler.sources.Source source) {
+ public record Builder(org.zwobble.hobgoblin.compiler.types.NamespaceName namespaceName, java.util.List<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode> imports, java.util.List<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode> 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<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode> 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<org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode> 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
);