package bap-std
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=63ada71fa4f602bd679174dc6bf780d54aeded40ad4ec20d256df15886e3d2d5
md5=b8b1aff8c6846f2213eafc54de07b304
doc/bap/Bap/Std/Project/Collator/index.html
Module Project.Collator
A pass that collates projects.
A collator is a pass that is folded over projects and computes differences between the base version and the number of alternative versions.
val register :
?desc:string ->
?package:string ->
string ->
prepare:(project -> 's) ->
collate:(int -> 's -> project -> 's) ->
summary:('s -> unit) ->
unit
register ~prepare ~collate ~summary name
registers a collator.
The prepare
function is called on the base version and it returns the collator's state that can be an arbitrary type 's
. Then the collate
function is consequitevely applied on alternative versions of the base version, with the version number passed as the first argument (starting from 0). Finally, when all versions are compared with the base, the summary function is called.
The collator fullname (package:name) must be unique, otherwise a function terminates.
apply collator projects
applies the collator
to the sequence of projects.
Projects are evaluated lazily, one project at time.
val find : ?package:string -> string -> t option
find ?package name
looks up a collator in the registry.
val name : info -> Bap_knowledge.Knowledge.Name.t
the collators name
val desc : info -> string
the collators description.
val registered : unit -> info list
information about currently registered collators