17 #ifndef AWALI_CORE_RAT_FWD_HH
18 # define AWALI_CORE_RAT_FWD_HH
25 namespace awali {
namespace sttc
32 using exp_t = std::shared_ptr<const exp>;
35 template <
typename Context>
39 template <
typename Context>
96 # define DEFINE(Node) \
97 template <typename Label, typename Weight> \
113 template <type_t Type,
typename Label,
typename Weight>
116 template <
typename Label,
typename Weight>
119 template <
typename Label,
typename Weight>
126 template <type_t Type,
typename Label,
typename Weight>
129 template <
typename Label,
typename Weight>
132 template <
typename Label,
typename Weight>
135 template <
typename Label,
typename Weight>
138 template <
typename Label,
typename Weight>
141 template <
typename Label,
typename Weight>
148 template <type_t Type,
typename Label,
typename Weight>
151 template <
typename Label,
typename Weight>
154 template <
typename Label,
typename Weight>
157 template <
typename Label,
typename Weight>
160 template <
typename Label,
typename Weight>
163 template <
typename Label,
typename Weight>
170 template <type_t Type,
typename Label,
typename Weight>
173 template <
typename Label,
typename Weight>
176 template <
typename Label,
typename Weight>
181 template <
typename Label,
typename Weight>
182 using ratexp = std::shared_ptr<const node<Label, Weight>>;
186 template <
typename Context>
191 template <
typename Context>
Definition: ratexp.hh:262
Definition: printer.hh:36
A typed ratexp set.
Definition: ratexpset.hh:46
Definition: ratexp.hh:176
An inner node with multiple children.
Definition: ratexp.hh:115
An inner node implementing a weight.
Definition: ratexp.hh:208
#define DEFINE(Node)
Definition: fwd.hh:96
constexpr bool is_unary(type_t t)
Whether star, complement.
Definition: fwd.hh:74
constexpr bool is_constant(type_t t)
Whether is a constant (\z or \e).
Definition: fwd.hh:67
type_t
The possible types of ratexps.
Definition: fwd.hh:48
constexpr bool is_variadic(type_t t)
Whether one of the variadic types.
Definition: fwd.hh:84
std::shared_ptr< const node< Label, Weight > > ratexp
Definition: fwd.hh:182
std::ostream & operator<<(std::ostream &o, type_t t)
Definition: printer.hxx:31
std::shared_ptr< const exp > exp_t
Definition: fwd.hh:32
Main namespace of Awali.
Definition: ato.hh:22
Provide a variadic mul on top of a binary mul(), and one().
Definition: weightset.hh:38