Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个词法分析器,我希望它能够输出有意义且准确的错误消息。就像发生错误的确切行和列一样。编写词法分析器时处理错误的适当方法是什么?
您使用什么工具进行词法分析?我对Flex有点了解,我就把我知道的写下来,也许对你或其他人有帮助。
Flex 是一种常用于生成词法分析器的工具。无需从头开始编写,您只需告诉它您的标记如何(使用正则表达式),它会生成一个 C 程序,该程序会从输入字符流中提供标记流。
它很容易学习,这里有一个很好的教程。学习后,您将能够轻松报告错误。
关于行号,Flex 定义了一个名为的变量yylineno,它保存当前行号。对于列号,这可能会有所帮助。
yylineno