Tôi muốn viết một dịch giả giữa hai ngôn ngữ, và sau khi đọc một số trên Internet tôi đã quyết định đi với ANTLR. Tôi đã phải học nó từ đầu, nhưng bên cạnh một số rắc rối với việc loại bỏ đệ quy trái mọi thứ đều ổn cho đến bây giờ.ANTLR so với Happy so với các trình tạo phân tích cú pháp khác
Tuy nhiên, hôm nay một số người bảo tôi hãy kiểm tra Happy, trình tạo trình phân tích cú pháp dựa trên Haskell. Tôi không có kiến thức Haskell, vì vậy tôi có thể sử dụng một số lời khuyên, nếu hạnh phúc thực sự tốt hơn so với ANTLR và nếu nó có giá trị học nó.
Cụ thể những gì tôi quan tâm là dịch giả của tôi cần hỗ trợ thay thế macro, mà tôi không biết làm cách nào để thực hiện trong ANTLR. Có lẽ trong Happy này là dễ dàng hơn để làm gì?
Hoặc nếu nghĩ rằng các trình tạo trình phân tích cú pháp khác thậm chí còn tốt hơn, tôi rất vui khi được nghe về chúng.
Nếu bạn có thể nói, thông tin hữu ích nhất mà bạn có thể cung cấp ngay bây giờ là trả lời cho "Ngôn ngữ nguồn và ngôn ngữ đích là gì?" –
@ 280Z28 Chúng là ngôn ngữ được tạo trong nhà. Chúng có phần tương tự như Java, với sự khác biệt là một lớp có thể chứa các định nghĩa macro và sau đó bên trong các phương thức mà các macro cần được mở rộng. – Gabriel
Trong khi đó tôi đã tìm ra rằng vấn đề của tôi đơn giản hơn tôi nghĩ ban đầu. Tôi quản lý để làm điều đó với ANTLR, trong lexer, vì vậy không cần phải khẩn trương tìm hiểu Happy hoặc máy phát điện khác ngay bây giờ. – Gabriel