Frama-C:
Plug-ins:
Libraries:

Frama-C API - NS

Sets of pairs Node.t * Zone.t, with a special semantics for zones: add n z (add n z' empty) results in (n, Zone.join z z') instead of a set with two different elements. All operations see only instance of a node, with the join of all possible zones. Conversely, a node should not be present with an empty zone.

include Frama_c_kernel.Datatype.S
include Frama_c_kernel.Datatype.S_no_copy
val name : string

Unique name of the datatype.

Datatype descriptor.

Packed version of the descriptor.

val reprs : t list

List of representants of the descriptor.

val equal : t -> t -> bool
val compare : t -> t -> int

Comparison: same spec than Stdlib.compare.

val hash : t -> int

Hash function: same spec than Hashtbl.hash.

val mem_project : (Frama_c_kernel.Project_skeleton.t -> bool) -> t -> bool

mem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.

val copy : t -> t

Deep copy: no possible sharing between x and copy x.

val empty : t
val is_empty : t -> bool
val add' : node -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val remove : Pdg_types.PdgTypes.Node.t -> t -> t
val mem : Pdg_types.PdgTypes.Node.t -> t -> bool
val mem' : node -> t -> bool
val intersects : t -> t -> bool
val for_all' : (node -> bool) -> t -> bool
val iter' : (node -> unit) -> t -> unit
val fold : (node -> 'a -> 'a) -> t -> 'a -> 'a
val filter' : (node -> bool) -> t -> t