【问题标题】:How to write portable code given lex/ flex code incompatibilities如何在给定 lex/flex 代码不兼容的情况下编写可移植代码
【发布时间】:2011-12-15 08:29:53
【问题描述】:

Flex 在某种程度上是 Lex 程序的免费实现,尽管它们之间存在一些不兼容之处。

例如,Lex 将当前行存储到全局变量 yylineno 中,而在 flex 中要访问它,您应该添加代码 %option yylineno

知道 Lex 无法识别 %option 标签是否可以编写可移植代码?
更新:

lex:软件生成实用程序 (SGU) Solaris-ELF (4.0)

弹性版本 2.5.2

【问题讨论】:

  • 请准确说明您的 Lex 和 Flex 版本。
  • lex:软件生成实用程序 (SGU) Solaris-ELF (4.0)
  • 从我的角度来看(几乎没有 Solaris 的经验,我在 2007 年玩过 Solaris Express Developer Edition 和 OpenSolaris),恐怕 Solaris Lex 不是主流。请相应地编辑您的问题以帮助人们回答。

标签: portability lex flex-lexer


【解决方案1】:

在这种情况下我几乎找到了解决方案,根据这个link,要激活全局变量yylineno,你应该在执行flex时添加-l选项,这样你不必在代码中添加%option,这样你就有了flex和lex兼容的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2021-10-08
    • 2021-02-03
    相关资源
    最近更新 更多