# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.av.envtype import envtype from bu4.evaluation.constructs.elinked import ELinked from bu4.evaluation.constructs.evaluable import Evaluable from bu4.evaluation.constructs.evalue import EValue from bu4.evaluation.targets.avtarget import AVTarget from bu4.linking.constructs.linked import Linked __all__ = ('AVCall',) class AVCall(AVTarget): def __init__(self, env: envtype, argument: Linked): self.env = env self.argument = argument def given(self, value: EValue) -> Evaluable: return value.call(ELinked(self.env, self.argument)) def __str__(self): return f'({self.argument})'