Commit 372d4907 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

* iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test.

(ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
(ltlgspn_srg_SOURCES): New variables.
(check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.

* iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
gspn.hh.
parent 24099078
2003-07-30 Alexandre Duret-Lutz <aduret@src.lip6.fr> 2003-07-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
* iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test.
(ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
(ltlgspn_srg_SOURCES): New variables.
(check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.
* iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
gspn.hh.
* src/tgba/tgba.hh, src/tgba/tgba.cc * src/tgba/tgba.hh, src/tgba/tgba.cc
(tgba::project_state): New method. (tgba::project_state): New method.
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc * src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
......
AM_CPPFLAGS = -I$(top_srcdir)/src $(BUDDY_CPPFLAGS) $(LIBGSPN_CPPFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/src $(BUDDY_CPPFLAGS) $(LIBGSPN_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS)
gspndir = $(pkgincludedir)/gspn
gspn_HEADERS = \
gspn.hh
lib_LTLIBRARIES = libspotgspn.la lib_LTLIBRARIES = libspotgspn.la
libspotgspn_la_LIBADD = $(top_builddir)/src/libspot.la libspotgspn_la_LIBADD = $(top_builddir)/src/libspot.la
libspotgspn_la_SOURCES = \ libspotgspn_la_SOURCES = \
gspn.hh \ gspn.cc
gspn.cc \
gspnlib.h
check_PROGRAMS = dottygspn-rg dottygspn-srg check_PROGRAMS = \
dottygspn-rg \
dottygspn-srg \
ltlgspn-rg \
ltlgspn-srg
dottygspn_rg_SOURCES = dottygspn.cc dottygspn_rg_SOURCES = dottygspn.cc
dottygspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS) dottygspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS)
...@@ -16,6 +23,12 @@ dottygspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS) ...@@ -16,6 +23,12 @@ dottygspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS)
dottygspn_srg_SOURCES = dottygspn.cc dottygspn_srg_SOURCES = dottygspn.cc
dottygspn_srg_LDADD = libspotgspn.la $(LIBGSPNSRG_LDFLAGS) dottygspn_srg_LDADD = libspotgspn.la $(LIBGSPNSRG_LDFLAGS)
ltlgspn_rg_SOURCES = ltlgspn.cc
ltlgspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS)
ltlgspn_srg_SOURCES = ltlgspn.cc
ltlgspn_srg_LDADD = libspotgspn.la $(LIBGSPNSRG_LDFLAGS)
EXTRA_DIST = \ EXTRA_DIST = \
examples/DCSwave/DCSWave.def \ examples/DCSwave/DCSWave.def \
examples/DCSwave/DCSWave.net \ examples/DCSwave/DCSWave.net \
...@@ -27,7 +40,8 @@ EXTRA_DIST = \ ...@@ -27,7 +40,8 @@ EXTRA_DIST = \
TESTS = \ TESTS = \
simple.test \ simple.test \
dcswave.test dcswave.test \
dcswaveltl.test
# Each test case depends on defs. # Each test case depends on defs.
check_SCRIPTS = defs check_SCRIPTS = defs
......
#! /bin/sh
. ./defs || exit 1
set -e
cp -R $srcdir/examples/DCSwave .
../ltlgspn-srg DCSwave/DCSWave '!G(ATTiIDLj => F(!SCj U SCi))' ATTiIDLj SCi SCj > output
#include "gspn.hh"
#include "ltlparse/public.hh"
#include "ltlvisit/destroy.hh"
#include "tgba/tgbatba.hh"
#include "tgba/tgbaproduct.hh"
#include "tgbaalgos/ltl2tgba.hh"
#include "tgbaalgos/magic.hh"
int
main(int argc, char **argv)
try
{
spot::gspn_environment env;
if (argc <= 3)
{
std::cerr << "usage: " << argv[0]
<< " model formula props..." << std::endl;
exit(1);
}
while (argc > 3)
{
env.declare(argv[argc - 1]);
--argc;
}
spot::ltl::parse_error_list pel;
spot::ltl::formula* f = spot::ltl::parse(argv[2], pel, env);
if (spot::ltl::format_parse_errors(std::cerr, argv[2], pel))
exit(1);
spot::gspn_interface gspn(2, argv);
spot::bdd_dict* dict = new spot::bdd_dict();
spot::tgba* a_f = spot::ltl_to_tgba(f, dict);
spot::ltl::destroy(f);
spot::tgba* model = new spot::tgba_gspn(dict, env);
spot::tgba_product* prod = new spot::tgba_product(model, a_f);
spot::tgba_tba_proxy* d = new spot::tgba_tba_proxy(prod);
{
spot::magic_search ms(d);
if (ms.check())
{
ms.print_result (std::cout, model);
exit(1);
}
else
{
std::cout << "not found";
}
}
delete d;
delete prod;
delete model;
delete a_f;
delete dict;
}
catch (spot::gspn_exeption e)
{
std::cerr << e << std::endl;
throw;
}
...@@ -219,7 +219,7 @@ namespace spot ...@@ -219,7 +219,7 @@ namespace spot
+ bdd_format_set(get_dict(), s->accepting_cond()) + ")"; + bdd_format_set(get_dict(), s->accepting_cond()) + ")";
} }
state* state*
tgba_tba_proxy::project_state(const state* s, const tgba* t) const tgba_tba_proxy::project_state(const state* s, const tgba* t) const
{ {
const state_tba_proxy* s2 = dynamic_cast<const state_tba_proxy*>(s); const state_tba_proxy* s2 = dynamic_cast<const state_tba_proxy*>(s);
......
...@@ -50,7 +50,7 @@ namespace spot ...@@ -50,7 +50,7 @@ namespace spot
/// ///
/// Restrict printed states to \a the state space of restrict if /// Restrict printed states to \a the state space of restrict if
/// supplied. /// supplied.
std::ostream& print_result(std::ostream& os, std::ostream& print_result(std::ostream& os,
const tgba* restrict = 0) const; const tgba* restrict = 0) const;
private: private:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment