Parse a compilation-database from a file.
(parse-comp-db filename warnings-onp warnings state) → (mv erp db warnings$ state)
Function:
(defun parse-comp-db (filename warnings-onp warnings state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (stringp filename) (booleanp warnings-onp) (acl2::msg-listp warnings)))) (b* ((warnings (mbe :logic (if (acl2::msg-listp warnings) warnings nil) :exec warnings)) ((reterr) nil warnings state) ((erp parsed state) (acl2::parse-file-as-json filename state)) ((erp value) (json::parsed-to-value parsed)) ((erp db warnings) (json-to-comp-db value warnings-onp warnings))) (retok db warnings state)))
Theorem:
(defthm comp-dbp-of-parse-comp-db.db (b* (((mv acl2::?erp ?db ?warnings$ acl2::?state) (parse-comp-db filename warnings-onp warnings state))) (comp-dbp db)) :rule-classes :rewrite)
Theorem:
(defthm msg-listp-of-parse-comp-db.warnings$ (b* (((mv acl2::?erp ?db ?warnings$ acl2::?state) (parse-comp-db filename warnings-onp warnings state))) (acl2::msg-listp warnings$)) :rule-classes :rewrite)