16 using exp_t = std::shared_ptr<const exp>;
19 template <
typename ExpSet>
22 template <
typename ExpSet>
27 template <
typename ExpSet>
30 template <
typename ExpSet>
87 #define DEFINE(Node) \
88 template <typename Context> \
104 template <type_t Type,
typename Context>
107 template <
typename Context>
110 template <
typename Context>
117 template <type_t Type,
typename Context>
120 template <
typename Context>
123 template <
typename Context>
126 template <
typename Context>
133 template <type_t Type,
typename Context>
136 template <
typename Context>
139 template <
typename Context>
142 template <
typename Context>
145 template <
typename Context>
148 template <
typename Context>
151 template <
typename Context>
161 template <
typename Context,
162 bool Enable = Context::is_lat>
170 template <type_t Type,
typename Context>
173 template <
typename Context>
176 template <
typename Context>
181 template <
typename Context>
186 template <
typename ExpSet>
190 template <
typename Context>
194 template <
typename ExpSet>
195 size_t size(
const ExpSet&
rs,
const typename ExpSet::value_t&
r);
199 template <
typename Context>
202 template <
typename ExpSet>
printer< ExpSet > make_printer(const ExpSet &rs, std::ostream &out)
Provide a variadic mul on top of a binary mul(), and one().
info< ExpSet > make_info(const typename ExpSet::value_t &r)
An inner node implementing a weight.
Gather information of the number of the different node types.
std::ostream & operator<<(std::ostream &o, type_t t)
constexpr bool is_unary(type_t t)
Whether star, complement.
std::shared_ptr< const exp > exp_t
Pretty-printer for rational expressions.
Implementation of nodes of tuple of rational expressions.
type_t
The possible types of expressions.
An inner node with multiple children.
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
std::shared_ptr< const node< Context >> expression
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)
constexpr bool is_constant(type_t t)
Whether is a constant (\z or \e).
constexpr bool is_variadic(type_t t)
Whether one of the variadic types.