Fix first character always getting parser applied before stop
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user