20 using exp_t = std::shared_ptr<const exp>;
23 template <
typename ExpSet>
26 template <
typename ExpSet>
31 template <
typename ExpSet>
34 template <
typename ExpSet>
93 #define DEFINE(Node) \ 94 template <typename Context> \ 110 template <type_t Type,
typename Context>
113 template <
typename Context>
116 template <
typename Context>
123 template <type_t Type,
typename Context>
126 template <
typename Context>
129 template <
typename Context>
132 template <
typename Context>
139 template <type_t Type,
typename Context>
142 template <
typename Context>
145 template <
typename Context>
148 template <
typename Context>
151 template <
typename Context>
154 template <
typename Context>
157 template <
typename Context>
160 template <
typename Context>
170 template <
typename Context,
171 bool Enable = Context::is_lat>
179 template <type_t Type,
typename Context>
182 template <
typename Context>
185 template <
typename Context>
190 template <
typename Context>
195 template <
typename ExpSet>
199 template <
typename Context>
203 template <
typename ExpSet>
204 size_t size(
const ExpSet& rs,
const typename ExpSet::value_t&
r);
208 template <
typename Context>
211 template <
typename ExpSet>
constexpr bool is_unary(type_t t)
Whether star, complement.
::vcsn::rat::identities identities
Sets of identities on expressions.
Pretty-printer for rational expressions.
Implementation of nodes of tuple of rational expressions.
printer< ExpSet > make_printer(const ExpSet &rs, std::ostream &out)
constexpr bool is_variadic(type_t t)
Whether one of the variadic types.
std::shared_ptr< const exp > exp_t
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
info< ExpSet > make_info(const typename ExpSet::value_t &r)
std::ostream & operator<<(std::ostream &o, type_t t)
Print a expression type.
constexpr bool is_constant(type_t t)
Whether is a constant (\\z or \\e).
std::shared_ptr< const node< Context > > expression
Provide a variadic mul on top of a binary mul(), and one().
Gather information of the number of the different node types.
An inner node with multiple children.
An inner node implementing a weight.
type_t
The possible types of expressions.
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)