我正在尝试更改函数的行为并将结果打印到文件中。插件开发指南中描述的ViewCfg插件做了类似的事情,但我试图避免使用ViewCfg使用的Ast.get
。我正在考虑扩展Printer.extensible_printer
,根据Frama-C API文档,如果我想获得自定义的漂亮打印机,我可以做的事情。
但是,如果按照API文档中的描述扩展漂亮的打印机,除非我做错了,我注意到无论将哪个项目设置为当前项目,我所做的更改都会发生。在使用自定义漂亮打印机之前,我正在使用File.create_project_from_visitor
创建一个新项目,并Project.set_current
将新项目设置为当前项目。
扩展Printer.extensible_printer
的类所做的任何更改是否适用于所有项目?我碰巧使用的是frama-c-Aluminum-20160502,我知道这不是最新版本。
关于AST.get
,我唯一的理由就是它听起来像得到了整个AST,而我只对它的一部分感兴趣,即行为。但如果我只是通过避免它来让自己变得更难,那么我会继续使用它。