Remove unneeded manyUntilPerformant

This commit is contained in:
Florian Schroedl
2022-08-26 16:42:25 +02:00
parent 26f8baacfb
commit d873288680

View File

@@ -134,32 +134,6 @@ proc ignore*(parserFn: parserFnT): parserFnT {.inline.} =
tokens: parser.tokens,
))
proc manyUntilPerformant*(acceptFn: parserFnT, stopFn: parserFnT): parserFnT {.inline.} =
## Parse characters but throw success tokens away
return proc(parser: Parser): ParserResult =
let startPosition = parser.state.position
var res: ParserResult = parser.ok()
while res.isOk() and res.flatMap(stopFn).isErr():
res = res.flatMap(acceptFn)
return res.map((p: Parser) => Parser(
state: ParserState(
stream: p.state.stream,
position: p.state.position,
lastPosition: p.state.lastPosition,
),
tokens: @[
ParserToken(
kind: parserTokenString,
stringValue: p.state.stream[(startPosition - 1)..p.state.position],
)
]
))
proc anyUntilPerformant*(stopFn: parserFnT): parserFnT {.inline.} =
manyUntilPerformant(ch(AllChars), stopFn)
proc manyUntil*(acceptFn: parserFnT, stopFn: parserFnT): parserFnT {.inline.} =
## Parse characters but throw success tokens away
return proc(parser: Parser): ParserResult =