17 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_HASH_VISITOR_HH
18 # define VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_HASH_VISITOR_HH
24 # include <vaucanson/algebra/implementation/series/rat/exp.hh>
32 template <
class Word,
class Weight>
33 class HashVisitor :
public ConstNodeVisitor<Word, Weight>
37 typedef Word monoid_elt_value_t;
38 typedef Weight semiring_elt_value_t;
39 typedef Node<Word, Weight> node_t;
44 virtual ~HashVisitor();
46 virtual void product(
const node_t* lhs,
const node_t* rhs);
47 virtual void sum(
const node_t* lhs,
const node_t* rhs);
48 virtual void star(
const node_t* node);
49 virtual void left_weight(
const semiring_elt_value_t& w,
const node_t* node);
50 virtual void right_weight(
const semiring_elt_value_t& w,
const node_t* node);
51 virtual void constant(
const monoid_elt_value_t& m);
55 std::size_t hash_value();
64 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
65 # include <vaucanson/algebra/implementation/series/rat/hash_visitor.hxx>
66 # endif // VCSN_USE_INTERFACE_ONLY
68 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_SERIES_RAT_DUMP_VISITOR_HH