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

from bu4.encoding.codes import CODE_NAME
from bu4.linkable.constructs.parsed import Parsed
from bu4.linkable.constructs.pname import PName
from bu4.parsing.extensions.CodeExtension import CodeExtension
from bu4.transform.states.transformfinished import TransformFinished
from bu4.transform.states.transformstate import TransformState

__all__ = ('XLName',)


class XLName(CodeExtension[Parsed], code=CODE_NAME):
    def apply(self) -> TransformState[Parsed]:
        return TransformFinished(PName(self.parser.parse_name()))