package bap-std
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=63ada71fa4f602bd679174dc6bf780d54aeded40ad4ec20d256df15886e3d2d5
md5=b8b1aff8c6846f2213eafc54de07b304
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