2013-09-01 40 views
20

Tôi đang cố gắng nắm giữ Clang. Vì vậy, tôi muốn xem AST được tạo ra bởi Clang sau khi phân tích cú pháp chương trình đã cho. Có thể đổ AST theo định dạng .dot hoặc .viz không? Có công cụ nào ngoài kia không?làm thế nào để xem CLang AST?

Trả lời

35

Clang hỗ trợ hiển thị AST với dotty của Graphviz - bạn có thể lấy tệp .dot tạm thời được tạo (tên được in ra) để lấy nguồn biểu đồ.

clang -cc1 -ast-view your_file.c 

Bạn cũng có thể in ra các dòng lệnh với:

clang -cc1 -ast-dump your_file.c 

hay:

clang -cc1 -ast-print your_file.c 

hoặc trong 3.3:

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

nhưng was removed này sau khi nhọn bởi Luk như Kubanek trong bình luận.

+8

máy in XML không còn được hỗ trợ. Xem http://llvm.org/viewvc/llvm-project?view=revision&revision=127141 –

+2

'-xem 'cũng dường như yêu cầu hỗ trợ biên dịch thời gian, không được bật theo mặc định trên Ubuntu 14.04 :-(' -ast -dump' hoạt động rất tốt, bản in chỉ là bản in với một số dòng trống sau đó –

5

Phương pháp với yêu cầu -cc1will have problem with includes và nhận dạng C++.

Đối với phân tích đầy đủ tính năng, sử dụng:

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

Ah, đây là công tắc mà tôi luôn quên Nó in AST với màu sắc đẹp trong Windows ^^ – Cameron

Các vấn đề liên quan