32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
|
|
|
from bu4.parsing.abstractparser import AbstractParser
|
|
from bu4.parsing.constructs.parsed import Parsed
|
|
from bu4.parsing.constructs.pcall import PCall
|
|
from bu4.parsing.states.parsingread import ParsingRead
|
|
from bu4.transform.states.aftertransform import AfterTransform
|
|
from bu4.transform.states.transformfinished import TransformFinished
|
|
from bu4.transform.states.transformstate import TransformState
|
|
from bu4.transform.targets.atlambda import ATLambda
|
|
|
|
__all__ = ('parsing_call',)
|
|
|
|
|
|
def parsing_call(parser: AbstractParser[Parsed]) -> TransformState[Parsed]:
|
|
return AfterTransform(
|
|
ParsingRead(parser),
|
|
ATLambda(
|
|
lambda argument: AfterTransform(
|
|
ParsingRead(parser),
|
|
ATLambda(
|
|
lambda lambda_: TransformFinished(
|
|
PCall(
|
|
argument,
|
|
lambda_
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|