username_4567
username_4567

Reputation: 4923

How to view Clang AST?

I am trying to get hold on Clang. So, I would like to view the AST generated by Clang after parsing the given program. Is it possible to dump AST in .dot or .viz format? Is there any tool out there?

Upvotes: 60

Views: 57669

Answers (4)

shapkin
shapkin

Reputation: 377

I am using following:

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

IMHO This is more suitable for machine parsing.

Upvotes: 3

Jon marsh
Jon marsh

Reputation: 339

For viewing the AST

clang-check -ast-dump filename.c

For to view the specific functions in a program

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

Upvotes: 6

Kornel
Kornel

Reputation: 100200

The method with -cc1 invocation will have problem with includes and recognizing C++.

For full-featured parsing, use:

clang -Xclang -ast-dump file.cpp

Upvotes: 74

cpt. jazz
cpt. jazz

Reputation: 1356

Clang supports showing the AST with Graphviz's dotty -- you can grab the temporary .dot file generated (name is printed out) to get the graph source.

clang -cc1 -ast-view your_file.c

You can also print to the command line with:

clang -cc1 -ast-dump your_file.c

or:

clang -cc1 -ast-print your_file.c

or in 3.3:

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

but this was removed later as pointed by Lukas Kubanek in the comment.

Upvotes: 61

Related Questions