ngraph: support aliasing states

* src/graph/ngraph.hh (alias_state): New method.
* src/graphtest/ngraph.cc: Use it.
This commit is contained in:
Alexandre Duret-Lutz 2014-05-22 10:46:25 +02:00
parent 424de90385
commit 31bf8c2c1e
2 changed files with 11 additions and 2 deletions

View file

@ -77,6 +77,13 @@ namespace spot
return p.first->second;
}
/// \brief Give an alternate name to a state.
/// \return true iff the newname was already used.
bool alias_state(state s, name newname)
{
return !name_to_state.insert(std::make_pair(newname, s)).second;
}
state get_state(name n) const
{
return name_to_state.at(n);

View file

@ -389,10 +389,12 @@ bool f9()
spot::named_graph<graph_t, std::string> gg(g);
auto s1 = gg.new_state("s1");
gg.new_state("s2");
gg.new_state("s3");
auto s3 = gg.new_state("s3");
gg.alias_state(s3, "s3b");
gg.new_transition("s1", "s2", 1, 3);
gg.new_transition("s1", "s3", 2, 5);
gg.new_transition("s2", "s3", 3, 7);
gg.new_transition("s2", "s3b", 3, 7);
gg.new_transition("s3", "s2", 4, 9);
dot(std::cout, gg);