aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java
index 92052722..abd5316e 100644
--- a/src/main/java/org/shedlang/compiler/parser/Parser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Parser.java
@@ -512,6 +512,9 @@ public class Parser {
case KEYWORD_STRUCT ->
parseStructDefinition(tokens);
+ case KEYWORD_SUMTYPE ->
+ parseSumTypeDefinition(tokens);
+
case KEYWORD_VAL ->
parseAssign(tokens);
@@ -680,6 +683,8 @@ public class Parser {
private static UntypedNamespaceStatementNode parseSumTypeDefinition(TokenIterator<TokenType> tokens) {
var start = tokens.position();
+ var visibility = parseVisibility(tokens);
+
tokens.skip(TokenType.KEYWORD_SUMTYPE);
var name = tokens.nextValue(TokenType.IDENTIFIER);
@@ -696,7 +701,7 @@ public class Parser {
var end = tokens.position();
var source = start.to(end);
- return new UntypedSumTypeDefinitionNode(name, Visibility.PRIVATE, variants, source);
+ return new UntypedSumTypeDefinitionNode(name, visibility, variants, source);
}
static UntypedExpressionNode parseTopLevelExpression(TokenIterator<TokenType> tokens) {