diff options
Diffstat (limited to 'xsde/cxx/parser/parser-header.cxx')
-rw-r--r-- | xsde/cxx/parser/parser-header.cxx | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/xsde/cxx/parser/parser-header.cxx b/xsde/cxx/parser/parser-header.cxx index 6e7dfe2..bec77fe 100644 --- a/xsde/cxx/parser/parser-header.cxx +++ b/xsde/cxx/parser/parser-header.cxx @@ -824,17 +824,44 @@ namespace CXX os << "// Parser construction API." << endl << "//" << endl; + // parsers () + // os << "void" << endl << "parsers ("; { - ParserParamDecl decl (*this, false); + ParserParamDecl decl (*this, false, false); decl.traverse (c); } os << ");" << endl; + // parser_maps () + // + if (poly_code && he) + { + Boolean r (false); + ParserParamTest test (*this, r, true); + test.traverse (c); + + // Have potentially polymorphic elements. + // + if (r) + { + os << "void" << endl + << "parser_maps ("; + + { + ParserParamDecl decl (*this, false, true); + decl.traverse (c); + } + + os << ");" + << endl; + } + } + if (ha) { os << "// Individual attribute parsers." << endl |