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

@ -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);
}
}