From acbb5387cdaea000acefdc4ac2dd43956da82834 Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Thu, 20 Jan 2022 17:00:00 +0100 Subject: [PATCH] Fix first character always getting parser applied before stop --- src/parser/parser.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parser/parser.nim b/src/parser/parser.nim index a236499..76b0728 100644 --- a/src/parser/parser.nim +++ b/src/parser/parser.nim @@ -279,7 +279,7 @@ func optional*(parserFn: Parser -> ParserResult): (Parser -> ParserResult) {.inl func manyUntil*(acceptFn: Parser -> ParserResult, stopFn: Parser -> ParserResult): (Parser -> ParserResult) {.inline.} = ## Parse characters but throw success tokens away return proc(parser: Parser): ParserResult = - var res: ParserResult = acceptFn(parser) + var res: ParserResult = parser.ok() while res.isOk() and res.flatMap(stopFn).isErr(): res = res.flatMap(acceptFn) return res