修改GCC编译器的AST树

时间:2011-08-05 21:34:04

标签: plugins gcc abstract-syntax-tree

需要使用GCC插件收集有关翻译单元的必要信息,并在其基础上修改AST。 我已经了解了如何收集信息。但我还没有理解如何在将AST传递给CRT之前对其进行修改。关于这个主题的信息非常少。 请告诉我,我应该在这个问题上阅读什么?分享想法,链接。

感谢的。

P.S。 我已经阅读了这些链接上的所有内容:

http://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/Print_version http://developer.apple.com/library/mac/#documentation/DeveloperTools/gcc-4.2.1/gccint/index.html#Top

2 个答案:

答案 0 :(得分:1)

GCC测试套件包含此类修改的基本示例。请参阅http://gcc.gnu.org/viewcvs/gcc/trunk/gcc/testsuite/gcc.dg/plugin/finish_unit_plugin.c和start_unit_plugin.c,了解如何创建var。不幸的是,对于更严重的修改,GCC源代码可能是您最好的选择。

答案 1 :(得分:0)

你是否因为这项努力而与GCC联系在一起? ROSE编译器专门用于执行源代码级修改,然后将生成的代码交给后端编译器。