Skip to content

Commit 609303e

Browse files
committed
sby: core: Started on the initial stages setup script generation
1 parent 83a1aa2 commit 609303e

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

sbysrc/sby_core.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ def parse_config(self, f):
427427

428428
if mode == "setup":
429429
_valid_options = (
430-
"cutpoint", "disable", "enable", "assume", "define"
430+
"cutpoint", "disable", "enable", "assume", "define", "invoke"
431431
)
432432

433433
args = line.strip().split(maxsplit = 1)
@@ -530,6 +530,41 @@ def parse_config(self, f):
530530
def error(self, logmessage):
531531
raise SbyAbort(logmessage)
532532

533+
def gen_setup_script(self):
534+
script = '# Autogenerated by SBY stage setup\n'
535+
536+
def cutpoint(v):
537+
return f"cutpoint {v}"
538+
539+
def disable(v):
540+
return f"select -del {v}"
541+
542+
def enable(v):
543+
return f"select -add {v}"
544+
545+
def assume(v):
546+
return f"chformal -assert2assume {v}"
547+
548+
def define(v):
549+
return f"select -set {v}"
550+
551+
def invoke(v):
552+
return f"{v}"
553+
554+
for k, v in self.setup.items():
555+
script += {
556+
'cutpoint': cutpoint(v),
557+
'disable': disable(v),
558+
'enable': enable(v),
559+
'assume': assume(v),
560+
'define': define(v),
561+
'invoke': invoke(v)
562+
}.get(k, '') + '\n'
563+
564+
# TODO: Invert selection, then `chformal -assert -remove`
565+
566+
return script
567+
533568

534569
class SbyTaskloop:
535570
def __init__(self, jobclient=None):

0 commit comments

Comments
 (0)