This commit is contained in:
Florian Schroedl
2022-08-26 16:56:47 +02:00
parent 507c05592e
commit 2ee602c0b3

View File

@@ -145,6 +145,8 @@ proc manyUntil*(acceptFn: parserFnT, stopFn: parserFnT): parserFnT {.inline.} =
return res
proc anyUntil*(stopFn: parserFnT): parserFnT {.inline.} =
## Parses any character until the `stopFn` is reached or on an errror.
## Needs at least one character match.
manyUntil(anyCh, stopFn)
proc choice*(parsers: seq[parserFnT]): parserFnT {.inline} =
@@ -262,3 +264,6 @@ when isMainModule:
# manyUntil
assert initParserResult("abc1").flatMap(manyUntil(anyCh, digit)).tokensToString() == "abc"
# anyUntil
assert initParserResult("abc1").flatMap(anyUntil(digit)).tokensToString() == "abc"