Chúng tôi có những điều sau phụ một phần của ngữ pháp ANTLR:Xử lý lỗi ANTLR Cú pháp hoặc làm thế nào để đưa ra một thông điệp tốt hơn trên bất ngờ thẻ
signed_int
: SIGN? INT
;
INT : '0'..'9'+
;
Khi ai đó bước vào một giá trị số tất cả mọi thứ là tốt, nhưng nếu họ nhầm gõ cái gì đó như 1o (một và o vốn), chúng tôi nhận được một thông báo lỗi khó hiểu như:
error 1 : Missing token at offset 14
near [Index: 0 (Start: 0-Stop: 0) ='<missing COLON>' type<24> Line: 26 LinePos:14]
: syntax error...
một cách tốt để xử lý loại hình này lỗi là gì? Tôi đã nghĩ đến việc xác định loại mã thông báo SYMBOL bắt giữ nhưng điều này dẫn đến quá nhiều lỗi xây dựng phân tích cú pháp . Tôi sẽ tiếp tục xem xét xử lý lỗi Antlr nhưng tôi nghĩ rằng tôi sẽ đăng bài này ở đây để tìm kiếm một số thông tin chi tiết.