00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_FREE_MONOID_PREDEFS_HH
00018 # define VCSN_ALGEBRA_IMPLEMENTATION_FREE_MONOID_PREDEFS_HH
00019 
00020 # include <vaucanson/algebra/implementation/alphabets/predefs.hh>
00021 # include <vaucanson/algebra/implementation/free_monoid/str_words.hh>
00022 # include <vaucanson/misc/char_traits.hh>
00023 
00024 namespace vcsn {
00025 
00026   namespace algebra {
00027 
00028     namespace small_alpha_letter {
00029 
00030       typedef
00031       FreeMonoid<Alphabet>                                      Words;
00032 
00033       typedef std::basic_string<Letter,
00034                                 misc::char_traits<Letter> >     WordValue;
00035 
00036       typedef
00037       Element<Words, WordValue>                                 Word;
00038 
00039     } 
00040 
00041     namespace char_letter {
00042 
00043       typedef
00044       FreeMonoid<Alphabet>                                      Words;
00045 
00046       typedef std::basic_string<Letter>                         WordValue;
00047 
00048       typedef
00049       Element<Words, WordValue>                                 Word;
00050 
00051     } 
00052 
00053     namespace char_pair {
00054 
00055       typedef
00056       FreeMonoid<Alphabet>                                      Words;
00057 
00058       typedef std::basic_string<Letter>                         WordValue;
00059 
00060       typedef
00061       Element<Words, WordValue>                                 Word;
00062 
00063     } 
00064 
00065     namespace weighted_letter {
00066 
00067       typedef
00068       FreeMonoid<Alphabet>                                      Words;
00069 
00070       typedef std::basic_string<Letter>                         WordValue;
00071 
00072       typedef
00073       Element<Words, WordValue>                                 Word;
00074 
00075     } 
00076 
00077     namespace int_letter {
00078 
00079       typedef
00080       FreeMonoid<Alphabet>                                      Words;
00081 
00082       typedef std::list<Letter>                                 WordValue;
00083 
00084       typedef
00085       Element<Words, WordValue>                                 Word;
00086 
00087     } 
00088 
00089   } 
00090 
00091 } 
00092 
00093 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_FREE_MONOID_PREDEFS_HH