Chúng ta cần tạo mã nguồn Java. Chúng tôi làm điều này bằng cách mô hình hóa cây cú pháp trừu tượng và có một khung cây tạo ra văn bản mã nguồn thực tế. Điều này tất cả đều tốt.Tạo mã phân tích cú pháp java và đánh giá nó để thử nghiệm
Kể từ khi mã AST của tôi hơi cũ, nó không có hỗ trợ cho chú thích và generics. Vì vậy, tôi đang tìm kiếm các dự án mở để sử dụng cho các dự án tương lai có nhu cầu tạo mã. Và đây là nơi vấn đề thực sự xuất hiện. Chúng tôi muốn kiểm tra xem mã được tạo có hành vi đúng hay không.
Đây là nơi tôi có ý tưởng thực sự đánh giá AST thay vì tạo mã nguồn java, biên dịch nó và chạy thử nghiệm đối với mã đó. Một người đánh giá sẽ tăng tốc các bài kiểm tra đơn vị, và người ta có thể đánh giá các phần nhỏ hơn của mã được tạo ra, chẳng hạn như chỉ một phương pháp, làm cho "các đơn vị" hợp lý hơn.
Cho đến nay tôi đã tìm thấy dự án com.sun.codemodel mà có vẻ khá tốt đẹp như là một hiện đại (hỗ trợ cho java5 và 6 tính năng) AST dựa trên giải pháp tạo mã.
Bất cứ ai cũng biết nếu có một dự án khác cho phép tôi đánh giá trực tiếp các phần của AST (chẳng hạn như một phương thức được tạo)?
+1 câu hỏi thú vị, chúng tôi muốn câu trả lời ngay bây giờ :-) – KLE
Tôi chỉ tạo mã cho phương thức đó, biên dịch và thử nghiệm. Việc tạo một thông dịch viên là khá nhiều công việc. –
là không có tùy chọn để làm cho cây javac phát ra cây phân tích và đại diện trung gian và các công cụ? (loại độ phân giải, tra cứu lớp học, bất cứ điều gì Ira Baxter nói trong câu trả lời của họ). –