【发布时间】:2021-05-05 08:25:54
【问题描述】:
我有一个字符串格式的大 z3 BitVec 表达式。要将其转换为 BitVec 格式的表达式,我使用了 'eval()'。但是,表达式变成了省略号。我该如何避免这种情况?
from z3 import *
a0=BitVec('a0',1)
a1=BitVec('a1',1)
c0=BitVec('c0',1)
c1=BitVec('c1',1)
b=BitVec('b',1)
d=BitVec('d',1)
f=BitVec('f',1)
g=BitVec('g',1)
e=BitVec('e',1)
h=BitVec('h',1)
a=BitVec('a',1)
c=BitVec('c',1)
exp = '(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)|f|(a&b&c)|(c&d&e&f&g)|(a1&a0&c1&c0)|(g&h)'
print(eval(exp))
输出 ::
... |... |... |... |... |... |... |... |... |... |... |... |.. . |... |... |... |... |... |... |... |... |... |... |... |... | ... |... |... |... |... |... |... |... |... |... |... |... |.. . |... |... |... |... |... |... |... |... |... |... |... |... | ... |... |... |... |... |... |... |... |... |... |... |... |.. . |... |... |... |... |... |... |... |... |... |... |... |... | ... |... |... |... |... |... |... |... |... |... |... |... |.. . |... |... |... |... |... |... |... |... |... |... |... |... | ... |... |... |... |... |... |... |...
【问题讨论】: