2013-09-01 15 views
20

Próbuję złapać Clanga. Tak, chciałbym zobaczyć AST generowane przez Clang po analizie danego programu. Czy można zrzucić AST w formacie .dot lub .viz? Czy jest tam jakieś narzędzie?jak wyświetlić clang AST?

Odpowiedz

35

Wsporniki klangowe przedstawiające AST za pomocą Graphviz's dotty - można pobrać tymczasowy plik .dot wygenerowany (nazwa zostanie wydrukowana), aby uzyskać źródło wykresu.

clang -cc1 -ast-view your_file.c 

Można również wydrukować do linii poleceń z:

clang -cc1 -ast-dump your_file.c 

lub:

clang -cc1 -ast-print your_file.c 

lub w 3.3:

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

ale tym was removed później jako szpiczasty Luk jak Kubanek w komentarzu.

+8

drukarki XML nie jest już obsługiwany. Zobacz http://llvm.org/viewvc/llvm-project?view=revision&revision=127141 –

+2

"-ast-view" również wydaje się wymagać obsługi czasu kompilacji, która nie jest domyślnie włączona w Ubuntu 14.04 :-('-ast -dump' działa pięknie, co ma na celu '-ast-print', po prostu wypisuje sam kod z pustymi liniami –

5

Metoda z inwokacją will have problem with includes i rozpoznawanie C++.

Aby w pełni funkcjonalny parsowania, użyj:

clang -Xclang -ast-dump file.cpp 
+0

Ah, to jest przełącznik, który zawsze zapominam. To drukuje AST z ładnymi kolorami w Windowsie ^^ – Cameron