我成功地使用cmake和Visual Studio 10为Windows编译了clang。我想获得一个XML文件,作为源代码AST表示。有一个选项可以在Linux(Ubuntu)下使用clang与gcc提供结果,但在Windows上不起作用:
clang -cc1 -ast-print-xml source.c
然而,这会调用编译阶段(我想避免这种情况)。查看源代码目前对我来说没有帮助,因为我对clang还很陌生。我可以通过使用以下方式生成AST的二进制版本:
clang -emit-ast source.c
很遗憾,这种格式不能直接用于解析。有没有现成的方法可以直接生成XML树而不是二进制文件在clang中?
目标是在.NET环境中使用XML表示,在访问二进制AST之前需要对原生clang库进行一些包装。也许有第三种选择,如果有人已经为.NET编写了一些二进制clang AST解析器?
我可能错过了一些东西,比如clang前端生成的AST与编译阶段生成的AST不等价。