18 #ifndef VCSN_ALGEBRA_CONCEPT_ALPHABETS_BASE_HH
19 # define VCSN_ALGEBRA_CONCEPT_ALPHABETS_BASE_HH
26 # include <vaucanson/design_pattern/design_pattern.hh>
28 # include <vaucanson/algebra/concept/letter.hh>
76 template<
typename S,
typename T>
106 struct dynamic_traits<algebra::AlphabetSetBase<S> >
107 : dynamic_traits<Structure<S> >
116 struct virtual_types<algebra::AlphabetSetBase<S> >
117 : virtual_types<Structure<S> >
130 template<
class S,
typename T>
142 typedef typename op_begin_traits<S, T>::ret_t
iterator;
148 void insert(
const std::string& lit);
160 size_t max_size()
const;
166 bool contains(
const letter_t& l)
const;
169 bool is_finite()
const;
194 template <
typename S,
typename L>
195 L
op_parse(
const AlphabetSetBase<S>& s,
200 template <
typename S,
typename St,
typename T>
201 St&
op_rout(
const AlphabetSetBase<S>& s, St& st,
const T& a);
204 template <
typename S,
typename T,
typename L>
212 template <
typename S,
typename T>
213 std::pair<bool, typename Element<S, T>::letter_t>
215 const std::string& s);
222 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
223 # include <vaucanson/algebra/concept/alphabets_base.hxx>
224 # endif // VCSN_USE_INTERFACE_ONLY
226 #endif // ! VCSN_ALGEBRA_CONCEPT_ALPHABETS_BASE_HH