10 #include <vcsn/dyn/fwd.hh>
19 virtual void accept(context_visitor &v) const \
31 virtual bool has_one()
const {
return false; }
37 context(std::shared_ptr<ast_node> ls, std::shared_ptr<ast_node> ws)
61 using value_t = std::vector<std::shared_ptr<ast_node>>;
75 for (
auto s : get_sets())
88 using value_t = std::vector<std::shared_ptr<ast_node>>;
102 for (
auto s : get_sets())
129 std::shared_ptr<ast_node>
ls_;
148 genset(
const std::string& letter_type,
const std::string& gens)
149 : letter_type_(letter_type)
156 const
std::
string& letter_type()
const
181 std::shared_ptr<const ast_node>
genset()
const
187 virtual
bool has_one()
const {
return false; }
190 const std::shared_ptr<const ast_node>
gs_;
197 wordset(
const std::shared_ptr<const ast_node>& gs)
202 std::shared_ptr<const ast_node>
genset()
const
211 const std::shared_ptr<const ast_node>
gs_;
257 std::shared_ptr<expressionset>
rs_;
297 using node_t = std::shared_ptr<ast_node>;
306 , children_(children)
346 std::shared_ptr<ast_node> child_;
expressionset(std::shared_ptr< context > ctx, rat::identities ids)
const std::string & get_type() const
const std::shared_ptr< context > get_context() const
tuple(const value_t &sets)
std::vector< std::shared_ptr< ast_node >> value_t
std::vector< std::shared_ptr< ast_node >> value_t
std::shared_ptr< ast_node > ls_
const std::string generators_
rat::identities identities_
tupleset(const value_t &sets)
polynomialset(std::shared_ptr< ast_node > child)
const value_t get_sets() const
const nodes_t & get_content() const
std::shared_ptr< const ast_node > genset() const
The generator set.
std::shared_ptr< const ast_node > genset() const
The generator set.
const std::shared_ptr< const ast_node > gs_
const std::string & generators() const
The generators.
const std::shared_ptr< ast_node > get_labelset() const
automaton(const std::string &type, const nodes_t &children)
std::shared_ptr< ast_node > node_t
const std::string letter_type_
rat::identities get_identities() const
const value_t get_sets() const
expansionset(std::shared_ptr< expressionset > rs)
other(const std::string &type)
std::shared_ptr< ast_node > ls_
virtual void accept(context_visitor &v) const =0
virtual ~ast_node()=default
An expressionset can implement several different sets of identities on expressions.
Represents the "alphabets", or "generator set".
const std::string & get_type() const
automaton(const std::string &type, const node_t &child)
wordset(const std::shared_ptr< const ast_node > &gs)
const std::shared_ptr< ast_node > & get_content() const
std::shared_ptr< expressionset > rs_
std::shared_ptr< ast_node > ws_
const std::shared_ptr< ast_node > get_labelset() const
const std::shared_ptr< expressionset > get_expressionset() const
weightset(const std::string &type)
const std::shared_ptr< ast_node > get_weightset() const
static identities ids(const driver &d)
Get the identities of the driver.
letterset(const std::shared_ptr< const ast_node > &gs)
context(std::shared_ptr< ast_node > ls, std::shared_ptr< ast_node > ws)
genset(const std::string &letter_type, const std::string &gens)
virtual bool has_one() const
nullableset(std::shared_ptr< ast_node > ls)
const std::string & get_type() const
std::shared_ptr< context > ctx_
const std::shared_ptr< const ast_node > gs_
std::vector< node_t > nodes_t