Use -fvisibility=hidden in src/ltlast/, src/ltlvisit/, and src/ltlenv/.

* src/ltlast/Makefile.am, src/ltlenv/Makefile.am,
src/ltlvisit/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
* src/misc/common.hh (SPOT_DEPRECATED): New macro.
* src/ltlast/atomic_prop.hh, src/ltlast/automatop.hh,
src/ltlast/binop.hh, src/ltlast/bunop.hh, src/ltlast/constant.hh,
src/ltlast/formula.hh, src/ltlast/formula_tree.hh,
src/ltlast/multop.hh, src/ltlast/nfa.hh, src/ltlast/refformula.hh,
src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
src/ltlenv/defaultenv.hh, src/ltlvisit/apcollect.hh,
src/ltlvisit/clone.hh, src/ltlvisit/contain.hh,
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
src/ltlvisit/lbt.hh, src/ltlvisit/length.hh,
src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh,
src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.hh,
src/ltlvisit/reduce.hh, src/ltlvisit/relabel.hh,
src/ltlvisit/remove_x.hh, src/ltlvisit/simpfg.hh,
src/ltlvisit/simplify.hh, src/ltlvisit/snf.hh,
src/ltlvisit/tostring.hh, src/ltlvisit/tunabbrev.hh,
src/ltlvisit/wmunabbrev.hh: Add SPOT_API in fron of
exported symbols.
* src/ltlvisit/nenoform.cc, src/ltlvisit/remove_x.cc: Add missing
include of the corresponding header file.
This commit is contained in:
Alexandre Duret-Lutz 2013-06-26 18:55:17 +02:00
parent cbfbf14297
commit 8ba3e64f0a
41 changed files with 180 additions and 157 deletions

View file

