Tato domácí úloha je určena pro studen, kteří behěm semestru nezískali plný počet bodů za domácí úlohy. Úloha bude hodnocena bodovým ziskem v intervalu (0,4> tak, aby celkový bodobý součet za domácí úkoly nepřesáhl 32 bodů. Termín odevzdání je 20.1. 2008.
Napište třídu PostfixEvaluatorImpl, která bude implementovat rozhraní PostfixEvaluator. Jejím úkolem bude provést vyhodnocení výrazu v postfixové notaci, tj. výrazů ve tvaru:
operand operand operátor
kde operandem může být opět výraz.
Vyhodnocování postfixových výrazů probíhá následovně:
1. Dokud je nějaký element (operand/operátor) na vstupu
2. Pokud je na zásobníku více jak jedna hodnota, jednalo se o nekorektní postfixový výraz a je vyvolána výjimka.
3. Vypíšeme hodnotu, která je na uložena na zásobníku.
Kromě metod popsaných v rozhraní PostfixEvaluatorImp můžete vytvořit libovolný počet neveřejných pomocných metod. Konstruktor má hlavičku:
PostfixEvaluatorImpl(Reader in) throws PostfixException
Příslušná výjimka je vyvolána v případe, že při načítání výrazu došlo k vstup-výstupní chybě. Nezapomeňte výjimce nastavit chybovou zprávu, a pokud je reakcí na jinou výjimku, potom i příčinu.