clearer module dependence
This commit is contained in:
parent
0a5d2eb0c5
commit
de5a8ed899
@ -1,11 +1,11 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.combinatory.lcombinatory import LCombinatory
|
from bu4.combinatory.lcombinatory import LCombinatory
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.parsing.codes import CODE_CMBI
|
from bu4.parsing.codes import CODE_CMBI
|
||||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -23,7 +23,7 @@ class EIC(EValue):
|
|||||||
|
|
||||||
|
|
||||||
class IIC(Indexed):
|
class IIC(Indexed):
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return EIC()
|
return EIC()
|
||||||
|
|
||||||
def bytes(self) -> TransformState[bytes]:
|
def bytes(self) -> TransformState[bytes]:
|
||||||
@ -43,7 +43,7 @@ class LIC(LCombinatory):
|
|||||||
self.future = set()
|
self.future = set()
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return EIC()
|
return EIC()
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.combinatory.lcombinatory import LCombinatory
|
from bu4.combinatory.lcombinatory import LCombinatory
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.edelayed import EDelayed
|
from bu4.evaluation.constructs.edelayed import EDelayed
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.parsing.codes import CODE_CMBK
|
from bu4.parsing.codes import CODE_CMBK
|
||||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -24,7 +24,7 @@ class EKC(EValue):
|
|||||||
|
|
||||||
|
|
||||||
class IKC(Indexed):
|
class IKC(Indexed):
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return EKC()
|
return EKC()
|
||||||
|
|
||||||
def bytes(self) -> TransformState[bytes]:
|
def bytes(self) -> TransformState[bytes]:
|
||||||
@ -44,7 +44,7 @@ class LKC(LCombinatory):
|
|||||||
self.future = set()
|
self.future = set()
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return EKC()
|
return EKC()
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
from bu4.combinatory.lcombinatory import LCombinatory
|
from bu4.combinatory.lcombinatory import LCombinatory
|
||||||
from bu4.evaluation.av.aftervalue import AfterValue
|
from bu4.evaluation.av.aftervalue import AfterValue
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
|
from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
|
||||||
from bu4.evaluation.targets.avcall import AVCall
|
from bu4.evaluation.targets.avcall import AVCall
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.parsing.codes import CODE_CMBS
|
from bu4.parsing.codes import CODE_CMBS
|
||||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -58,7 +58,7 @@ class ESC(EValue):
|
|||||||
|
|
||||||
|
|
||||||
class ISC(Indexed):
|
class ISC(Indexed):
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return ESC()
|
return ESC()
|
||||||
|
|
||||||
def bytes(self) -> TransformState[bytes]:
|
def bytes(self) -> TransformState[bytes]:
|
||||||
@ -78,7 +78,7 @@ class LSC(LCombinatory):
|
|||||||
self.future = set()
|
self.future = set()
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return ESC()
|
return ESC()
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.aftervalue import AfterValue
|
from bu4.evaluation.av.aftervalue import AfterValue
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.targets.avcall import AVCall
|
from bu4.evaluation.targets.avcall import AVCall
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_CALL
|
from bu4.parsing.codes import CODE_CALL
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -21,7 +21,7 @@ class ICall(Indexed):
|
|||||||
self.argument = argument
|
self.argument = argument
|
||||||
self.lambda_ = lambda_
|
self.lambda_ = lambda_
|
||||||
|
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return AfterValue(EAttachable(ev, self.lambda_), AVCall(EAttachable(ev, self.argument)))
|
return AfterValue(EAttachable(ev, self.lambda_), AVCall(EAttachable(ev, self.argument)))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.edelayed import EDelayed
|
from bu4.evaluation.constructs.edelayed import EDelayed
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_DLYD
|
from bu4.parsing.codes import CODE_DLYD
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -19,7 +19,7 @@ class IDelayed(Indexed):
|
|||||||
def __init__(self, value: Indexed):
|
def __init__(self, value: Indexed):
|
||||||
self.value = value
|
self.value = value
|
||||||
|
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return EDelayed(EAttachable(
|
return EDelayed(EAttachable(
|
||||||
ev,
|
ev,
|
||||||
self.value
|
self.value
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.eexception import EException
|
from bu4.evaluation.constructs.eexception import EException
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_XCPT
|
from bu4.parsing.codes import CODE_XCPT
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -15,7 +15,7 @@ class IException(Indexed):
|
|||||||
def __init__(self, name: bytes):
|
def __init__(self, name: bytes):
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return EException(self.name)
|
return EException(self.name)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.eilambda import EILambda
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eilambda import EILambda
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_MAKE
|
from bu4.parsing.codes import CODE_MAKE
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -20,7 +20,7 @@ class ILambda(Indexed):
|
|||||||
self.table = table
|
self.table = table
|
||||||
self.memoize = memoize
|
self.memoize = memoize
|
||||||
|
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return EILambda(
|
return EILambda(
|
||||||
[ev[i] for i in self.table],
|
[ev[i] for i in self.table],
|
||||||
self.value,
|
self.value,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_NAME
|
from bu4.parsing.codes import CODE_NAME
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -14,7 +14,7 @@ class IName(Indexed):
|
|||||||
def __init__(self, index: int):
|
def __init__(self, index: int):
|
||||||
self.index = index
|
self.index = index
|
||||||
|
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return ev[self.index]
|
return ev[self.index]
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.attachable import Attachable
|
from bu4.evaluation.constructs.attachable import Attachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
from bu4.transform.transform import transform
|
from bu4.transform.transform import transform
|
||||||
|
|
||||||
__all__ = ('Indexed',)
|
__all__ = ('Indexed',)
|
||||||
|
|
||||||
|
|
||||||
class Indexed(Attachable[evtype]):
|
class Indexed(Attachable[eivtype]):
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def bytes(self) -> TransformState[bytes]:
|
def bytes(self) -> TransformState[bytes]:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.enull import ENull
|
from bu4.evaluation.constructs.enull import ENull
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
from bu4.parsing.codes import CODE_NULL
|
from bu4.parsing.codes import CODE_NULL
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -12,7 +12,7 @@ __all__ = ('INull',)
|
|||||||
|
|
||||||
|
|
||||||
class INull(Indexed):
|
class INull(Indexed):
|
||||||
def attach(self, ev: evtype) -> Evaluable:
|
def attach(self, ev: eivtype) -> Evaluable:
|
||||||
return ENull()
|
return ENull()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.av.lambdaev import LambdaEv
|
|
||||||
from bu4.evaluation.constructs.attachable import Attachable
|
from bu4.evaluation.constructs.attachable import Attachable
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
|
from bu4.indexing.evaluation.lambdaeiv import LambdaEiv
|
||||||
|
|
||||||
__all__ = ('EILambda',)
|
__all__ = ('EILambda',)
|
||||||
|
|
||||||
|
|
||||||
class EILambda(EValue):
|
class EILambda(EValue):
|
||||||
def __init__(self, ev: evtype, value: Attachable[evtype], *, memoize: bool):
|
def __init__(self, ev: eivtype, value: Attachable[eivtype], *, memoize: bool):
|
||||||
self.ev = ev
|
self.ev = ev
|
||||||
self.value = value
|
self.value = value
|
||||||
self.memoize = memoize
|
self.memoize = memoize
|
||||||
|
|
||||||
def call(self, argument: Evaluable) -> Evaluable:
|
def call(self, argument: Evaluable) -> Evaluable:
|
||||||
ev: evtype = LambdaEv(self.ev, argument, memoize=self.memoize)
|
ev: eivtype = LambdaEiv(self.ev, argument, memoize=self.memoize)
|
||||||
return EAttachable(
|
return EAttachable(
|
||||||
ev,
|
ev,
|
||||||
self.value
|
self.value
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from typing import Sequence
|
from typing import Sequence
|
||||||
|
|
||||||
__all__ = ('evtype',)
|
__all__ = ('eivtype',)
|
||||||
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
|
|
||||||
@ -11,4 +11,4 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
TypeAlias = type
|
TypeAlias = type
|
||||||
|
|
||||||
evtype: TypeAlias = Sequence[Evaluable]
|
eivtype: TypeAlias = Sequence[Evaluable]
|
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
from typing import Sequence
|
from typing import Sequence
|
||||||
|
|
||||||
from bu4.evaluation.av.evtype import evtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
|
from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
|
||||||
|
from bu4.indexing.evaluation.eivtype import eivtype
|
||||||
|
|
||||||
__all__ = ('LambdaEv',)
|
__all__ = ('LambdaEiv',)
|
||||||
|
|
||||||
|
|
||||||
class LambdaEv(Sequence[Evaluable]):
|
class LambdaEiv(Sequence[Evaluable]):
|
||||||
def __getitem__(self, i: int) -> Evaluable:
|
def __getitem__(self, i: int) -> Evaluable:
|
||||||
if i == 0:
|
if i == 0:
|
||||||
return self.container
|
return self.container
|
||||||
@ -19,6 +19,6 @@ class LambdaEv(Sequence[Evaluable]):
|
|||||||
def __len__(self) -> int:
|
def __len__(self) -> int:
|
||||||
return len(self.ev) + 1
|
return len(self.ev) + 1
|
||||||
|
|
||||||
def __init__(self, ev: evtype, evaluable: Evaluable, *, memoize):
|
def __init__(self, ev: eivtype, evaluable: Evaluable, *, memoize):
|
||||||
self.ev = ev
|
self.ev = ev
|
||||||
self.container = AVAnonymousContainer(evaluable).after_value if memoize else evaluable
|
self.container = AVAnonymousContainer(evaluable).after_value if memoize else evaluable
|
@ -1,17 +1,17 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.av.lambdaenv import LambdaEnv
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
|
from bu4.linkable.evaluation.lambdaelv import LambdaElv
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
|
|
||||||
__all__ = ('ELambda',)
|
__all__ = ('ELLambda',)
|
||||||
|
|
||||||
|
|
||||||
class ELambda(EValue):
|
class ELLambda(EValue):
|
||||||
def __init__(self, env: envtype, name: bytes, value: Linked):
|
def __init__(self, env: elvtype, name: bytes, value: Linked):
|
||||||
self.env = env
|
self.env = env
|
||||||
self.name = name
|
self.name = name
|
||||||
self.value = value
|
self.value = value
|
||||||
@ -20,7 +20,7 @@ class ELambda(EValue):
|
|||||||
|
|
||||||
def call(self, argument: Evaluable) -> Evaluable:
|
def call(self, argument: Evaluable) -> Evaluable:
|
||||||
return EAttachable(
|
return EAttachable(
|
||||||
LambdaEnv(self.env, self.name, argument, memoize=self.memoize) if self.used else self.env,
|
LambdaElv(self.env, self.name, argument, memoize=self.memoize) if self.used else self.env,
|
||||||
self.value
|
self.value
|
||||||
)
|
)
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from typing import Mapping
|
from typing import Mapping
|
||||||
|
|
||||||
__all__ = ('envtype',)
|
__all__ = ('elvtype',)
|
||||||
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
|
|
||||||
@ -11,4 +11,4 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
TypeAlias = type
|
TypeAlias = type
|
||||||
|
|
||||||
envtype: TypeAlias = Mapping[bytes, Evaluable]
|
elvtype: TypeAlias = Mapping[bytes, Evaluable]
|
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
from typing import Mapping, Iterator
|
from typing import Mapping, Iterator
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.targets.avnamedcontainer import AVNamedContainer
|
from bu4.evaluation.targets.avnamedcontainer import AVNamedContainer
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
|
|
||||||
__all__ = ('LambdaEnv',)
|
__all__ = ('LambdaElv',)
|
||||||
|
|
||||||
|
|
||||||
class LambdaEnv(Mapping[bytes, Evaluable]):
|
class LambdaElv(Mapping[bytes, Evaluable]):
|
||||||
def __getitem__(self, k: bytes) -> Evaluable:
|
def __getitem__(self, k: bytes) -> Evaluable:
|
||||||
if k == self.name:
|
if k == self.name:
|
||||||
return self.container
|
return self.container
|
||||||
@ -23,7 +23,7 @@ class LambdaEnv(Mapping[bytes, Evaluable]):
|
|||||||
yield self.name
|
yield self.name
|
||||||
yield from self.env
|
yield from self.env
|
||||||
|
|
||||||
def __init__(self, env: envtype, name: bytes, evaluable: Evaluable, *, memoize):
|
def __init__(self, env: elvtype, name: bytes, evaluable: Evaluable, *, memoize):
|
||||||
self.env = env
|
self.env = env
|
||||||
self.name = name
|
self.name = name
|
||||||
self.container = AVNamedContainer(evaluable, name).after_value if memoize else evaluable
|
self.container = AVNamedContainer(evaluable, name).after_value if memoize else evaluable
|
@ -1,12 +1,12 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.aftervalue import AfterValue
|
from bu4.evaluation.av.aftervalue import AfterValue
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.evaluation.targets.avcall import AVCall
|
from bu4.evaluation.targets.avcall import AVCall
|
||||||
from bu4.indexing.constructs.icall import ICall
|
from bu4.indexing.constructs.icall import ICall
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -31,7 +31,7 @@ class LCall(Linked):
|
|||||||
(self.argument.future & self.lambda_.future)
|
(self.argument.future & self.lambda_.future)
|
||||||
)
|
)
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return AfterValue(EAttachable(env, self.lambda_), AVCall(EAttachable(env, self.argument)))
|
return AfterValue(EAttachable(env, self.lambda_), AVCall(EAttachable(env, self.argument)))
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.edelayed import EDelayed
|
from bu4.evaluation.constructs.edelayed import EDelayed
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.idelayed import IDelayed
|
from bu4.indexing.constructs.idelayed import IDelayed
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -24,7 +24,7 @@ class LDelayed(Linked):
|
|||||||
self.future = self.value.future
|
self.future = self.value.future
|
||||||
self.multifuture = self.future
|
self.multifuture = self.future
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return EDelayed(EAttachable(
|
return EDelayed(EAttachable(
|
||||||
env,
|
env,
|
||||||
self.value
|
self.value
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.eexception import EException
|
from bu4.evaluation.constructs.eexception import EException
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.iexception import IException
|
from bu4.indexing.constructs.iexception import IException
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -18,7 +18,7 @@ class LException(Linked):
|
|||||||
self.future = set()
|
self.future = set()
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return EException(self.name)
|
return EException(self.name)
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.attachable import Attachable
|
from bu4.evaluation.constructs.attachable import Attachable
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
|
|
||||||
__all__ = ('Linked',)
|
__all__ = ('Linked',)
|
||||||
|
|
||||||
|
|
||||||
class Linked(Attachable[envtype]):
|
class Linked(Attachable[elvtype]):
|
||||||
future: set[bytes]
|
future: set[bytes]
|
||||||
multifuture: set[bytes]
|
multifuture: set[bytes]
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.evaluation.constructs.edelayed import EDelayed
|
from bu4.evaluation.constructs.edelayed import EDelayed
|
||||||
from bu4.evaluation.constructs.elambda import ELambda
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.idelayed import IDelayed
|
from bu4.indexing.constructs.idelayed import IDelayed
|
||||||
from bu4.indexing.constructs.ilambda import ILambda
|
from bu4.indexing.constructs.ilambda import ILambda
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.ellambda import ELLambda
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.aftertransform import AfterTransform
|
from bu4.transform.states.aftertransform import AfterTransform
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
@ -29,9 +29,9 @@ class LLambda(Linked):
|
|||||||
self.used = name in value.future
|
self.used = name in value.future
|
||||||
self.memoize = name in value.multifuture
|
self.memoize = name in value.multifuture
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return (
|
return (
|
||||||
ELambda(
|
ELLambda(
|
||||||
{name: env[name] for name in self.future} if self.used else env,
|
{name: env[name] for name in self.future} if self.used else env,
|
||||||
self.name,
|
self.name,
|
||||||
self.value
|
self.value
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.iname import IName
|
from bu4.indexing.constructs.iname import IName
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -17,7 +17,7 @@ class LName(Linked):
|
|||||||
self.future = {name}
|
self.future = {name}
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return env[self.name]
|
return env[self.name]
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.enull import ENull
|
from bu4.evaluation.constructs.enull import ENull
|
||||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||||
from bu4.indexing.constructs.indexed import Indexed
|
from bu4.indexing.constructs.indexed import Indexed
|
||||||
from bu4.indexing.constructs.inull import INull
|
from bu4.indexing.constructs.inull import INull
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.linking.constructs.linked import Linked
|
from bu4.linking.constructs.linked import Linked
|
||||||
from bu4.transform.states.transformfinished import TransformFinished
|
from bu4.transform.states.transformfinished import TransformFinished
|
||||||
from bu4.transform.states.transformstate import TransformState
|
from bu4.transform.states.transformstate import TransformState
|
||||||
@ -17,7 +17,7 @@ class LNull(Linked):
|
|||||||
self.future = set()
|
self.future = set()
|
||||||
self.multifuture = set()
|
self.multifuture = set()
|
||||||
|
|
||||||
def attach(self, env: envtype) -> Evaluable:
|
def attach(self, env: elvtype) -> Evaluable:
|
||||||
return ENull()
|
return ENull()
|
||||||
|
|
||||||
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
def index(self, promise: list[bytes]) -> TransformState[Indexed]:
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||||
|
|
||||||
from bu4.evaluation.av.envtype import envtype
|
|
||||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||||
from bu4.linkable.constructs.parsed import Parsed
|
from bu4.linkable.constructs.parsed import Parsed
|
||||||
|
from bu4.linkable.evaluation.elvtype import elvtype
|
||||||
from bu4.transform.transform import transform
|
from bu4.transform.transform import transform
|
||||||
|
|
||||||
__all__ = ('evaluable_from_parsed',)
|
__all__ = ('evaluable_from_parsed',)
|
||||||
|
|
||||||
|
|
||||||
def evaluable_from_parsed(env: envtype, parsed: Parsed):
|
def evaluable_from_parsed(env: elvtype, parsed: Parsed):
|
||||||
linked = transform(parsed.link(set(env)))
|
linked = transform(parsed.link(set(env)))
|
||||||
return EAttachable(env, linked)
|
return EAttachable(env, linked)
|
||||||
|
@ -4,10 +4,10 @@ from bu4.combinatory.lic import EIC
|
|||||||
from bu4.combinatory.lkc import EKC
|
from bu4.combinatory.lkc import EKC
|
||||||
from bu4.combinatory.lsc import ESC, ESC1, ESC2
|
from bu4.combinatory.lsc import ESC, ESC1, ESC2
|
||||||
from bu4.evaluation.constructs.edelayed import EDelayed
|
from bu4.evaluation.constructs.edelayed import EDelayed
|
||||||
from bu4.evaluation.constructs.eilambda import EILambda
|
|
||||||
from bu4.evaluation.constructs.elambda import ELambda
|
|
||||||
from bu4.evaluation.constructs.evalue import EValue
|
from bu4.evaluation.constructs.evalue import EValue
|
||||||
from bu4.evaluation.sync import sync
|
from bu4.evaluation.sync import sync
|
||||||
|
from bu4.indexing.evaluation.eilambda import EILambda
|
||||||
|
from bu4.linkable.evaluation.ellambda import ELLambda
|
||||||
from bu4.tracing.probe import ProbeA
|
from bu4.tracing.probe import ProbeA
|
||||||
|
|
||||||
__all__ = ('trace', 'probe_index_reset',)
|
__all__ = ('trace', 'probe_index_reset',)
|
||||||
@ -19,7 +19,7 @@ def trace(lambda_: EValue):
|
|||||||
global _probe_index
|
global _probe_index
|
||||||
size = 0
|
size = 0
|
||||||
while True:
|
while True:
|
||||||
if not isinstance(lambda_, (ELambda, EILambda, EIC, EKC, ESC, ESC1, ESC2, EDelayed)):
|
if not isinstance(lambda_, (ELLambda, EILambda, EIC, EKC, ESC, ESC1, ESC2, EDelayed)):
|
||||||
return size, lambda_
|
return size, lambda_
|
||||||
lambda_ = sync(lambda_.call(ProbeA(_probe_index)))
|
lambda_ = sync(lambda_.call(ProbeA(_probe_index)))
|
||||||
_probe_index += 1
|
_probe_index += 1
|
||||||
|
Loading…
Reference in New Issue
Block a user