00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef VCSN_Z_TRANSDUCER_STRUCTURES_HH
00019 # define VCSN_Z_TRANSDUCER_STRUCTURES_HH
00020 
00021 # include <vaucanson/z_automaton_structures.hh>
00022 # include <vaucanson/boolean_automaton_structures.hh>
00023 
00024 # define AUTOMATON_CONTEXT z_automaton
00025 # define VCSN_CONTEXT_NAMESPACE namespace z_transducer
00026 
00027 # include <vaucanson/contexts/char_letter.thh>
00028 # include <vaucanson/contexts/dynamic_alphabet.thh>
00029 # include <vaucanson/contexts/free_monoid.thh>
00030 
00031 namespace vcsn
00032 {
00033   VCSN_CONTEXT_NAMESPACE
00034   {
00035     typedef AUTOMATON_CONTEXT::semiring_elt_t   output_semiring_elt_t;
00036     typedef output_semiring_elt_t::set_t        output_semiring_t;
00037     typedef output_semiring_elt_t::value_t      output_semiring_elt_value_t;
00038 
00039     typedef AUTOMATON_CONTEXT::rat_exp_t        output_series_set_elt_t;
00040     typedef output_series_set_elt_t::set_t      output_series_set_t;
00041     typedef output_series_set_elt_t::value_t    output_series_set_elt_value_t;
00042   } 
00043 } 
00044 
00045 # include <vaucanson/contexts/ratseries_semiring.thh>
00046 # include <vaucanson/contexts/polynom_series.thh>
00047 # include <vaucanson/contexts/generic_automaton_impl.thh>
00048 # include <vaucanson/contexts/transducer.thh>
00049 
00050 namespace vcsn
00051 {
00052   VCSN_CONTEXT_NAMESPACE
00053   {
00054     AUTOMATON_TYPES_EXACT(automaton_t);
00055     AUTOMATON_FREEMONOID_TYPES_EXACT(automaton_t);
00056   } 
00057 } 
00058 
00059 # include <vaucanson/contexts/transducer_maker.thh>
00060 
00061 # undef AUTOMATON_CONTEXT
00062 # undef VCSN_CONTEXT_NAMESPACE
00063 
00064 #endif // !VCSN_Z_TRANSDUCER_STRUCTURES_HH