【问题标题】:How to change error behavior of Flex lexer?如何改变 Flex 词法分析器的错误行为?
【发布时间】:2013-12-27 20:07:58
【问题描述】:

我已经用 Flex 构建了一个词法分析器。但是有一个主要问题:Flex 默认会生成这个错误方法:

void yyFlexLexer::LexerError( yyconst char msg[] )
{
    std::cerr << msg << std::endl;
    exit( YY_EXIT_FAILURE );
}

这意味着每次出现语法错误时,我的应用程序都会退出。当然这不是我想要的,因为即使输入错误,我也需要一遍又一遍地调用词法分析器。

有没有办法改变 Flex 对此的行为?

【问题讨论】:

    标签: yacc flex-lexer lexer bisonc++


    【解决方案1】:

    解决了!我刚刚在 .l 文件的顶部添加了一个简单的“#define YY_FATAL_ERROR”。 这将确保 Flex 不会调用 LexerError 方法,因此应用程序不会退出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-13
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多