sig
type ('node_info, 'call_info) t = {
mutable sgn : 'node_info PdgIndex.Signature.t;
mutable calls :
(Cil_types.stmt * ('call_info option * 'node_info PdgIndex.Signature.t))
list;
other : 'node_info PdgIndex.H.t;
}
val t_descr :
ni:Structural_descr.t -> ci:Structural_descr.t -> Structural_descr.t
val sgn : ('a, 'b) PdgIndex.FctIndex.t -> 'a PdgIndex.Signature.t
val create : int -> ('a, 'b) PdgIndex.FctIndex.t
val copy : ('a, 'b) PdgIndex.FctIndex.t -> ('a, 'b) PdgIndex.FctIndex.t
val merge_info_calls :
(Cil_types.stmt * ('a option * 'b PdgIndex.Signature.t)) list ->
(Cil_types.stmt * ('a option * 'b PdgIndex.Signature.t)) list ->
('b -> 'b -> 'b) ->
('a -> 'a -> 'a) ->
(Cil_types.stmt * ('a option * 'b PdgIndex.Signature.t)) list
val merge :
('a, 'b) PdgIndex.FctIndex.t ->
('a, 'b) PdgIndex.FctIndex.t ->
('a -> 'a -> 'a) -> ('b -> 'b -> 'b) -> ('a, 'b) PdgIndex.FctIndex.t
val add_info_call :
('a, 'b) PdgIndex.FctIndex.t ->
Cil_types.stmt -> 'b -> replace:bool -> unit
val add_info_call_key :
('a, 'b) PdgIndex.FctIndex.t ->
PdgIndex.Key.key -> 'b -> replace:bool -> unit
val add_info_sig_call :
(Cil_types.stmt * ('a option * 'b PdgIndex.Signature.t)) list ->
Cil_types.stmt ->
PdgIndex.Signature.key ->
'b ->
bool -> (Cil_types.stmt * ('a option * 'b PdgIndex.Signature.t)) list
val find_call :
('a, 'b) PdgIndex.FctIndex.t ->
Cil_types.stmt -> 'b option * 'a PdgIndex.Signature.t
val find_call_key :
('a, 'b) PdgIndex.FctIndex.t ->
PdgIndex.Key.key -> 'b option * 'a PdgIndex.Signature.t
val find_info_call : ('a, 'b) PdgIndex.FctIndex.t -> Cil_types.stmt -> 'b
val find_info_call_key :
('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.Key.key -> 'b
val find_info_sig_call :
('a, 'b) PdgIndex.FctIndex.t ->
Cil_types.stmt -> PdgIndex.Signature.key -> 'a
val find_all_info_sig_call :
('a, 'b) PdgIndex.FctIndex.t -> Cil_types.stmt -> 'a list
val add_replace :
('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a -> bool -> unit
val add : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a -> unit
val add_or_replace :
('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a -> unit
val length : ('a, 'b) PdgIndex.FctIndex.t -> int
val find_info : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a
val find_all : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a list
val find_label : ('a, 'b) PdgIndex.FctIndex.t -> Cil_datatype.Label.t -> 'a
val fold_calls :
(Cil_types.stmt -> 'a option * 'b PdgIndex.Signature.t -> 'c -> 'c) ->
('b, 'a) PdgIndex.FctIndex.t -> 'c -> 'c
val fold :
(PdgIndex.H.key -> 'a -> 'b -> 'b) ->
('a, 'c) PdgIndex.FctIndex.t -> 'b -> 'b
end