Allow passing of concatFn
This commit is contained in:
@@ -15,6 +15,7 @@ proc tryParseBuild*[T](
|
|||||||
]],
|
]],
|
||||||
defaultBuilderFn: seq[ParserToken] -> seq[T],
|
defaultBuilderFn: seq[ParserToken] -> seq[T],
|
||||||
stopAtParserFn = newline,
|
stopAtParserFn = newline,
|
||||||
|
concatFn = concat[T],
|
||||||
): BuilderResult[T] =
|
): BuilderResult[T] =
|
||||||
## Parse remaining text in `builder` by going checking in the `builderFns` list for a sucessful `parserFn`.
|
## 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`.
|
## 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)
|
parserAcc = parseResult.map(emptyTokens)
|
||||||
builderAcc = builder.initBuilder(
|
builderAcc = builder.initBuilder(
|
||||||
okParser,
|
okParser,
|
||||||
concat(
|
concatFn(
|
||||||
builderAcc.tree,
|
builderAcc.tree,
|
||||||
defaultBuilderTokens,
|
defaultBuilderTokens,
|
||||||
builderFn(okParser.tokens),
|
builderFn(okParser.tokens),
|
||||||
@@ -69,7 +70,7 @@ proc tryParseBuild*[T](
|
|||||||
|
|
||||||
BuilderResult[T].ok(builder.initBuilder(
|
BuilderResult[T].ok(builder.initBuilder(
|
||||||
builderAcc.parser,
|
builderAcc.parser,
|
||||||
concat(
|
concatFn(
|
||||||
builderAcc.tree,
|
builderAcc.tree,
|
||||||
defaultBuilderTokens,
|
defaultBuilderTokens,
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user