Keep track of conditions in SCC, and add a more verbose dump.
* src/tgbaalgos/scc.hh (scc_map::scc_of_state, scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of): New functions. (scc_map::scc::conds): New attribute. (dump_scc_dot): Take an optional VERBOSE argument. * src/tgbaalgos/scc.cc (scc_map::scc_of_state, scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of): Implement these new functions. (dump_scc_dot): Display number of states, conditions and acceptance conditions, with VERBOSE is set. (build_map): Fill the new scc_map::scc::cond field.
This commit is contained in:
parent
cbfdcca1f9
commit
07ead6134e
4 changed files with 112 additions and 21 deletions
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Laboratoire
|
||||
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Laboratoire
|
||||
// d'Informatique de Paris 6 (LIP6), département Systèmes Répartis
|
||||
// Coopératifs (SRC), Université Pierre et Marie Curie.
|
||||
//
|
||||
|
|
@ -93,7 +93,8 @@ syntax(char* prog)
|
|||
<< " (requires -e)" << std::endl
|
||||
<< " -k display statistics on the TGBA instead of dumping it"
|
||||
<< std::endl
|
||||
<< " -K dump the graph of SCCs in dot"
|
||||
<< " -K dump the graph of SCCs in dot format" << std::endl
|
||||
<< " -KV verbosely dump the graph of SCCs in dot format"
|
||||
<< std::endl
|
||||
<< " -L fair-loop approximation (implies -f)" << std::endl
|
||||
<< " -m try to reduce accepting runs, in a second pass"
|
||||
|
|
@ -332,6 +333,10 @@ main(int argc, char** argv)
|
|||
{
|
||||
output = 10;
|
||||
}
|
||||
else if (!strcmp(argv[formula_index], "-KV"))
|
||||
{
|
||||
output = 11;
|
||||
}
|
||||
else if (!strcmp(argv[formula_index], "-L"))
|
||||
{
|
||||
fair_loop_approx = true;
|
||||
|
|
@ -742,7 +747,10 @@ main(int argc, char** argv)
|
|||
build_scc_stats(a).dump(std::cout);
|
||||
break;
|
||||
case 10:
|
||||
dump_scc_dot(a, std::cout);
|
||||
dump_scc_dot(a, std::cout, false);
|
||||
break;
|
||||
case 11:
|
||||
dump_scc_dot(a, std::cout, true);
|
||||
break;
|
||||
default:
|
||||
assert(!"unknown output option");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue