17 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_LENGTH_VISITOR_HH
18 # define VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_LENGTH_VISITOR_HH
23 # include <vaucanson/algebra/implementation/series/rat/nodes.hh>
29 template<
typename M_,
typename W_>
30 class LengthVisitor :
public ConstNodeVisitor<M_, W_>
34 sum_or_product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
36 weight_or_star(
const Node<M_, W_>* node);
44 product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
47 sum(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
50 star(
const Node<M_, W_>* node);
53 left_weight(
const W_&,
const Node<M_, W_>* node);
56 right_weight(
const W_&,
const Node<M_, W_>* node);
59 constant(
const M_& m);
81 #include <vaucanson/algebra/implementation/series/rat/length_visitor.hxx>
83 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_LENGTH_VISITOR_HH