builtup4/bu4/parsing/constructs/pname.py

19 lines
624 B
Python

# 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.parsing.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))