تمرین: بازنویسی با Result
در زیر یک تجزیهکننده بسیار ساده برای یک زبان عبارت پیادهسازی میکند. با این حال، با panic خطاها را کنترل میکند. آن را بازنویسی کنید تا به جای آن از مدیریت خطای اصطلاحی استفاده کنید و خطاها را به بازگشت از main
منتشر کنید. با خیال راحت از thiserror
و anyhow
استفاده کنید.
نکته: با رفع خطا در عملکرد parse
شروع کنید. هنگامی که به درستی کار کرد، Tokenizer
را برای پیادهسازی Iterator<Item=Result<Token, TokenizerError>>
بهروزرسانی کنید و آن را در parser کنترل کنید.