出现错误时停止程序执行

时间:2016-02-07 21:02:00

标签: lex

我想在遇到一些错误时停止执行程序。 使用lex时如何做到这一点?我可以调用正常的C出口,如:

exit( status );

还是有更简洁的方式与Lex一起做吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做 - 但是:

  • 只是将消息打印到标准错误并退出是lex在遇到致命错误时所做的事情,例如缓冲区分配问题。例如,参见YY_FATAL_ERROR,它用于此目的。它可以被覆盖,例如,错误 recovery 例程。
  • 典型词法分析器不会因错误而退出:它会将状态信息返回给解析器,该解析器决定状态是否合法。

如果你的词法分析器充当解析器,那么退出词法分析器就有意义了。

进一步阅读: