package pfff

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module F = Controlflow_php
module Ast = Cst_php
module VarMap : sig ... end
module VarSet : sig ... end
module NodeiSet : sig ... end
type 'a mapping = 'a inout array
and 'a inout = {
  1. in_env : 'a VarMap.t;
  2. out_env : 'a VarMap.t;
}
and 'a env = 'a VarMap.t
val empty_env : unit -> 'a VarMap.t
val empty_inout : unit -> 'a inout
val eq_env : ('a -> 'a -> bool) -> 'a VarMap.t -> 'a VarMap.t -> bool
val eq_inout : ('a -> 'a -> bool) -> 'a inout -> 'a inout -> bool
exception Break
val eq_mapping : ('a -> 'a -> bool) -> 'a inout array -> 'a inout array -> bool
val minus_env : NodeiSet.t env -> NodeiSet.t env -> NodeiSet.t env
val csv_append : string -> string -> string
val ns_to_str : NodeiSet.t -> string
val env_to_str : ('a -> string) -> 'a env -> string
val inout_to_str : ('a -> string) -> 'a inout -> string
val array_fold_left_idx : ('a -> int -> 'b -> 'a) -> 'a -> 'b array -> 'a
val mapping_to_str : F.flow -> ('a -> string) -> 'a inout array -> string
type 'a transfn = 'a mapping -> nodei -> 'a inout
val fixpoint_worker : ('a -> 'a -> bool) -> 'a inout array -> ('a inout array -> NodeiSet.elt -> 'a inout) -> 'b -> ('b -> NodeiSet.elt -> NodeiSet.t) -> NodeiSet.t -> 'a inout array
val forward_succs : F.flow -> Ograph_extended.nodei -> NodeiSet.t
val backward_succs : F.flow -> Ograph_extended.nodei -> NodeiSet.t
val fixpoint : eq:('a -> 'a -> bool) -> init:'a mapping -> trans:'a transfn -> flow:F.flow -> forward:bool -> 'a mapping
type 'a fold_fn = nodei -> string -> bool -> 'a -> 'a
type 'a fold_env = {
  1. fold_fn : string -> bool -> 'a -> 'a;
  2. fold_vars : VarSet.t;
}
val expr_fold : 'a fold_env -> bool -> Cst_php.lvalue -> 'a -> 'a
val node_fold : 'a fold_env -> F.node_kind -> 'a -> 'a
val flow_fold : 'a fold_fn -> VarSet.t -> 'a -> F.flow -> 'a
val flow_fold_lv : (nodei -> string -> 'a -> 'a) -> VarSet.t -> 'a -> F.flow -> 'a
val flow_fold_rv : (nodei -> string -> 'a -> 'a) -> VarSet.t -> 'a -> F.flow -> 'a
val new_node_array : F.flow -> 'a -> 'a array
type reaching_mapping = NodeiSet.t mapping
val vars : F.flow -> VarSet.t
val reaching_defs : VarSet.t -> F.flow -> NodeiSet.t env
val up_map : int -> ('a -> 'a) -> 'a array -> 'a array
val up_set_map : int -> VarSet.elt -> VarSet.t array -> VarSet.t array
val reaching_gens : VarSet.t -> F.flow -> VarSet.t array
val reaching_kills : NodeiSet.t env -> VarSet.t -> F.flow -> NodeiSet.t env array
val reaching_transfer : gen:VarSet.t array -> kill:NodeiSet.t env array -> flow:F.flow -> NodeiSet.t transfn
val reaching_fixpoint : F.flow -> reaching_mapping
val display_dflow : F.flow -> 'a mapping -> ('a -> string) -> unit
val display_reaching_dflow : F.flow -> NodeiSet.t inout array -> unit