17 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_DEPTH_VISITOR_HH
18 # define VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_DEPTH_VISITOR_HH
22 # include <vaucanson/algebra/implementation/series/rat/nodes.hh>
28 template<
typename M_,
typename W_>
29 class DepthVisitor :
public ConstNodeVisitor<M_, W_>
33 sum_or_product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
35 weight_or_star(
const Node<M_, W_>* node);
39 product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
42 sum(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
45 star(
const Node<M_, W_>* node);
48 left_weight(
const W_&,
const Node<M_, W_>* node);
51 right_weight(
const W_&,
const Node<M_, W_>* node);
54 constant(
const M_& m);
70 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
71 # include <vaucanson/algebra/implementation/series/rat/depth_visitor.hxx>
72 # endif // VCSN_USE_INTERFACE_ONLY
74 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_DEPTH_VISITOR_HH