t_error()函数用于处理在检测到非法字符时发生的词法分析错误。我的问题是:我如何使用此函数获取有关错误更具体的信息?例如错误类型,错误出现在哪个规则或部分中等等。
t_error()函数用于处理在检测到非法字符时发生的词法分析错误。我的问题是:我如何使用此函数获取有关错误更具体的信息?例如错误类型,错误出现在哪个规则或部分中等等。
在 PLY 中确实有一种管理错误的方法,请看这个非常有趣的演示:
http://www.slideshare.net/dabeaz/writing-parsers-and-compilers-with-ply
并且在第6.8.1章节中
def t_error(t):
t.type = t.value[0]
t.value = t.value[0]
t.lexer.skip(1)
return t
在该函数中,您还可以访问词法分析器的公共属性:
还有一些其他属性没有列为公共属性,但可能提供一些有用的诊断信息: