Napisałem bibliotekę open source, która analizuje uporządkowane dane, ale celowo pomijałem wykrywanie powrotu karetki, ponieważ nie widzę sensu. Dodaje dodatkową złożoność i ogólne koszty dla niewielkiej / zerowej korzyści.
Ku mojemu zdziwieniu użytkownik zgłosił błąd, w którym analizator składni nie działał, a ja odkryłem, że przyczyną problemu było to, że dane używały zakończeń linii CR w przeciwieństwie do LF lub CRLF.
Czy OSX nie używa zakończeń linii w stylu LF od czasu przejścia na platformę uniksową?
Wiem, że istnieją aplikacje takie jak Notepad ++, w których zakończenia linii można zmienić, aby jawnie używać CR, ale nie rozumiem, dlaczego ktoś chciałby to zrobić.
Czy bezpiecznie jest wykluczyć obsługę statystycznie nieistotnego odsetka użytkowników, którzy decydują się (z jakiegokolwiek powodu) na zakończenia linii w starym stylu Mac OS?
Aktualizacja:
Aby to wyjaśnić, obsługa zakończeń linii Windows (tj. CRLF) nie wymaga rozpoznawania tokenów CR. Dla celów wydajności leksyk dopasowuje się na podstawie jednego znaku. Ignorując znaki CR po cichu, token CRLF upraszcza się do LF. W związku z tym sam token CRLF można uznać za anachronizm sam w sobie, ale nie o to chodzi w tym pytaniu.
Ostatnim systemem operacyjnym, który zapewnił wsparcie systemowe dla zakończeń linii w stylu CR, był Mac OS 9 . Jak na ironię, jedyną aplikacją, która nadal używa go jako domyślnej w OSX, jest Microsoft Excel.
CR
nowych linii do bazy kodu. (... a jeśli mocno wierzysz, że tak nie jest, konstrukcja twojego parsera musi być dość gorączkowa)