Tôi đã viết một thư viện mã nguồn mở để phân tích dữ liệu có cấu trúc nhưng cố tình bỏ qua phát hiện trả lại vận chuyển vì tôi không thấy điểm này. Nó thêm sự phức tạp và chi phí bổ sung cho ít / không có lợi ích.
Thật ngạc nhiên, một người dùng đã gửi một lỗi trong đó trình phân tích cú pháp không hoạt động và tôi đã phát hiện ra nguyên nhân của vấn đề là dữ liệu đã sử dụng các kết thúc dòng CR trái ngược với LF hoặc CRLF.
Không phải OSX đã sử dụng các kết thúc dòng kiểu LF kể từ khi chuyển sang nền tảng unix?
Tôi biết có những ứng dụng như Notepad ++ nơi kết thúc dòng có thể được thay đổi để sử dụng CR một cách rõ ràng nhưng tôi không hiểu tại sao mọi người muốn.
Có an toàn để loại trừ hỗ trợ cho tỷ lệ phần trăm không đáng kể về mặt thống kê của người dùng quyết định (vì bất kỳ lý do gì) cho các kết thúc dòng kiểu Mac OS cũ không?
Cập nhật:
Để làm rõ, việc hỗ trợ các kết thúc dòng Windows (ví dụ CRLF) không yêu cầu nhận dạng mã thông báo CR. Đối với mục đích hiệu quả, lexer phù hợp trên cơ sở mỗi char. Bằng cách âm thầm bỏ qua các ký tự CR, mã thông báo CRLF đơn giản hóa thành LF. Do đó, bản thân mã thông báo CRLF có thể được coi là lỗi thời nhưng không phải là câu hỏi này.
HĐH cuối cùng cung cấp hỗ trợ toàn hệ thống cho các kết thúc dòng kiểu CR là Mac OS 9 . Trớ trêu thay, ứng dụng duy nhất vẫn sử dụng nó làm mặc định trong OSX là Microsoft Excel.
CR
dòng mới vào cơ sở mã của bạn. (... và nếu bạn tin chắc rằng đây không phải là trường hợp, thiết kế trình phân tích cú pháp của bạn phải khá sôi nổi)