Вправа: Переписування с Result
Нижче реалізовано дуже простий синтаксичний аналізатор для мови виразів. Однак, він обробляє помилки панічно. Перепишіть його так, щоб він використовував ідіоматичну обробку помилок і поширював помилки на повернення з main
. Сміливо використовуйте thiserror
і anyhow
.
Підказка: почніть з виправлення обробки помилок у функції
parse
. Після того, як вона буде працювати коректно, оновітьTokenizer
для реалізаціїIterator<Item=Result<Token, TokenizerError>>
і обробіть це у парсері.