Tôi có ý tưởng cho một dự án sở thích thực hiện một số phân tích và thao tác mã. Dự án này sẽ yêu cầu cả hai cây cú pháp cụ thể và trừu tượng của một tệp nguồn đã cho. Ngoài ra, các tham chiếu hai chiều giữa hai cây sẽ hữu ích. Tôi muốn tránh việc sao chép một ngữ pháp để xây dựng từ vựng và trình phân tích cú pháp của riêng tôi.Định dạng chuẩn cho cây cú pháp cụ thể và trừu tượng
Có định dạng chuẩn để mô tả cây cú pháp cụ thể hoặc trừu tượng không? Có bất kỳ chuỗi công cụ được sử dụng rộng rãi nào hỗ trợ xuất ra các định dạng này không?
Tôi không có một ngôn ngữ lập trình mục tiêu cụ thể nào. Bất kỳ một trong những phổ biến sẽ làm cho một mẫu thử nghiệm, nhưng tôi muốn một trong những tôi cũng biết: Python, C#, Javascript, hoặc C/C + +.
Tôi muốn có khả năng chạy tệp nguồn thông qua công cụ hoặc thư viện và lấy lại cả hai cây. Trong một thế giới lý tưởng, nó sẽ là thực tế để chạy công cụ này trên mã như nó đang được chỉnh sửa bởi một người sử dụng và được khoan dung của các lỗi. Một lần nữa, tôi chỉ đơn giản là cố gắng để phát triển một nguyên mẫu, vì vậy các yêu cầu này là khá lỏng lẻo.
Cảm ơn!
Câu trả lời ANTLR từ @vs là hấp dẫn, nhưng định dạng chuẩn bỏ qua độ phức tạp tạo mã có thể thích hợp hơn. Tôi sẽ đợi một ngày trước khi đánh dấu câu trả lời. –