is_weak_scc and friend: make them work for alternating automata
* spot/twaalgos/isweakscc.cc, spot/twaalgos/isweakscc.hh, spot/twaalgos/mask.cc, spot/twaalgos/mask.hh: Adjust to work with alternating automata. * spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh (determine_unknown_acceptance): Do not complain about not supporting alternating automata if there is not indeterminate acceptance. * spot/twaalgos/stats.cc: Fix a bug were %[iw]c was read as %[iww]c. * tests/core/alternating.test: Test is_inherently_weak_scc() and is_weak_scc(). * python/spot/impl.i: Add missing python bindings for isweakscc.hh.
This commit is contained in:
parent
e041db6101
commit
223b0c6a9e
9 changed files with 154 additions and 61 deletions
|
|
@ -367,15 +367,15 @@ namespace spot
|
|||
|
||||
void scc_info::determine_unknown_acceptance()
|
||||
{
|
||||
if (!aut_->is_existential())
|
||||
throw std::runtime_error("scc_info::determine_unknown_acceptance() "
|
||||
"does not support alternating automata");
|
||||
std::vector<bool> k;
|
||||
unsigned n = scc_count();
|
||||
bool changed = false;
|
||||
for (unsigned s = 0; s < n; ++s)
|
||||
if (!is_rejecting_scc(s) && !is_accepting_scc(s))
|
||||
{
|
||||
if (!aut_->is_existential())
|
||||
throw std::runtime_error("scc_info::determine_unknown_acceptance() "
|
||||
"does not support alternating automata");
|
||||
auto& node = node_[s];
|
||||
if (k.empty())
|
||||
k.resize(aut_->num_states());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue