Preprocessor state object.
Our preprocessor deals with a lot of state, and needs to mutate it a lot, so we stick its fields together in a stobj.
Definition:
(defstobj ppst (vl-ppst-acc :type (satisfies vl-echarlist-p) :initially nil) (vl-ppst-istack :type (satisfies vl-istack-p) :initially nil) (vl-ppst-activep :type (satisfies booleanp) :initially nil) (vl-ppst-defines :type (satisfies vl-defines-p) :initially nil) (vl-ppst-filemap :type (satisfies vl-filemap-p) :initially nil) (vl-ppst-config :type (satisfies vl-loadconfig-p) :initially (:vl-loadconfig (edition . :system-verilog-2012) (strictp) (start-files) (start-names) (search-path) (search-exts "v") (include-dirs) (defines) (plusargs) (filemapp . t) (debugp) (flush-tries . 10000) (mintime . 1))) (vl-ppst-iskips :type (satisfies vl-includeskips-p) :initially nil) (vl-ppst-warnings :type (satisfies vl-warninglist-p) :initially nil) (vl-ppst-includes :type (satisfies string-listp) :initially nil) (vl-ppst-bytes :type unsigned-byte :initially 0) (vl-ppst-idcache :type (satisfies vl-dirlist-cache-p) :initially nil) (vl-ppst-ifdefmap :type (satisfies vl-ifdef-use-map-p) :initially nil) (vl-ppst-defmap :type (satisfies vl-def-use-map-p) :initially nil) :inline t :non-memoizable t :renaming ((ppstp vl-ppst-p) (vl-ppst-acc vl-ppst->acc-raw) (update-vl-ppst-acc vl-ppst-update-acc-raw) (vl-ppst-istack vl-ppst->istack-raw) (update-vl-ppst-istack vl-ppst-update-istack-raw) (vl-ppst-activep vl-ppst->activep-raw) (update-vl-ppst-activep vl-ppst-update-activep-raw) (vl-ppst-defines vl-ppst->defines-raw) (update-vl-ppst-defines vl-ppst-update-defines-raw) (vl-ppst-filemap vl-ppst->filemap-raw) (update-vl-ppst-filemap vl-ppst-update-filemap-raw) (vl-ppst-config vl-ppst->config-raw) (update-vl-ppst-config vl-ppst-update-config-raw) (vl-ppst-iskips vl-ppst->iskips-raw) (update-vl-ppst-iskips vl-ppst-update-iskips-raw) (vl-ppst-warnings vl-ppst->warnings-raw) (update-vl-ppst-warnings vl-ppst-update-warnings-raw) (vl-ppst-includes vl-ppst->includes-raw) (update-vl-ppst-includes vl-ppst-update-includes-raw) (vl-ppst-bytes vl-ppst->bytes-raw) (update-vl-ppst-bytes vl-ppst-update-bytes-raw) (vl-ppst-idcache vl-ppst->idcache-raw) (update-vl-ppst-idcache vl-ppst-update-idcache-raw) (vl-ppst-ifdefmap vl-ppst->ifdefmap-raw) (update-vl-ppst-ifdefmap vl-ppst-update-ifdefmap-raw) (vl-ppst-defmap vl-ppst->defmap-raw) (update-vl-ppst-defmap vl-ppst-update-defmap-raw)))