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
## Développement de l'Epita (LRDE).
## -*- coding: utf-8 -*-
## 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),
## 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.
##
## 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/>.
AM_CPPFLAGS = -I$(srcdir)/.. -I..
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
ltlastdir = $(pkgincludedir)/ltlast

View file

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

View file

@ -1,5 +1,5 @@
// -*- 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)
//
// This file is part of Spot, a model checking library.
@ -22,11 +22,11 @@
#ifndef SPOT_LTLAST_AUTOMATOP_HH
# define SPOT_LTLAST_AUTOMATOP_HH
# include "refformula.hh"
# include <vector>
# include <iosfwd>
# include <map>
# include "nfa.hh"
# include "refformula.hh"
namespace spot
{
@ -35,7 +35,7 @@ namespace spot
/// \ingroup eltl_ast
/// \brief Automaton operators.
///
class automatop : public ref_formula
class SPOT_API automatop : public ref_formula
{
public:
/// List of formulae.

View file

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

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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.
//
@ -21,9 +22,9 @@
#ifndef SPOT_LTLAST_BUNOP_HH
# define SPOT_LTLAST_BUNOP_HH
#include "refformula.hh"
#include <map>
#include <iosfwd>
#include "refformula.hh"
#include "constant.hh"
namespace spot
@ -33,7 +34,7 @@ namespace spot
/// \ingroup ltl_ast
/// \brief Bounded unary operator.
class bunop : public ref_formula
class SPOT_API bunop : public ref_formula
{
public:
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).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
//
@ -31,7 +32,7 @@ namespace spot
/// \ingroup ltl_ast
/// \brief A constant (True or False)
class constant : public formula
class SPOT_API constant : public formula
{
public:
enum type { False, True, EmptyWord };

View file

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

View file

@ -1,5 +1,6 @@
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie.
@ -24,10 +25,10 @@
#ifndef SPOT_LTLAST_MULTOP_HH
# define SPOT_LTLAST_MULTOP_HH
#include "refformula.hh"
#include <vector>
#include <map>
#include <iosfwd>
#include "refformula.hh"
namespace spot
{
@ -36,7 +37,7 @@ namespace spot
/// \ingroup ltl_ast
/// \brief Multi-operand operators.
class multop : public ref_formula
class SPOT_API multop : public ref_formula
{
public:
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
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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.
//
@ -21,6 +22,7 @@
#ifndef SPOT_LTLAST_NFA_HH
# define SPOT_LTLAST_NFA_HH
# include "misc/common.hh"
# include "misc/hash.hh"
# include <boost/shared_ptr.hpp>
# include <list>
@ -32,7 +34,7 @@ namespace spot
namespace ltl
{
/// Forward declaration. See below.
class succ_iterator;
class SPOT_API succ_iterator;
/// Forward declaration. NFA's labels are reprensented by nodes
/// which are defined in formula_tree.hh, included in nfa.cc.
namespace formula_tree
@ -45,7 +47,7 @@ namespace spot
/// States are represented by integers.
/// Labels are represented by formula_tree's nodes.
/// Currently, only one initial state is possible.
class nfa
class SPOT_API nfa
{
public:
struct transition;
@ -118,7 +120,7 @@ namespace spot
nfa& operator=(const nfa& other);
};
class succ_iterator
class SPOT_API succ_iterator
{
public:
succ_iterator(const nfa::state::const_iterator s)

View file

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

View file

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

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2010, 2012 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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),
// 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.
//
// This file is part of Spot, a model checking library.
@ -24,7 +25,8 @@
#ifndef SPOT_LTLAST_VISITOR_HH
# define SPOT_LTLAST_VISITOR_HH
#include "predecl.hh"
# include "misc/common.hh"
# include "predecl.hh"
namespace spot
{
@ -36,7 +38,7 @@ namespace spot
/// Implementing visitors is the prefered way
/// to traverse a formula, since it does not
/// involve any cast.
struct visitor
struct SPOT_API visitor
{
virtual ~visitor() {}
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
## et Marie Curie.
##
@ -18,7 +18,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/..
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
ltlenvdir = $(pkgincludedir)/ltlenv

View file

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

View file

@ -1,5 +1,5 @@
// -*- 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).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// 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()
/// to obtain the instance.
class default_environment : public environment
class SPOT_API default_environment : public environment
{
public:
virtual ~default_environment();

View file

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

View file

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

View file

@ -1,5 +1,5 @@
// -*- 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).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// 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.
/// But if you just want the functionality, consider using
/// spot::ltl::formula::clone instead, it is way faster.
class clone_visitor : public visitor
class SPOT_API clone_visitor : public visitor
{
public:
clone_visitor();
@ -59,17 +59,11 @@ namespace spot
const formula* result_;
};
#if __GNUC__
/// \ingroup ltl_essential
/// \brief Clone a formula.
/// \deprecated Use f->clone() instead.
SPOT_API SPOT_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
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE).
// 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.
//
// This file is part of Spot, a model checking library.
@ -31,8 +32,8 @@ namespace spot
{
namespace ltl
{
// Check containment of language represented by LTL formulae.
class language_containment_checker
/// Check containment between LTL formulae.
class SPOT_API language_containment_checker
{
struct record_
{
@ -44,7 +45,7 @@ namespace spot
record_, formula_ptr_hash> trans_map;
public:
/// 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,
bool symb_merge,
bool branching_postponement,
@ -106,13 +107,9 @@ namespace spot
/// reduce some U, R, and X usages.
///
/// \deprecated Use spot::ltl::ltl_simplifier instead.
#if __GNUC__
SPOT_API SPOT_DEPRECATED
const formula* reduce_tau03(const formula* f,
bool stronger = true)
__attribute__ ((deprecated));
#else
const formula* reduce_tau03(const formula* f, bool stronger = true);
#endif
bool stronger = true);
}
}

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).
// 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.
//
// This file is part of Spot, a model checking library.
@ -22,23 +23,18 @@
#ifndef SPOT_LTLVISIT_DESTROY_HH
# define SPOT_LTLVISIT_DESTROY_HH
#include "ltlvisit/postfix.hh"
# include "misc/common.hh"
# include "ltlvisit/postfix.hh"
namespace spot
{
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
/// \brief Destroys a formula
/// \deprecated Use f->destroy() instead.
SPOT_API SPOT_DEPRECATED
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),
// 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.
//
// This file is part of Spot, a model checking library.
@ -34,6 +37,7 @@ namespace spot
///
/// \c dot is part of the GraphViz package
/// http://www.research.att.com/sw/tools/graphviz/
SPOT_API
std::ostream& dotty(std::ostream& os, const formula* f);
}
}

View file

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

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et
// Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
@ -41,7 +41,7 @@ namespace spot
///
/// \param f The formula to translate.
/// \param os The stream where it should be output.
std::ostream&
SPOT_API std::ostream&
to_lbt_string(const formula* f, std::ostream& os);
/// \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().
///
/// \param f The formula to translate.
std::string
SPOT_API std::string
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).
// 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.
//
// 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
/// to have length one.
SPOT_API
int length(const formula* f);
/// \ingroup ltl_misc
@ -47,6 +49,7 @@ namespace spot
///
/// This is similar to spot::ltl::length(), except all Boolean
/// formulae are assumed to have length one.
SPOT_API
int length_boolone(const formula* f);
}
}

View file

@ -1,5 +1,5 @@
// -*- 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).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// 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.
/// But if you just want the functionality, consider using
/// 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;
public:
@ -61,7 +61,7 @@ namespace spot
/// This will rewrite binary operators such as binop::Implies,
/// binop::Equals, and binop::Xor, using only unop::Not, multop::Or,
/// 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 -*-
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et
// 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 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
@ -20,6 +20,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "nenoform.hh"
#include "simplify.hh"
namespace spot

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
@ -44,7 +44,7 @@ namespace spot
/// or spot::ltl::unabbreviate_ltl first. (Calling these functions
/// after spot::ltl::negative_normal_form would likely produce a
/// formula which is not in negative normal form.)
const formula*
SPOT_API const formula*
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
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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),
// 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.
//
// 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
/// with the algorithm to apply.
class postfix_visitor : public visitor
class SPOT_API postfix_visitor : public visitor
{
public:
postfix_visitor();

View file

@ -1,5 +1,5 @@
// -*- 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).
// Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -33,7 +33,7 @@ namespace spot
/// \ingroup ltl_io
/// \brief Base class for random formula generators
class random_formula
class SPOT_API random_formula
{
public:
random_formula(unsigned proba_size,
@ -110,7 +110,7 @@ namespace spot
/// Also, each atomic proposition has as much chance as each
/// constant (i.e., true and false) to be picked. This can be
/// tuned using parse_options().
class random_ltl: public random_formula
class SPOT_API random_ltl: public random_formula
{
public:
/// 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.
///
/// 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:
/// Create a random Boolean formula generator using atomic
@ -200,7 +200,7 @@ namespace spot
/// constant and all SERE operators supported by Spot.
///
/// 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:
/// 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
/// set of propositions passed to the constructor, in addition to the
/// constant and all PSL operators supported by Spot.
class random_psl: public random_ltl
class SPOT_API random_psl: public random_ltl
{
public:
/// Create a random PSL generator using atomic propositions from \a ap.

View file

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

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et
// Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
@ -29,8 +29,8 @@ namespace spot
enum relabeling_style { Abc, Pnn };
/// \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);
}
}

View file

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

View file

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

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2012 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
@ -40,7 +40,7 @@ namespace spot
/// - false R a = 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;
public:
@ -64,7 +64,7 @@ namespace spot
/// - false R a = 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
/// \brief Rewrite or simplify \a f in various ways.
class ltl_simplifier
class SPOT_API ltl_simplifier
{
public:
ltl_simplifier(bdd_dict* dict = 0);

View file

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

View file

@ -1,5 +1,5 @@
// -*- 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).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// 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
/// parenthesized.
/// \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,
bool ratexp = false);
@ -50,7 +50,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully
/// parenthesized.
/// \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);
/// \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
/// parenthesized.
/// \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,
bool ratexp = false);
@ -70,7 +70,7 @@ namespace spot
/// \param full_parent Whether or not the string should by fully
/// parenthesized.
/// \param ratexp Whether we are printing a SERE.
std::string
SPOT_API std::string
to_utf8_string(const formula* f, bool full_parent = false,
bool ratexp = false);
@ -79,23 +79,27 @@ namespace spot
/// \param os The stream where it should be output.
/// \param full_parent Whether or not the string should by fully
/// parenthesized.
std::ostream& to_spin_string(const formula* f, std::ostream& os,
bool full_parent = false);
SPOT_API std::ostream&
to_spin_string(const formula* f, std::ostream& os,
bool full_parent = false);
/// \brief Convert a formula into a string parsable by Spin.
/// \param f The formula to translate.
/// \param full_parent Whether or not the string should by fully
/// 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.
/// \param f The formula to translate.
/// \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
/// \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 -*-
// 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).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// 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.
/// But if you just want the functionality, consider using
/// 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;
public:
@ -65,7 +65,7 @@ namespace spot
///
/// This will also rewrite unary operators such as unop::F,
/// 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 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
@ -20,6 +20,8 @@
#ifndef SPOT_LTLVISIT_WMUNABBREV_HH
# define SPOT_LTLVISIT_WMUNABBREV_HH
# include "misc/common.hh"
namespace spot
{
namespace ltl
@ -35,7 +37,7 @@ namespace spot
/// <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>.
///
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
# 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__
#define SPOT_HELPER_DLL_IMPORT __declspec(dllimport)
#define SPOT_HELPER_DLL_EXPORT __declspec(dllexport)