Vaucanson  1.4.1
automaton_maker.thh
1 // -*- C++ -*-
2 // automaton_maker.thh: this file is part of the Vaucanson project.
3 //
4 // Vaucanson, a generic library for finite state machines.
5 //
6 // Copyright (C) 2007, 2008 The Vaucanson Group.
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 2
11 // of the License, or (at your option) any later version.
12 //
13 // The complete GNU General Public Licence Notice can be found as the
14 // `COPYING' file in the root directory.
15 //
16 // The Vaucanson Group consists of people listed in the `AUTHORS' file.
17 //
18 
19 /*
20  * CPP guard should not be inserted here as
21  * VCSN_CONTEXT_NAMESPACE could be changed.
22  */
23 
24 namespace vcsn
25 {
26  namespace VCSN_GRAPH_IMPL
27  {
28  VCSN_CONTEXT_NAMESPACE
29  {
30  template <class T>
31  automaton_t make_automaton(const T& alphabet);
32 
33  template <class T>
34  automaton_t make_automaton(const T& alphabet,
35  const monoid_rep_t& mrep,
36  const series_rep_t& srep);
37 
38  template <class InputIterator>
39  automaton_t make_automaton(InputIterator begin,
40  InputIterator end);
41 
42  template <class InputIterator>
43  automaton_t make_automaton(InputIterator begin,
44  InputIterator end,
45  const monoid_rep_t& mrep,
46  const series_rep_t& srep);
47 
48  template <class T>
49  automaton_letter_t make_automaton_letter(const T& alphabet);
50 
51  template <class InputIterator>
52  automaton_letter_t make_automaton_letter(InputIterator begin,
53  InputIterator end);
54 
55  template <class T>
56  gen_automaton_t make_gen_automaton(const T& alphabet);
57 
58  template <class InputIterator>
59  gen_automaton_t make_gen_automaton(InputIterator begin,
60  InputIterator end);
61 
62  template <class Iterator>
63  rat_exp_t
64  make_rat_exp(const Iterator& begin,
65  const Iterator& end,
66  const std::string& exp = (vcsn::algebra::
67  SeriesRepDefault<semiring_t, monoid_t>::
68  get_instance()->zero),
69  const monoid_rep_t& mrep = *(vcsn::algebra::
70  MonoidRepDefault<monoid_t>::
71  get_instance()),
72  const series_rep_t& srep = *(vcsn::algebra::
73  SeriesRepDefault<semiring_t, monoid_t>::
74  get_instance()));
75 
76  template <class T>
77  rat_exp_t
78  make_rat_exp(const T& alphabet,
79  const std::string& exp = (vcsn::algebra::
80  SeriesRepDefault<semiring_t, monoid_t>::
81  get_instance()->zero),
82  const monoid_rep_t& mrep = *(vcsn::algebra::
83  MonoidRepDefault<monoid_t>::
84  get_instance()),
85  const series_rep_t& srep = *(vcsn::algebra::
86  SeriesRepDefault<semiring_t, monoid_t>::
87  get_instance()));
88 
89  template <class SeriesSet, class SeriesImpl>
90  automaton_t
91  standard_of(const Element<SeriesSet, SeriesImpl>& e);
92 
93 
94  template <class SeriesSet, class SeriesImpl>
95  automaton_t
96  thompson_of(const Element<SeriesSet, SeriesImpl>& e);
97 
98  rat_exp_t
99  aut_to_exp(const automaton_t& a);
100 
101  template <class Chooser>
102  rat_exp_t
103  aut_to_exp(const automaton_t& a, const Chooser& c);
104  }
105  }
106 }
107 
108 # include <vaucanson/contexts/automaton_maker.thxx>
109