builtup4/bu4/isynced.py
2021-09-09 08:16:01 +03:00

20 lines
644 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.linkable.toolchain.parse import parse
from bu4.linkable.toolchain.stdext import standard_extensions
from bu4.linkable.toolchain.transply import transply
from bu4.transform.transform import transform
__all__ = ('isynced',)
def isynced(source: str) -> EValue:
bsource = transply(source)
parsed = parse(bsource, standard_extensions)
linked = transform(parsed.link(set()))
indexed = transform(linked.index([]))
evaluable = indexed.attach([])
return sync(evaluable)