package bap-std
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=a6e80853aaaa26b7ca564d9878891d7146ec1c83852541387c1bba1ad036b8ea
md5=13f2cb1e3b9d90348852252fb0f2d09f
doc/bap/Bap/Std/Project/Pass/index.html
Module Project.Pass
A program analysis pass.
Pass is essentially a function that takes a project data structures, and returns a new project, possibly modified.
Passes may depend on other passes, and have a few properties, associated with them.
type t = passAn error that can occur when loading or running pass.
Not_loaded namepass with a givennamewasn't loaded for some reason. This is a very unlikely error, indicating either a logic error in the plugin system implementation or something very weird, that we didn't expect.
Not_loaded namewhen we tried to load plugin with a givennamewe failed to find it in our search paths.
Runtime_error (name,exn)when plugin with a givennamewas run it raised anexn.
val sexp_of_error : error -> Ppx_sexp_conv_lib.Sexp.texception Failed of errorraised when a pass failed to load or to run. Note: this exception is raised only from two functions in this module, that state this in their documentation and has _exn suffix in their name.
val run : t -> project -> (project, error) Core_kernel.Result.trun_pass project pass applies pass to a project.
If a pass has dependencies, then they will be run before the pass in some topological order.
run_pass_exn proj is the same as run_pass, but raises an exception on error. Useful to provide custom error handling/printing.
val name : t -> stringname pass is a pass name
val autorun : t -> boolautorun pass is true if a pass was created with autorun option