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.} =
|
func manyUntil*(acceptFn: Parser -> ParserResult, stopFn: Parser -> ParserResult): (Parser -> ParserResult) {.inline.} =
|
||||||
## Parse characters but throw success tokens away
|
## Parse characters but throw success tokens away
|
||||||
return proc(parser: Parser): ParserResult =
|
return proc(parser: Parser): ParserResult =
|
||||||
var res: ParserResult = acceptFn(parser)
|
var res: ParserResult = parser.ok()
|
||||||
while res.isOk() and res.flatMap(stopFn).isErr():
|
while res.isOk() and res.flatMap(stopFn).isErr():
|
||||||
res = res.flatMap(acceptFn)
|
res = res.flatMap(acceptFn)
|
||||||
return res
|
return res
|
||||||
|
|||||||
Reference in New Issue
Block a user