builtup4/bu4/linkable/extensions/xmake.py
2021-09-08 13:49:09 +03:00

25 lines
901 B
Python

# Copyright (c) PARRRATE T&V 2021. All rights reserved.
from bu4.linkable.constructs.parsed import Parsed
from bu4.linkable.constructs.plambda import PLambda
from bu4.parsing.codes import CODE_MAKE
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))
)
)