package frama-c

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Datatype for terms that relies on physical equality. Note that of its collections only Hashtbl can be used. Using Map and Set raises a fatal error as they require a comparison function, which cannot be defined in a sound way for physical equality.

include Frama_c_kernel.Datatype.S with type t = Frama_c_kernel.Cil_types.term
include Frama_c_kernel.Datatype.S_no_copy with type t = Frama_c_kernel.Cil_types.term
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 pretty : Format.formatter -> t -> unit

Pretty print each value in an user-friendly way.

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.

module Set : Frama_c_kernel.Datatype.Set with type elt = t
module Map : Frama_c_kernel.Datatype.Map with type key = t
OCaml

Innovation. Community. Security.