From f95c639b381e6a833794ac35e3dfddbe218639ca Mon Sep 17 00:00:00 2001 From: timotheyca Date: Tue, 27 Jul 2021 22:10:59 +0300 Subject: [PATCH] -Parsed.__bytes__ --- bu4/evaluation/av/aftervalue.py | 2 +- bu4/evaluation/av/lambdaenv.py | 2 +- bu4/evaluation/constructs/elambda.py | 4 ++-- bu4/evaluation/constructs/proxy.py | 2 +- bu4/evaluation/targets/avcall.py | 4 ++-- bu4/evaluation/targets/avcontainer.py | 2 +- bu4/linking/evaluable_from_parsed.py | 2 +- bu4/linking/prepare.py | 2 +- bu4/linking/targets/alchain.py | 2 +- bu4/linking/targets/allambda.py | 2 +- bu4/parsing/constructs/lcall.py | 14 +++++--------- bu4/parsing/constructs/linked.py | 6 ------ bu4/parsing/constructs/llambda.py | 12 ++++-------- bu4/parsing/constructs/lname.py | 11 +++-------- bu4/parsing/constructs/lnull.py | 13 ++++--------- bu4/parsing/states/pscall.py | 2 +- bu4/parsing/toolchain/parse.py | 1 - bu4/parsing/toolchain/transply.py | 2 +- bu4/{evaluation => }/synced.py | 0 main.py | 5 ++++- 20 files changed, 34 insertions(+), 56 deletions(-) rename bu4/{evaluation => }/synced.py (100%) diff --git a/bu4/evaluation/av/aftervalue.py b/bu4/evaluation/av/aftervalue.py index 814761e..f5f6a7e 100644 --- a/bu4/evaluation/av/aftervalue.py +++ b/bu4/evaluation/av/aftervalue.py @@ -1,8 +1,8 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -from bu4.evaluation.targets.avtarget import AVTarget from bu4.evaluation.constructs.evaluable import Evaluable from bu4.evaluation.constructs.evalue import EValue +from bu4.evaluation.targets.avtarget import AVTarget __all__ = ('AfterValue',) diff --git a/bu4/evaluation/av/lambdaenv.py b/bu4/evaluation/av/lambdaenv.py index 6129e5a..45e5ef8 100644 --- a/bu4/evaluation/av/lambdaenv.py +++ b/bu4/evaluation/av/lambdaenv.py @@ -3,9 +3,9 @@ from typing import Mapping, Iterator from bu4.evaluation.av.aftervalue import AfterValue -from bu4.evaluation.targets.avcontainer import AVContainer from bu4.evaluation.av.envtype import envtype from bu4.evaluation.constructs.evaluable import Evaluable +from bu4.evaluation.targets.avcontainer import AVContainer __all__ = ('LambdaEnv',) diff --git a/bu4/evaluation/constructs/elambda.py b/bu4/evaluation/constructs/elambda.py index 3648c2c..ee052fa 100644 --- a/bu4/evaluation/constructs/elambda.py +++ b/bu4/evaluation/constructs/elambda.py @@ -1,10 +1,10 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -from bu4.evaluation.constructs.elinked import ELinked from bu4.evaluation.av.envtype import envtype +from bu4.evaluation.av.lambdaenv import LambdaEnv +from bu4.evaluation.constructs.elinked import ELinked from bu4.evaluation.constructs.evaluable import Evaluable from bu4.evaluation.constructs.evalue import EValue -from bu4.evaluation.av.lambdaenv import LambdaEnv from bu4.parsing.constructs.linked import Linked __all__ = ('ELambda',) diff --git a/bu4/evaluation/constructs/proxy.py b/bu4/evaluation/constructs/proxy.py index 2239a73..29713e4 100644 --- a/bu4/evaluation/constructs/proxy.py +++ b/bu4/evaluation/constructs/proxy.py @@ -3,10 +3,10 @@ from typing import Any from bu4.evaluation.av.aftervalue import AfterValue -from bu4.evaluation.targets.avtarget import AVTarget from bu4.evaluation.constructs.evaluable import Evaluable from bu4.evaluation.constructs.evalue import EValue from bu4.evaluation.sync import sync +from bu4.evaluation.targets.avtarget import AVTarget __all__ = ('eproxy', 'antiproxy') diff --git a/bu4/evaluation/targets/avcall.py b/bu4/evaluation/targets/avcall.py index b50ae5e..14e8fbb 100644 --- a/bu4/evaluation/targets/avcall.py +++ b/bu4/evaluation/targets/avcall.py @@ -1,10 +1,10 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -from bu4.evaluation.targets.avtarget import AVTarget -from bu4.evaluation.constructs.elinked import ELinked 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.parsing.constructs.linked import Linked __all__ = ('AVCall',) diff --git a/bu4/evaluation/targets/avcontainer.py b/bu4/evaluation/targets/avcontainer.py index c1424a7..54a77d1 100644 --- a/bu4/evaluation/targets/avcontainer.py +++ b/bu4/evaluation/targets/avcontainer.py @@ -1,9 +1,9 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.av.aftervalue import AfterValue -from bu4.evaluation.targets.avtarget import AVTarget from bu4.evaluation.constructs.evaluable import Evaluable from bu4.evaluation.constructs.evalue import EValue +from bu4.evaluation.targets.avtarget import AVTarget __all__ = ('AVContainer',) diff --git a/bu4/linking/evaluable_from_parsed.py b/bu4/linking/evaluable_from_parsed.py index 6b77e92..1892026 100644 --- a/bu4/linking/evaluable_from_parsed.py +++ b/bu4/linking/evaluable_from_parsed.py @@ -1,7 +1,7 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -from bu4.evaluation.constructs.elinked import ELinked from bu4.evaluation.av.envtype import envtype +from bu4.evaluation.constructs.elinked import ELinked from bu4.linking.prepare import prepare from bu4.parsing.constructs.linked import Parsed diff --git a/bu4/linking/prepare.py b/bu4/linking/prepare.py index 646470c..5781a45 100644 --- a/bu4/linking/prepare.py +++ b/bu4/linking/prepare.py @@ -1,10 +1,10 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.linking.states.afterlinking import AfterLinking -from bu4.linking.targets.alchain import ALChain from bu4.linking.states.linkingfinished import LinkingFinished from bu4.linking.states.linkingparsed import LinkingParsed from bu4.linking.states.linkingstate import LinkingState +from bu4.linking.targets.alchain import ALChain from bu4.parsing.constructs.linked import Linked __all__ = ('prepare',) diff --git a/bu4/linking/targets/alchain.py b/bu4/linking/targets/alchain.py index 6dd2d0c..3fee11e 100644 --- a/bu4/linking/targets/alchain.py +++ b/bu4/linking/targets/alchain.py @@ -1,8 +1,8 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.linking.states.afterlinking import AfterLinking -from bu4.linking.targets.altarget import ALTarget from bu4.linking.states.linkingstate import LinkingState +from bu4.linking.targets.altarget import ALTarget from bu4.parsing.constructs.linked import Linked __all__ = ('ALChain',) diff --git a/bu4/linking/targets/allambda.py b/bu4/linking/targets/allambda.py index 6700552..6747a03 100644 --- a/bu4/linking/targets/allambda.py +++ b/bu4/linking/targets/allambda.py @@ -2,8 +2,8 @@ from typing import Callable -from bu4.linking.targets.altarget import ALTarget from bu4.linking.states.linkingstate import LinkingState +from bu4.linking.targets.altarget import ALTarget from bu4.parsing.constructs.linked import Linked __all__ = ('ALLambda',) diff --git a/bu4/parsing/constructs/lcall.py b/bu4/parsing/constructs/lcall.py index ed2b629..2fddc6d 100644 --- a/bu4/parsing/constructs/lcall.py +++ b/bu4/parsing/constructs/lcall.py @@ -2,16 +2,15 @@ from bu4.evaluation.av.aftervalue import AfterValue from bu4.evaluation.av.envtype import envtype -from bu4.linking.states.linkingstate import LinkingState -from bu4.parsing.codes import CODE_CALL -from bu4.evaluation.targets.avcall import AVCall from bu4.evaluation.constructs.elinked import ELinked +from bu4.evaluation.constructs.evaluable import Evaluable +from bu4.evaluation.targets.avcall import AVCall from bu4.linking.states.afterlinking import AfterLinking -from bu4.linking.targets.allambda import ALLambda -from bu4.parsing.constructs.linked import Linked, Parsed from bu4.linking.states.linkingfinished import LinkingFinished from bu4.linking.states.linkingparsed import LinkingParsed -from bu4.evaluation.constructs.evaluable import Evaluable +from bu4.linking.states.linkingstate import LinkingState +from bu4.linking.targets.allambda import ALLambda +from bu4.parsing.constructs.linked import Linked, Parsed __all__ = ('PCall',) @@ -60,6 +59,3 @@ class PCall(Parsed): def link(self, promise: set[bytes]) -> Linked: return LCall(promise, self.value, self.lambda_) - - def __bytes__(self): - return bytes([CODE_CALL, *bytes(self.value), *bytes(self.lambda_)]) diff --git a/bu4/parsing/constructs/linked.py b/bu4/parsing/constructs/linked.py index d630562..470f274 100644 --- a/bu4/parsing/constructs/linked.py +++ b/bu4/parsing/constructs/linked.py @@ -20,13 +20,7 @@ class Linked: def unlink(self) -> 'Parsed': raise NotImplementedError - def __bytes__(self): - return bytes(self.unlink()) - class Parsed: def link(self, promise: set[bytes]) -> Linked: raise NotImplementedError - - def __bytes__(self): - raise NotImplementedError diff --git a/bu4/parsing/constructs/llambda.py b/bu4/parsing/constructs/llambda.py index 21be13c..2e1692e 100644 --- a/bu4/parsing/constructs/llambda.py +++ b/bu4/parsing/constructs/llambda.py @@ -1,15 +1,14 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.av.envtype import envtype -from bu4.linking.states.linkingstate import LinkingState -from bu4.parsing.codes import CODE_MAKE, CODE_NULL from bu4.evaluation.constructs.elambda import ELambda +from bu4.evaluation.constructs.evaluable import Evaluable from bu4.linking.states.afterlinking import AfterLinking -from bu4.linking.targets.allambda import ALLambda -from bu4.parsing.constructs.linked import Linked, Parsed from bu4.linking.states.linkingfinished import LinkingFinished from bu4.linking.states.linkingparsed import LinkingParsed -from bu4.evaluation.constructs.evaluable import Evaluable +from bu4.linking.states.linkingstate import LinkingState +from bu4.linking.targets.allambda import ALLambda +from bu4.parsing.constructs.linked import Linked, Parsed __all__ = ('PLambda',) @@ -52,6 +51,3 @@ class PLambda(Parsed): def link(self, promise: set[bytes]) -> Linked: return LLambda(promise, self.name, self.value) - - def __bytes__(self): - return bytes([CODE_MAKE, *self.name, CODE_NULL, *bytes(self.value)]) diff --git a/bu4/parsing/constructs/lname.py b/bu4/parsing/constructs/lname.py index 6d716b3..5bd2f53 100644 --- a/bu4/parsing/constructs/lname.py +++ b/bu4/parsing/constructs/lname.py @@ -1,12 +1,10 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.av.envtype import envtype -from bu4.linking.states.linkingstate import LinkingState -from bu4.parsing.codes import CODE_NAME, CODE_NULL -from bu4.parsing.constructs.linked import Linked, Parsed -from bu4.linking.states.linkingfinished import LinkingFinished from bu4.evaluation.constructs.evaluable import Evaluable - +from bu4.linking.states.linkingfinished import LinkingFinished +from bu4.linking.states.linkingstate import LinkingState +from bu4.parsing.constructs.linked import Linked, Parsed __all__ = ('PName',) @@ -36,6 +34,3 @@ class PName(Parsed): def link(self, promise: set[bytes]) -> Linked: return LName(promise, self.name) - - def __bytes__(self): - return bytes([CODE_NAME, *self.name, CODE_NULL]) diff --git a/bu4/parsing/constructs/lnull.py b/bu4/parsing/constructs/lnull.py index d9687ff..e2939db 100644 --- a/bu4/parsing/constructs/lnull.py +++ b/bu4/parsing/constructs/lnull.py @@ -1,13 +1,11 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -from bu4.evaluation.constructs.enull import ENull from bu4.evaluation.av.envtype import envtype -from bu4.linking.states.linkingstate import LinkingState -from bu4.parsing.codes import CODE_NULL -from bu4.parsing.constructs.linked import Linked, Parsed -from bu4.linking.states.linkingfinished import LinkingFinished +from bu4.evaluation.constructs.enull import ENull from bu4.evaluation.constructs.evaluable import Evaluable - +from bu4.linking.states.linkingfinished import LinkingFinished +from bu4.linking.states.linkingstate import LinkingState +from bu4.parsing.constructs.linked import Linked, Parsed __all__ = ('PNull',) @@ -32,6 +30,3 @@ class LNull(Linked): class PNull(Parsed): def link(self, promise: set[bytes]) -> Linked: return LNull() - - def __bytes__(self): - return bytes([CODE_NULL]) diff --git a/bu4/parsing/states/pscall.py b/bu4/parsing/states/pscall.py index 45879b9..9274b0d 100644 --- a/bu4/parsing/states/pscall.py +++ b/bu4/parsing/states/pscall.py @@ -3,8 +3,8 @@ from bu4.parsing.constructs.lcall import PCall from bu4.parsing.states.psafter import PSAfter from bu4.parsing.states.psfinal import PSFinal -from bu4.parsing.targets.pslambda import PSLambda from bu4.parsing.states.psread import PSRead +from bu4.parsing.targets.pslambda import PSLambda __all__ = ('pscall',) diff --git a/bu4/parsing/toolchain/parse.py b/bu4/parsing/toolchain/parse.py index 63c97a8..07aa78c 100644 --- a/bu4/parsing/toolchain/parse.py +++ b/bu4/parsing/toolchain/parse.py @@ -3,7 +3,6 @@ from bu4.parsing.constructs.linked import Parsed from bu4.parsing.parser import Parser - __all__ = ('parse',) diff --git a/bu4/parsing/toolchain/transply.py b/bu4/parsing/toolchain/transply.py index 42faac3..37ed93e 100644 --- a/bu4/parsing/toolchain/transply.py +++ b/bu4/parsing/toolchain/transply.py @@ -38,5 +38,5 @@ def transply(source: str) -> bytes: b.write(bytes([CODE_QCLS])) else: value = c.encode() - b.write(value if len(value) == 1 else value.hex().encode()) + b.write(value if len(value) == 1 else f'[{value.hex()}]'.encode()) return b.getvalue() diff --git a/bu4/evaluation/synced.py b/bu4/synced.py similarity index 100% rename from bu4/evaluation/synced.py rename to bu4/synced.py diff --git a/main.py b/main.py index 875af02..45588a5 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,15 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. +import sys from bu4.common_interface import with_common_interface from bu4.evaluation.constructs.proxy import antiproxy, eproxy from bu4.evaluation.sync import sync -from bu4.evaluation.synced import synced +from bu4.synced import synced from bu4.parsing.toolchain.readfile import readfile from timesample import TimeSample +sys.setrecursionlimit(13) + with TimeSample('all'): with TimeSample('sys0'): with TimeSample('compilation'):