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>
info< ExpSet > make_info(const typename ExpSet::value_t &r)
type_t
The possible types of expressions.
constexpr bool is_variadic(type_t t)
Whether one of the variadic types.
Provide a variadic mul on top of a binary mul(), and one().
An inner node with multiple children.
std::shared_ptr< const exp > exp_t
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
std::ostream & operator<<(std::ostream &o, type_t t)
constexpr bool is_constant(type_t t)
Whether is a constant (\z or \e).
Gather information of the number of the different node types.
printer< ExpSet > make_printer(const ExpSet &rs, std::ostream &out)
std::shared_ptr< const node< Context >> expression
An inner node implementing a weight.
constexpr bool is_unary(type_t t)
Whether star, complement.
Implementation of nodes of tuple of rational expressions.
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)