1 #ifndef VCSN_DYN_TYPE_AST_HH
2 # define VCSN_DYN_TYPE_AST_HH
20 virtual void accept(context_visitor &v) const \
34 virtual bool has_one()
const {
return false; }
40 context(std::shared_ptr<ast_node> ls, std::shared_ptr<ast_node> ws)
64 using value_t = std::vector<std::shared_ptr<ast_node>>;
78 for (
auto s : get_sets())
105 std::shared_ptr<ast_node>
ls_;
124 genset(
const std::string& letter_type,
const std::string& gens)
125 : letter_type_(letter_type)
132 const std::
string& letter_type()
const
157 std::shared_ptr<const ast_node>
genset()
const
163 virtual
bool has_one()
const {
return false; }
166 const std::shared_ptr<const ast_node>
gs_;
173 wordset(
const std::shared_ptr<const ast_node>& gs)
178 std::shared_ptr<const ast_node>
genset()
const
187 const std::shared_ptr<const ast_node>
gs_;
254 using node_t = std::shared_ptr<ast_node>;
263 , children_(children)
303 std::shared_ptr<ast_node> child_;
311 #endif // !VCSN_DYN_TYPE_AST_HH
std::shared_ptr< ast_node > ls_
context(std::shared_ptr< ast_node > ls, std::shared_ptr< ast_node > ws)
const std::shared_ptr< ast_node > get_labelset() const
tupleset(const value_t &sets)
std::shared_ptr< context > ctx_
polynomialset(std::shared_ptr< ast_node > child)
std::shared_ptr< ast_node > ws_
const std::shared_ptr< const ast_node > gs_
virtual ~ast_node()=default
nullableset(std::shared_ptr< ast_node > ls)
const std::string & generators() const
The generators.
rat::identities get_identities() const
const std::shared_ptr< const ast_node > gs_
std::shared_ptr< const ast_node > genset() const
The generator set.
const nodes_t & get_content() const
wordset(const std::shared_ptr< const ast_node > &gs)
const std::string & get_type() const
const std::shared_ptr< ast_node > & get_content() const
const std::shared_ptr< ast_node > get_weightset() const
letterset(const std::shared_ptr< const ast_node > &gs)
std::shared_ptr< ast_node > ls_
rat::identities identities_
other(const std::string &type)
virtual void accept(context_visitor &v) const =0
automaton(const std::string &type, const node_t &child)
std::shared_ptr< const ast_node > genset() const
The generator set.
const value_t get_sets() const
const std::string letter_type_
const std::shared_ptr< context > get_context() const
weightset(const std::string &type)
automaton(const std::string &type, const nodes_t &children)
std::vector< node_t > nodes_t
std::vector< std::shared_ptr< ast_node >> value_t
Represents the "alphabets", or "generator set".
const std::shared_ptr< ast_node > get_labelset() const
genset(const std::string &letter_type, const std::string &gens)
virtual bool has_one() const
const std::string & get_type() const
identities
A ratexpset can implement several different sets of identities on expressions.
const std::string generators_
std::shared_ptr< ast_node > node_t
ratexpset(std::shared_ptr< context > ctx, rat::identities ids)
const std::string & get_type() const