aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-22 13:44:07 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-22 13:44:13 +0100
commitbc94a020433c8b7dc0adaa2a6adf235da9c9b4e9 (patch)
tree0c5229feca5ef3a03d1c9321fad3a7531c555d17 /src/main/java
parent21a0bdcedd03ac7664bbd3c3fdb5e3ac544a9813 (diff)
Parse visibility for sum type
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) {