00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_GENERALIZED_HH
00018 # define VCSN_AUTOMATA_IMPLEMENTATION_GENERALIZED_HH
00019
00020 # include <map>
00021 # include <vaucanson/automata/concept/automata.hh>
00022 # include <vaucanson/automata/concept/tags.hh>
00023 # include <vaucanson/automata/concept/copy.hh>
00024 # include <vaucanson/algebra/concept/series_base.hh>
00025 # include <vaucanson/algebra/implementation/series/generalized.hh>
00026 # include <vaucanson/algebra/implementation/series/rat/exp.hh>
00027 # include <vaucanson/algebra/implementation/series/krat.hh>
00028 # include <vaucanson/automata/implementation/graph.hh>
00029
00030
00031 namespace vcsn {
00032
00033
00034
00035
00036 template <class Auto_>
00037 struct generalized_traits
00038 {
00039
00040 typedef typename Auto_::series_set_t series_set_t;
00041 typedef typename series_set_t::monoid_t monoid_t;
00042 typedef typename Auto_::series_set_elt_t series_set_elt_t;
00043 typedef typename series_set_elt_t::monoid_elt_t monoid_elt_t;
00044 typedef typename monoid_elt_t::value_t monoid_elt_value_t;
00045 typedef typename series_set_elt_t::semiring_elt_t semiring_elt_t;
00046 typedef typename semiring_elt_t::value_t semiring_elt_value_t;
00047 typedef typename Auto_::value_t::geometry_t geometry_t;
00048
00049 typedef vcsn::Element
00050 <vcsn::Automata<series_set_t>,
00051 Graph<labels_are_series,
00052 monoid_elt_value_t,
00053 semiring_elt_value_t,
00054 rat::exp<monoid_elt_value_t, semiring_elt_value_t>,
00055 typename monoid_t::letter_t,
00056 NoTag,
00057 geometry_t>
00058 > automaton_t;
00059 };
00060
00061
00062 template <class Auto_>
00063 typename generalized_traits<Auto_>::automaton_t
00064 generalized(const Auto_& from);
00065
00066 }
00067
00068
00069 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00070 # include <vaucanson/automata/implementation/generalized.hxx>
00071 #endif // VCSN_USE_INTERFACE_ONLY
00072
00073
00074 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_GENERALIZED_HH