Frama-C API - Ctx
include Abstract.Context.Internal with type t = Abstract.Ctx.t
include Abstract_context.S with type t = Abstract.Ctx.t
type t = Abstract.Ctx.tval top : tThe default context used in a top abstract state, or if no domain has been enabled — or no domain providing this context.
val narrow : t -> t -> t Eval.or_bottomIn a product of abstract domains, merges the context provided by the abstract state of each domain.
val structure : t Abstract.Context.structureinclude Structure.External with type t := t and type 'a key := 'a Abstract.Context.key and type 'a data := 'a Abstract.Context.data
val mem : 'a Abstract.Context.key -> boolTests whether a key belongs to the module.
val get : 'a Abstract.Context.key -> (t -> 'a) optionFor a key of type k key:
- if the values of type
tcontain a subpart of typekfrom a module identified by the key, thenget keyreturns an accessor for it. - otherwise,
get keyreturns None.
val set : 'a Abstract.Context.key -> 'a -> t -> tFor a key of type k key:
- if the values of type
tcontain a subpart of typekfrom a module identified by the key, thenset key v treturns the valuetin which this subpart has been replaced byv. - otherwise,
set key _is the identity function.
Iterators on the components of a structure.
type polymorphic_iter_fun = {iter : 'a. 'a Abstract.Context.key -> 'a Abstract.Context.data -> 'a -> unit;
}val iter : polymorphic_iter_fun -> t -> unittype 'b polymorphic_fold_fun = {fold : 'a. 'a Abstract.Context.key -> 'a Abstract.Context.data -> 'a -> 'b -> 'b;
}val fold : 'b polymorphic_fold_fun -> t -> 'b -> 'btype polymorphic_map_fun = {map : 'a. 'a Abstract.Context.key -> 'a Abstract.Context.data -> 'a -> 'a;
}val map : polymorphic_map_fun -> t -> t