web-dev-qa-db-fra.com

comment voir clang AST?

J'essaie de m'emparer de Clang. Donc, je voudrais voir le AST généré par Clang après avoir analysé le programme donné. Est-il possible de vider AST au format .dot ou .viz? Y a-t-il un outil là-bas?

34
username_4567

Clang prend en charge l'affichage du AST avec le dotty de Graphviz - vous pouvez récupérer le fichier .dot temporaire généré (le nom est imprimé) pour obtenir la source du graphique.

clang -cc1 -ast-view your_file.c

Vous pouvez également imprimer sur la ligne de commande avec:

clang -cc1 -ast-dump your_file.c

ou:

clang -cc1 -ast-print your_file.c

ou en 3.3:

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

mais cela a été supprimé plus tard comme l'a souligné Lukas Kubanek dans le commentaire.

45
cpt. jazz

La méthode avec -cc1 invocation aura un problème avec les inclusions et la reconnaissance de C++.

Pour une analyse complète, utilisez:

clang -Xclang -ast-dump file.cpp
34
Kornel

Pour visualiser l'AST

clang-check -ast-dump filename.c

Pour visualiser les fonctions spécifiques d'un programme

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

1
amith ks