builtup4/bu4/isynced.py

20 lines
639 B
Python

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