gccxml 的明显替代品将会是 clang,它使用 BSD 许可证(所以您可以在商业项目中自由使用它,对代码做任何想做的事情等)。clang 曾经内置了一个 xml AST dumper,但在某个阶段被移除了。如果您只需要提取特定信息(如用于IDL生成的函数原型或类似内容),编写基本的自定义clang插件并不困难。否则,您可以搜寻现有的clang插件来完成此工作,例如这个链接中的插件:https://github.com/sk-havok/clang-extract。clang 插件教程: http://clang.llvm.org/docs/ClangPlugins.html。
请查看我们的 DMS软件重构工具包,其中包括 C前端,可用作GCCXML的等效/超集。C前端可以处理各种C方言(ANSI、GCC、MS)。它包含完整的预处理器。它可以导出完整语言的AST(特别是包括函数体,这是GCCXML不做的,如果我没记错的话)和其符号表,均以XML格式呈现。在SO上,有一个DMS C++前端的AST示例转储。 这使用与C前端相同的机制。