Skip to content

Commit 4a3a119

Browse files
author
Your Name
committed
creation smtlog
1 parent da1025f commit 4a3a119

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

backends/smt2/smtbmc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def usage():
236236
elif so.handle(o, a):
237237
pass
238238
elif o == "--dump-log-lines":
239-
sl.write_log = True
239+
sl.toggle_on_log()
240240
if(len(a)>0):
241241
sl.filename = a
242242
else:
@@ -390,7 +390,7 @@ def replace_netref(match):
390390
return "(and %s)" % " ".join(expr_list)
391391

392392

393-
smt = SmtIo(opts=so)
393+
smt = SmtIo(opts=so, logs=sl)
394394

395395
if noinfo and vcdfile is None and vlogtbfile is None and outconstr is None:
396396
smt.produce_models = False

backends/smt2/smtio.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def __init__(self):
106106

107107

108108
class SmtIo:
109-
def __init__(self, opts=None):
109+
def __init__(self, opts=None, logs=None):
110110
global solvers_index
111111

112112
self.logic = None
@@ -147,6 +147,12 @@ def __init__(self, opts=None):
147147
self.info_stmts = list()
148148
self.nocomments = False
149149

150+
if logs is None:
151+
self.smtlog = SmtLog()
152+
153+
else:
154+
self.smtlog = logs
155+
150156
self.start_time = time()
151157

152158
self.modinfo = dict()
@@ -347,6 +353,7 @@ def p_close(self):
347353
self.p_thread = None
348354

349355
def write(self, stmt, unroll=True):
356+
self.smtlog.write_line(stmt) # Write log
350357
if stmt.startswith(";"):
351358
self.info(stmt)
352359
if not self.setup_done:

backends/smt2/smtlog.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@
2121
class SmtLog:
2222
def __init__(self):
2323
self.filename = "log"
24-
self.ext = ".log"
24+
self.ext = ".smtlog"
2525
self.prefix = "pre_"
2626

2727
self.show_err = True
28-
self.write_log = False
28+
self.write_allowed = False
2929

3030
self.depth = 0
3131
self.refine = 0
3232

3333
self.logfile = None
3434

35-
#SETTERS
35+
# GETTERS / SETTERS
3636
def set_filename(self, filename="log"):
3737
if(filename != ""):
3838
self.filename = filename
@@ -43,6 +43,16 @@ def set_depth(self, depth=0):
4343
def set_refine(self, refine=0):
4444
self.refine = refine
4545

46+
def toggle_log(self):
47+
self.write_allowed = not self.write_allowed
48+
49+
def toggle_on_log(self):
50+
self.write_allowed = True
51+
52+
def toggle_off_log(self):
53+
self.write_allowed = False
54+
55+
# -----------------
4656

4757
# Open <logfile> if not already open and set <filename> if given
4858
def open_file(self, filename=""):
@@ -60,20 +70,21 @@ def close_file(self):
6070
self.logfile = None
6171

6272
# Write a text in <logfile> if it is open
63-
def write(self, text):
73+
def write_log(self, text):
6474
if(self.logfile != None and not self.logfile.closed):
6575
self.logfile.write(text)
6676
elif(self.show_err):
6777
sys.stderr.write("Can't write line:\n{}in file {}".format(text, self.filename))
6878

6979
# Write a line in <logfile> if it is open
7080
def write_line(self, text):
71-
if(not text.endswith("\n")):
72-
text = text+"\n"
73-
self.write(text)
81+
if(self.write_allowed):
82+
if(not text.endswith("\n")):
83+
text = text+"\n"
84+
self.write_log(text)
7485

7586

76-
7787
def show_depth(self, depth=-1):
7888
if(depth != -1):
7989
self.set_depth(depth)
90+
self.write_line("\n=== \tDepth \t{} \t===".format(self.depth))

0 commit comments

Comments
 (0)