Я написал библиотеку с открытым исходным кодом, которая анализирует структурированные данные, но намеренно исключил обнаружение возврата каретки, потому что не вижу смысла. Это добавляет дополнительную сложность и накладные расходы для небольшой выгоды.
К моему удивлению, пользователь представил ошибку, из-за которой анализатор не работал, и я обнаружил, что причиной проблемы было то, что данные использовали окончания строки CR, а не LF или CRLF.
Разве OSX не использовала окончания LF в стиле после перехода на Unix-платформу?
Я знаю, что есть приложения, такие как Notepad ++, в которых окончания строк могут быть изменены для явного использования CR, но я не понимаю, почему кто-то захочет.
Безопасно ли исключать поддержку статистически незначительного процента пользователей, которые решают (по какой-либо причине) использовать линейные окончания старого стиля Mac OS?
Обновить:
Для пояснения, поддержка окончания строки Windows (например, CRLF) не требует распознавания маркера CR. В целях эффективности лексер сопоставляется отдельно для каждого символа. Незаметно игнорируя символы CR, токен CRLF упрощается до LF. Таким образом, сам по себе токен CRLF можно считать анахронизмом, но вопрос не в этом.
Последней ОС, которая обеспечивала общесистемную поддержку концов строк в стиле CR, была Mac OS 9 . По иронии судьбы, единственное приложение, которое по-прежнему использует его по умолчанию в OSX, - это Microsoft Excel.
CR
новых строк в вашу кодовую базу. (... и если вы твердо уверены, что это не так, дизайн вашего парсера должен быть довольно беспокойным)