Module Emitter


module Emitter: sig .. end
Emitter. An emitter is the Frama-C entity which is able to emit annotations and property status. Thus you have to create (at least) one of your own if you want to do such tasks.
Since Nitrogen-20111001


API for Plug-ins Developers


type emitter 
include Datatype.S_with_collections
val create : string -> correctness:Parameter.t list -> tuning:Parameter.t list -> t
Emitter.create name ~correctness ~tuning creates a new emitter with the given name. The given parameters are the ones which impact the generated annotations/status. A "correctness" parameter may fully change a generated element when its value changes (for instance, a valid status may become invalid and conversely). A "tuning" parameter may improve a generated element when its value changes (for instance, a "dont_know" status may become valid or invalid, but a valid status cannot become invalid)
Raises Invalid_argument if an emitter with the given name already exist
val get_name : t -> string
val correctness_parameters : t -> string list
val tuning_parameters : t -> string list
module Usable_emitter: sig .. end
Usable emitters are the ones which can really emit something.

Kernel Internal API


val get : t -> Usable_emitter.t
Get the emitter which is really able to emit something. This function must be called at the time of the emission. No action must occur between the call to get and the emission (in particular no update of any parameter of the emitter.
val self : State.t
val property_status_state : State.t Pervasives.ref