2011-07-07 26 views
10

Những người khác đã gặp vấn đề sau mà tôi gặp phải nhưng tôi không thể tìm thấy bất kỳ ai đã báo cáo giải pháp .. nhận Flex để phát hiện EOF (kết thúc tệp). Tôi cần Flex để tìm EOF và trả lại một mã thông báo cho biết rằng nó đã tìm thấy nó để nó có thể cho Yacc/Bison biết rằng nó đã đến cuối tệp nguồn đầu vào và có thể báo cáo một phân tích cú pháp thành công.Lex/Flex - Quét cho ký tự EOF

Lưu ý rằng this question không giống như cái này vì đây là về Lex/Flex.

Mọi trợ giúp đều tuyệt vời. Cảm ơn bạn.

+1

Đã xảy ra lỗi ở đây. Bạn thường không cần phải làm điều này. Chỉ cần viết một biểu tượng mục tiêu vào ngữ pháp của bạn và tất cả đều được quan tâm. – EJP

+0

@EJP: Bạn có thể làm một ví dụ nhỏ không? Tôi là một người mới trong Flex/Bison. Làm thế nào để đạt được điều này như là một quy tắc ngữ pháp đơn giản? Thankyou – Andry

+0

@EJP, khi nhập từ bàn phím thực, Ctrl-Z được chuyển tới chương trình, gây ra lỗi cú pháp. Tôi không thể bắt nó bằng những thứ như/x1a nhưng <> hoạt động. – user34660

Trả lời

21

Flex có <<EOF>> mẫu chỉ khớp với phần cuối của tệp. Có thể bạn có thể trả về một số mã thông báo cho biết tệp cuối cùng của trình phân tích cú pháp như sau.

<<EOF>>  return END_OF_FILE; 
Các vấn đề liên quan