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