Tôi muốn tạo mã C. Tôi sẽ không được đọc từ một tập tin đầu vào, một dòng tại một thời điểm (ví dụ, một trình biên dịch có thể). Thay vào đó, tôi sẽ phân tích cú pháp đầu vào của người dùng khi nó đến, một dòng tại một thời điểm.Tìm kiếm ví dụ xử lý lỗi ANTLR rất đơn giản khi tạo mã C
Tôi muốn để phát hiện và xử lý đầu vào xấu trong lexer/phân tích cú pháp, ví dụ như
/* lexer tokens */
foo : "FOO";
bar : "BAR";
baz : "BAZ";
/* grammar*/
grammar : foo "=" BAZ
| foo "=" BAR
| <some non-existent Antrl-else> : {printf(stderr, "bad input\n");}
;
OK, nếu tôi không thể bắt nó trong lexer/phân tích cú pháp, nó có vẻ như tôi cần phải sử dụng displayRecognitionError()
nhưng bằng cách nào??
Có ai có thể chỉ cho tôi một ví dụ rất đơn giản tạo mã C và hiển thị một số lỗi xử lý đầu vào không hợp lệ không?
Cảm ơn!
Ok, tiền thưởng, yippee!
Nhưng chỉ cho câu trả lời thực sự, hoạt động, với mã thực, đang hoạt động. Không có "phương thức sử dụng X()" mà không có wxample.
FYI: số tiền thưởng đó sẽ trả lời nhiều nhất sau khi hết hạn, bất kể bạn có chấp nhận câu trả lời hay không. –
Có lẽ chủ đề này là trợ giúp: http://markmail.org/message/pumvrybnhvfme5h6#query:rulecatch%20antlr%20c+page:1+mid:3jjjdzbecknrq644+state:results (lưu ý các câu trả lời khác nhau được đăng cho câu hỏi đó!) –
Tôi thấy bạn đang sử dụng printf trong ví dụ của bạn. Là ngôn ngữ bạn đang sử dụng C hoặc C++? – chollida