Frama-C API - Logic_info
Global Tables
Hashtbl are a standard computation. BUT that is INCORRECT to use projectified hashtables if keys have a custom rehash function (see Datatype.Make_input.rehash)
include State_builder.S
val self : State.tThe kind of the registered state.
val mark_as_computed : ?project:Project.t -> unit -> unitIndicate that the registered state will not change again for the given project (default is current ()).
val is_computed : ?project:Project.t -> unit -> boolReturns true iff the registered state will not change again for the given project (default is current ()).
Exportation of some inputs (easier use of State_builder.Register).
module Datatype : Datatype.Sval add_hook_on_update : (Datatype.t -> unit) -> unitAdd an hook which is applied each time (just before) the project library changes the local value of the state.
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unithowto_marshal marshal unmarshal registers a custom couple of functions (marshal, unmarshal) to be used for serialization. Default functions are identities. In particular, this function must be used if Datatype.t is not marshallable and do_not_save is not called.
type data = Cil_types.logic_info listMemoization. Compute on need the data associated to a given key using the given function. If the data is already computed, it is possible to change with change.
Return the current binding of the given key, or None if no such binding exists.
val mem : key -> boolval remove : key -> unitval add_hook_on_change : ((key, data) State_builder.hashtbl_event -> unit) -> unitAdd an hook which is applied each time (just after) a (key,value) pair in the hashtable changes inside the current project.
