Using double borders for acceptance states in SBAs.
* src/tgbaalgos/dotty.hh (dotty_reachable): Take a new assume_sba argument. * src/tgbaalgos/dotty.cc (dotty_bfs): Take a new mark_accepting_states arguments. (dotty_bfs::process_state): Check if a state is accepting using the state_is_accepting() method for tgba_sba_proxies, or by looking at the first outgoing transition of the state. Pass the result to the dectorator. (dotty_reachable): Adjust function. * src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc, src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc (state_decl): Add an "accepting" argument, and use it to decorate accepting states with a double border. * src/tgbatest/ltl2tgba.cc: Keep track of whether the output is an SBA or not, so that we can tell it to dotty(). * wrap/python/ajax/spot.in: Likewise. * wrap/python/cgi-bin/ltl2tgba.in: Likewise.
This commit is contained in:
parent
2c5bae3d37
commit
e1ef47d975
10 changed files with 151 additions and 47 deletions
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// Copyright (C) 2004, 2011 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
//
|
||||
|
|
@ -45,11 +45,13 @@ namespace spot
|
|||
std::string
|
||||
tgba_run_dotty_decorator::state_decl(const tgba*, const state* s, int,
|
||||
tgba_succ_iterator*,
|
||||
const std::string& label)
|
||||
const std::string& label,
|
||||
bool accepting)
|
||||
{
|
||||
step_map::const_iterator i = map_.find(s);
|
||||
std::string acc = accepting ? ", peripheries=2" : "";
|
||||
if (i == map_.end())
|
||||
return "[label=\"" + label + "\"]";
|
||||
return "[label=\"" + label + acc + "\"]";
|
||||
|
||||
std::ostringstream os;
|
||||
std::string sep = "(";
|
||||
|
|
@ -74,7 +76,8 @@ namespace spot
|
|||
assert(in_cycle || in_prefix);
|
||||
os << ")\\n" << label;
|
||||
std::string color = in_prefix ? (in_cycle ? "violet" : "blue") : "red";
|
||||
return "[label=\"" + os.str() + "\", style=bold, color=" + color + "]";
|
||||
return "[label=\"" + os.str() + "\", style=bold, color="
|
||||
+ color + acc + "]";
|
||||
}
|
||||
|
||||
std::string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue