Tôi đang tìm cách viết một bộ lọc nhập khẩu Python hoặc bộ tiền xử lý cho các tệp nguồn về cơ bản là Python với các phần tử ngôn ngữ phụ. Mục đích là đọc tệp nguồn, phân tích cú pháp nó thành một cây cú pháp trừu tượng, áp dụng một số biến đổi để thực hiện các phần mới của ngôn ngữ, và viết nguồn Python hợp lệ mà sau đó có thể được CPython tiêu thụ. Tôi muốn viết điều này bằng Python và đang tìm trình phân tích cú pháp tốt nhất cho tác vụ.Trình phân tích cú pháp Python cho ngôn ngữ giống như Python
Trình phân tích cú pháp được tích hợp vào Python không thích hợp vì nó yêu cầu tệp nguồn là Python thực tế, những tệp này sẽ không có. Có rất nhiều trình phân tích cú pháp (hoặc trình tạo phân tích cú pháp) sẽ làm việc với Python, nhưng thật khó để nói đó là gì tốt nhất cho các nhu cầu của tôi mà không có một bó toàn bộ nghiên cứu.
Nói tóm lại, yêu cầu của tôi là:
- Parser được viết bằng Python hoặc đã gán Python.
- Đi kèm với ngữ pháp Python mà tôi có thể tinh chỉnh hoặc có thể dễ dàng sử dụng ngữ pháp Python có thể tinh chỉnh ở những nơi khác (chẳng hạn như http://docs.python.org/reference/grammar.html).
- Có thể tái tuần tự hóa AST sau khi chuyển đổi.
- Không nên quá khủng khiếp khi làm việc với API khôn ngoan.
Mọi đề xuất?
Chỉ cần được rõ ràng: Ngôn ngữ bạn muốn phân tích thậm chí không * phân tích cú pháp * như Python tinh khiết. Chính xác? –
Bạn đã cân nhắc xem xét PyYAML chưa? – inspectorG4dget
@SvenMarnach: Đúng vậy. – kindall