18 #ifndef VCSN_AUTOMATA_CONCEPT_TRANSDUCER_BASE_HH
19 # define VCSN_AUTOMATA_CONCEPT_TRANSDUCER_BASE_HH
22 # include <vaucanson/design_pattern/design_pattern.hh>
24 # include <vaucanson/automata/concept/automata_base.hh>
25 # include <vaucanson/misc/usual_macros.hh>
41 template <
typename Self>
48 typedef typename virtual_types<Self>::kind_t
kind_t;
62 typedef undefined_type input_monoid_elt_value_t;
63 typedef undefined_type output_monoid_elt_value_t;
67 struct extension_traits
69 typedef undefined_type ret;
73 struct input_projection_traits
75 typedef undefined_type ret;
79 struct fmp_input_projection_traits
81 typedef undefined_type ret;
88 struct output_projection_traits
90 typedef undefined_type ret;
94 struct fmp_output_projection_traits
96 typedef undefined_type ret;
103 struct virtual_types<TransducerBase<S> >
104 : virtual_types<AutomataBase<S> >
111 struct dynamic_traits<TransducerBase<S> >
112 : dynamic_traits<AutomataBase<S> >
125 template <
typename Self,
typename T>
201 typedef typename algebra::series_traits<semiring_elt_value_t>::monoid_elt_value_t
202 output_monoid_elt_value_t;
211 typedef typename output_monoid_t::letter_t output_letter_t;
223 typedef typename input_monoid_t::letter_t input_letter_t;
226 typedef typename algebra::series_traits<semiring_elt_value_t>::semiring_elt_value_t
244 template <
typename U,
typename V>
245 typename automaton_traits<T>::htransition_t
246 add_io_transition(
typename automaton_traits<T>::hstate_t,
typename automaton_traits<T>::hstate_t,
252 template <
typename U>
253 typename automaton_traits<T>::htransition_t
254 add_o_transition(
typename automaton_traits<T>::hstate_t,
typename automaton_traits<T>::hstate_t,
259 template <
typename U>
260 typename automaton_traits<T>::htransition_t
261 add_i_transition(
typename automaton_traits<T>::hstate_t,
typename automaton_traits<T>::hstate_t,
266 template <
typename U>
267 void set_o_final(
typename automaton_traits<T>::hstate_t,
const U&);
271 template <
typename U>
272 void set_o_initial(
typename automaton_traits<T>::hstate_t,
const U&);
286 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
287 # include <vaucanson/automata/concept/transducer_base.hxx>
288 # endif // VCSN_USE_INTERFACE_ONLY
291 #endif // ! VCSN_AUTOMATA_CONCEPT_TRANSDUCER_BASE_HH