我正在写一个词法分析器,我希望它输出有意义且准确的错误消息。就像发生错误的确切行和列一样。编写词法分析器时处理错误的适当方法是什么?

最佳答案

您使用什么工具进行词法分析?我知道一点 Flex ,我将其写下来,可能对您或其他人有帮助。

Flex是通常用于生成词法分析器的工具。无需从头开始编写一个 token ,只需告诉它 token 的状态(使用正则表达式),它将生成一个C程序,该程序从输入字符流中提供 token 流。

它很容易学习,这是一个很好的tutorial。学习之后,您将能够轻松地报告错误。

关于行号,Flex定义了一个名为yylineno的变量,该变量保存当前行号。对于列号,this可能会有所帮助。

10-06 02:21