Ho scritto una libreria open source che analizza i dati strutturati ma intenzionalmente ha escluso il rilevamento del ritorno a capo perché non vedo il punto. Aggiunge ulteriore complessità e costi generali per un beneficio scarso / nullo.
Con mia sorpresa, un utente ha inviato un bug in cui il parser non funzionava e ho scoperto che la causa del problema era che i dati utilizzavano terminazioni di riga CR anziché LF o CRLF.
OSX non utilizza i terminali di linea in stile LF da quando è passato a una piattaforma basata su unix?
So che ci sono applicazioni come Notepad ++ in cui i finali di linea possono essere modificati per usare esplicitamente CR ma non vedo perché qualcuno vorrebbe.
È sicuro escludere il supporto per la percentuale statisticamente insignificante di utenti che decidono (per qualsiasi motivo) i vecchi terminali di linea in stile Mac OS?
Aggiornare:
Per chiarire, il supporto dei finali di linea di Windows (ad es. CRLF) non richiede il riconoscimento di token CR. Ai fini dell'efficienza, il lexer corrisponde in base al carattere. Ignorando silenziosamente i caratteri CR, il token CRLF si semplifica in LF. Come tale, il token CRLF stesso potrebbe essere considerato un anacronismo tutto suo, ma non è questo il problema.
L'ultimo sistema operativo che ha fornito supporto a livello di sistema per i finali di linea in stile CR è stato Mac OS 9 . Ironia della sorte, l'unica applicazione che la utilizza ancora come predefinita in OSX è Microsoft Excel.
CR
nuove righe nella tua base di codice. (... e se credi fermamente che non sia così, il design del tuo parser deve essere piuttosto frenetico)