From 511d78c0365694c6e1d4c746c812abd61a2d6df3 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 12 Sep 2020 13:57:35 +0300 Subject: Fix generated set and map parsers so that comparison predicate can also be specified --- cli/cli/runtime-source.cxx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cli/cli/runtime-source.cxx b/cli/cli/runtime-source.cxx index 088ea33..e3d904a 100644 --- a/cli/cli/runtime-source.cxx +++ b/cli/cli/runtime-source.cxx @@ -946,14 +946,14 @@ generate_runtime_source (context& ctx, bool complete) os << "};"; - // parser> + // parser> // - os << "template " << endl - << "struct parser >" + os << "template " << endl + << "struct parser >" << "{"; os << "static void" << endl - << "parse (std::set& c, " << (sp ? "bool& xs, " : "") << "scanner& s)" + << "parse (std::set& c, " << (sp ? "bool& xs, " : "") << "scanner& s)" << "{" << "X x;"; if (sp) @@ -966,21 +966,21 @@ generate_runtime_source (context& ctx, bool complete) if (gen_merge) os << "static void" << endl - << "merge (std::set& b, const std::set& a)" + << "merge (std::set& b, const std::set& a)" << "{" << "b.insert (a.begin (), a.end ());" << "}"; os << "};"; - // parser> + // parser> // - os << "template " << endl - << "struct parser >" + os << "template " << endl + << "struct parser >" << "{"; os << "static void" << endl - << "parse (std::map& m, " << (sp ? "bool& xs, " : "") << "scanner& s)" + << "parse (std::map& m, " << (sp ? "bool& xs, " : "") << "scanner& s)" << "{" << "const char* o (s.next ());" << endl @@ -1025,11 +1025,11 @@ generate_runtime_source (context& ctx, bool complete) if (gen_merge) os << "static void" << endl - << "merge (std::map& b, const std::map& a)" + << "merge (std::map& b, const std::map& a)" << "{" - << "for (typename std::map::const_iterator i (a.begin ()); " << endl - << "i != a.end (); " << endl - << "++i)" << endl + << "for (typename std::map::const_iterator i (a.begin ()); " << endl + << "i != a.end (); " << endl + << "++i)" << endl << "b[i->first] = i->second;" << "}"; -- cgit v1.1