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

Use -fvisibility=hidden in src/tgbaalgos/.

* src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am: Add
$(VISIBILITY_CXXFLAGS).
* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.hh,
src/tgbaalgos/cutscc.hh, src/tgbaalgos/cycles.hh,
src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.hh,
src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/explscc.hh,
src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/nsheap.hh,
src/tgbaalgos/gtec/sccstack.hh,
src/tgbaalgos/gtec/status.hh, src/tgbaalgos/gv04.hh,
src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh,
src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.hh,
src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh,
src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh,
src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh,
src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh,
src/tgbaalgos/safety.hh, src/tgbaalgos/save.hh, src/tgbaalgos/scc.hh,
src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.hh,
src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh,
src/tgbaalgos/stripacc.hh, src/tgbaalgos/tau03.hh,
src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh: Mark public
symbol with SPOT_API.
parent dab51a9d
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
// et Marie Curie.
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// 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.
//
......@@ -27,7 +30,8 @@ namespace spot
{
/// \ingroup tgba_io
/// \brief Save reachable states in text format.
std::ostream& tgba_save_reachable(std::ostream& os, const tgba* g);
SPOT_API std::ostream&
tgba_save_reachable(std::ostream& os, const tgba* g);
}
#endif // SPOT_TGBAALGOS_SAVE_HH
// -*- coding: utf-8 -*-
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche
// et Développement de l'Epita.
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Laboratoire de
// Recherche et Développement de l'Epita.
//
// This file is part of Spot, a model checking library.
//
......@@ -31,7 +31,7 @@
namespace spot
{
struct scc_stats
struct SPOT_API scc_stats
{
/// Total number of SCCs.
unsigned scc_total;
......@@ -67,7 +67,7 @@ namespace spot
};
/// Build a map of Strongly Connected components in in a TGBA.
class scc_map
class SPOT_API scc_map
{
public:
typedef std::map<unsigned, bdd> succ_type;
......@@ -247,13 +247,15 @@ namespace spot
unsigned self_loops_; // Self loops count.
};
scc_stats build_scc_stats(const tgba* a);
scc_stats build_scc_stats(const scc_map& m);
SPOT_API scc_stats
build_scc_stats(const tgba* a);
SPOT_API scc_stats
build_scc_stats(const scc_map& m);
std::ostream& dump_scc_dot(const tgba* a, std::ostream& out,
bool verbose = false);
std::ostream& dump_scc_dot(const scc_map& m, std::ostream& out,
bool verbose = false);
SPOT_API std::ostream&
dump_scc_dot(const tgba* a, std::ostream& out, bool verbose = false);
SPOT_API std::ostream&
dump_scc_dot(const scc_map& m, std::ostream& out, bool verbose = false);
}
#endif // SPOT_TGBAALGOS_SCC_HH
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE).
//
......@@ -61,9 +62,10 @@ namespace spot
/// (i.e., transitions leaving accepting states are all marked as
/// accepting) may destroy this property. Use scc_filter_states()
/// instead.
tgba* scc_filter(const tgba* aut, bool remove_all_useless = false,
scc_map* given_sm = 0, bdd susp = bddtrue,
bool early_susp = false, bdd ignored = bddtrue);
SPOT_API tgba*
scc_filter(const tgba* aut, bool remove_all_useless = false,
scc_map* given_sm = 0, bdd susp = bddtrue,
bool early_susp = false, bdd ignored = bddtrue);
/// \brief Prune unaccepting SCCs.
///
......@@ -73,7 +75,8 @@ namespace spot
/// Especially, if the input TGBA has the SBA property, (i.e.,
/// transitions leaving accepting states are all marked as
/// accepting), then the output TGBA will also have that property.
tgba* scc_filter_states(const tgba* aut, scc_map* given_sm = 0);
SPOT_API tgba*
scc_filter_states(const tgba* aut, scc_map* given_sm = 0);
}
#endif // SPOT_TGBAALGOS_SCC_HH
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// 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 et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
......@@ -48,7 +51,7 @@ namespace spot
begin
call dfs_blue(s0);
end;
procedure dfs_blue (s)
begin
s.color = cyan;
......@@ -67,7 +70,7 @@ namespace spot
end for;
s.color = blue;
end;
procedure dfs_red(s)
begin
if s.color == cyan then
......@@ -99,8 +102,9 @@ namespace spot
///
/// \sa spot::explicit_magic_search
///
emptiness_check* explicit_se05_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_se05_search(const tgba *a, option_map o = option_map());
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
///
/// \pre The automaton \a a must have at most one acceptance condition (i.e.
......@@ -128,8 +132,9 @@ namespace spot
///
/// \sa spot::explicit_se05_search
///
emptiness_check* bit_state_hashing_se05_search(const tgba *a, size_t size,
option_map o = option_map());
SPOT_API emptiness_check*
bit_state_hashing_se05_search(const tgba *a, size_t size,
option_map o = option_map());
/// \brief Wrapper for the two se05 implementations.
......@@ -138,7 +143,8 @@ namespace spot
/// bit_state_hashing_se05_search() according to the \c "bsh" option
/// in the \c option_map. If \c "bsh" is set and non null, its value
/// is used as the size of the hash map.
emptiness_check* se05(const tgba *a, option_map o);
SPOT_API emptiness_check*
se05(const tgba *a, option_map o);
/// @}
}
......
......@@ -20,6 +20,8 @@
#ifndef SPOT_TGBAALGOS_SIMULATION_HH
# define SPOT_TGBAALGOS_SIMULATION_HH
# include "misc/common.hh"
namespace spot
{
class tgba;
......@@ -67,8 +69,8 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* simulation(const tgba* automaton);
tgba* simulation_sba(const tgba* automaton);
SPOT_API tgba* simulation(const tgba* automaton);
SPOT_API tgba* simulation_sba(const tgba* automaton);
/// @}
/// @{
......@@ -118,8 +120,8 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* cosimulation(const tgba* automaton);
tgba* cosimulation_sba(const tgba* automaton);
SPOT_API tgba* cosimulation(const tgba* automaton);
SPOT_API tgba* cosimulation_sba(const tgba* automaton);
/// @}
/// @{
......@@ -137,14 +139,15 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* iterated_simulations(const tgba* automaton);
tgba* iterated_simulations_sba(const tgba* automaton);
SPOT_API tgba* iterated_simulations(const tgba* automaton);
SPOT_API tgba* iterated_simulations_sba(const tgba* automaton);
/// @}
tgba* dont_care_simulation(const tgba* t, int limit = -1);
SPOT_API tgba*
dont_care_simulation(const tgba* t, int limit = -1);
tgba*
SPOT_API tgba*
dont_care_iterated_simulations(const tgba* t, int limit = -1);
......
// Copyright (C) 2008, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2008, 2011, 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -32,7 +33,7 @@ namespace spot
/// \addtogroup tgba_misc
/// @{
struct tgba_statistics
struct SPOT_API tgba_statistics
{
unsigned transitions;
unsigned states;
......@@ -41,7 +42,7 @@ namespace spot
std::ostream& dump(std::ostream& out) const;
};
struct tgba_sub_statistics: public tgba_statistics
struct SPOT_API tgba_sub_statistics: public tgba_statistics
{
unsigned sub_transitions;
......@@ -50,12 +51,12 @@ namespace spot
};
/// \brief Compute statistics for an automaton.
tgba_statistics stats_reachable(const tgba* g);
SPOT_API tgba_statistics stats_reachable(const tgba* g);
/// \brief Compute subended statistics for an automaton.
tgba_sub_statistics sub_stats_reachable(const tgba* g);
SPOT_API tgba_sub_statistics sub_stats_reachable(const tgba* g);
class printable_formula: public printable_value<const ltl::formula*>
class SPOT_API printable_formula: public printable_value<const ltl::formula*>
{
public:
printable_formula&
......@@ -74,7 +75,7 @@ namespace spot
/// This object can be configured to display various statistics
/// about a TGBA. Some %-sequence of characters are interpreted in
/// the format string, and replaced by the corresponding statistics.
class stat_printer: protected formater
class SPOT_API stat_printer: protected formater
{
public:
stat_printer(std::ostream& os, const char* format);
......
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement de
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -28,7 +28,8 @@ namespace spot
/// \brief Duplicate automaton \a a, removing all acceptance sets.
///
/// This is equivalent to marking all states/transitions as accepting.
sba_explicit_number* strip_acceptance(const tgba* a);
SPOT_API sba_explicit_number*
strip_acceptance(const tgba* a);
}
#endif // SPOT_TGBAALGOS_STRIPACC_HH
// -*- coding: utf-8 -*-
// Copyright (C) 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -42,7 +45,7 @@ namespace spot
begin
call dfs_blue(s0);
end;
procedure dfs_blue (s)
begin
s.color = blue;
......@@ -62,7 +65,7 @@ namespace spot
report a cycle;
end if;
end;
procedure dfs_red(s, A)
begin
s.acc = s.acc U A;
......@@ -93,8 +96,8 @@ namespace spot
}
\endverbatim */
///
emptiness_check* explicit_tau03_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_tau03_search(const tgba *a, option_map o = option_map());
/// @}
}
......
// -*- coding: utf-8 -*-
// Copyright (C) 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -43,7 +46,7 @@ namespace spot
weight = 0; // the null vector
call dfs_blue(s0);
end;
procedure dfs_blue (s)
begin
s.color = cyan;
......@@ -71,7 +74,7 @@ namespace spot
end for;
s.color = blue;
end;
procedure dfs_red(s, Acc)
begin
for all t in post(s) do
......@@ -95,8 +98,8 @@ namespace spot
/// the path stored in the blue stack. Such a vector is associated to each
/// state of this stack.
///
emptiness_check* explicit_tau03_opt_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_tau03_opt_search(const tgba *a, option_map o = option_map());
/// @}
}
......
......@@ -45,7 +45,7 @@ namespace spot
/// The semantic of these three methods is inherited from the
/// spot::postprocessor class, but the optimization level is
/// additionally used to select which LTL simplifications to enable.
class translator: protected postprocessor
class SPOT_API translator: protected postprocessor
{
public:
translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment