#  Copyright (c) PARRRATE T&V 2021. All rights reserved.

from bu4.parsing.constructs.lcall import PCall
from bu4.parsing.states.psafter import PSAfter
from bu4.parsing.states.psfinal import PSFinal
from bu4.parsing.targets.pslambda import PSLambda
from bu4.parsing.states.psread import PSRead

__all__ = ('pscall',)

pscall = PSAfter(
    PSRead(),
    PSLambda(
        lambda argument: PSAfter(
            PSRead(),
            PSLambda(
                lambda lambda_: PSFinal(
                    PCall(
                        argument,
                        lambda_
                    )
                )
            )
        )
    )
)