Remove unneeded manyUntilPerformant
This commit is contained in:
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user