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?
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.
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
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