12 template <
typename Context>
21 template <type_t Type>
24 template <type_t Type>
27 template <type_t Type>
30 template <type_t Type>
46 #define DEFINE(Type) \
47 using Type ## _t = Type<context_t>; \
48 virtual void visit(const Type ## _t& v)
71 #define VCSN_RAT_VISIT(Type, Val) \
72 using Type ## _t = typename super_t::Type ## _t; \
73 void visit(const Type ## _t& Val) override
75 #define VCSN_RAT_UNSUPPORTED(Type) \
76 VCSN_RAT_VISIT(Type, e) \
78 raise(me(), ": operator " #Type " not supported: ", \
79 to_string(rs_, e.shared_from_this())); \
The abstract parameterized, root for all rational expression types.
#define BUILTIN_UNREACHABLE()
An inner node implementing a weight.
void visit(const tuple< context_t > &, std::false_type)
void visit(const tuple< context_t > &v)
The root from which to derive the final node types.
Implementation of nodes of tuple of rational expressions.
An inner node with multiple children.
std::integral_constant< bool, B > bool_constant