@ -1,7 +1,8 @@
## Copyright (C) 2009, 2010, 2011 Laboratoire de Recherche et ## -*- coding: utf-8 -*-
## Développement de l'Epita (LRDE). ## Copyright (C) 2009, 2010, 2011, 2013 Laboratoire de Recherche et
## Développement de l'Epita (LRDE).
## Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6), ## Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
## département Systèmes Répartis Coopératifs (SRC), Université Pierre ## département Systèmes Répartis Coopératifs (SRC), Université Pierre
## et Marie Curie. ## et Marie Curie.
## ##
## This file is part of Spot, a model checking library. ## This file is part of Spot, a model checking library.
@ -20,7 +21,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>. ## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/.. -I.. AM_CPPFLAGS = -I$(srcdir)/.. -I..
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
ltlastdir = $(pkgincludedir)/ltlast ltlastdir = $(pkgincludedir)/ltlast

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2012 Laboratoire de Recherche et Développement // Copyright (C) 2009, 2012, 2013 Laboratoire de Recherche et
// de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -25,10 +25,10 @@
#ifndef SPOT_LTLAST_ATOMIC_PROP_HH #ifndef SPOT_LTLAST_ATOMIC_PROP_HH
# define SPOT_LTLAST_ATOMIC_PROP_HH # define SPOT_LTLAST_ATOMIC_PROP_HH
#include "refformula.hh"
#include <string> #include <string>
#include <iosfwd> #include <iosfwd>
#include <map> #include <map>
#include "refformula.hh"
#include "ltlenv/environment.hh" #include "ltlenv/environment.hh"
namespace spot namespace spot
@ -38,7 +38,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief Atomic propositions. /// \brief Atomic propositions.
class atomic_prop : public ref_formula class SPOT_API atomic_prop : public ref_formula
{ {
public: public:
/// Build an atomic proposition with name \a name in /// Build an atomic proposition with name \a name in

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2008, 2009, 2012 Laboratoire de Recherche et // Copyright (C) 2008, 2009, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE) // Développement de l'Epita (LRDE)
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -22,11 +22,11 @@
#ifndef SPOT_LTLAST_AUTOMATOP_HH #ifndef SPOT_LTLAST_AUTOMATOP_HH
# define SPOT_LTLAST_AUTOMATOP_HH # define SPOT_LTLAST_AUTOMATOP_HH
# include "refformula.hh"
# include <vector> # include <vector>
# include <iosfwd> # include <iosfwd>
# include <map> # include <map>
# include "nfa.hh" # include "nfa.hh"
# include "refformula.hh"
namespace spot namespace spot
{ {
@ -35,7 +35,7 @@ namespace spot
/// \ingroup eltl_ast /// \ingroup eltl_ast
/// \brief Automaton operators. /// \brief Automaton operators.
/// ///
class automatop : public ref_formula class SPOT_API automatop : public ref_formula
{ {
public: public:
/// List of formulae. /// List of formulae.

View file

@ -28,9 +28,9 @@
#ifndef SPOT_LTLAST_BINOP_HH #ifndef SPOT_LTLAST_BINOP_HH
# define SPOT_LTLAST_BINOP_HH # define SPOT_LTLAST_BINOP_HH
#include "refformula.hh"
#include <map> #include <map>
#include <iosfwd> #include <iosfwd>
#include "refformula.hh"
namespace spot namespace spot
{ {
@ -39,7 +39,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief Binary operator. /// \brief Binary operator.
class binop : public ref_formula class SPOT_API binop : public ref_formula
{ {
public: public:
/// Different kinds of binary opertaors /// Different kinds of binary opertaors

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -21,9 +22,9 @@
#ifndef SPOT_LTLAST_BUNOP_HH #ifndef SPOT_LTLAST_BUNOP_HH
# define SPOT_LTLAST_BUNOP_HH # define SPOT_LTLAST_BUNOP_HH
#include "refformula.hh"
#include <map> #include <map>
#include <iosfwd> #include <iosfwd>
#include "refformula.hh"
#include "constant.hh" #include "constant.hh"
namespace spot namespace spot
@ -33,7 +34,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief Bounded unary operator. /// \brief Bounded unary operator.
class bunop : public ref_formula class SPOT_API bunop : public ref_formula
{ {
public: public:
enum type { Star }; enum type { Star };

View file

@ -1,4 +1,5 @@
// Copyright (C) 2009, 2010, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// //
@ -31,7 +32,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief A constant (True or False) /// \brief A constant (True or False)
class constant : public formula class SPOT_API constant : public formula
{ {
public: public:
enum type { False, True, EmptyWord }; enum type { False, True, EmptyWord };

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche // Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Laboratoire de
// et Développement de l'Epita (LRDE). // Recherche et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de // Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -23,6 +23,7 @@
#ifndef SPOT_LTLAST_FORMULA_HH #ifndef SPOT_LTLAST_FORMULA_HH
# define SPOT_LTLAST_FORMULA_HH # define SPOT_LTLAST_FORMULA_HH
#include "misc/common.hh"
#include <string> #include <string>
#include <cassert> #include <cassert>
#include "predecl.hh" #include "predecl.hh"
@ -68,7 +69,7 @@ namespace spot
/// ///
/// The only way you can work with a formula is to /// The only way you can work with a formula is to
/// build a spot::ltl::visitor or spot::ltl::const_visitor. /// build a spot::ltl::visitor or spot::ltl::const_visitor.
class formula class SPOT_API formula
{ {
public: public:
/// Kind of a sub-formula /// Kind of a sub-formula
@ -420,11 +421,13 @@ namespace spot
}; };
/// Print the properties of formula \a f on stream \a out. /// Print the properties of formula \a f on stream \a out.
SPOT_API
std::ostream& print_formula_props(std::ostream& out, std::ostream& print_formula_props(std::ostream& out,
const formula* f, const formula* f,
bool abbreviated = false); bool abbreviated = false);
/// List the properties of formula \a f. /// List the properties of formula \a f.
SPOT_API
std::list<std::string> list_formula_props(const formula* f); std::list<std::string> list_formula_props(const formula* f);
} }
} }

View file

@ -1,5 +1,6 @@
// Copyright (C) 2009, 2012 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2009, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -21,9 +22,9 @@
#ifndef SPOT_LTLAST_FORMULA_TREE_HH #ifndef SPOT_LTLAST_FORMULA_TREE_HH
# define SPOT_LTLAST_FORMULA_TREE_HH # define SPOT_LTLAST_FORMULA_TREE_HH
# include "formula.hh"
# include <vector> # include <vector>
# include <boost/shared_ptr.hpp> # include <boost/shared_ptr.hpp>
# include "formula.hh"
# include "multop.hh" # include "multop.hh"
# include "binop.hh" # include "binop.hh"
# include "unop.hh" # include "unop.hh"

View file

@ -1,5 +1,6 @@
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Développement de l'Epita (LRDE). // Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche
// et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
@ -24,10 +25,10 @@
#ifndef SPOT_LTLAST_MULTOP_HH #ifndef SPOT_LTLAST_MULTOP_HH
# define SPOT_LTLAST_MULTOP_HH # define SPOT_LTLAST_MULTOP_HH
#include "refformula.hh"
#include <vector> #include <vector>
#include <map> #include <map>
#include <iosfwd> #include <iosfwd>
#include "refformula.hh"
namespace spot namespace spot
{ {
@ -36,7 +37,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief Multi-operand operators. /// \brief Multi-operand operators.
class multop : public ref_formula class SPOT_API multop : public ref_formula
{ {
public: public:
enum type { Or, OrRat, And, AndRat, AndNLM, Concat, Fusion }; enum type { Or, OrRat, And, AndRat, AndNLM, Concat, Fusion };

View file

@ -1,5 +1,6 @@
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2008, 2010, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -21,6 +22,7 @@
#ifndef SPOT_LTLAST_NFA_HH #ifndef SPOT_LTLAST_NFA_HH
# define SPOT_LTLAST_NFA_HH # define SPOT_LTLAST_NFA_HH
# include "misc/common.hh"
# include "misc/hash.hh" # include "misc/hash.hh"
# include <boost/shared_ptr.hpp> # include <boost/shared_ptr.hpp>
# include <list> # include <list>
@ -32,7 +34,7 @@ namespace spot
namespace ltl namespace ltl
{ {
/// Forward declaration. See below. /// Forward declaration. See below.
class succ_iterator; class SPOT_API succ_iterator;
/// Forward declaration. NFA's labels are reprensented by nodes /// Forward declaration. NFA's labels are reprensented by nodes
/// which are defined in formula_tree.hh, included in nfa.cc. /// which are defined in formula_tree.hh, included in nfa.cc.
namespace formula_tree namespace formula_tree
@ -45,7 +47,7 @@ namespace spot
/// States are represented by integers. /// States are represented by integers.
/// Labels are represented by formula_tree's nodes. /// Labels are represented by formula_tree's nodes.
/// Currently, only one initial state is possible. /// Currently, only one initial state is possible.
class nfa class SPOT_API nfa
{ {
public: public:
struct transition; struct transition;
@ -118,7 +120,7 @@ namespace spot
nfa& operator=(const nfa& other); nfa& operator=(const nfa& other);
}; };
class succ_iterator class SPOT_API succ_iterator
{ {
public: public:
succ_iterator(const nfa::state::const_iterator s) succ_iterator(const nfa::state::const_iterator s)

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2012 Laboratoire de Recherche de Developpement // Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche de
// de l'EPITA (LRDE). // Développement de l'EPITA (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris // Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
@ -34,7 +34,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief A reference-counted LTL formula. /// \brief A reference-counted LTL formula.
class ref_formula : public formula class SPOT_API ref_formula : public formula
{ {
protected: protected:
virtual ~ref_formula(); virtual ~ref_formula();

View file

@ -1,8 +1,9 @@
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Développement de l'Epita (LRDE). // Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche
// et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -36,7 +37,7 @@ namespace spot
/// \ingroup ltl_ast /// \ingroup ltl_ast
/// \brief Unary operators. /// \brief Unary operators.
class unop : public ref_formula class SPOT_API unop : public ref_formula
{ {
public: public:
enum type { enum type {

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2010, 2012 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -24,6 +25,7 @@
#ifndef SPOT_LTLAST_VISITOR_HH #ifndef SPOT_LTLAST_VISITOR_HH
# define SPOT_LTLAST_VISITOR_HH # define SPOT_LTLAST_VISITOR_HH
# include "misc/common.hh"
# include "predecl.hh" # include "predecl.hh"
namespace spot namespace spot
@ -36,7 +38,7 @@ namespace spot
/// Implementing visitors is the prefered way /// Implementing visitors is the prefered way
/// to traverse a formula, since it does not /// to traverse a formula, since it does not
/// involve any cast. /// involve any cast.
struct visitor struct SPOT_API visitor
{ {
virtual ~visitor() {} virtual ~visitor() {}
virtual void visit(const atomic_prop* node) = 0; virtual void visit(const atomic_prop* node) = 0;

View file

@ -1,4 +1,4 @@
## Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), ## Copyright (C) 2003, 2004, 2013 Laboratoire d'Informatique de Paris 6 (LIP6),
## département Systèmes Répartis Coopératifs (SRC), Université Pierre ## département Systèmes Répartis Coopératifs (SRC), Université Pierre
## et Marie Curie. ## et Marie Curie.
## ##
@ -18,7 +18,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>. ## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/.. AM_CPPFLAGS = -I$(srcdir)/..
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
ltlenvdir = $(pkgincludedir)/ltlenv ltlenvdir = $(pkgincludedir)/ltlenv

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2012 Laboratoire de Recherche et Développement // Copyright (C) 2009, 2012, 2013 Laboratoire de Recherche et
// de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -38,7 +38,7 @@ namespace spot
/// ///
/// This environment recognizes all atomic propositions /// This environment recognizes all atomic propositions
/// that have been previously declared. It will reject other. /// that have been previously declared. It will reject other.
class declarative_environment : public environment class SPOT_API declarative_environment : public environment
{ {
public: public:
declarative_environment(); declarative_environment();

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -37,7 +37,7 @@ namespace spot
/// ///
/// This is a singleton. Use default_environment::instance() /// This is a singleton. Use default_environment::instance()
/// to obtain the instance. /// to obtain the instance.
class default_environment : public environment class SPOT_API default_environment : public environment
{ {
public: public:
virtual ~default_environment(); virtual ~default_environment();

View file

@ -21,7 +21,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>. ## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
ltlvisitdir = $(pkgincludedir)/ltlvisit ltlvisitdir = $(pkgincludedir)/ltlvisit

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -23,8 +23,8 @@
#ifndef SPOT_LTLVISIT_APCOLLECT_HH #ifndef SPOT_LTLVISIT_APCOLLECT_HH
# define SPOT_LTLVISIT_APCOLLECT_HH # define SPOT_LTLVISIT_APCOLLECT_HH
#include <set>
#include "ltlast/atomic_prop.hh" #include "ltlast/atomic_prop.hh"
#include <set>
#include "bdd.h" #include "bdd.h"
namespace spot namespace spot
@ -50,7 +50,7 @@ namespace spot
/// set containing all these atomic propositions if \c s is 0. /// set containing all these atomic propositions if \c s is 0.
/// The atomic propositions inserted into \a s are not cloned, so /// The atomic propositions inserted into \a s are not cloned, so
/// they are only valid as long as \a f is. /// they are only valid as long as \a f is.
atomic_prop_set* SPOT_API atomic_prop_set*
atomic_prop_collect(const formula* f, atomic_prop_set* s = 0); atomic_prop_collect(const formula* f, atomic_prop_set* s = 0);
/// \brief Return the set of atomic propositions occurring in a /// \brief Return the set of atomic propositions occurring in a
@ -59,7 +59,7 @@ namespace spot
/// \param f the formula to inspect /// \param f the formula to inspect
/// \param a that automaton that should register the BDD variables used. /// \param a that automaton that should register the BDD variables used.
/// \return A conjunction the atomic propositions. /// \return A conjunction the atomic propositions.
bdd SPOT_API bdd
atomic_prop_collect_as_bdd(const formula* f, const tgba* a); atomic_prop_collect_as_bdd(const formula* f, const tgba* a);
/// @} /// @}

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012 Laboratoire de Recherche et // Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -37,7 +37,7 @@ namespace spot
/// to derive from it and override part of its methods. /// to derive from it and override part of its methods.
/// But if you just want the functionality, consider using /// But if you just want the functionality, consider using
/// spot::ltl::formula::clone instead, it is way faster. /// spot::ltl::formula::clone instead, it is way faster.
class clone_visitor : public visitor class SPOT_API clone_visitor : public visitor
{ {
public: public:
clone_visitor(); clone_visitor();
@ -59,17 +59,11 @@ namespace spot
const formula* result_; const formula* result_;
}; };
#if __GNUC__
/// \ingroup ltl_essential /// \ingroup ltl_essential
/// \brief Clone a formula. /// \brief Clone a formula.
/// \deprecated Use f->clone() instead. /// \deprecated Use f->clone() instead.
SPOT_API SPOT_DEPRECATED
const formula* clone(const formula* f) __attribute__ ((deprecated)); const formula* clone(const formula* f) __attribute__ ((deprecated));
#else
/// \ingroup ltl_essential
/// \brief Clone a formula.
/// \deprecated Use f->clone() instead.
const formula* clone(const formula* f);
#endif
} }
} }

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// l'Epita (LRDE). // Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE).
// Copyright (C) 2006 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -31,8 +32,8 @@ namespace spot
{ {
namespace ltl namespace ltl
{ {
// Check containment of language represented by LTL formulae. /// Check containment between LTL formulae.
class language_containment_checker class SPOT_API language_containment_checker
{ {
struct record_ struct record_
{ {
@ -44,7 +45,7 @@ namespace spot
record_, formula_ptr_hash> trans_map; record_, formula_ptr_hash> trans_map;
public: public:
/// This class uses spot::ltl_to_tgba_fm to translate LTL /// This class uses spot::ltl_to_tgba_fm to translate LTL
/// formulae. See that class for the meaning of these options. /// formulae. See that function for the meaning of these options.
language_containment_checker(bdd_dict* dict, bool exprop, language_containment_checker(bdd_dict* dict, bool exprop,
bool symb_merge, bool symb_merge,
bool branching_postponement, bool branching_postponement,
@ -106,13 +107,9 @@ namespace spot
/// reduce some U, R, and X usages. /// reduce some U, R, and X usages.
/// ///
/// \deprecated Use spot::ltl::ltl_simplifier instead. /// \deprecated Use spot::ltl::ltl_simplifier instead.
#if __GNUC__ SPOT_API SPOT_DEPRECATED
const formula* reduce_tau03(const formula* f, const formula* reduce_tau03(const formula* f,
bool stronger = true) bool stronger = true);
__attribute__ ((deprecated));
#else
const formula* reduce_tau03(const formula* f, bool stronger = true);
#endif
} }
} }

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -22,23 +23,18 @@
#ifndef SPOT_LTLVISIT_DESTROY_HH #ifndef SPOT_LTLVISIT_DESTROY_HH
# define SPOT_LTLVISIT_DESTROY_HH # define SPOT_LTLVISIT_DESTROY_HH
# include "misc/common.hh"
# include "ltlvisit/postfix.hh" # include "ltlvisit/postfix.hh"
namespace spot namespace spot
{ {
namespace ltl namespace ltl
{ {
#if __GNUC__
/// \ingroup ltl_essential
/// \brief Destroys a formula
/// \deprecated Use f->destroy() instead.
void destroy(const formula *f) __attribute__ ((deprecated));
#else
/// \ingroup ltl_essential /// \ingroup ltl_essential
/// \brief Destroys a formula /// \brief Destroys a formula
/// \deprecated Use f->destroy() instead. /// \deprecated Use f->destroy() instead.
SPOT_API SPOT_DEPRECATED
void destroy(const formula *f); void destroy(const formula *f);
#endif
} }
} }

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -34,6 +37,7 @@ namespace spot
/// ///
/// \c dot is part of the GraphViz package /// \c dot is part of the GraphViz package
/// http://www.research.att.com/sw/tools/graphviz/ /// http://www.research.att.com/sw/tools/graphviz/
SPOT_API
std::ostream& dotty(std::ostream& os, const formula* f); std::ostream& dotty(std::ostream& os, const formula* f);
} }
} }

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -33,6 +36,7 @@ namespace spot
/// \param f The formula to dump. /// \param f The formula to dump.
/// ///
/// This is useful to display a formula when debugging. /// This is useful to display a formula when debugging.
SPOT_API
std::ostream& dump(std::ostream& os, const formula* f); std::ostream& dump(std::ostream& os, const formula* f);
} }
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et // Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -41,7 +41,7 @@ namespace spot
/// ///
/// \param f The formula to translate. /// \param f The formula to translate.
/// \param os The stream where it should be output. /// \param os The stream where it should be output.
std::ostream& SPOT_API std::ostream&
to_lbt_string(const formula* f, std::ostream& os); to_lbt_string(const formula* f, std::ostream& os);
/// \brief Output an LTL formula as a string in LBT's format. /// \brief Output an LTL formula as a string in LBT's format.
@ -53,7 +53,7 @@ namespace spot
/// rewrite these two operators using unabbreviate_wm(). /// rewrite these two operators using unabbreviate_wm().
/// ///
/// \param f The formula to translate. /// \param f The formula to translate.
std::string SPOT_API std::string
to_lbt_string(const formula* f); to_lbt_string(const formula* f);
/// @} /// @}
} }

View file

@ -1,7 +1,8 @@
// Copyright (C) 2012 Laboratoire de Recherche et Developement de // -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Developement de
// l'Epita (LRDE). // l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -40,6 +41,7 @@ namespace spot
/// ///
/// If squash_boolean is set, all Boolean formulae are assumed /// If squash_boolean is set, all Boolean formulae are assumed
/// to have length one. /// to have length one.
SPOT_API
int length(const formula* f); int length(const formula* f);
/// \ingroup ltl_misc /// \ingroup ltl_misc
@ -47,6 +49,7 @@ namespace spot
/// ///
/// This is similar to spot::ltl::length(), except all Boolean /// This is similar to spot::ltl::length(), except all Boolean
/// formulae are assumed to have length one. /// formulae are assumed to have length one.
SPOT_API
int length_boolone(const formula* f); int length_boolone(const formula* f);
} }
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -41,7 +41,7 @@ namespace spot
/// to derive from it and override some of its methods. /// to derive from it and override some of its methods.
/// But if you just want the functionality, consider using /// But if you just want the functionality, consider using
/// spot::ltl::unabbreviate_logic instead. /// spot::ltl::unabbreviate_logic instead.
class unabbreviate_logic_visitor : public clone_visitor class SPOT_API unabbreviate_logic_visitor : public clone_visitor
{ {
typedef clone_visitor super; typedef clone_visitor super;
public: public:
@ -61,7 +61,7 @@ namespace spot
/// This will rewrite binary operators such as binop::Implies, /// This will rewrite binary operators such as binop::Implies,
/// binop::Equals, and binop::Xor, using only unop::Not, multop::Or, /// binop::Equals, and binop::Xor, using only unop::Not, multop::Or,
/// and multop::And. /// and multop::And.
const formula* unabbreviate_logic(const formula* f); SPOT_API const formula* unabbreviate_logic(const formula* f);
} }
} }

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et // Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche
// Développement de l'Epita (LRDE). // et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -20,6 +20,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "nenoform.hh"
#include "simplify.hh" #include "simplify.hh"
namespace spot namespace spot

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement de // Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -44,7 +44,7 @@ namespace spot
/// or spot::ltl::unabbreviate_ltl first. (Calling these functions /// or spot::ltl::unabbreviate_ltl first. (Calling these functions
/// after spot::ltl::negative_normal_form would likely produce a /// after spot::ltl::negative_normal_form would likely produce a
/// formula which is not in negative normal form.) /// formula which is not in negative normal form.)
const formula* SPOT_API const formula*
negative_normal_form(const formula* f, bool negated = false); negative_normal_form(const formula* f, bool negated = false);
} }
} }

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2010, 2012 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -35,7 +36,7 @@ namespace spot
/// ///
/// Override one or more of the postifix_visitor::doit methods /// Override one or more of the postifix_visitor::doit methods
/// with the algorithm to apply. /// with the algorithm to apply.
class postfix_visitor : public visitor class SPOT_API postfix_visitor : public visitor
{ {
public: public:
postfix_visitor(); postfix_visitor();

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -33,7 +33,7 @@ namespace spot
/// \ingroup ltl_io /// \ingroup ltl_io
/// \brief Base class for random formula generators /// \brief Base class for random formula generators
class random_formula class SPOT_API random_formula
{ {
public: public:
random_formula(unsigned proba_size, random_formula(unsigned proba_size,
@ -110,7 +110,7 @@ namespace spot
/// Also, each atomic proposition has as much chance as each /// Also, each atomic proposition has as much chance as each
/// constant (i.e., true and false) to be picked. This can be /// constant (i.e., true and false) to be picked. This can be
/// tuned using parse_options(). /// tuned using parse_options().
class random_ltl: public random_formula class SPOT_API random_ltl: public random_formula
{ {
public: public:
/// Create a random LTL generator using atomic propositions from \a ap. /// Create a random LTL generator using atomic propositions from \a ap.
@ -160,7 +160,7 @@ namespace spot
/// constant and all Boolean operators supported by Spot. /// constant and all Boolean operators supported by Spot.
/// ///
/// By default each operator has equal chance to be selected. /// By default each operator has equal chance to be selected.
class random_boolean: public random_formula class SPOT_API random_boolean: public random_formula
{ {
public: public:
/// Create a random Boolean formula generator using atomic /// Create a random Boolean formula generator using atomic
@ -200,7 +200,7 @@ namespace spot
/// constant and all SERE operators supported by Spot. /// constant and all SERE operators supported by Spot.
/// ///
/// By default each operator has equal chance to be selected. /// By default each operator has equal chance to be selected.
class random_sere: public random_formula class SPOT_API random_sere: public random_formula
{ {
public: public:
/// Create a random SERE genere using atomic propositions from \a ap. /// Create a random SERE genere using atomic propositions from \a ap.
@ -241,7 +241,7 @@ namespace spot
/// The formulae will use the use atomic propositions from the /// The formulae will use the use atomic propositions from the
/// set of propositions passed to the constructor, in addition to the /// set of propositions passed to the constructor, in addition to the
/// constant and all PSL operators supported by Spot. /// constant and all PSL operators supported by Spot.
class random_psl: public random_ltl class SPOT_API random_psl: public random_ltl
{ {
public: public:
/// Create a random PSL generator using atomic propositions from \a ap. /// Create a random PSL generator using atomic propositions from \a ap.

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 // Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université // (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
@ -68,12 +68,8 @@ namespace spot
/// \return the reduced formula /// \return the reduced formula
/// ///
/// \deprecated Use spot::ltl::ltl_simplifier instead. /// \deprecated Use spot::ltl::ltl_simplifier instead.
#if __GNUC__ SPOT_API SPOT_DEPRECATED const formula*
const formula* reduce(const formula* f, int opt = Reduce_All);
reduce(const formula* f, int opt = Reduce_All) __attribute__ ((deprecated));
#else
const formula* reduce(const formula* f, int opt = Reduce_All);
#endif
/// @} /// @}
/// \ingroup ltl_misc /// \ingroup ltl_misc
@ -99,11 +95,8 @@ namespace spot
/// anything and still satisfies the formula. /// anything and still satisfies the formula.
/// ///
/// \deprecated Use f->is_eventual() instead. /// \deprecated Use f->is_eventual() instead.
#if __GNUC__ SPOT_API SPOT_DEPRECATED
bool is_eventual(const formula* f) __attribute__ ((deprecated));
#else
bool is_eventual(const formula* f); bool is_eventual(const formula* f);
#endif
/// \ingroup ltl_misc /// \ingroup ltl_misc
/// \brief Check whether a formula is purely universal. /// \brief Check whether a formula is purely universal.
@ -128,11 +121,8 @@ namespace spot
/// universal formula also satisfies the formula. /// universal formula also satisfies the formula.
/// ///
/// \deprecated Use f->is_universal() instead. /// \deprecated Use f->is_universal() instead.
#if __GNUC__ SPOT_API SPOT_DEPRECATED
bool is_universal(const formula* f) __attribute__ ((deprecated));
#else
bool is_universal(const formula* f); bool is_universal(const formula* f);
#endif
} }
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et // Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -29,8 +29,8 @@ namespace spot
enum relabeling_style { Abc, Pnn }; enum relabeling_style { Abc, Pnn };
/// \ingroup ltl_rewriting /// \ingroup ltl_rewriting
/// \brief Relabel the atomic proposition in a formula. /// \brief Relabel the atomic propositions in a formula.
/// SPOT_API
const formula* relabel(const formula* f, relabeling_style style); const formula* relabel(const formula* f, relabeling_style style);
} }
} }

View file

@ -20,6 +20,7 @@
#include "ltlvisit/simplify.hh" #include "ltlvisit/simplify.hh"
#include "ltlvisit/clone.hh" #include "ltlvisit/clone.hh"
#include "ltlvisit/apcollect.hh" #include "ltlvisit/apcollect.hh"
#include "ltlvisit/remove_x.hh"
namespace spot namespace spot
{ {

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement de // Copyright (C) 2013 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE). // l'Epita (LRDE).
// //
@ -19,6 +20,8 @@
#ifndef SPOT_LTLVISIT_REMOVE_X_HH #ifndef SPOT_LTLVISIT_REMOVE_X_HH
# define SPOT_LTLVISIT_REMOVE_X_HH # define SPOT_LTLVISIT_REMOVE_X_HH
# include "misc/common.hh"
namespace spot namespace spot
{ {
namespace ltl namespace ltl
@ -43,6 +46,7 @@ namespace spot
pages = {261--263} pages = {261--263}
} }
\endverbatim */ \endverbatim */
SPOT_API
const formula* remove_x(const formula* f); const formula* remove_x(const formula* f);
/// \brief Whether an LTL formula \a f is stutter-insensitive. /// \brief Whether an LTL formula \a f is stutter-insensitive.
@ -63,6 +67,7 @@ namespace spot
pages = {261--263} pages = {261--263}
} }
\endverbatim */ \endverbatim */
SPOT_API
bool is_stutter_insensitive(const formula* f); bool is_stutter_insensitive(const formula* f);
} }
} }

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2012 Laboratoire de Recherche et Développement // Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
// de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
@ -40,7 +40,7 @@ namespace spot
/// - false R a = G a /// - false R a = G a
/// - a W false = G a /// - a W false = G a
/// ///
class simplify_f_g_visitor : public clone_visitor class SPOT_API simplify_f_g_visitor : public clone_visitor
{ {
typedef clone_visitor super; typedef clone_visitor super;
public: public:
@ -64,7 +64,7 @@ namespace spot
/// - false R a = G a /// - false R a = G a
/// - a W false = G a /// - a W false = G a
/// ///
const formula* simplify_f_g(const formula* f); SPOT_API const formula* simplify_f_g(const formula* f);
} }
} }

View file

@ -75,7 +75,7 @@ namespace spot
/// \ingroup ltl_rewriting /// \ingroup ltl_rewriting
/// \brief Rewrite or simplify \a f in various ways. /// \brief Rewrite or simplify \a f in various ways.
class ltl_simplifier class SPOT_API ltl_simplifier
{ {
public: public:
ltl_simplifier(bdd_dict* dict = 0); ltl_simplifier(bdd_dict* dict = 0);

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Developpement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -50,8 +50,8 @@ namespace spot
/// ///
/// \param sere the SERE to rewrite /// \param sere the SERE to rewrite
/// \param cache an optional cache /// \param cache an optional cache
const formula* star_normal_form(const formula* sere, SPOT_API const formula*
snf_cache* cache = 0); star_normal_form(const formula* sere, snf_cache* cache = 0);
} }
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -40,7 +40,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
/// \param ratexp Whether we are printing a SERE. /// \param ratexp Whether we are printing a SERE.
std::ostream& SPOT_API std::ostream&
to_string(const formula* f, std::ostream& os, bool full_parent = false, to_string(const formula* f, std::ostream& os, bool full_parent = false,
bool ratexp = false); bool ratexp = false);
@ -50,7 +50,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
/// \param ratexp Whether we are printing a SERE. /// \param ratexp Whether we are printing a SERE.
std::string SPOT_API std::string
to_string(const formula* f, bool full_parent = false, bool ratexp = false); to_string(const formula* f, bool full_parent = false, bool ratexp = false);
/// \brief Output a formula as an utf8 string which is parsable unless /// \brief Output a formula as an utf8 string which is parsable unless
@ -60,7 +60,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
/// \param ratexp Whether we are printing a SERE. /// \param ratexp Whether we are printing a SERE.
std::ostream& SPOT_API std::ostream&
to_utf8_string(const formula* f, std::ostream& os, bool full_parent = false, to_utf8_string(const formula* f, std::ostream& os, bool full_parent = false,
bool ratexp = false); bool ratexp = false);
@ -70,7 +70,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
/// \param ratexp Whether we are printing a SERE. /// \param ratexp Whether we are printing a SERE.
std::string SPOT_API std::string
to_utf8_string(const formula* f, bool full_parent = false, to_utf8_string(const formula* f, bool full_parent = false,
bool ratexp = false); bool ratexp = false);
@ -79,23 +79,27 @@ namespace spot
/// \param os The stream where it should be output. /// \param os The stream where it should be output.
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
std::ostream& to_spin_string(const formula* f, std::ostream& os, SPOT_API std::ostream&
to_spin_string(const formula* f, std::ostream& os,
bool full_parent = false); bool full_parent = false);
/// \brief Convert a formula into a string parsable by Spin. /// \brief Convert a formula into a string parsable by Spin.
/// \param f The formula to translate. /// \param f The formula to translate.
/// \param full_parent Whether or not the string should by fully /// \param full_parent Whether or not the string should by fully
/// parenthesized. /// parenthesized.
std::string to_spin_string(const formula* f, bool full_parent = false); SPOT_API std::string
to_spin_string(const formula* f, bool full_parent = false);
/// \brief Output a formula as a string parsable by Wring. /// \brief Output a formula as a string parsable by Wring.
/// \param f The formula to translate. /// \param f The formula to translate.
/// \param os The stream where it should be output. /// \param os The stream where it should be output.
std::ostream& to_wring_string(const formula* f, std::ostream& os); SPOT_API std::ostream&
to_wring_string(const formula* f, std::ostream& os);
/// \brief Convert a formula into a string parsable by Wring /// \brief Convert a formula into a string parsable by Wring
/// \param f The formula to translate. /// \param f The formula to translate.
std::string to_wring_string(const formula* f); SPOT_API std::string
to_wring_string(const formula* f);
/// @} /// @}
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement de // Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE). // l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -44,7 +44,7 @@ namespace spot
/// to derive from it and override some of its methods. /// to derive from it and override some of its methods.
/// But if you just want the functionality, consider using /// But if you just want the functionality, consider using
/// spot::ltl::unabbreviate_ltl instead. /// spot::ltl::unabbreviate_ltl instead.
class unabbreviate_ltl_visitor : public unabbreviate_logic_visitor class SPOT_API unabbreviate_ltl_visitor : public unabbreviate_logic_visitor
{ {
typedef unabbreviate_logic_visitor super; typedef unabbreviate_logic_visitor super;
public: public:
@ -65,7 +65,7 @@ namespace spot
/// ///
/// This will also rewrite unary operators such as unop::F, /// This will also rewrite unary operators such as unop::F,
/// and unop::G, using only binop::U, and binop::R. /// and unop::G, using only binop::U, and binop::R.
const formula* unabbreviate_ltl(const formula* f); SPOT_API const formula* unabbreviate_ltl(const formula* f);
} }
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -20,6 +20,8 @@
#ifndef SPOT_LTLVISIT_WMUNABBREV_HH #ifndef SPOT_LTLVISIT_WMUNABBREV_HH
# define SPOT_LTLVISIT_WMUNABBREV_HH # define SPOT_LTLVISIT_WMUNABBREV_HH
# include "misc/common.hh"
namespace spot namespace spot
{ {
namespace ltl namespace ltl
@ -35,7 +37,7 @@ namespace spot
/// <code>a W b</code> is replaced by <code>b R (b | a)</code>, /// <code>a W b</code> is replaced by <code>b R (b | a)</code>,
/// and <code>a M b</code> is replaced by <code>b U (b & a)</code>. /// and <code>a M b</code> is replaced by <code>b U (b & a)</code>.
/// ///
const formula* unabbreviate_wm(const formula* f); SPOT_API const formula* unabbreviate_wm(const formula* f);
} }
} }

View file

@ -20,6 +20,14 @@
#ifndef SPOT_MISC_COMMON_HH #ifndef SPOT_MISC_COMMON_HH
# define SPOT_MISC_COMMON_HH # define SPOT_MISC_COMMON_HH
#ifdef __GNUC__
#define SPOT_DEPRECATED __attribute__ ((deprecated))
#elif defined(_MSC_VER)
#define SPOT_DEPRECATED __declspec(deprecated)
#else
#define SPOT_DEPRECATED func
#endif
#if defined _WIN32 || defined __CYGWIN__ #if defined _WIN32 || defined __CYGWIN__
#define SPOT_HELPER_DLL_IMPORT __declspec(dllimport) #define SPOT_HELPER_DLL_IMPORT __declspec(dllimport)
#define SPOT_HELPER_DLL_EXPORT __declspec(dllexport) #define SPOT_HELPER_DLL_EXPORT __declspec(dllexport)