17 #ifndef DYN_CORE_ABSTRACT_RATEXP_HH
18 #define DYN_CORE_ABSTRACT_RATEXP_HH
27 namespace awali {
namespace dyn {
95 virtual std::vector<label_t>
alphabet()
const = 0;
101 virtual std::ostream&
print(std::ostream&)
const = 0;
119 virtual const std::vector<ratexp_t>&
children()
const =0;
135 virtual unsigned size()
const =0;
Abstract interface for rational expression at the dynamical layer; lists the services provided by aut...
Definition: abstract_ratexp.hh:91
virtual ratexp_t rmul(weight_t w) const =0
virtual ratexp_t add(ratexp_t) const =0
virtual unsigned star_height() const =0
Returns the maximal number of nested stars in this abstract_ratexp_t.
virtual unsigned arity() const =0
Returns the number of children this abstract_ratexp_t has.
virtual unsigned height() const =0
virtual context_t get_context() const =0
Gets the context of this abstract_ratexp_t.
virtual ExpKind get_kind() const =0
Gets the kind of this abstract_ratexp_t.
virtual weight_t lweight() const =0
Gets the left weight of this abstract_ratexp_t.
virtual unsigned length() const =0
virtual const std::vector< ratexp_t > & children() const =0
Returns the children of this abstract_ratexp_t.
virtual ratexp_t mult(ratexp_t) const =0
virtual label_t value() const =0
Gets the label of this abstract_ratexp_t (only for expression of kind ExpKind::ATOM).
virtual weight_t rweight() const =0
Gets the right weight of this abstract_ratexp_t.
virtual std::vector< label_t > alphabet() const =0
Gets the alphabet of this abstract_ratexp_t.
virtual ratexp_t lmul(weight_t w) const =0
virtual unsigned size() const =0
virtual ~abstract_ratexp_t()
Definition: abstract_ratexp.hh:144
virtual std::ostream & print(std::ostream &) const =0
virtual ratexp_t star() const =0
Dynamical wrapper for a context, that is a weightset and a labelset.
Definition: context.hh:43
Main class for representing rational expresson at the dynamical layer.
Definition: ratexp.hh:66
std::ostream & operator<<(std::ostream &o, automaton_t aut)
ExpKind
Definition: abstract_ratexp.hh:32
@ ZERO
Only the "empty" rational expression is of this kind (that is, with an empty language).
@ SUM
Rational expression which is a sum (or union) of rational expressions.
@ ATOM
Rational expressions of this kind are simply a label.
@ STAR
Rational expressions of this kind are the star of another rational expression.
@ ONE
Only the "epsilon" rational expression is of this kind (that is, with a language reduced to the empty...
@ PROD
Rational expression which is a product (or concatenation) of rational expressions.
Main namespace of Awali.
Definition: ato.hh:22
Structure used to erase the type of labels/weights at the dyn layer.
Definition: any.hh:59