00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_EPS_REMOVAL_HH
00018 # define VCSN_ALGORITHMS_EPS_REMOVAL_HH
00019
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 # include <vaucanson/design_pattern/design_pattern.hh>
00046 # include <vaucanson/misc/direction.hh>
00047
00048 namespace vcsn {
00049
00067 template<typename A, typename AI>
00068 void
00069 eps_removal_here(Element<A, AI>& a, misc::direction_type dir = misc::backward);
00070
00071
00087 template<typename A, typename AI>
00088 Element<A, AI>
00089 eps_removal(const Element<A, AI>& a, misc::direction_type dir = misc::backward);
00090
00091
00106 template<typename A, typename AI>
00107 void
00108 backward_eps_removal_here(Element<A, AI>& a);
00109
00110
00125 template<typename A, typename AI>
00126 Element<A, AI>
00127 backward_eps_removal(const Element<A, AI>& a);
00128
00129
00144 template<typename A, typename AI>
00145 void
00146 forward_eps_removal_here(Element<A, AI>& a);
00147
00148
00163 template<typename A, typename AI>
00164 Element<A, AI>
00165 forward_eps_removal(const Element<A, AI>& a);
00166
00168
00169 }
00170
00171
00172 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00173 # include <vaucanson/algorithms/eps_removal.hxx>
00174 # endif // VCSN_USE_INTERFACE_ONLY
00175
00176 #endif // ! VCSN_ALGORITHMS_EPS_REMOVAL_HH