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