如果grako/tatsu生成的解析器的输入存在语法错误,例如calc.py示例中的3 + / 3
,则除了相关的相关内容外,还会获得一长串Python调用序列
3 + / 3
^
我可以使用try
-except
构造,但随后我也会丢失错误消息的相关部分。
我想使用grako/tatsu来解析规则编译器的语法规则,并且我很欣赏以清晰的方式分离语法和语义的可能性。用户会非常讨厌过多的错误消息。有没有清除错误消息的方法?
最佳答案
这应该与任何Python程序中的相同。如果让异常转义main()
,则将打印堆栈跟踪。相反,您可以编写:
try:
do_parse()
except Exception as e:
print(str(e))
关于error-handling - 如何从grako/TatSu获取简洁的语法错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49005605/