我一直在尝试从 Clang 获取 AST,但到目前为止我还没有成功。我在堆栈中发现了一个一年前的问题,其中提到了使用 Clang 获取 ast 的另外两种方法,它们是:
./llvmc -cc1 -ast-dump 文件.c
./llvmc -cc1 -ast-打印文件.c
在这个问题上,提到了 doxygen 并给出了一个 ast 的表示,但我主要是在寻找一些文本形式的表示,例如 XML,以便可以执行进一步的分析。
最后,堆栈上还有另一个关于XML 导入的问题,但由于还提到了几个原因,它被停止了。
因此,我的问题是,哪个版本以及如何从控制台使用它来获取 C 中给定代码的 ast 相关信息?我相信这是一个非常轻松的单行命令代码,就像上面那样,但是文档索引并没有像我读过的那样引用任何关于 ast 的内容,而且我在 llvmc 发现的唯一一个是关于手动编写 AST 不是真的是我要找的。
我尝试了上面的所有命令,但它们在 2.9 版上都已经失败了,而且我已经发现 llvm 在每个版本之间都发生了很大变化。
谢谢你。