Frama-C:
Plug-ins:
Libraries:

Frama-C API - Fold

type 'a visitor = {
  1. neutral : 'a;
  2. combine : 'a -> 'a -> 'a;
  3. exp : Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> 'a;
  4. lval : (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> 'a;
  5. varinfo : Frama_c_kernel.Cil_types.varinfo -> 'a;
  6. offset : Eva__.Eva_ast_types.offset -> 'a;
}
type 'a folder = {
  1. fold_exp : visitor:'a visitor -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> 'a;
  2. fold_lval : visitor:'a visitor -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> 'a;
  3. fold_varinfo : visitor:'a visitor -> Frama_c_kernel.Cil_types.varinfo -> 'a;
  4. fold_offset : visitor:'a visitor -> Eva__.Eva_ast_types.offset -> 'a;
}
val default : 'a folder
val visit_exp : neutral:'a -> combine:('a -> 'a -> 'a) -> 'a folder -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> 'a
val visit_lval : neutral:'a -> combine:('a -> 'a -> 'a) -> 'a folder -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> 'a