Frama-C API - Fold
type 'a visitor = {
neutral : 'a;
combine : 'a -> 'a -> 'a;
exp : Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> 'a;
lval : (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> 'a;
varinfo : Frama_c_kernel.Cil_types.varinfo -> 'a;
offset : Eva__.Eva_ast_types.offset -> 'a;
}
type 'a folder = {
fold_exp : visitor:'a visitor -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> 'a;
fold_lval : visitor:'a visitor -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> 'a;
fold_varinfo : visitor:'a visitor -> Frama_c_kernel.Cil_types.varinfo -> 'a;
fold_offset : visitor:'a visitor -> Eva__.Eva_ast_types.offset -> 'a;
}
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