ExercĂcio: Reescrevendo com Result
O seguinte implementa um analisador muito simples para uma linguagem de expressĂŁo. No entanto, ele lida com erros disparando um pĂąnico. Reescreva-o para usar o tratamento de erros idiomĂĄtico e propagar erros para um retorno de main
. Sinta-se Ă vontade para usar thiserror
e anyhow
.
DICA: comece corrigindo o tratamento de erros na função parse
. Depois que isso estiver funcionando corretamente, atualize Tokenizer
para implementar Iterator<Item=Result<Token, TokenizerError>>
e trate isso no analisador (parser).