Frama-C API - Domain
Witness of the registration of an abstract domain, it can be used to programmatically enable the domain.
val register : name:string -> descr:string -> ?experimental:bool -> ?priority:int -> ?auto_enable:(unit -> bool) -> (module Abstract_domain.Leaf) -> registeredRegisters a leaf abstract domain.
namemust be unique. The domain is enabled by -eva-domainsname.descris a description printed in the help message of -eva-domains.experimentalis false by default. If set to true, a warning is emitted when the domain is enabled.prioritycan be any integer; domains with higher priority are always processed first. The domains currently provided by Eva have priority ranging between 1 and 19, so a priority of 0 (respectively 20) ensures that a new domain is processed after (respectively before) the classic Eva domains. The default priority is 0.auto_enableis called during domain configuration; if it returns true, the domain is automatically enabled. Alwaysfalseby default.
val dynamic_register : name:string -> descr:string -> ?experimental:bool -> ?priority:int -> ?auto_enable:(unit -> bool) -> (unit -> (module Abstract_domain.Leaf)) -> registeredRegisters a dynamic domain, which is built at the start of an analysis analysis using the function given as last argument. See function register for more details.
module type Context = Abstract.Context.Externalmodule type Value = Abstract.Value.Externalmodule type Functor = sig ... endFunctor domain which can be built over any value abstractions, but with fixed locations dependencies.
val register_functor : name:string -> descr:string -> ?experimental:bool -> ?priority:int -> ?auto_enable:(unit -> bool) -> (module Functor) -> registeredRegisters a functor domain. See function register for more details.
