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.tag
val 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