scc_info: determine accepting/rejecting-SCCs for any acceptance
* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh (determine_unknown_acceptance): New function to call explicitly in case one want to know whether the accepting/rejecting status of all SCCs regardless of the acceptance. * src/twaalgos/dotty.cc src/twaalgos/sccfilter.cc, src/twaalgos/sccfilter.hh: Use it. * src/tests/unambig.test, src/tests/sccdot.test: Add more tests. * doc/org/oaut.org: Adjust doc for --dot=s, orange is not output anymore.
This commit is contained in:
parent
07ee3d2dd0
commit
8c32fba8b9
8 changed files with 148 additions and 20 deletions
|
|
@ -58,7 +58,8 @@ namespace spot
|
|||
}
|
||||
|
||||
scc_node(acc_cond::mark_t acc, bool trivial):
|
||||
acc_(acc), trivial_(trivial), accepting_(false), useful_(false)
|
||||
acc_(acc), trivial_(trivial), accepting_(false),
|
||||
rejecting_(false), useful_(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -112,6 +113,8 @@ namespace spot
|
|||
std::vector<scc_node> node_;
|
||||
const_twa_graph_ptr aut_;
|
||||
|
||||
// Update the useful_ bits. Called automatically.
|
||||
void determine_usefulness();
|
||||
|
||||
const scc_node& node(unsigned scc) const
|
||||
{
|
||||
|
|
@ -198,6 +201,10 @@ namespace spot
|
|||
return node(scc).is_rejecting();
|
||||
}
|
||||
|
||||
// Study the SCC that are currently reported neither as accepting
|
||||
// nor rejecting because of the presence of Fin sets
|
||||
void determine_unknown_acceptance();
|
||||
|
||||
bool is_useful_scc(unsigned scc) const
|
||||
{
|
||||
return node(scc).is_useful();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue