Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fwd.hh
Go to the documentation of this file.
1 #ifndef VCSN_ALGOS_FWD_HH
2 # define VCSN_ALGOS_FWD_HH
3 
4 # include <memory>
5 
6 // Beware that this file is dangerous, as it prevents automatic
7 // instantiation of these algos. It exists only to solve mutual
8 // dependencies (e.g.: proper uses is-valid which uses proper).
9 //
10 // FIXME: We should probably resolves these issues in some other way.
11 
12 namespace vcsn
13 {
14  // vcsn/algos/blind.hh
15  namespace detail
16  {
17  template <std::size_t Tape, typename Aut>
18  class blind_automaton_impl;
19  }
20 
22  template <std::size_t Tape, typename Aut>
23  using blind_automaton
24  = std::shared_ptr<detail::blind_automaton_impl<Tape, Aut>>;
25 
26  // vcsn/algos/edit-automaton.hh.
27  class automaton_editor;
28 
29  template <typename Aut>
30  bool in_situ_remover(Aut& aut, bool prune = true);
31 
32  template <typename Aut>
33  bool is_ambiguous(const Aut& aut);
34 
35  template <typename Aut>
36  bool is_proper(const Aut& aut);
37 
38  template <typename Aut>
39  bool is_valid(const Aut& aut);
40 
41  template <typename RatExpSet>
42  bool is_valid(const RatExpSet&, const typename RatExpSet::value_t&);
43 
44  namespace detail_info
45  {
46  template <typename Aut>
47  size_t
48  num_eps_transitions(const Aut&);
49  }
50 
51  // vcsn/algos/transpose.hh
52  namespace detail
53  {
54  template <typename Aut>
56  }
57 
59  template <typename Aut>
61  = std::shared_ptr<detail::transpose_automaton_impl<Aut>>;
62 }
63 
64 #endif // !VCSN_ALGOS_FWD_HH
Read-write on an automaton, that transposes everything.
Definition: fwd.hh:55
bool is_ambiguous(const Aut &aut)
Definition: is-ambiguous.hh:41
std::shared_ptr< detail::transpose_automaton_impl< Aut >> transpose_automaton
An automaton wrapper that presents the transposed automaton.
Definition: fwd.hh:61
std::shared_ptr< detail::blind_automaton_impl< Tape, Aut >> blind_automaton
A blind automaton as a shared pointer.
Definition: fwd.hh:24
bool is_valid(const Aut &aut)
Definition: is-valid.hh:138
bool in_situ_remover(Aut &aut, bool prune=true)
Blindly eliminate epsilon transitions without checking for the validity of the automaton.
Definition: proper.hh:542
bool is_proper(const Aut &aut)
Test whether an automaton is proper.
Definition: is-proper.hh:49
size_t num_eps_transitions(const Aut &)
Definition: info.hh:205
Abstract Builder (the design pattern) for automata.