1 #ifndef VCSN_CORE_RAT_SIZE_HH
2 # define VCSN_CORE_RAT_SIZE_HH
12 template <
typename RatExpSet>
14 :
public RatExpSet::const_visitor
19 using weight_t =
typename context_t::weightset_t::value_t;
20 using super_t =
typename ratexpset_t::const_visitor;
21 using node_t =
typename super_t::node_t;
22 using inner_t =
typename super_t::inner_t;
23 template <type_t Type>
25 template <type_t Type>
27 using leaf_t =
typename super_t::leaf_t;
47 # define DEFINE(Type) \
48 using Type ## _t = typename super_t::Type ## _t; \
49 virtual void visit(const Type ## _t& v)
68 template <rat::exp::type_t Type>
72 template <rat::exp::type_t Type>
82 #endif // !VCSN_CORE_RAT_SIZE_HH
An inner node with multiple children.
typename super_t::template variadic_t< Type > variadic_t
void visit_unary(const unary_t< Type > &n)
Traverse unary node.
typename context_t::weightset_t::value_t weight_t
void visit_variadic(const variadic_t< Type > &n)
Traverse variadic node.
typename super_t::inner_t inner_t
typename super_t::template unary_t< Type > unary_t
typename detail::context_t_of_impl< base_t< ValueSet >>::type context_t_of
typename super_t::node_t node_t
size_t operator()(const std::shared_ptr< const node_t > &v)
Entry point: return the size of v.
typename ratexpset_t::const_visitor super_t
typename super_t::leaf_t leaf_t
An inner node implementing a weight.
size_t operator()(const node_t &v)
Entry point: return the size of v.
context_t_of< ratexpset_t > context_t