ฉันเขียนไลบรารีโอเพนซอร์ซที่แยกวิเคราะห์ข้อมูลที่มีโครงสร้าง แต่ตั้งใจออกจากการตรวจจับการรับคืนของการขนส่งเนื่องจากฉันไม่เห็นจุดนั้น มันเพิ่มความซับซ้อนและค่าใช้จ่ายเพิ่มเติมเพื่อผลประโยชน์เพียงเล็กน้อย / ไม่มีเลย
ด้วยความประหลาดใจของฉันผู้ใช้ส่งข้อผิดพลาดที่ parser ไม่ทำงานและฉันค้นพบสาเหตุของปัญหาคือข้อมูลที่ใช้ปลายสาย CR ตรงข้ามกับ LF หรือ CRLF
OSX ไม่ได้ใช้การสิ้นสุดไลน์สไตล์ LF ตั้งแต่เปลี่ยนไปใช้แพลตฟอร์มที่ใช้ระบบปฏิบัติการยูนิกซ์หรือไม่?
ฉันรู้ว่ามีแอปพลิเคชั่นเช่น Notepad ++ ซึ่งสามารถเปลี่ยนจุดสิ้นสุดของบรรทัดเพื่อใช้ CR ได้อย่างชัดเจน แต่ฉันไม่เห็นว่าทำไมใครต้องการ
จะปลอดภัยไหมที่จะไม่รวมการสนับสนุนสำหรับผู้ใช้จำนวนเปอร์เซ็นต์ที่ไม่มีนัยสำคัญทางสถิติที่ตัดสินใจ (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) กับการสิ้นสุดไลน์สไตล์ Mac OS เก่า?
ปรับปรุง:
ในการชี้แจงการสนับสนุนการสิ้นสุดบรรทัด Windows (เช่น CRLF) ไม่จำเป็นต้องมีการรับรู้โทเค็น CR สำหรับวัตถุประสงค์ด้านประสิทธิภาพ lexer จะทำการจับคู่แบบต่อหน่วย ด้วยการละเว้นตัวอักษร CR เงียบ ๆ โทเค็น CRLF จะทำให้ LF ง่ายขึ้น ด้วยเหตุนี้โทเค็น CRLF เองจึงถูกพิจารณาว่าเป็นสิ่งผิดปกติในตัวของมันเองทั้งหมด แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ
ระบบปฏิบัติการที่ผ่านมาว่าให้การสนับสนุนทั้งระบบสำหรับ CR สไตล์ปลายสายเป็นระบบปฏิบัติการ Mac OS 9 แดกดันมีเพียงแอปพลิเคชันเดียวที่ยังคงใช้เป็นค่าเริ่มต้นใน OSX คือ Microsoft Excel
CR
บรรทัดใหม่เพื่อสนับสนุนcodebase ของคุณ (... และถ้าคุณเชื่อมั่นอย่างนี้ไม่เป็นเช่นนั้นการออกแบบตัวแยกวิเคราะห์ของคุณจะค่อนข้างวุ่นวาย)