* src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ... (bdd_dict::is_registered_proposition, bdd_dict::is_registered_state, bdd_dict::is_registered_accepting_variable): ... these. * src/tgba/bdddict.hh: Likewise. * src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method. (tgba_explicit::declare_accepting_condition): Arrange so that this function can be called during the construction of the automaton. (tgba_explicit::complement_all_accepting_conditions): New method. (tgba_explicit::has_accepting_condition): Adjust to call bdd_dict::is_registered_accepting_variable. * src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state, tgba_explicit::complement_all_accepting_conditions): New methods. * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh: New files. * src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES): Add them. * src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment. * src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt and tbalbtt. (tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove. * src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t". * src/tgbatest/ltl2tgba.cc: Implement the -f and -F options. * src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of "spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add also check the ltl2tgba_fm translator. * wrap/python/spot.i: Wrap ltl2tgba_fm. * wrap/python/cgi/ltl2tgba.in: Add radio buttons to select between ltl2tgba and ltl2tgba_fm. * wrap/python/tests/ltl2tgba.py: Add support for the -f option. * wrap/python/tests/ltl2tgba.test: Try the -f option.
179 lines
3.6 KiB
OpenEdge ABL
179 lines
3.6 KiB
OpenEdge ABL
%module spot
|
|
|
|
%include "std_string.i"
|
|
%include "std_list.i"
|
|
|
|
%import "buddy.i"
|
|
|
|
%{
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <sstream>
|
|
|
|
#include "misc/version.hh"
|
|
|
|
#include "ltlast/formula.hh"
|
|
#include "ltlast/refformula.hh"
|
|
#include "ltlast/atomic_prop.hh"
|
|
#include "ltlast/binop.hh"
|
|
#include "ltlast/constant.hh"
|
|
#include "ltlast/multop.hh"
|
|
#include "ltlast/unop.hh"
|
|
#include "ltlast/visitor.hh"
|
|
|
|
#include "ltlenv/environment.hh"
|
|
#include "ltlenv/defaultenv.hh"
|
|
|
|
#include "ltlparse/public.hh"
|
|
|
|
#include "ltlvisit/clone.hh"
|
|
#include "ltlvisit/destroy.hh"
|
|
#include "ltlvisit/dotty.hh"
|
|
#include "ltlvisit/dump.hh"
|
|
#include "ltlvisit/lunabbrev.hh"
|
|
#include "ltlvisit/nenoform.hh"
|
|
#include "ltlvisit/tostring.hh"
|
|
#include "ltlvisit/tunabbrev.hh"
|
|
|
|
#include "tgba/bdddict.hh"
|
|
#include "tgba/bddprint.hh"
|
|
#include "tgba/state.hh"
|
|
#include "tgba/succiter.hh"
|
|
#include "tgba/tgba.hh"
|
|
#include "tgba/statebdd.hh"
|
|
#include "tgba/tgbabddcoredata.hh"
|
|
#include "tgba/succiterconcrete.hh"
|
|
#include "tgba/tgbabddconcrete.hh"
|
|
#include "tgba/tgbaexplicit.hh"
|
|
#include "tgba/tgbaproduct.hh"
|
|
#include "tgba/tgbatba.hh"
|
|
|
|
#include "tgbaalgos/ltl2tgba.hh"
|
|
#include "tgbaalgos/ltl2tgba_fm.hh"
|
|
#include "tgbaalgos/dotty.hh"
|
|
#include "tgbaalgos/lbtt.hh"
|
|
#include "tgbaalgos/magic.hh"
|
|
#include "tgbaalgos/save.hh"
|
|
|
|
using namespace spot::ltl;
|
|
using namespace spot;
|
|
%}
|
|
|
|
%include "misc/version.hh"
|
|
|
|
%include "ltlast/formula.hh"
|
|
%include "ltlast/refformula.hh"
|
|
%include "ltlast/atomic_prop.hh"
|
|
%include "ltlast/binop.hh"
|
|
%include "ltlast/constant.hh"
|
|
%include "ltlast/multop.hh"
|
|
%include "ltlast/unop.hh"
|
|
%include "ltlast/visitor.hh"
|
|
|
|
%include "ltlenv/environment.hh"
|
|
%include "ltlenv/defaultenv.hh"
|
|
|
|
%include "ltlparse/public.hh"
|
|
|
|
%include "ltlvisit/clone.hh"
|
|
%include "ltlvisit/destroy.hh"
|
|
%include "ltlvisit/dotty.hh"
|
|
%include "ltlvisit/dump.hh"
|
|
%include "ltlvisit/lunabbrev.hh"
|
|
%include "ltlvisit/nenoform.hh"
|
|
%include "ltlvisit/tostring.hh"
|
|
%include "ltlvisit/tunabbrev.hh"
|
|
|
|
%feature("new") spot::ltl_to_tgba;
|
|
%feature("new") spot::ltl_to_tgba_fm;
|
|
%feature("new") spot::tgba::get_init_state;
|
|
%feature("new") spot::tgba::succ_iter;
|
|
%feature("new") spot::tgba_succ_iterator::current_state;
|
|
|
|
// Help SWIG with namespace lookups.
|
|
#define ltl spot::ltl
|
|
%include "tgba/bdddict.hh"
|
|
%include "tgba/bddprint.hh"
|
|
%include "tgba/state.hh"
|
|
%include "tgba/succiter.hh"
|
|
%include "tgba/tgba.hh"
|
|
%include "tgba/statebdd.hh"
|
|
%include "tgba/tgbabddcoredata.hh"
|
|
%include "tgba/succiterconcrete.hh"
|
|
%include "tgba/tgbabddconcrete.hh"
|
|
%include "tgba/tgbaexplicit.hh"
|
|
%include "tgba/tgbaproduct.hh"
|
|
%include "tgba/tgbatba.hh"
|
|
|
|
%include "tgbaalgos/ltl2tgba.hh"
|
|
%include "tgbaalgos/ltl2tgba_fm.hh"
|
|
%include "tgbaalgos/dotty.hh"
|
|
%include "tgbaalgos/lbtt.hh"
|
|
%include "tgbaalgos/magic.hh"
|
|
%include "tgbaalgos/save.hh"
|
|
#undef ltl
|
|
|
|
%extend spot::ltl::formula {
|
|
|
|
// When comparing formula, make sure Python compare our
|
|
// pointers, not the pointers to its wrappers.
|
|
int
|
|
__cmp__(const spot::ltl::formula* b)
|
|
{
|
|
return b - self;
|
|
}
|
|
|
|
std::string
|
|
__str__(void)
|
|
{
|
|
return spot::ltl::to_string(self);
|
|
}
|
|
|
|
}
|
|
|
|
%nodefault std::ostream;
|
|
namespace std {
|
|
class ostream {};
|
|
class ofstream : public ostream
|
|
{
|
|
public:
|
|
ofstream(const char *fn);
|
|
~ofstream();
|
|
};
|
|
class ostringstream : public ostream
|
|
{
|
|
public:
|
|
ostringstream();
|
|
std::string str() const;
|
|
~ofstream();
|
|
};
|
|
}
|
|
|
|
%inline %{
|
|
|
|
spot::ltl::parse_error_list
|
|
empty_parse_error_list()
|
|
{
|
|
parse_error_list l;
|
|
return l;
|
|
}
|
|
|
|
std::ostream&
|
|
get_cout()
|
|
{
|
|
return std::cout;
|
|
}
|
|
|
|
std::ostream&
|
|
get_cerr()
|
|
{
|
|
return std::cerr;
|
|
}
|
|
|
|
void
|
|
print_on(std::ostream& on, const std::string& what)
|
|
{
|
|
on << what;
|
|
}
|
|
|
|
%}
|