module Fold:sig
..end
Fold operations on table of a given type of AST elements.
Fold.ast_element vis f
, folds f
over each pair of ast_element
registered in vis
. The ast_element
in the old AST is presented to f
first (that is, f
looks like: let f old_e new_e acc = ...
. For example
for Cil_types.varinfo
:
Fold.varinfo vis (fun old_vi new_vi acc -> ... )
.
val varinfo : Visitor_behavior.t ->
(Cil_types.varinfo -> Cil_types.varinfo -> 'a -> 'a) -> 'a -> 'a
val compinfo : Visitor_behavior.t ->
(Cil_types.compinfo -> Cil_types.compinfo -> 'a -> 'a) -> 'a -> 'a
val enuminfo : Visitor_behavior.t ->
(Cil_types.enuminfo -> Cil_types.enuminfo -> 'a -> 'a) -> 'a -> 'a
val enumitem : Visitor_behavior.t ->
(Cil_types.enumitem -> Cil_types.enumitem -> 'a -> 'a) -> 'a -> 'a
val typeinfo : Visitor_behavior.t ->
(Cil_types.typeinfo -> Cil_types.typeinfo -> 'a -> 'a) -> 'a -> 'a
val stmt : Visitor_behavior.t ->
(Cil_types.stmt -> Cil_types.stmt -> 'a -> 'a) -> 'a -> 'a
val logic_info : Visitor_behavior.t ->
(Cil_types.logic_info -> Cil_types.logic_info -> 'a -> 'a) -> 'a -> 'a
val logic_type_info : Visitor_behavior.t ->
(Cil_types.logic_type_info -> Cil_types.logic_type_info -> 'a -> 'a) ->
'a -> 'a
val fieldinfo : Visitor_behavior.t ->
(Cil_types.fieldinfo -> Cil_types.fieldinfo -> 'a -> 'a) -> 'a -> 'a
val model_info : Visitor_behavior.t ->
(Cil_types.model_info -> Cil_types.model_info -> 'a -> 'a) -> 'a -> 'a
val logic_var : Visitor_behavior.t ->
(Cil_types.logic_var -> Cil_types.logic_var -> 'a -> 'a) -> 'a -> 'a
val kernel_function : Visitor_behavior.t ->
(Cil_types.kernel_function -> Cil_types.kernel_function -> 'a -> 'a) ->
'a -> 'a
val fundec : Visitor_behavior.t ->
(Cil_types.fundec -> Cil_types.fundec -> 'a -> 'a) -> 'a -> 'a