hdl.xfrm: Add on_AnyConst and on_AnySeq abstract methods for ValueVisitor and children.
This commit is contained in:
parent
6fdbc3d885
commit
77728c2dea
|
@ -87,6 +87,12 @@ class _RHSValueCompiler(_ValueCompiler):
|
|||
def on_Const(self, value):
|
||||
return lambda state: value.value
|
||||
|
||||
def on_AnyConst(self, value):
|
||||
raise NotImplementedError # :nocov:
|
||||
|
||||
def on_AnySeq(self, value):
|
||||
raise NotImplementedError # :nocov:
|
||||
|
||||
def on_Signal(self, value):
|
||||
if self.sensitivity is not None:
|
||||
self.sensitivity.add(value)
|
||||
|
@ -219,6 +225,12 @@ class _LHSValueCompiler(_ValueCompiler):
|
|||
def on_Const(self, value):
|
||||
raise TypeError # :nocov:
|
||||
|
||||
def on_AnyConst(self, value):
|
||||
raise TypeError # :nocov:
|
||||
|
||||
def on_AnySeq(self, value):
|
||||
raise TypeError # :nocov:
|
||||
|
||||
def on_Signal(self, value):
|
||||
shape = value.shape()
|
||||
value_slot = self.signal_slots[value]
|
||||
|
|
|
@ -23,6 +23,14 @@ class ValueVisitor(metaclass=ABCMeta):
|
|||
def on_Const(self, value):
|
||||
pass # :nocov:
|
||||
|
||||
@abstractmethod
|
||||
def on_AnyConst(self, value):
|
||||
pass # :nocov:
|
||||
|
||||
@abstractmethod
|
||||
def on_AnySeq(self, value):
|
||||
pass # :nocov:
|
||||
|
||||
@abstractmethod
|
||||
def on_Signal(self, value):
|
||||
pass # :nocov:
|
||||
|
@ -69,6 +77,10 @@ class ValueVisitor(metaclass=ABCMeta):
|
|||
def on_value(self, value):
|
||||
if type(value) is Const:
|
||||
new_value = self.on_Const(value)
|
||||
elif type(value) is AnyConst:
|
||||
new_value = self.on_AnyConst(value)
|
||||
elif type(value) is AnySeq:
|
||||
new_value = self.on_AnySeq(value)
|
||||
elif type(value) is Signal:
|
||||
new_value = self.on_Signal(value)
|
||||
elif type(value) is Record:
|
||||
|
@ -104,6 +116,12 @@ class ValueTransformer(ValueVisitor):
|
|||
def on_Const(self, value):
|
||||
return value
|
||||
|
||||
def on_AnyConst(self, value):
|
||||
return value
|
||||
|
||||
def on_AnySeq(self, value):
|
||||
return value
|
||||
|
||||
def on_Signal(self, value):
|
||||
return value
|
||||
|
||||
|
|
Loading…
Reference in a new issue