From 716a7e63392e01dff99111e41c6233655e76e466 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 Mar 2024 10:33:47 +0000 Subject: Add type-level args node for more specific source --- src/main/java/org/shedlang/compiler/parser/Parser.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (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 45d3f1b1..caa94e87 100644 --- a/src/main/java/org/shedlang/compiler/parser/Parser.java +++ b/src/main/java/org/shedlang/compiler/parser/Parser.java @@ -1273,9 +1273,11 @@ public class Parser { return new UntypedTupleTypeNode(elements, source); } - private static Optional> parseTypeLevelArgsOptional( + private static Optional parseTypeLevelArgsOptional( TokenIterator tokens ) { + var start = tokens.position(); + if (tokens.trySkip(TokenType.SYMBOL_SQUARE_OPEN)) { var params = parseMany( () -> tokens.isNext(TokenType.SYMBOL_SQUARE_CLOSE), @@ -1285,7 +1287,10 @@ public class Parser { tokens.skip(TokenType.SYMBOL_SQUARE_CLOSE); - return Optional.of(params); + var end = tokens.position(); + var source = start.to(end); + + return Optional.of(new UntypedTypeLevelArgsNode(params, source)); } else { return Optional.empty(); } -- cgit v1.2.3