From 697cc09329f8e8b1a76f408c12b88d6f387f16e7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 22 Oct 2023 13:39:03 +0100 Subject: Add visibility to UntypedSumTypeDefinitionNode --- .../ast/untyped/UntypedSumTypeDefinitionNode.java | 18 +++++++++++++++--- src/main/java/org/shedlang/compiler/parser/Parser.java | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java index 150c2c59..18bdc6d8 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java @@ -3,37 +3,49 @@ package org.shedlang.compiler.ast.untyped; import org.pcollections.PVector; import org.shedlang.compiler.sources.Source; import org.shedlang.compiler.sources.Sources; +import org.shedlang.compiler.types.Visibility; import org.shedlang.compiler.util.P; import java.util.List; public record UntypedSumTypeDefinitionNode( String name, + Visibility visibility, List variants, Source source ) implements UntypedNamespaceStatementNode { public static Builder builder() { - return new Builder("DefaultSumTypeName", P.vector()); + return new Builder("DefaultSumTypeName", Visibility.PRIVATE, P.vector()); } public record Builder( String name, + Visibility visibility, PVector variants ) { public UntypedSumTypeDefinitionNode build() { return new UntypedSumTypeDefinitionNode( this.name, + this.visibility, this.variants, Sources.NULL ); } public Builder withName(String name) { - return new Builder(name, this.variants); + return new Builder( + name, + this.visibility, + this.variants + ); } public Builder addVariant(UntypedTypeLevelExpressionNode variant) { - return new Builder(this.name, this.variants.plus(variant)); + return new Builder( + this.name, + this.visibility, + this.variants.plus(variant) + ); } } } diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java index 0151e7d6..92052722 100644 --- a/src/main/java/org/shedlang/compiler/parser/Parser.java +++ b/src/main/java/org/shedlang/compiler/parser/Parser.java @@ -696,7 +696,7 @@ public class Parser { var end = tokens.position(); var source = start.to(end); - return new UntypedSumTypeDefinitionNode(name, variants, source); + return new UntypedSumTypeDefinitionNode(name, Visibility.PRIVATE, variants, source); } static UntypedExpressionNode parseTopLevelExpression(TokenIterator tokens) { -- cgit v1.2.3