Revamp the multop interface to allow some basic optimizations like
not constructing a single-child multop. * src/ltlast/multop.hh (multop::instance(type)): Remove. (multop::instance(type, formula*, formula*)): Return a formula*. (multop::instance(type, vec*)): Make it public and return a formula*. (multop::add_sorted, multop::add): * src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite. (multop::instance(type)): Delete. (multop::instance(type, formula*, formula*)): Adjust. (multop::add_sorted, multop::add): Remove. * src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust. * src/ltlvisit/nenoform.cc (negative_normal_form_visitor::::visit(multop*)) Adjust. * src/ltltest/equals.test: Make sure `a & a' and `a' are equals. * wrap/python/tests/ltlsimple.py: Adjust.
This commit is contained in:
parent
317fed597b
commit
de6314ed74
8 changed files with 123 additions and 98 deletions
|
|
@ -33,12 +33,12 @@ assert op2 == op3
|
|||
op4 = spot.multop.instance(spot.multop.Or, op2, op3)
|
||||
|
||||
print 'op4 =', op4
|
||||
assert op4.nth(0) == op2
|
||||
assert op4 == op2
|
||||
|
||||
del op2, op3
|
||||
|
||||
assert spot.atomic_prop.instance_count() == 3
|
||||
assert spot.multop.instance_count() == 2
|
||||
assert spot.multop.instance_count() == 1
|
||||
|
||||
spot.destroy(op4)
|
||||
del op4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue