# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.linking.constructs.linked import Linked from bu4.linking.constructs.lname import LName from bu4.linkable.constructs.parsed import Parsed from bu4.transform.states.transformfinished import TransformFinished from bu4.transform.states.transformstate import TransformState __all__ = ('PName',) class PName(Parsed): def __init__(self, name: bytes): self.name = name def link(self, promise: set[bytes]) -> TransformState[Linked]: assert self.name in promise, f'undefined: {self.name}' return TransformFinished(LName(self.name))