Как получить краткие сообщения об ошибках синтаксиса от 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))
Другие вопросы по тегам