let rm_unused_decl =
Result.memo
(fun new_proj_name ->
clear_tables ();
let visitor = new collect_visitor in
ignore
(Visitor.visitFramacFile
(visitor:>Visitor.frama_c_visitor) (Ast.get ()));
debug "filtering done@.";
let visitor = new filter_visitor in
let new_prj = File.create_project_from_visitor new_proj_name visitor in
let ctx = Plugin.get_selection_context () in
Project.copy ~selection:ctx new_prj;
new_prj)