如果对grako/tatsu生成的解析器的输入有语法错误(比如3 + / 3到calc.py示例),那么除了相关的3 + / 3 ^ (我可以使用try - except构造)之外,还会得到一个长列表的3 + / 3 ^调用序列,但是我也会丢失错误消息的相关部分。
我想使用grako/tatsu来解析规则编译器的语法规则,并且我很欣赏以一种清晰的方式分离语法和语义的可能性。用户会对过多的错误消息感到非常恼火。是否有一种清除错误信息的方法?
发布于 2018-03-03 15:13:45
这应该与任何Python程序相同。如果让异常转义为main(),则会打印堆栈跟踪。相反,你可以写:
try:
do_parse()
except Exception as e:
print(str(e))https://stackoverflow.com/questions/49005605
复制相似问题