我正在寻找开源C++编译器前端(源解析器/分析器)的选项,我可以根据我的要求进行自定义.我不需要后端实现,只是它有助于找到支持大多数标准功能的快速且相对无错误的C++前端.有什么建议?
[我确实谷歌,clang似乎是一个选项,但在我开始之前我更喜欢同行反馈.]
Arpan
Clang和GCC是两个主要选择.海湾合作委员会非常复杂(或者我听说过),而且Clang非常有前途,但还不成熟.
GCC-XML使用GCC的前端来吐出源的XML描述.GCC-XML的输出不是一个完整的抽象源树(它不包含函数体),但它比GCC本身更容易使用.(GCC-XML页面上的最新版本已经过时了;如果您不想自己跟踪其CVS,可以尝试从Debian的gccxml页面下载tarball .)
根据您的具体要求,其他选项可能有效:
CINT是一个C/C++解释器.我被告知它遵守C++标准并不是很严格.
ROSE可以使用C和C++源代码,并允许您对其进行各种转换.ROSE的C和C++前端是从EDG获得许可的,因此它不是开源的,但可以自由再发行.
像Doxygen和SWIG这样的项目包括他们自己有限的C++解析器.虽然这些仅用于提取文档和生成接口,但它们可能满足您的需求.
编辑: 有关进一步阅读,请参阅Andrew Birkett撰写的"解析C++".