diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-06-12 16:22:16 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-06-12 16:22:16 +0100 |
| commit | 9308b348a4462b3d96f188881660d4d40ebc0da8 (patch) | |
| tree | 5d1ee078c4d05ffe08ccba8f9915942a06a46505 /src | |
| parent | a1b78ec441aea70ae7494ca2b2925720d3f4ab3c (diff) | |
Add private constructor to struct matchers
Diffstat (limited to 'src')
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java index 8b89966..6849387 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java @@ -104,6 +104,14 @@ public class JavaPreciselyMatchersGenerator implements Generator { ) ), List.of( + new JavaConstructorDeclaration( + matcherTypeName, + JavaVisibility.PRIVATE, + List.of( + new JavaParam(JavaTypeRef.list(matcherRef(javaStructTypeRef)), "submatchers") + ), + new JavaBlock(List.of()) + ), new JavaMethodDeclaration( "match", JavaVisibility.PUBLIC, diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java index e92c5a8..74dbbfb 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java @@ -38,5 +38,10 @@ public record JavaTypeRef(List<String> packageName, List<String> typeNames, List public static final JavaTypeRef VOID = primitive("void"); public static final JavaTypeRef LIST = topLevel(List.of("java", "util"), "List"); + + public static JavaTypeRef list(JavaTypeRef elementType) { + return new JavaTypeRef(LIST.packageName, LIST.typeNames, List.of(elementType)); + } + public static final JavaTypeRef OBJECT = topLevel(List.of("java", "lang"), "Object"); } |
