* 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.
44 lines
923 B
C++
44 lines
923 B
C++
#include "eesrg.hh"
|
|
#include "tgbaalgos/dotty.hh"
|
|
#include "tgba/tgbaexplicit.hh"
|
|
#include "tgbaparse/public.hh"
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
try
|
|
{
|
|
spot::gspn_environment env;
|
|
|
|
if (argc <= 3)
|
|
{
|
|
std::cerr << "usage: " << argv[0] << " model automata props..."
|
|
<< std::endl;
|
|
exit(1);
|
|
}
|
|
|
|
while (argc > 3)
|
|
env.declare(argv[--argc]);
|
|
|
|
spot::gspn_eesrg_interface gspn(2, argv);
|
|
spot::bdd_dict* dict = new spot::bdd_dict();
|
|
|
|
spot::tgba_parse_error_list pel1;
|
|
spot::tgba_explicit* control = spot::tgba_parse(argv[--argc], pel1,
|
|
dict, env);
|
|
if (spot::format_tgba_parse_errors(std::cerr, pel1))
|
|
return 2;
|
|
|
|
{
|
|
spot::tgba_gspn_eesrg a(dict, env, control);
|
|
|
|
spot::dotty_reachable(std::cout, &a);
|
|
}
|
|
|
|
delete control;
|
|
delete dict;
|
|
}
|
|
catch (spot::gspn_exeption e)
|
|
{
|
|
std::cerr << e << std::endl;
|
|
throw;
|
|
}
|