00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_THOMPSON_HH
00018 # define VCSN_ALGORITHMS_THOMPSON_HH
00019
00033
00034
00035
00036 # include <vaucanson/algebra/implementation/series/rat/exp.hh>
00037 # include <vaucanson/automata/concept/automata.hh>
00038
00039 namespace vcsn {
00040
00052 template<typename A, typename T,
00053 typename Letter, typename Weight>
00054 void
00055 thompson_of(Element<A, T>& out, const rat::exp<Letter, Weight>& kexp);
00056
00066 template <class AutoType, class S, class T>
00067 Element<Automata<S>, AutoType>
00068 thompson_of(const Element<S, T>& exp);
00069
00072 }
00073
00074 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00075 # include <vaucanson/algorithms/thompson.hxx>
00076 # endif // VCSN_USE_INTERFACE_ONLY
00077
00078 #endif // ! VCSN_ALGORITHMS_THOMPSON_HH