Как получить краткие сообщения об ошибках синтаксиса от grako/TatSu
Если вход в парсер, сгенерированный grako/tatsu, имеет синтаксическую ошибку, такую как 3 + / 3
к примерам calc.py можно получить длинный список вызывающих последовательностей Python в дополнение к соответствующим
3 + / 3
^
Я мог бы использовать try
- except
конструкции, но затем я теряю соответствующую часть сообщения об ошибке.
Я хотел бы использовать grako/tatsu для разбора грамматических правил для компилятора правил, и я ценю возможность четкого разделения синтаксиса и семантики. Пользователи были бы весьма раздражены чрезмерными сообщениями об ошибках. Есть ли способ для чистых сообщений об ошибках?
1 ответ
Это должно быть так же, как в любой программе Python. Если вы позволите исключению сбежать main()
затем будет напечатана трассировка стека. Вместо этого вы можете написать:
try:
do_parse()
except Exception as e:
print(str(e))