Vcsn  2.1
Be Rational
fwd.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <set>
5 
6 #include <vcsn/core/rat/fwd.hh>
7 
8 // This file is dangerous, it prevents automatic instantiation of
9 // these algos. It exists only to solve mutual dependencies (e.g.:
10 // proper uses is-valid which uses proper).
11 //
12 // FIXME: Solve these issues in some other way.
13 
14 namespace vcsn
15 {
16  // vcsn/algos/delay.hh
17  namespace detail
18  {
19  template <typename Aut>
21  }
22 
24  template <typename Aut>
25  using delay_automaton
26  = std::shared_ptr<detail::delay_automaton_impl<Aut>>;
27 
28  // vcsn/algos/edit-automaton.hh.
29  class automaton_editor;
30 
31  // vcsn/algos/focus.hh
32  namespace detail
33  {
34  template <std::size_t Tape, typename Aut>
35  class focus_automaton_impl;
36  }
37 
39  template <std::size_t Tape, typename Aut>
40  using focus_automaton
41  = std::shared_ptr<detail::focus_automaton_impl<Tape, Aut>>;
42 
43  template <unsigned Tape, typename Aut>
45 
46  // vcsn/algos/epsilon-remover.hh.
47  template <typename Aut>
48  bool in_situ_remover(Aut& aut, bool prune = true);
49 
50  // vcsn/algos/info.hh.
51  namespace detail_info
52  {
53  template <typename Aut>
54  size_t
55  num_eps_transitions(const Aut&);
56  }
57 
58  // vcsn/algos/is-ambiguous.hh.
59  template <typename Aut>
60  bool is_ambiguous(const Aut& aut);
61 
62  // vcsn/algos/is-proper.hh.
63  template <typename Aut>
64  bool is_proper(const Aut& aut);
65 
66  // vcsn/algos/is-value.hh.
67  template <typename Aut>
68  bool is_valid(const Aut& aut);
69 
70  template <typename ExpSet>
71  bool is_valid(const ExpSet&, const typename ExpSet::value_t&);
72 
73  // vcsn/algos/synchronize.hh
74  namespace detail
75  {
76  template <typename Aut>
78  }
79 
81  template <typename Aut>
83  = std::shared_ptr<detail::synchronized_automaton_impl<Aut>>;
84 
85  // vcsn/algos/to-expansion.hh.
86  template <typename ExpSet>
88  to_expansion(const ExpSet& rs, const typename ExpSet::value_t& e);
89 
90  // vcsn/algos/transpose.hh
91  namespace detail
92  {
93  template <typename Aut>
95  }
96 
98  template <typename Aut>
100  = std::shared_ptr<detail::transpose_automaton_impl<Aut>>;
101 
103  using letter_class_t = std::set<std::pair<std::string, std::string>>;
104 }
std::set< std::pair< std::string, std::string >> letter_class_t
A set of letter ranges.
Definition: fwd.hh:103
size_t num_eps_transitions(const Aut &)
An automaton whose states may be qualified by delays and/or prefixes.
Definition: fwd.hh:20
bool is_ambiguous(const Aut &aut)
Definition: is-ambiguous.hh:40
std::shared_ptr< detail::transpose_automaton_impl< Aut >> transpose_automaton
An automaton wrapper that presents the transposed automaton.
Definition: fwd.hh:100
auto rs
Definition: lift.hh:151
Read-write on an automaton, that transposes everything.
Definition: fwd.hh:94
bool is_valid(const Aut &aut)
Definition: is-valid.hh:141
bool is_proper(const Aut &aut)
Test whether an automaton is proper.
Definition: is-proper.hh:48
focus_automaton< Tape, Aut > focus(Aut aut)
Definition: focus.hh:341
std::shared_ptr< detail::focus_automaton_impl< Tape, Aut >> focus_automaton
A focus automaton as a shared pointer.
Definition: fwd.hh:41
std::shared_ptr< synchronized_automaton_impl< Aut >> synchronized_automaton
Definition: synchronize.hh:206
An automaton whose states may be qualified by delays and/or prefixes.
Definition: fwd.hh:77
rat::expansionset< ExpSet >::value_t to_expansion(const ExpSet &rs, const typename ExpSet::value_t &e)
First order expansion.
std::shared_ptr< detail::delay_automaton_impl< Aut >> delay_automaton
An automaton wrapper that presents the delay automaton.
Definition: fwd.hh:26
Abstract Builder (the design pattern) for automata.
bool in_situ_remover(Aut &aut, bool prune=true)