GCCINT:树

来自 ChinaUnix Wiki

下一页: RTL, 前一页: 过程, 上一级: GCC Internals 中文翻译


9 Trees: C和C++前端使用的中间表示

这一章记述了GCC用来表示C和C++源程序的内部表示。当源程序为C或者C++时,GCC解析程序,执行语义分析(包括生成错误消息),然后产生在这里描述的中间表示。该表示包含了一个对前端输入的整个转换单元的完全表示。该表示然后由代码生成器处理,从而产生机器代码,但是还可以用来创建源浏览器,智能编辑器,自动文本生成器,解析器,以及任何其它处理C或C++代码所需的程序。

这一章解释了内部表示。特别是,记录了C和C++源结构的内部表示,以及能够用来访问这些结构的宏,函数和变量。C++的表示很大程度上为C前端使用的表示的超集。只有一种C中使用的结构没有出现在C++前端,即GNU“嵌套函数”扩展。许多这里记录的宏不在C中出现,因为相应的语言结构不出现在C中。

如果你正在开发一个“后端”,一个代码生成器或一些其它工具,使用了该表示,你可能偶然发现需要询问一些问题,并且这些问题不好通过这里列出的函数和宏来回答。如果是这种情况,可能GCC已经支持了你想要的功能,只不过接口并没有记录在这里。在这种情况下,你应该询问GCC维护者(通过发邮件给gcc@gcc.gnu.org),关于记录你想要的功能。同样,如果你发现你自己写的函数并不是直接处理你的后端,而是可能对其他使用GCC前端的人有帮助,你应该将你的patch提交纳入GCC。

个主工具