better linking
This commit is contained in:
parent
e06606ed1e
commit
03d46253c5
@ -5,7 +5,7 @@ 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.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('ELambda',)
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('ELinked',)
|
||||
|
||||
|
@ -5,7 +5,7 @@ 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
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('AVCall',)
|
||||
|
||||
|
26
bu4/linking/constructs/lcall.py
Normal file
26
bu4/linking/constructs/lcall.py
Normal file
@ -0,0 +1,26 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.aftervalue import AfterValue
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.elinked import ELinked
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.targets.avcall import AVCall
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('LCall',)
|
||||
|
||||
|
||||
class LCall(Linked):
|
||||
argument: Linked
|
||||
lambda_: Linked
|
||||
|
||||
def __init__(self, argument: Linked, lambda_: Linked):
|
||||
self.argument = argument
|
||||
self.lambda_ = lambda_
|
||||
self.future = self.argument.future | self.lambda_.future
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return AfterValue(ELinked(env, self.lambda_), AVCall(env, self.argument))
|
||||
|
||||
def __str__(self):
|
||||
return f'/{self.argument}{self.lambda_}'
|
13
bu4/linking/constructs/linked.py
Normal file
13
bu4/linking/constructs/linked.py
Normal file
@ -0,0 +1,13 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
|
||||
__all__ = ('Linked',)
|
||||
|
||||
|
||||
class Linked:
|
||||
future: set[bytes]
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
raise NotImplementedError
|
27
bu4/linking/constructs/llambda.py
Normal file
27
bu4/linking/constructs/llambda.py
Normal file
@ -0,0 +1,27 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.elambda import ELambda
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('LLambda',)
|
||||
|
||||
|
||||
class LLambda(Linked):
|
||||
value: Linked
|
||||
|
||||
def __init__(self, name: bytes, value: Linked):
|
||||
self.name = name
|
||||
self.value = value
|
||||
self.future = self.value.future - {self.name}
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return ELambda(
|
||||
{name: container for name, container in env.items() if name in self.future},
|
||||
self.name,
|
||||
self.value
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return f'({self.name.decode()}){self.value}'
|
19
bu4/linking/constructs/lname.py
Normal file
19
bu4/linking/constructs/lname.py
Normal file
@ -0,0 +1,19 @@
|
||||
# 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.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('LName',)
|
||||
|
||||
|
||||
class LName(Linked):
|
||||
def __init__(self, name: bytes):
|
||||
self.name = name
|
||||
self.future = {name}
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return env[self.name]
|
||||
|
||||
def __str__(self):
|
||||
return f'[{self.name.decode()}]'
|
19
bu4/linking/constructs/lnull.py
Normal file
19
bu4/linking/constructs/lnull.py
Normal file
@ -0,0 +1,19 @@
|
||||
# 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.evaluable import Evaluable
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('LNull',)
|
||||
|
||||
|
||||
class LNull(Linked):
|
||||
def __init__(self):
|
||||
self.future = set()
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return ENull()
|
||||
|
||||
def __str__(self):
|
||||
return '?'
|
@ -3,12 +3,12 @@
|
||||
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
|
||||
|
||||
__all__ = ('evaluable_from_parsed',)
|
||||
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
def evaluable_from_parsed(env: envtype, parsed: Parsed):
|
||||
linked = parsed.link(set(env))
|
||||
prepare(linked)
|
||||
linked = prepare(parsed.link(set(env)))
|
||||
return ELinked(env, linked)
|
||||
|
@ -5,7 +5,7 @@ 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
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('prepare',)
|
||||
|
||||
@ -16,14 +16,13 @@ def _afterlinking_iteration(state: AfterLinking) -> LinkingState:
|
||||
elif isinstance(state.state, AfterLinking):
|
||||
state.state, state.target = state.state.state, ALChain(state.state.target, state.target)
|
||||
elif isinstance(state.state, LinkingParsed):
|
||||
state.state = state.state.parsed.link(state.state.promise).link()
|
||||
state.state = state.state.parsed.link(state.state.promise)
|
||||
else:
|
||||
raise TypeError
|
||||
return state
|
||||
|
||||
|
||||
def prepare(linked: Linked) -> Linked:
|
||||
state = linked.link()
|
||||
def prepare(state: LinkingState) -> Linked:
|
||||
while True:
|
||||
if isinstance(state, LinkingFinished):
|
||||
return state.linked
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('LinkingFinished',)
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
|
||||
__all__ = ('LinkingParsed',)
|
||||
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
class LinkingParsed(LinkingState):
|
||||
def __init__(self, promise: set[bytes], parsed: Parsed):
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('LinkingState',)
|
||||
|
||||
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
class LinkingState:
|
||||
pass
|
||||
|
@ -3,7 +3,7 @@
|
||||
from bu4.linking.states.afterlinking import AfterLinking
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.linking.targets.altarget import ALTarget
|
||||
from bu4.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('ALChain',)
|
||||
|
||||
|
@ -4,7 +4,7 @@ from typing import Callable
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.linking.targets.altarget import ALTarget
|
||||
from bu4.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('ALLambda',)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.linked import Linked
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
|
||||
__all__ = ('ALTarget',)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('AbstractParser',)
|
||||
|
||||
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
class AbstractParser:
|
||||
def read(self) -> int:
|
||||
raise NotImplementedError
|
||||
|
@ -1,61 +0,0 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.aftervalue import AfterValue
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
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.states.linkingfinished import LinkingFinished
|
||||
from bu4.linking.states.linkingparsed import LinkingParsed
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.linking.targets.allambda import ALLambda
|
||||
from bu4.parsing.constructs.linked import Linked, Parsed
|
||||
|
||||
__all__ = ('PCall',)
|
||||
|
||||
|
||||
class LCall(Linked):
|
||||
argument: Linked
|
||||
lambda_: Linked
|
||||
|
||||
def __init__(self, promise: set[bytes], argument: Parsed, lambda_: Parsed):
|
||||
self.promise = promise
|
||||
self._argument = argument
|
||||
self._lambda = lambda_
|
||||
|
||||
def link(self) -> LinkingState:
|
||||
return AfterLinking(
|
||||
LinkingParsed(self.promise, self._argument),
|
||||
ALLambda(self._given_argument)
|
||||
)
|
||||
|
||||
def _given_argument(self, argument: Linked) -> LinkingState:
|
||||
self.argument = argument
|
||||
return AfterLinking(
|
||||
LinkingParsed(self.promise, self._lambda),
|
||||
ALLambda(self._given_lambda)
|
||||
)
|
||||
|
||||
def _given_lambda(self, lambda_) -> LinkingState:
|
||||
self.lambda_ = lambda_
|
||||
self.future = self.argument.future | self.lambda_.future
|
||||
return LinkingFinished(self)
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return AfterValue(ELinked(env, self.lambda_), AVCall(env, self.argument))
|
||||
|
||||
def __str__(self):
|
||||
return f'/{self.argument}{self.lambda_}'
|
||||
|
||||
def unlink(self) -> Parsed:
|
||||
return PCall(self._argument, self._lambda)
|
||||
|
||||
|
||||
class PCall(Parsed):
|
||||
def __init__(self, argument: Parsed, lambda_: Parsed):
|
||||
self.argument = argument
|
||||
self.lambda_ = lambda_
|
||||
|
||||
def link(self, promise: set[bytes]) -> Linked:
|
||||
return LCall(promise, self.argument, self.lambda_)
|
@ -1,26 +0,0 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
|
||||
__all__ = ('Linked', 'Parsed',)
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
|
||||
|
||||
class Linked:
|
||||
future: set[bytes]
|
||||
|
||||
def link(self) -> LinkingState:
|
||||
raise NotImplementedError
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
raise NotImplementedError
|
||||
|
||||
def unlink(self) -> 'Parsed':
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class Parsed:
|
||||
def link(self, promise: set[bytes]) -> Linked:
|
||||
raise NotImplementedError
|
@ -1,53 +0,0 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.evaluation.av.envtype import envtype
|
||||
from bu4.evaluation.constructs.elambda import ELambda
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.linking.states.afterlinking import AfterLinking
|
||||
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.allambda import ALLambda
|
||||
from bu4.parsing.constructs.linked import Linked, Parsed
|
||||
|
||||
__all__ = ('PLambda',)
|
||||
|
||||
|
||||
class LLambda(Linked):
|
||||
value: Linked
|
||||
|
||||
def __init__(self, promise: set[bytes], name: bytes, value: Parsed):
|
||||
assert name not in promise, f'overloaded: {name}'
|
||||
self.promise = promise
|
||||
self.name = name
|
||||
self._value = value
|
||||
|
||||
def link(self) -> LinkingState:
|
||||
return AfterLinking(LinkingParsed(self.promise | {self.name}, self._value), ALLambda(self._given_value))
|
||||
|
||||
def _given_value(self, value: Linked) -> LinkingState:
|
||||
self.value = value
|
||||
self.future = self.value.future - {self.name}
|
||||
return LinkingFinished(self)
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return ELambda(
|
||||
{name: container for name, container in env.items() if name in self.future},
|
||||
self.name,
|
||||
self.value
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return f'({self.name.decode()}){self.value}'
|
||||
|
||||
def unlink(self) -> Parsed:
|
||||
return PLambda(self.name, self._value)
|
||||
|
||||
|
||||
class PLambda(Parsed):
|
||||
def __init__(self, name: bytes, value: Parsed):
|
||||
self.name = name
|
||||
self.value = value
|
||||
|
||||
def link(self, promise: set[bytes]) -> Linked:
|
||||
return LLambda(promise, self.name, self.value)
|
@ -1,36 +0,0 @@
|
||||
# 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.linking.states.linkingfinished import LinkingFinished
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.linked import Linked, Parsed
|
||||
|
||||
__all__ = ('PName',)
|
||||
|
||||
|
||||
class LName(Linked):
|
||||
def __init__(self, promise: set[bytes], name: bytes):
|
||||
assert name in promise, f'undefined: {name}'
|
||||
self.name = name
|
||||
self.future = {name}
|
||||
|
||||
def link(self) -> LinkingState:
|
||||
return LinkingFinished(self)
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return env[self.name]
|
||||
|
||||
def __str__(self):
|
||||
return f'[{self.name.decode()}]'
|
||||
|
||||
def unlink(self) -> Parsed:
|
||||
return PName(self.name)
|
||||
|
||||
|
||||
class PName(Parsed):
|
||||
def __init__(self, name: bytes):
|
||||
self.name = name
|
||||
|
||||
def link(self, promise: set[bytes]) -> Linked:
|
||||
return LName(promise, self.name)
|
@ -1,32 +0,0 @@
|
||||
# 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.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',)
|
||||
|
||||
|
||||
class LNull(Linked):
|
||||
def __init__(self):
|
||||
self.future = set()
|
||||
|
||||
def link(self) -> LinkingState:
|
||||
return LinkingFinished(self)
|
||||
|
||||
def evaluable(self, env: envtype) -> Evaluable:
|
||||
return ENull()
|
||||
|
||||
def __str__(self):
|
||||
return '?'
|
||||
|
||||
def unlink(self) -> Parsed:
|
||||
return PNull()
|
||||
|
||||
|
||||
class PNull(Parsed):
|
||||
def link(self, promise: set[bytes]) -> Linked:
|
||||
return LNull()
|
10
bu4/parsing/constructs/parsed.py
Normal file
10
bu4/parsing/constructs/parsed.py
Normal file
@ -0,0 +1,10 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('Parsed',)
|
||||
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
|
||||
|
||||
class Parsed:
|
||||
def link(self, promise: set[bytes]) -> LinkingState:
|
||||
raise NotImplementedError
|
30
bu4/parsing/constructs/pcall.py
Normal file
30
bu4/parsing/constructs/pcall.py
Normal file
@ -0,0 +1,30 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('PCall',)
|
||||
|
||||
from bu4.linking.constructs.lcall import LCall
|
||||
from bu4.linking.states.afterlinking import AfterLinking
|
||||
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.allambda import ALLambda
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
class PCall(Parsed):
|
||||
def __init__(self, argument: Parsed, lambda_: Parsed):
|
||||
self.argument = argument
|
||||
self.lambda_ = lambda_
|
||||
|
||||
def link(self, promise: set[bytes]) -> LinkingState:
|
||||
return AfterLinking(
|
||||
LinkingParsed(promise, self.argument),
|
||||
ALLambda(
|
||||
lambda argument: AfterLinking(
|
||||
LinkingParsed(promise, self.lambda_),
|
||||
ALLambda(
|
||||
lambda lambda_: LinkingFinished(LCall(argument, lambda_))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
32
bu4/parsing/constructs/plambda.py
Normal file
32
bu4/parsing/constructs/plambda.py
Normal file
@ -0,0 +1,32 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('PLambda',)
|
||||
|
||||
from bu4.linking.constructs.llambda import LLambda
|
||||
from bu4.linking.states.afterlinking import AfterLinking
|
||||
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.allambda import ALLambda
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
class PLambda(Parsed):
|
||||
def __init__(self, name: bytes, value: Parsed):
|
||||
self.name = name
|
||||
self.value = value
|
||||
|
||||
def link(self, promise: set[bytes]) -> LinkingState:
|
||||
assert self.name not in promise, f'overloaded: {self.name}'
|
||||
return AfterLinking(
|
||||
LinkingParsed(
|
||||
promise | {self.name},
|
||||
self.value
|
||||
),
|
||||
ALLambda(
|
||||
lambda value: LinkingFinished(LLambda(
|
||||
self.name,
|
||||
value
|
||||
))
|
||||
)
|
||||
)
|
17
bu4/parsing/constructs/pname.py
Normal file
17
bu4/parsing/constructs/pname.py
Normal file
@ -0,0 +1,17 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('PName',)
|
||||
|
||||
from bu4.linking.constructs.lname import LName
|
||||
from bu4.linking.states.linkingfinished import LinkingFinished
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
class PName(Parsed):
|
||||
def __init__(self, name: bytes):
|
||||
self.name = name
|
||||
|
||||
def link(self, promise: set[bytes]) -> LinkingState:
|
||||
assert self.name in promise, f'undefined: {self.name}'
|
||||
return LinkingFinished(LName(self.name))
|
13
bu4/parsing/constructs/pnull.py
Normal file
13
bu4/parsing/constructs/pnull.py
Normal file
@ -0,0 +1,13 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('PNull',)
|
||||
|
||||
from bu4.linking.constructs.lnull import LNull
|
||||
from bu4.linking.states.linkingfinished import LinkingFinished
|
||||
from bu4.linking.states.linkingstate import LinkingState
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
|
||||
|
||||
class PNull(Parsed):
|
||||
def link(self, promise: set[bytes]) -> LinkingState:
|
||||
return LinkingFinished(LNull())
|
@ -4,10 +4,10 @@ from io import BytesIO
|
||||
|
||||
from bu4.parsing.abstractparser import AbstractParser
|
||||
from bu4.parsing.codes import *
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.llambda import PLambda
|
||||
from bu4.parsing.constructs.lname import PName
|
||||
from bu4.parsing.constructs.lnull import PNull
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.constructs.plambda import PLambda
|
||||
from bu4.parsing.constructs.pname import PName
|
||||
from bu4.parsing.constructs.pnull import PNull
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
from bu4.parsing.states.psafter import PSAfter
|
||||
from bu4.parsing.states.pscall import pscall
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
__all__ = ('ParseState',)
|
||||
|
||||
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
class ParseState:
|
||||
pass
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.constructs.lcall import PCall
|
||||
from bu4.parsing.constructs.pcall import PCall
|
||||
from bu4.parsing.states.psafter import PSAfter
|
||||
from bu4.parsing.states.psfinal import PSFinal
|
||||
from bu4.parsing.states.psread import PSRead
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
|
||||
__all__ = ('PSFinal',)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
from bu4.parsing.states.psafter import PSAfter
|
||||
from bu4.parsing.targets.pstarget import PSTarget
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.abstractparser import AbstractParser
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
from bu4.parsing.states.psfinal import PSFinal
|
||||
from bu4.parsing.targets.pstarget import PSTarget
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
from typing import Callable
|
||||
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
from bu4.parsing.targets.pstarget import PSTarget
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.states.parsestate import ParseState
|
||||
|
||||
__all__ = ('PSTarget',)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
||||
|
||||
from bu4.parsing.constructs.linked import Parsed
|
||||
from bu4.parsing.constructs.parsed import Parsed
|
||||
from bu4.parsing.parser import Parser
|
||||
|
||||
__all__ = ('parse',)
|
||||
|
Loading…
Reference in New Issue
Block a user