47

我试图抓住 Clang。所以,我想在解析给定程序后查看 Clang 生成的 AST。是否可以以 .dot 或 .viz 格式转储 AST?有什么工具吗?

4

4 回答 4

57

具有-cc1调用的方法将在包含和识别 C++ 方面存在问题。

对于全功能解析,请使用:

clang -Xclang -ast-dump file.cpp
于 2017-09-16T17:46:50.107 回答
53

Clang 支持使用 Graphviz 显示 AST——dotty您可以获取生成的临时 .dot 文件(打印出名称)以获取图形源。

clang -cc1 -ast-view your_file.c

您还可以使用以下命令打印到命令行:

clang -cc1 -ast-dump your_file.c

或者:

clang -cc1 -ast-print your_file.c

或在 3.3 中:

clang -cc1 -ast-dump-xml your_file.c

但正如 Lukas Kubanek 在评论中指出的那样,这后来被删除了。

于 2013-09-03T10:17:03.563 回答
5

用于查看 AST

clang-check -ast-dump filename.c

用于查看程序中的具体功能

clang-check -ast-dump -ast-dump-filter=function_name filename.c

于 2019-08-26T12:24:29.073 回答
3

我正在使用以下内容:

clang my_file.h -I. -Xclang -ast-dump -fsyntax-only -fno-color-diagnostics -Wno-visibility

恕我直言,这更适合机器解析。

于 2019-09-17T20:07:30.710 回答