00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_SEARCH_HH
00018 # define VCSN_ALGORITHMS_SEARCH_HH
00019
00032 # include <vaucanson/automata/concept/automata.hh>
00033
00034 namespace vcsn {
00035
00063 template <class InputIterator, class FoundFunctor, class Series, class T>
00064 void
00065 search(const Element<Automata<Series>, T>& a,
00066 const InputIterator& begin,
00067 const InputIterator& end,
00068 typename Element<Automata<Series>, T>::letter_t eol,
00069 FoundFunctor& f);
00070
00082 struct FindBestSearch
00083 {
00084 template <class InputIterator, class FoundFunctor, class Series, class T>
00085 static
00086 void
00087 search(const Element<Automata<Series>, T>& a,
00088 const InputIterator& begin,
00089 const InputIterator& end,
00090 typename Element<Automata<Series>, T>::letter_t eol,
00091 FoundFunctor& f);
00092 };
00093
00108 struct WindowedBackSearch
00109 {
00110 template <class InputIterator, class FoundFunctor, class Series, class T>
00111 static
00112 void
00113 search(const Element<Automata<Series>, T>& a,
00114 const InputIterator& begin,
00115 const InputIterator& end,
00116 typename Element<Automata<Series>, T>::letter_t eol,
00117 FoundFunctor& f);
00118 };
00119
00122 }
00123
00124 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00125 # include <vaucanson/algorithms/search.hxx>
00126 # endif // VCSN_USE_INTERFACE_ONLY
00127
00128 #endif // ! VCSN_ALGORITHMS_SEARCH_HH