首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flex / Bison:配置yylineno以识别'\r‘为换行符

Flex / Bison:配置yylineno以识别'\r‘为换行符
EN

Stack Overflow用户
提问于 2017-05-31 23:52:24
回答 1查看 801关注 0票数 0

是否有方法配置/修改yylineno以将单个\r (回车)字符识别为换行符?

最后,我想对3种不同类型的文件使用yylineno

  • \n:类Unix
  • \r\n:基于Windows的(将识别为单个换行符,而不是两行,即\r + \n)
  • \r:例如经典Mac

我知道,我能够定义自己的变量,以跟踪Flex中的行号,并在每次找到一个新行字符(\r|\n|\r\n)时增加它,但如果可用,我更愿意使用内置的Flex特性。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 04:36:51

坏消息是flex没有这个功能。行计数根本无法配置,这取决于对模式的静态分析,以查看哪些模式可能与换行符匹配。如果换行符长度超过一个字节,这是不可能的,因为换行符序列可以被分割成两个独立的标记。(如果您正在实现自己的线路计数器,请确保考虑到这一事实。最简单的解决方案是确保令牌不可能在\r之后以\r\n序列结束。)

好消息是,现在\r-terminated文件非常罕见。因此,不处理这些问题的成本可能不会很大。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44296371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档