hdl.rec: add basic record support.
This commit is contained in:
parent
d66bbb0df8
commit
92a96e1644
9 changed files with 242 additions and 19 deletions
|
|
@ -72,7 +72,12 @@ class _State:
|
|||
normalize = Const.normalize
|
||||
|
||||
|
||||
class _RHSValueCompiler(ValueVisitor):
|
||||
class _ValueCompiler(ValueVisitor):
|
||||
def on_Record(self, value):
|
||||
return self(Cat(value.fields.values()))
|
||||
|
||||
|
||||
class _RHSValueCompiler(_ValueCompiler):
|
||||
def __init__(self, signal_slots, sensitivity=None, mode="rhs"):
|
||||
self.signal_slots = signal_slots
|
||||
self.sensitivity = sensitivity
|
||||
|
|
@ -202,7 +207,7 @@ class _RHSValueCompiler(ValueVisitor):
|
|||
return eval
|
||||
|
||||
|
||||
class _LHSValueCompiler(ValueVisitor):
|
||||
class _LHSValueCompiler(_ValueCompiler):
|
||||
def __init__(self, signal_slots, rhs_compiler):
|
||||
self.signal_slots = signal_slots
|
||||
self.rhs_compiler = rhs_compiler
|
||||
|
|
|
|||
|
|
@ -305,6 +305,9 @@ class _ValueCompiler(xfrm.ValueVisitor):
|
|||
def on_ResetSignal(self, value):
|
||||
raise NotImplementedError # :nocov:
|
||||
|
||||
def on_Record(self, value):
|
||||
return self(Cat(value.fields.values()))
|
||||
|
||||
def on_Cat(self, value):
|
||||
return "{{ {} }}".format(" ".join(reversed([self(o) for o in value.parts])))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue