From a7c33eef7d2598d5636ff5bcde07da4f9c057184 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 23 Dec 2023 11:50:33 +0000 Subject: Parse type level params for sum types --- src/main/java/org/shedlang/compiler/parser/Parser.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/main/java/org/shedlang/compiler/parser') diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java index 9fb8a93b..753a6d75 100644 --- a/src/main/java/org/shedlang/compiler/parser/Parser.java +++ b/src/main/java/org/shedlang/compiler/parser/Parser.java @@ -968,6 +968,8 @@ public class Parser { var name = tokens.nextValue(TokenType.IDENTIFIER); + var typeLevelParams = parseTypeLevelParamsOptional(tokens); + tokens.skip(TokenType.SYMBOL_EQUALS); var variants = parseOneOrMoreNoTrailingSeparator( @@ -980,7 +982,13 @@ public class Parser { var end = tokens.position(); var source = start.to(end); - return new UntypedSumTypeDefinitionNode(name, visibility, variants, source); + return new UntypedSumTypeDefinitionNode( + name, + visibility, + typeLevelParams, + variants, + source + ); } static UntypedExpressionNode parseTopLevelExpression(TokenIterator tokens) { -- cgit v1.2.3