Я пытаюсь схватиться за Клэнга. Итак, я хотел бы просмотреть AST, созданный Clang после разбора данной программы. Можно ли сбросить AST в формате .dot или .viz? Есть ли там какой-нибудь инструмент?
Как посмотреть clang AST?
Ответ 1
Поддержка Clang, показывающая AST с Graphviz 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
но этот был удален позже, как указал Лукас Кубанек в комментарии.
Ответ 2
Метод с вызовом -cc1
будет иметь проблемы с включением и распознаванием C++.
Для полнофункционального анализа используйте:
clang -Xclang -ast-dump file.cpp
Ответ 3
Для просмотра AST
clang-check -ast-dump filename.c
Для просмотра определенных функций в программе
clang-check -ast-dump -ast-dump-filter=function_name filename.c
Ответ 4
Я использую следующее:
clang my_file.h -I. -Xclang -ast-dump -fsyntax-only -fno-color-diagnostics -Wno-visibility
ИМХО Это больше подходит для машинного анализа.