# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.constructs.evalue import EValue from bu4.evaluation.sync import sync from bu4.parsing.toolchain.parse import parse from bu4.parsing.toolchain.stdext import standard_extension from bu4.parsing.toolchain.transply import transply from bu4.transform.transform import transform __all__ = ('isynced',) def isynced(source: str) -> EValue: bsource = transply(source) parsed = parse(bsource, standard_extension) linked = transform(parsed.link(set())) indexed = transform(linked.index([])) evaluable = indexed.attach([]) return sync(evaluable)