Module Reason_graph

module Reason_graph: sig .. end
Why is a node impacted. The reasons will be given as n is impacted by the effect of [n'], and the impact is of type reason.

module NS: PdgTypes.NodeSet
type reason_type = 
| Intraprocedural of PdgTypes.Dpd.t (*The effect of n' in f impact n, which is also in f.*)
| InterproceduralDownward (*the effect of n' in f has an effect on a callee f' of f, in which n is located.*)
| InterproceduralUpward (*the effect of n' in f has an effect on a caller f' of f (once the call to f has ended), n being in f'.*)
Why is a node impacted. The reasons will be given as n is impacted by the effect of [n'], and the impact is of type reason.
module ReasonType: Datatype.Make(sig
type t = Reason_graph.reason_type 
val name : string
val reprs : Reason_graph.reason_type list
include Datatype.Serializable_undefined
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool
end)
module Reason: Datatype.Triple_with_collections(PdgTypes.Node)(PdgTypes.Node)(ReasonType)(sig
val module_name : string
end)
Reasons for impact are expressed as sets (n', n, reason)
type reason = Reason.Set.t 
val empty : Reason.Set.t
module Printer: sig .. end
module Dot: Graph.Graphviz.Dot(Printer)
val to_dot_file : temp:bool -> Printer.t -> string
val print_dot_graph : Printer.t -> unit
val print_reason : Reason.Set.t -> unit