Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_AUT_TO_EXP_HH
00018 # define VCSN_ALGORITHMS_AUT_TO_EXP_HH
00019
00032
00033
00034
00035
00036
00037 # include <vaucanson/design_pattern/design_pattern.hh>
00038 # include <vaucanson/automata/concept/automata_base.hh>
00039
00040 namespace vcsn {
00041
00059 template<typename A, typename AI>
00060 typename Element<A, AI>::series_set_elt_t
00061 aut_to_exp(const Element<A, AI>& a);
00062
00080 template<typename A, typename AI, typename Chooser>
00081 typename Element<A, AI>::series_set_elt_t
00082 aut_to_exp(const Element<A, AI>& a, const Chooser& c);
00083
00094 struct DefaultChooser
00095 {
00096 template <class Auto_>
00097 typename Auto_::hstate_t
00098 operator()(const Auto_& a) const;
00099 };
00100
00106 struct RandomChooser
00107 {
00111 template <class Auto_>
00112 typename Auto_::hstate_t
00113 operator()(const Auto_& a) const;
00114 };
00115
00116
00117 struct HChooser
00118 {
00119 template <class Auto_>
00120 typename Auto_::hstate_t
00121 operator()(const Auto_& a) const;
00122 };
00123
00130 struct DMChooser
00131 {
00135 template <class Auto_>
00136 typename Auto_::hstate_t
00137 operator()(const Auto_& a) const;
00138 };
00139
00148 class ListChooser
00149 {
00150 typedef std::list<unsigned int> list_t;
00151 public :
00152 ListChooser(const list_t& l);
00153
00154 template <class Auto_>
00155 typename Auto_::hstate_t operator() (const Auto_& a);
00156
00157 private :
00158 list_t list_;
00159 list_t::const_iterator pos_;
00160 };
00161
00162 }
00163
00164 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00165 # include <vaucanson/algorithms/aut_to_exp.hxx>
00166 # endif // VCSN_USE_INTERFACE_ONLY
00167
00168 #endif // ! VCSN_ALGORITHMS_AUT_TO_EXP_HH