Allow passing of concatFn

This commit is contained in:
Florian Schroedl
2022-05-04 17:00:00 +02:00
parent af7ff33ca3
commit f41534ab1a

View File

@@ -15,6 +15,7 @@ proc tryParseBuild*[T](
]],
defaultBuilderFn: seq[ParserToken] -> seq[T],
stopAtParserFn = newline,
concatFn = concat[T],
): BuilderResult[T] =
## Parse remaining text in `builder` by going checking in the `builderFns` list for a sucessful `parserFn`.
## The `ok` `parserFn` result will be merged into the `Builder[T].tree` by using the `concatFn`.
@@ -50,7 +51,7 @@ proc tryParseBuild*[T](
parserAcc = parseResult.map(emptyTokens)
builderAcc = builder.initBuilder(
okParser,
concat(
concatFn(
builderAcc.tree,
defaultBuilderTokens,
builderFn(okParser.tokens),
@@ -69,7 +70,7 @@ proc tryParseBuild*[T](
BuilderResult[T].ok(builder.initBuilder(
builderAcc.parser,
concat(
concatFn(
builderAcc.tree,
defaultBuilderTokens,
),