如何查看clang AST?

时间:2013-09-01 15:40:24

标签: clang llvm abstract-syntax-tree

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

4 个答案:

答案 0 :(得分:42)

Clang支持使用Graphviz的dotty显示AST - 您可以获取生成的临时.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

但是was removed后来Lukas Kubanek在评论中指出了这一点。

答案 1 :(得分:27)

使用-cc1调用will have problem with includes并识别C ++的方法。

要进行全功能解析,请使用:

clang -Xclang -ast-dump file.cpp

答案 2 :(得分:2)

用于查看AST

clang-check -ast-dump filename.c

用于查看程序中的特定功能

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

答案 3 :(得分:0)

我正在使用以下内容:

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

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