# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.parsing.codes import CODE_MAKE from bu4.parsing.constructs.parsed import Parsed from bu4.parsing.constructs.plambda import PLambda from bu4.parsing.extensions.extension import Extension 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__ = ('XMake',) class XMake(Extension[Parsed], code=CODE_MAKE): def apply(self) -> TransformState[Parsed]: name = self.parser.parse_name() return AfterTransform( ParsingRead(self.parser), ATLambda( lambda value: TransformFinished(PLambda(name, value)) ) )