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