如何以 JSON 格式表示 clang AST?



clang-check -ast-dump -ast-dump-filter=<function_name> main.c给出特定代码的AST(只是一个函数声明(。

我们如何以 JSON 格式表示生成的 AST?

PS:我想要AST仅用于函数声明。

使用-ast-dump=json参数调用clang

这是最近(2019 年 5 月(才实现的,因此您需要最新版本的 Clang。

有关详细信息,请参阅 https://reviews.llvm.org/D60910。

还有一个库可以通过libTooling导出更多低级信息,https://github.com/facebook/facebook-clang-plugins

2022 年更新:现在clang -Xclang -ast-dump=json -fsyntax-only <file>完整的命令行,因为clang命令现在是编译驱动程序,而不仅仅是编译器本身。

最新更新