hdl.xfrm: Abstract*Transformer→*Visitor
This commit is contained in:
parent
37b81309d3
commit
98a9744be4
|
@ -7,7 +7,7 @@ from vcd.gtkw import GTKWSave
|
||||||
|
|
||||||
from ..tools import flatten
|
from ..tools import flatten
|
||||||
from ..hdl.ast import *
|
from ..hdl.ast import *
|
||||||
from ..hdl.xfrm import AbstractValueTransformer, AbstractStatementTransformer
|
from ..hdl.xfrm import ValueVisitor, StatementVisitor
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["Simulator", "Delay", "Tick", "Passive", "DeadlineError"]
|
__all__ = ["Simulator", "Delay", "Tick", "Passive", "DeadlineError"]
|
||||||
|
@ -71,7 +71,7 @@ class _State:
|
||||||
normalize = Const.normalize
|
normalize = Const.normalize
|
||||||
|
|
||||||
|
|
||||||
class _RHSValueCompiler(AbstractValueTransformer):
|
class _RHSValueCompiler(ValueVisitor):
|
||||||
def __init__(self, signal_slots, sensitivity=None, mode="rhs"):
|
def __init__(self, signal_slots, sensitivity=None, mode="rhs"):
|
||||||
self.signal_slots = signal_slots
|
self.signal_slots = signal_slots
|
||||||
self.sensitivity = sensitivity
|
self.sensitivity = sensitivity
|
||||||
|
@ -201,7 +201,7 @@ class _RHSValueCompiler(AbstractValueTransformer):
|
||||||
return eval
|
return eval
|
||||||
|
|
||||||
|
|
||||||
class _LHSValueCompiler(AbstractValueTransformer):
|
class _LHSValueCompiler(ValueVisitor):
|
||||||
def __init__(self, signal_slots, rhs_compiler):
|
def __init__(self, signal_slots, rhs_compiler):
|
||||||
self.signal_slots = signal_slots
|
self.signal_slots = signal_slots
|
||||||
self.rhs_compiler = rhs_compiler
|
self.rhs_compiler = rhs_compiler
|
||||||
|
@ -275,7 +275,7 @@ class _LHSValueCompiler(AbstractValueTransformer):
|
||||||
return eval
|
return eval
|
||||||
|
|
||||||
|
|
||||||
class _StatementCompiler(AbstractStatementTransformer):
|
class _StatementCompiler(StatementVisitor):
|
||||||
def __init__(self, signal_slots):
|
def __init__(self, signal_slots):
|
||||||
self.sensitivity = SignalSet()
|
self.sensitivity = SignalSet()
|
||||||
self.rrhs_compiler = _RHSValueCompiler(signal_slots, self.sensitivity, mode="rhs")
|
self.rrhs_compiler = _RHSValueCompiler(signal_slots, self.sensitivity, mode="rhs")
|
||||||
|
|
|
@ -9,13 +9,13 @@ from .cd import *
|
||||||
from .ir import *
|
from .ir import *
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["AbstractValueTransformer", "ValueTransformer",
|
__all__ = ["ValueVisitor", "ValueTransformer",
|
||||||
"AbstractStatementTransformer", "StatementTransformer",
|
"StatementVisitor", "StatementTransformer",
|
||||||
"FragmentTransformer",
|
"FragmentTransformer",
|
||||||
"DomainRenamer", "DomainLowerer", "ResetInserter", "CEInserter"]
|
"DomainRenamer", "DomainLowerer", "ResetInserter", "CEInserter"]
|
||||||
|
|
||||||
|
|
||||||
class AbstractValueTransformer(metaclass=ABCMeta):
|
class ValueVisitor(metaclass=ABCMeta):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def on_Const(self, value):
|
def on_Const(self, value):
|
||||||
pass # :nocov:
|
pass # :nocov:
|
||||||
|
@ -91,7 +91,7 @@ class AbstractValueTransformer(metaclass=ABCMeta):
|
||||||
return self.on_value(value)
|
return self.on_value(value)
|
||||||
|
|
||||||
|
|
||||||
class ValueTransformer(AbstractValueTransformer):
|
class ValueTransformer(ValueVisitor):
|
||||||
def on_Const(self, value):
|
def on_Const(self, value):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ class ValueTransformer(AbstractValueTransformer):
|
||||||
self.on_value(value.index))
|
self.on_value(value.index))
|
||||||
|
|
||||||
|
|
||||||
class AbstractStatementTransformer(metaclass=ABCMeta):
|
class StatementVisitor(metaclass=ABCMeta):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def on_Assign(self, stmt):
|
def on_Assign(self, stmt):
|
||||||
pass # :nocov:
|
pass # :nocov:
|
||||||
|
@ -155,7 +155,7 @@ class AbstractStatementTransformer(metaclass=ABCMeta):
|
||||||
return self.on_statement(value)
|
return self.on_statement(value)
|
||||||
|
|
||||||
|
|
||||||
class StatementTransformer(AbstractStatementTransformer):
|
class StatementTransformer(StatementVisitor):
|
||||||
def on_value(self, value):
|
def on_value(self, value):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue