Export tgba_parse() to the python interface.
* src/tgbaparse/public.hh: Hide tgba_parse_errorlist to SWIG. * wrap/python/spot.i: Export tgba_parse. * wrap/python/tests/parsetgba.py: New file. * wrap/python/tests/Makefile.am: Add it.
This commit is contained in:
parent
ebf4d2585d
commit
9559799637
5 changed files with 88 additions and 7 deletions
|
|
@ -107,6 +107,8 @@ namespace std {
|
|||
#include "tgbaalgos/stats.hh"
|
||||
#include "tgbaalgos/simulation.hh"
|
||||
|
||||
#include "tgbaparse/public.hh"
|
||||
|
||||
using namespace spot::ltl;
|
||||
using namespace spot;
|
||||
%}
|
||||
|
|
@ -191,6 +193,8 @@ using namespace spot;
|
|||
%feature("new") spot::tgba::succ_iter;
|
||||
%feature("new") spot::tgba_succ_iterator::current_state;
|
||||
%feature("new") spot::simulation;
|
||||
%feature("new") spot::tgba_parse;
|
||||
|
||||
// Help SWIG with namespace lookups.
|
||||
#define ltl spot::ltl
|
||||
%include "tgba/bdddict.hh"
|
||||
|
|
@ -215,11 +219,11 @@ using namespace spot;
|
|||
spot::explicit_graph<state_explicit_formula, tgba>;
|
||||
|
||||
%template(explicit_string_tgba)
|
||||
spot::explicit_graph<state_explicit_string, tgba>;
|
||||
%template(explicit_number_tgba)
|
||||
spot::tgba_explicit<state_explicit_formula>;
|
||||
spot::tgba_explicit<state_explicit_string>;
|
||||
%template(explicit__number_tgba)
|
||||
spot::tgba_explicit<state_explicit_number>;
|
||||
%template(explicit_formula_tgba)
|
||||
spot::tgba_explicit<state_explicit_formula>;
|
||||
|
||||
%template(explicit_string__tgba)
|
||||
spot::explicit_conf<tgba_explicit<state_explicit_string>,
|
||||
|
|
@ -249,6 +253,9 @@ using namespace spot;
|
|||
%include "tgbaalgos/sccfilter.hh"
|
||||
%include "tgbaalgos/stats.hh"
|
||||
%include "tgbaalgos/simulation.hh"
|
||||
|
||||
%include "tgbaparse/public.hh"
|
||||
|
||||
#undef ltl
|
||||
|
||||
%extend spot::ltl::formula {
|
||||
|
|
@ -331,6 +338,13 @@ empty_parse_error_list()
|
|||
return l;
|
||||
}
|
||||
|
||||
spot::tgba_parse_error_list
|
||||
empty_tgba_parse_error_list()
|
||||
{
|
||||
tgba_parse_error_list l;
|
||||
return l;
|
||||
}
|
||||
|
||||
std::ostream&
|
||||
get_cout()
|
||||
{
|
||||
|
|
@ -381,3 +395,13 @@ __nonzero__()
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
%extend spot::tgba_parse_error_list {
|
||||
|
||||
bool
|
||||
__nonzero__()
|
||||
{
|
||||
return !self->empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
## Copyright (C) 2010 Labortatoire de Recherche et Développement de
|
||||
## Copyright (C) 2010, 2012 Labortatoire de Recherche et Développement de
|
||||
## l'EPITA.
|
||||
## Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
|
|
@ -38,4 +38,5 @@ TESTS = \
|
|||
minato.py \
|
||||
modgray.py \
|
||||
optionmap.py \
|
||||
parsetgba.py \
|
||||
setxor.py
|
||||
|
|
|
|||
46
wrap/python/tests/parsetgba.py
Executable file
46
wrap/python/tests/parsetgba.py
Executable file
|
|
@ -0,0 +1,46 @@
|
|||
# -*- mode: python; coding: utf-8 -*-
|
||||
# Copyright (C) 2012 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
# Spot is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Spot; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
import os
|
||||
import spot
|
||||
|
||||
contents = '''
|
||||
acc = "b";
|
||||
"a U b", "1", "b", "b";
|
||||
"a U b", "a U b", "a & !b",;
|
||||
"1", "1", "1", "b";
|
||||
'''
|
||||
|
||||
filename = 'parsetgba.out'
|
||||
|
||||
out = open(filename, 'w+')
|
||||
out.write(contents)
|
||||
out.close()
|
||||
|
||||
d = spot.bdd_dict()
|
||||
p = spot.empty_tgba_parse_error_list()
|
||||
a = spot.tgba_parse(filename, p, d)
|
||||
|
||||
assert not p
|
||||
|
||||
spot.dotty_reachable(spot.get_cout(), a)
|
||||
|
||||
os.unlink(filename)
|
||||
Loading…
Add table
Add a link
Reference in a new issue