如何从grako / TatSu获取简明的语法错误消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从grako / TatSu获取简明的语法错误消息相关的知识,希望对你有一定的参考价值。

如果对grako / tatsu生成的解析器的输入有语法错误,例如3 + / 3到calc.py示例,除了相关的 3 + / 3 ^ 之外,我还可以使用try - except构造获得一长串的Python调用序列,但之后我丢失错误消息的相关部分。

我想使用grako / tatsu来解析规则编译器的语法规则,我很欣赏以清晰的方式分离语法和语义的可能性。用户会对过多的错误消息感到非常恼火。有没有办法清理错误信息?

答案

这应该与任何Python程序中的相同。如果让异常转义为main(),则将打印堆栈跟踪。相反,你可以写:

try:
   do_parse()
except Exception as e:
  print(str(e))

以上是关于如何从grako / TatSu获取简明的语法错误消息的主要内容,如果未能解决你的问题,请参考以下文章

简明binlog event解析

markdown简明语法

简明Python教程学习笔记9

如何调试“您的 SQL 语法有错误”

如何从这种错误的 JSON 格式中获取所需的数据?

Cmd Markdown 简明语法手册