spot/iface/gspn/common.cc
Alexandre Duret-Lutz 65bfea0c8d * m4/gspnlib.m4: Define LIBGSPNESRG_LDFLAGS.
* iface/gspn/Makefile.am (gspn_HEADERS): Add common.hh.
(libspotgspn_la_SOURCES): Add common.cc.
(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
(libspotgspneesrg_la_SOURCES, ltlgspn_eesrg_SOURCES)
(dotty_eesrg_LDADD, dotty_eesrg_CPPFLAGS): New variables.
(lib_LTLIBRARIES): Add libspotgspneesrg.la.
(check_PROGRAMS): Add dottygspn-eesrg.
* iface/gspn/gspn.hh, iface/gspn/gspn.cc
(gspn_exeption, operator<<(gspn_exeption), gspn_environment): Move ...
* iface/gspn/common.hh, iface/gspn/common.cc: ... in these new files.
* iface/gspn/eesrg.hh, iface/gspn/eesrg.cc, iface/gspn/dottyeesrg.cc:
New files.
2003-10-30 15:53:33 +00:00

60 lines
1.3 KiB
C++

#include "common.hh"
#include "ltlvisit/destroy.hh"
namespace spot
{
std::ostream&
operator<<(std::ostream& os, const gspn_exeption& e)
{
os << e.get_where() << " exited with " << e.get_err();
return os;
}
// gspn_environment
//////////////////////////////////////////////////////////////////////
gspn_environment::gspn_environment()
{
}
gspn_environment::~gspn_environment()
{
for (prop_map::iterator i = props_.begin(); i != props_.end(); ++i)
ltl::destroy(i->second);
}
bool
gspn_environment::declare(const std::string& prop_str)
{
if (props_.find(prop_str) != props_.end())
return false;
props_[prop_str] = ltl::atomic_prop::instance(prop_str, *this);
return true;
}
ltl::formula*
gspn_environment::require(const std::string& prop_str)
{
prop_map::iterator i = props_.find(prop_str);
if (i == props_.end())
return 0;
// It's an atomic_prop, so we do not have to use the clone() visitor.
return i->second->ref();
}
/// Get the name of the environment.
const std::string&
gspn_environment::name()
{
static std::string name("gspn environment");
return name;
}
const gspn_environment::prop_map&
gspn_environment::get_prop_map() const
{
return props_;
}
}