Pretty-print a vl-warninglist with a header saying how many warnings there are.
(vl-print-warnings-with-header x &key (ps 'ps)) → ps
This is almost identical to vl-print-warnings, but it also prefaces the list of warnings with a header that says how many warnings there are. Also, whereas vl-print-warnings is essentially invisible if there are no warnings, in such cases this function at least prints "No warnings".
Function:
(defun vl-print-warnings-with-header-fn (x ps) (declare (xargs :stobjs (ps))) (declare (xargs :guard (vl-warninglist-p x))) (let ((__function__ 'vl-print-warnings-with-header)) (declare (ignorable __function__)) (b* ((htmlp (vl-ps->htmlp)) (x (vl-clean-warnings x)) (msg (cond ((atom x) "No Warnings") ((atom (cdr x)) "One Warning") (t (cat (natstr (len x)) " Warnings"))))) (if (not htmlp) (vl-ps-seq (vl-println msg) (vl-print-warnings-aux x)) (vl-ps-seq (vl-println-markup "<div class=\"vl_module_warnings\">") (if (atom x) (vl-print-markup "<h3 class=\"vl_module_no_warnings\">") (vl-print-markup "<h3 class=\"vl_module_yes_warnings\">")) (vl-print msg) (vl-println-markup "</h3>") (if (atom x) ps (vl-ps-seq (vl-println-markup "<ul class=\"vl_warning_list\">") (vl-print-warnings-aux x) (vl-println-markup "</ul>"))) (vl-println-markup "</div>"))))))
Theorem:
(defthm vl-print-warnings-with-header-fn-of-vl-warninglist-fix-x (equal (vl-print-warnings-with-header-fn (vl-warninglist-fix x) ps) (vl-print-warnings-with-header-fn x ps)))
Theorem:
(defthm vl-print-warnings-with-header-fn-vl-warninglist-equiv-congruence-on-x (implies (vl-warninglist-equiv x x-equiv) (equal (vl-print-warnings-with-header-fn x ps) (vl-print-warnings-with-header-fn x-equiv ps))) :rule-classes :congruence)