14       std::ostringstream 
os;
    21 #define DEFINE(Type)                            \    22     void signature_printer::visit(const Type& t)    26       os_ << t.get_type() << 
'<';
    28       for (
auto c: t.get_content())
    41       t.get_labelset()->accept(*this);    43       t.get_weightset()->accept(*this);    50       auto v = t.get_sets();    51       for (unsigned int i = 0; i < v.size() - 1; ++i)    56       v[v.size() - 1]->accept(*this);    63       auto v = t.get_sets();    64       for (unsigned int i = 0; i < v.size() - 1; ++i)    69       v[v.size() - 1]->accept(*this);    75       os_ << "nullableset<";    76       t.get_labelset()->accept(*this);    88       os_ << t.letter_type();    90         os_ << t.generators();    96       t.genset()->accept(*this);   102       os_ << "expansionset<";   103       t.get_expressionset()->accept(*this);   107     DEFINE(expressionset)   109       os_ << "expressionset<";   110       t.get_context()->accept(*this);   113         os_ << '(
' << t.get_identities() << ')
';   124       t.genset()->accept(*this);   133     DEFINE(polynomialset)   135       os_ << "polynomialset<";   136       t.get_content()->accept(*this); 
std::ostringstream os
The output stream: the corresponding C++ snippet to compile. 
 
std::string normalize_context(const std::string &ctx, bool full)
A context, normalized. 
 
std::shared_ptr< ast_node > parse_context(const std::string &ctx)
Parse a context, and return its AST.