Frama-C API - Rewrite
type visitor = {exp : Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag;lval : (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag;varinfo : Frama_c_kernel.Cil_types.varinfo -> Frama_c_kernel.Cil_types.varinfo;offset : Eva__.Eva_ast_types.offset -> Eva__.Eva_ast_types.offset;
}type rewriter = {rewrite_exp : visitor:visitor -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag;rewrite_lval : visitor:visitor -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag;rewrite_varinfo : visitor:visitor -> Frama_c_kernel.Cil_types.varinfo -> Frama_c_kernel.Cil_types.varinfo;rewrite_offset : visitor:visitor -> Eva__.Eva_ast_types.offset -> Eva__.Eva_ast_types.offset;
}val visit_exp : rewriter -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tag -> Eva__.Eva_ast_types.exp_node Eva__.Eva_ast_types.tagval visit_lval : rewriter -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag -> (Eva__.Eva_ast_types.lhost * Eva__.Eva_ast_types.offset) Eva__.Eva_ast_types.tag