我编写了一个开放源代码库,该库可以解析结构化数据,但由于看不到要点,因此特意省去了回车检测。它增加了额外的复杂性和开销,几乎没有好处。
令我惊讶的是,一个用户提交了一个错误,解析器无法正常工作,我发现了问题的原因是数据使用CR行尾而不是LF或CRLF。
自从切换到基于UNIX的平台以来,OSX一直没有使用LF样式的行尾吗?
我知道有些应用程序(例如Notepad ++)可以将行尾更改为显式使用CR,但我不明白为什么有人要这样做。
是否可以安全地排除支持(无论出于何种原因)决定使用旧Mac OS样式行尾的用户的统计上微不足道的支持?
更新:
需要说明的是,支持Windows行尾(即CRLF)不需要CR令牌识别。为了提高效率,词法分析器按每个字符进行匹配。通过静默忽略CR字符,CRLF令牌简化为LF。因此,CRLF令牌本身可以被认为是过时的,但这不是这个问题的目的。
最后一个为CR样式行结尾提供系统范围支持的操作系统是Mac OS 9。具有讽刺意味的是,在OSX中唯一仍将其用作默认值的应用程序是Microsoft Excel。
CR
代码库中增加对换行符的支持。(...如果您坚信事实并非如此,则解析器的设计必须非常忙碌)