00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_ALPHABETS_PREDEFS_HH
00018 # define VCSN_ALGEBRA_IMPLEMENTATION_ALPHABETS_PREDEFS_HH
00019
00020 # include <vaucanson/algebra/implementation/letter/char_letter.hh>
00021 # include <vaucanson/algebra/implementation/letter/range.hh>
00022 # include <vaucanson/algebra/implementation/alphabets/alphabet_set.hh>
00023 # include <vaucanson/algebra/implementation/alphabets/decorated_alphabet.hh>
00024
00025 namespace vcsn {
00026
00027 namespace algebra {
00028
00029 namespace small_alpha_letter {
00030
00031 typedef static_ranged<char, static_char_interval<'a','z'> > Letter;
00032 typedef AlphabetSet<Letter> Alphabets;
00033 typedef Element<Alphabets, std::set<Letter> > Alphabet;
00034 typedef AlphabetDecorator<Letter, std::set<Letter> > DAlphabetImpl;
00035 typedef Element<Alphabets, DAlphabetImpl> DAlphabet;
00036
00037 }
00038
00039 namespace char_letter {
00040
00041 typedef char Letter;
00042 typedef AlphabetSet<Letter> Alphabets;
00043 typedef Element<Alphabets, std::set<Letter> > Alphabet;
00044 typedef AlphabetDecorator<Letter, std::set<Letter> > DAlphabetImpl;
00045 typedef Element<Alphabets, DAlphabetImpl> DAlphabet;
00046
00047 }
00048
00049 namespace char_pair {
00050
00051 typedef std::pair<char, char> Letter;
00052 typedef AlphabetSet<Letter> Alphabets;
00053 typedef Element<Alphabets, std::set<Letter> > Alphabet;
00054 typedef AlphabetDecorator<Letter, std::set<Letter> > DAlphabetImpl;
00055 typedef Element<Alphabets, DAlphabetImpl> DAlphabet;
00056
00057 }
00058
00059 namespace weighted_letter {
00060
00061 typedef std::pair<int, char> Letter;
00062 typedef AlphabetSet<Letter> Alphabets;
00063 typedef Element<Alphabets, std::set<Letter> > Alphabet;
00064 typedef AlphabetDecorator<Letter, std::set<Letter> > DAlphabetImpl;
00065 typedef Element<Alphabets, DAlphabetImpl> DAlphabet;
00066
00067 }
00068
00069 namespace int_letter {
00070
00071 typedef int Letter;
00072 typedef AlphabetSet<Letter> Alphabets;
00073 typedef Element<Alphabets, std::set<Letter> > Alphabet;
00074 typedef AlphabetDecorator<Letter, std::set<Letter> > DAlphabetImpl;
00075 typedef Element<Alphabets, DAlphabetImpl> DAlphabet;
00076
00077 }
00078
00079 }
00080
00081 }
00082
00083 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_ALPHABETS_PREDEFS_HH