Preprocess zero or more files.
(pproc-files path files ienv state) → (mv erp fileset state)
This is the top-level function of the preprocessor.
The files are identified by the
Function:
(defun pproc-files-loop (path files preprocessed preprocessing ienv state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (stringp path) (string-listp files) (string-plexeme-list-alistp preprocessed) (string-listp preprocessing) (ienvp ienv)))) (declare (xargs :guard (<= (len preprocessed) *pproc-files-max*))) (b* (((reterr) nil state) ((when (endp files)) (retok (string-plexeme-list-alist-fix preprocessed) state)) ((erp preprocessed state) (pproc-file path (car files) preprocessed preprocessing ienv state))) (pproc-files-loop path (cdr files) preprocessed preprocessing ienv state)))
Theorem:
(defthm string-plexeme-list-alistp-of-pproc-files-loop.new-preprocessed (b* (((mv acl2::?erp ?new-preprocessed acl2::?state) (pproc-files-loop path files preprocessed preprocessing ienv state))) (string-plexeme-list-alistp new-preprocessed)) :rule-classes :rewrite)
Function:
(defun pproc-files (path files ienv state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (stringp path) (string-listp files) (ienvp ienv)))) (b* (((reterr) (irr-fileset) state) ((erp preprocessed state) (pproc-files-loop path files nil nil ienv state))) (retok (fileset (string-plexeme-list-alist-to-filepath-filedata-map preprocessed)) state)))
Theorem:
(defthm filesetp-of-pproc-files.fileset (b* (((mv acl2::?erp ?fileset acl2::?state) (pproc-files path files ienv state))) (filesetp fileset)) :rule-classes :rewrite)