# 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_ ) ) ) ) ) )