Comment
This commit is contained in:
@@ -145,6 +145,8 @@ proc manyUntil*(acceptFn: parserFnT, stopFn: parserFnT): parserFnT {.inline.} =
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
proc anyUntil*(stopFn: parserFnT): parserFnT {.inline.} =
|
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)
|
manyUntil(anyCh, stopFn)
|
||||||
|
|
||||||
proc choice*(parsers: seq[parserFnT]): parserFnT {.inline} =
|
proc choice*(parsers: seq[parserFnT]): parserFnT {.inline} =
|
||||||
@@ -262,3 +264,6 @@ when isMainModule:
|
|||||||
|
|
||||||
# manyUntil
|
# manyUntil
|
||||||
assert initParserResult("abc1").flatMap(manyUntil(anyCh, digit)).tokensToString() == "abc"
|
assert initParserResult("abc1").flatMap(manyUntil(anyCh, digit)).tokensToString() == "abc"
|
||||||
|
|
||||||
|
# anyUntil
|
||||||
|
assert initParserResult("abc1").flatMap(anyUntil(digit)).tokensToString() == "abc"
|
||||||
|
|||||||
Reference in New Issue
Block a user