Frama-C:
Plug-ins:
Libraries:

Frama-C API - Original

This module provides an alternative datatype where only original positions are considered for compare, equal and hash. This is intended for preprocessed code where the same file can be included several times leading to tokens having different position in the preprocessing output but the same original position.

The comparison, equality and hash functions only consider the path and the line, since the original column is usually not available.

include Datatype.S with type t = t
include Datatype.S_no_copy with type t = t
val datatype_name : string

Unique name of the datatype.

val datatype_descr : t Descr.t

Datatype descriptor.

val packed_descr : Structural_descr.pack

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 : Stdlib.Format.formatter -> t -> unit

Pretty print each value in an user-friendly way.

val mem_project : (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 : Datatype.Set with type elt = t
module Map : Datatype.Map with type key = t
module Hashtbl : Datatype.Hashtbl with type key = t