From e294450e1e76491e96019b8a3695463e09d1739b Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 22 Dec 2019 19:02:18 +0000 Subject: Implement parsing for record completion --- dhall/src/syntax/text/parser.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'dhall/src/syntax/text/parser.rs') diff --git a/dhall/src/syntax/text/parser.rs b/dhall/src/syntax/text/parser.rs index 832472b..fe34aee 100644 --- a/dhall/src/syntax/text/parser.rs +++ b/dhall/src/syntax/text/parser.rs @@ -765,6 +765,25 @@ impl DhallParser { )) } + #[alias(expression, shortcut = true)] + fn completion_expression(input: ParseInput) -> ParseResult { + Ok(match_nodes!(input.children(); + [expression(e)] => e, + [expression(first), expression(rest)..] => { + rest.fold( + first, + |acc, e| { + spanned_union( + acc.span(), + e.span(), + Completion(acc, e), + ) + } + ) + }, + )) + } + #[alias(expression, shortcut = true)] fn selector_expression(input: ParseInput) -> ParseResult { Ok(match_nodes!(input.children(); -- cgit v1.2.3