From c5bd567e2d7ef205a0b3797a600114d8a6cde8a6 Mon Sep 17 00:00:00 2001 From: Jay Pratt Date: Mon, 6 May 2024 21:46:18 +1000 Subject: [PATCH] TMP --- takolib/src/parser/mod.rs | 7 +++++-- takolib/src/test.rs | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/takolib/src/parser/mod.rs b/takolib/src/parser/mod.rs index 55a6091e..1f17d19e 100644 --- a/takolib/src/parser/mod.rs +++ b/takolib/src/parser/mod.rs @@ -608,8 +608,11 @@ impl<'src, 'toks, T: Iterator> ParseState<'src, 'toks, T> { let mut args = vec![]; let mut _has_non_bind_args = false; while self.operator_is(Symbol::CloseParen).is_err() { - let arg = self.binding_or_arg(&mut _has_non_bind_args)?; - args.push(arg); + args.push(self.binding_or_arg(&mut _has_non_bind_args)?); + if self.require(TokenType::Op(Symbol::Comma)).is_err() { + self.require(TokenType::Op(Symbol::CloseParen))?; + break; + } } let args = self.handle_bindings(args)?.into(); left = self.ast.add_call(Call { inner: left, args }, location); diff --git a/takolib/src/test.rs b/takolib/src/test.rs index c8ccc759..1454fa55 100644 --- a/takolib/src/test.rs +++ b/takolib/src/test.rs @@ -62,6 +62,8 @@ fn file_and_options(file: &PathBuf) -> (String, TestConfig) { #[test_each::path(glob = "examples/*.tk")] fn parse_example_files(file: PathBuf) { + crate::ensure_initialized(); + let (contents, setting) = file_and_options(&file); if false && setting.todo { info!("Skipping todo file: {file:#?}");