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::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.
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.