From 0eea021dc32761a1dd854fd6dfa27427b12080fb Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Mon, 22 Aug 2022 14:25:08 -0700 Subject: [PATCH] include global parameters and fixup for HTML meta-characters --- doc/mk_params_doc.py | 2 +- src/util/gparams.cpp | 10 ++++++++-- src/util/params.cpp | 14 ++++++++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/doc/mk_params_doc.py b/doc/mk_params_doc.py index cc4354f844e..de527641649 100644 --- a/doc/mk_params_doc.py +++ b/doc/mk_params_doc.py @@ -35,7 +35,7 @@ def help(ous): ous.write("Z3 Options\n") z3_exe = BUILD_DIR + "/z3" out = subprocess.Popen([z3_exe, "-pm"],stdout=subprocess.PIPE).communicate()[0] - modules = [] + modules = ["global"] if out != None: out = out.decode(sys.stdout.encoding) module_re = re.compile(r"\[module\] (.*)\,") diff --git a/src/util/gparams.cpp b/src/util/gparams.cpp index 22babb9cc9d..839d02ab05a 100644 --- a/src/util/gparams.cpp +++ b/src/util/gparams.cpp @@ -536,15 +536,21 @@ struct gparams::imp { void display_module_markdown(std::ostream & out, char const* module_name) { lock_guard lock(*gparams_mux); param_descrs * d = nullptr; + + if (module_name == std::string("global")) { + out << "\n## Global Parameters\n\n"; + get_param_descrs().display_markdown(out); + return; + } if (!get_module_param_descr(module_name, d)) { std::stringstream strm; strm << "unknown module '" << module_name << "'"; throw exception(std::move(strm).str()); } - out << "\n## Module " << module_name << "\n\n"; + out << "\n## " << module_name << "\n\n"; char const * descr = nullptr; if (get_module_descrs().find(module_name, descr)) - out << "Description: " << descr << "\n"; + out << descr << "\n"; out << "\n"; d->display_markdown(out); } diff --git a/src/util/params.cpp b/src/util/params.cpp index e15d40fe2d2..ee61bf47f46 100644 --- a/src/util/params.cpp +++ b/src/util/params.cpp @@ -194,9 +194,19 @@ struct param_descrs::imp { out << " | " << d.m_kind << " "; else out << " (" << d.m_kind << ")"; - if (markdown) + if (markdown) { out << " | "; - if (include_descr) + std::string desc; + for (auto ch : std::string(d.m_descr)) { + switch (ch) { + case '<': desc += "<"; break; + case '>': desc += ">"; break; + default: desc.push_back(ch); + } + } + out << " " << desc; + } + else if (include_descr) out << " " << d.m_descr; if (markdown) { out << " | ";