let get_component kind stmt =
let kf = Kernel_function.find_englobing_kf stmt in
let action, check = match kind with
| Direct -> direct, is_direct
| Indirect_Backward -> backward, is_indirect_backward
| Forward _ -> whole, is_forward
in
let set =
M.fold
(fun (n,_) v acc ->
if check v then
Extlib.may_map
~dft:acc
(fun s -> Stmt.Set.add s acc)
(get_node_stmt n)
else
acc)
(action kf stmt)
Stmt.Set.empty
in
Stmt.Set.elements set