标签: compiler-errors compiler-warnings lexical-analysis
我正在写一个词法分析器,我希望它能输出有意义且准确的错误信息。就像发生错误的确切行和列一样。在编写词法分析器时,处理错误的适当方法是什么?
答案 0 :(得分:2)
您使用哪些工具进行词法分析?我知道一点 Flex ,我会把它写下来,我知道,也许它对你或其他人有帮助。
Flex是一种常用于生成词法分析器的工具。您只需要告诉它令牌是如何(使用正则表达式)而不是从头开始编写,它将生成一个C程序,它从输入字符流中提供一个令牌流。
这很容易学习,这是一个很好的tutorial。学习之后,您将能够轻松报告错误。
关于行号,Flex定义了一个名为yylineno的变量,它保存当前行号。对于列号,this可能有帮助。
yylineno