From 34ef832321984ce73f29f927cf9918765f2071fc Mon Sep 17 00:00:00 2001 From: Daniel Quernheim Date: Sat, 13 Nov 2021 13:59:30 +0100 Subject: [PATCH] Make `skip_many` tail-recursive https://github.com/inhabitedtype/angstrom/issues/217 --- lib/angstrom.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/angstrom.ml b/lib/angstrom.ml index 241d052..e546fbc 100644 --- a/lib/angstrom.ml +++ b/lib/angstrom.ml @@ -521,7 +521,10 @@ let sep_by s p = let skip_many p = fix (fun m -> - (p *> m) <|> return ()) + ((p >>| fun _ -> true) <|> return false) >>= function + | true -> m + | false -> return () + ) let skip_many1 p = p *> skip_many p