2011-12-14 23 views
11

Tôi đang sử dụng Happy để tạo trình phân tích cú pháp.Ghi đè "Lỗi nội bộ hạnh phúc" - notHappyAtAll

Tôi nhận thấy rằng khi tôi cung cấp mã thông báo khớp với một phần ngữ pháp ở cấp độ thấp hơn cấp cao nhất (chẳng hạn như biểu hiện nó, không phải là một phần của tuyên bố), tôi nhận được "Lỗi nội bộ hạnh phúc" thay vì lỗi phân tích cú pháp.

Có cách nào để ghi đè notHappyAtAll để tôi có thể in thông báo lỗi tốt hơn "Lỗi nội bộ hạnh phúc" không? Rõ ràng là khác hơn là thay đổi tệp phân tích cú pháp được tạo tự động vì tôi phải thực hiện nó mỗi khi tôi cập nhật ngữ pháp.

+1

Có thể trợ giúp [tài liệu hạnh phúc] (http://haskell.org/happy/doc/html/sec-monads.html#sec-exception)? Disclaimer: có thể họ không. –

+0

Nếu bạn muốn khớp "các đoạn" thay vì luôn là cấp cao nhất của ngữ pháp, bạn sẽ cần nhiều biểu tượng bắt đầu - xem phần 2.7 của hướng dẫn sử dụng Happy. –

+0

Bạn đã xác định chỉ thị lỗi ở đầu ngữ pháp của mình chưa? Điều này sẽ có dạng '% error {parseError}' - 'parseError' là một hàm do người dùng định nghĩa. Xem Chương 2 của sổ tay. –

Trả lời

1

Sự cố này dường như đã được khắc phục trong Happy 1.18.7.

Các vấn đề liên quan