module Builtin_functions:State_builder.Hashtbl
with type key = string and type data = typ * typ list * bool
A list of the built-in functions for the current compiler (GCC or
MSVC, depending on !msvcMode
). Maps the name to the
result and argument types, and whether it is vararg.
Initialized by Cil.initCIL
. Do not add builtins directly, use
Cil_builtins.add_custom_builtin
below for that.
This map replaces gccBuiltins
and msvcBuiltins
in previous
versions of CIL.
include State_builder.S
Hashtbl are a standard computation.
BUT that is INCORRECT to use projectified hashtables if keys have a
custom rehash
function (see Project.DATATYPE_OUTPUT.rehash
)
type
key
type
data
val replace : key -> data -> unit
Add a new binding. The previous one is removed.
val add : key -> data -> unit
Add a new binding. The previous one is only hidden.
val clear : unit -> unit
Clear the table.
val length : unit -> int
Length of the table.
val iter : (key -> data -> unit) -> unit
val iter_sorted : ?cmp:(key -> key -> int) ->
(key -> data -> unit) -> unit
val fold : (key -> data -> 'a -> 'a) ->
'a -> 'a
val fold_sorted : ?cmp:(key -> key -> int) ->
(key -> data -> 'a -> 'a) ->
'a -> 'a
val memo : ?change:(data -> data) ->
(key -> data) ->
key -> data
Memoization. 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
.
val find : key -> data
Return the current binding of the given key.
Not_found
if the key is not in the table.val find_all : key -> data list
Return the list of all data associated with the given key.
val mem : key -> bool
val remove : key -> unit