我正在编写一个词法分析器,我希望它能输出有意义和准确的错误消息。就像发生错误的确切的行和列一样。在编写词法分析器时,处理错误的适当方法是什么?
发布于 2013-04-25 06:23:45
你用什么工具进行词法分析?我知道一个小小的Flex,我会把我知道的写下来,也许这对你或者其他人有帮助。
Flex是一种常用的生成词法分析器的工具。与从头编写一个标记不同,您只需要告诉它令牌是如何的(使用正则表达式),它将生成一个C程序,它从输入字符流中生成一个令牌流。
它容易学习,这里有一个好的教程。在学习它之后,您将能够很容易地报告错误。
关于行号,Flex定义了一个名为yylineno的变量,它保存当前行号。对于列号,这可能会有所帮助。
https://stackoverflow.com/questions/15232093
复制相似问题