mark_t: sets() no longer returns a vector
spot::mark_t::sets() was modified so that it now returns an iterable object rather than an std::vector<unsigned>. * NEWS: Mention the modification. * python/spot/impl.i: Declares mark_container as iterable to SWIG. * spot/parseaut/parseaut.yy: Adapts to the modification. * spot/twa/acc.hh: Implement the modification. * tests/python/acc_cond.ipynb: Adapts to the modification.
This commit is contained in:
parent
9377db2e5e
commit
cc3bdfcd2e
5 changed files with 113 additions and 21 deletions
|
|
@ -2173,14 +2173,18 @@ static void fix_acceptance(result_& r)
|
|||
unsigned base = 0;
|
||||
if (both)
|
||||
{
|
||||
auto v = both.sets();
|
||||
auto vs = v.size();
|
||||
base = acc.add_sets(vs);
|
||||
base = acc.add_sets(both.count());
|
||||
for (auto& t: r.h->aut->edge_vector())
|
||||
if ((t.acc & both) != both)
|
||||
for (unsigned i = 0; i < vs; ++i)
|
||||
if (!t.acc.has(v[i]))
|
||||
t.acc |= acc.mark(base + i);
|
||||
{
|
||||
unsigned i = 0;
|
||||
if ((t.acc & both) != both)
|
||||
for (unsigned v : both.sets())
|
||||
{
|
||||
if (!t.acc.has(v))
|
||||
t.acc |= acc.mark(base + i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (onlyneg || both)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue