From feb7c87f0cbdc8b119fa315084025e2101c516a0 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 24 Oct 2026 23:20:09 +0100 Subject: Don't specialise expressions for queries --- .../ast/untyped/UntypedExpressionNode.java | 18 ++++++++++ .../ast/untyped/UntypedQueryExpressionNode.java | 18 ---------- .../UntypedQueryExpressionReferenceNode.java | 38 ---------------------- .../compiler/ast/untyped/UntypedReferenceNode.java | 38 ++++++++++++++++++++++ .../zwobble/hobgoblin/compiler/parser/Parser.java | 6 ++-- 5 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedExpressionNode.java delete mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionNode.java delete mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionReferenceNode.java create mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedReferenceNode.java (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedExpressionNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedExpressionNode.java new file mode 100644 index 0000000..c15736d --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedExpressionNode.java @@ -0,0 +1,18 @@ +// Generated by hobgoblin. + +package org.zwobble.hobgoblin.compiler.ast.untyped; + +// Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode imports +// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode imports + +public sealed interface UntypedExpressionNode permits org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode { + public interface Builder { + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode build(); + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode.Builder body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode.Builder body + } + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode body +} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionNode.java deleted file mode 100644 index 268e47a..0000000 --- a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionNode.java +++ /dev/null @@ -1,18 +0,0 @@ -// Generated by hobgoblin. - -package org.zwobble.hobgoblin.compiler.ast.untyped; - -// Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode imports -// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode imports - -public sealed interface UntypedQueryExpressionNode permits org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode { - public interface Builder { - public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode build(); - - // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode.Builder body - // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode.Builder body - } - - // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode body - // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode body -} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionReferenceNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionReferenceNode.java deleted file mode 100644 index e45a6bf..0000000 --- a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedQueryExpressionReferenceNode.java +++ /dev/null @@ -1,38 +0,0 @@ -// Generated by hobgoblin. - -package org.zwobble.hobgoblin.compiler.ast.untyped; - -// Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode imports -// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode imports - -public record UntypedQueryExpressionReferenceNode( - String name, - org.zwobble.hobgoblin.compiler.sources.Source source -) implements org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode { - public static org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder arbitrary() { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder("", org.zwobble.hobgoblin.compiler.sources.HobgoblinNativeSources.arbitrarySource()); - } - - public record Builder( - String name, - org.zwobble.hobgoblin.compiler.sources.Source source - ) implements org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionNode.Builder { - public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode build() { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode(name, source); - } - - public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder withName(String name) { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder(name, source); - } - - public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder withSource(org.zwobble.hobgoblin.compiler.sources.Source source) { - return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder(name, source); - } - - // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder body - // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode.Builder body - } - - // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode body - // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedQueryExpressionReferenceNode body -} diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedReferenceNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedReferenceNode.java new file mode 100644 index 0000000..edd3066 --- /dev/null +++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedReferenceNode.java @@ -0,0 +1,38 @@ +// Generated by hobgoblin. + +package org.zwobble.hobgoblin.compiler.ast.untyped; + +// Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode imports +// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode imports + +public record UntypedReferenceNode( + String name, + org.zwobble.hobgoblin.compiler.sources.Source source +) implements org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode { + public static org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder arbitrary() { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder("", org.zwobble.hobgoblin.compiler.sources.HobgoblinNativeSources.arbitrarySource()); + } + + public record Builder( + String name, + org.zwobble.hobgoblin.compiler.sources.Source source + ) implements org.zwobble.hobgoblin.compiler.ast.untyped.UntypedExpressionNode.Builder { + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode build() { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode(name, source); + } + + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder withName(String name) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder(name, source); + } + + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder withSource(org.zwobble.hobgoblin.compiler.sources.Source source) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder(name, source); + } + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode.Builder body + } + + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode body + // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedReferenceNode 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 4003368..5a77616 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/parser/Parser.java @@ -455,9 +455,9 @@ public class Parser { ); } - // == Query expressions == + // == Expressions == - static UntypedQueryExpressionNode parseQueryExpression(TokenIterator tokens) { + static UntypedExpressionNode parseExpression(TokenIterator tokens) { var start = tokens.startPosition(); var name = parseIdentifier(tokens); @@ -465,7 +465,7 @@ public class Parser { var end = tokens.endPosition(); var source = createSource(start, end); - return new UntypedQueryExpressionReferenceNode(name, source); + return new UntypedReferenceNode(name, source); } // == Qualified type names == -- cgit v1.2.3