如何从 grako/TatSu 获取简明的语法错误信息
How to get concise syntax error messages from grako/TatSu
如果 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))
如果 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))