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?
20
A
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.
5
Phương pháp với yêu cầu -cc1
will 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
- 1. AST cho nhiều tệp nguồn với clang
- 2. Đối số in của một hàm sử dụng Clang AST
- 3. Clang: AST (cây cú pháp trừu tượng) trông như thế nào?
- 4. Làm thế nào để nạp Visual Studio Clang-Format plugin với tệp định dạng clang?
- 5. Làm thế nào để liên kết libstdC++ tĩnh với clang ++
- 6. Lấy nguồn đằng sau AST
- 7. Làm thế nào để chuyển đổi mã nguồn thành biểu diễn dựa trên xml của ast?
- 8. Làm thế nào để thực hiện thay thế mẫu trong thư viện clang?
- 9. Làm cách nào để biên dịch C++ bằng Clang?
- 10. Làm thế nào để làm cho một đầu mối clang sạch?
- 11. Làm thế nào để sử dụng clang để biên dịch OpenCL thành mã ptx?
- 12. làm thế nào để sử dụng llvm + clang để biên dịch cho stm32
- 13. API để so sánh AST?
- 14. Parse HQL để cấu AST và chuyển đổi AST trở lại HQL
- 15. Làm thế nào để cập nhật LLVM & Clang trên Mac OSX?
- 16. Làm thế nào để biên dịch/liên kết Boost với clang ++/libC++?
- 17. Làm thế nào để cài đặt clang 3.1 bằng macports? (OSX, báo tuyết)
- 18. Làm thế nào để xác định macro với nhiều pragma cho Clang?
- 19. Làm thế nào để đối phó với cảnh báo toàn cầu-constructor trong clang?
- 20. Làm thế nào để sử dụng tùy chọn cfg-dump với Clang 3.0?
- 21. Làm thế nào để cài đặt CLang bằng cách sử dụng nhị phân biên dịch sẵn?
- 22. Sử dụng AST Eclipse
- 23. Trong cmake, làm thế nào tôi có thể kiểm tra nếu trình biên dịch là Clang?
- 24. Nhận AST cho C++?
- 25. Python ast to dot graph
- 26. Scala AST trong Scala
- 27. In OCaml AST dưới dạng Mã OCaml
- 28. Thay thế cho -pg bằng Clang?
- 29. Tạo .pyc từ Python AST?
- 30. Tôi làm cách nào để biên dịch AST CoffeeScript thành CoffeeScript thay vì JavaScript?
máy in XML không còn được hỗ trợ. Xem http://llvm.org/viewvc/llvm-project?view=revision&revision=127141 –
'-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 đó –