Scenariusz na lab 8 Kalkulator stosowy to maszyna, na ktĂłrej moĹźna zadaÄ ciÄ g instrukcji. Maszyna w kaĹźdym momencie posiada stos liczb, poczÄ tkowo pusty. Operacje sÄ nastÄpujÄ ce: PUSH <liczba> --- wrzuca na wierzch stosu nowÄ liczbÄ (moĹźna zaĹoĹźyÄ, Ĺźe jest nieujemna) POP --- zrzuca najwyĹźszÄ liczbÄ. ADD --- zrzuca dwie najwyĹźsze liczby i wrzuca ich sumÄ. SUB --- zrzuca dwie najwyĹźsze liczby i wrzuca ich róşnicÄ (najwyĹźsza minus druga). MUL --- zrzuca dwie najwyĹźsze liczby i wrzuca ich iloczyn. DIV --- zrzuca dwie najwyĹźsze liczby i wrzuca ich iloraz (najwyĹźsza przez druga). NEG --- zrzuca najwyĹźszÄ liczbÄ i wrzuca jej liczbÄ przeciwnÄ . W ten sposĂłb, program to string z kolejnymi instrukcjami, przedzielonymi biaĹymi znakami. Zaimplementuj funkcjonalnoĹÄ, w ktĂłrej dla danego stringa moĹźna zasymulowaÄ dziaĹanie kalkulatora na nim i wypisaÄ na wyjĹcie koĹcowÄ zawartoĹÄ stosu. Program powinien sprawdzaÄ poprawnoĹÄ danych wejĹciowych i wyrzucaÄ nastÄpujÄ ce wyjÄ tki: - NieprawidĹowy format wejĹcia --- jakiĹ niezrozumiaĹy token pojawiĹ siÄ na wejĹciu, np. nie byĹo liczby zaraz po PUSH. - Pusty stos --- kalkulator prĂłbuje zrzuciÄ element z pustego stosu. - Overflow lub underflow --- wynik operacji nie jest pomiÄdzy minint a maxint. - Dzielenie przez zero --- jak w nazwie. Napisz prostÄ metodÄ main, ktĂłra sprawdzi TwojÄ implementacjÄ na kilku przykĹadach. UĹźyj wyraĹźenia try { ... } catch { ... } w swoim kodzie. To jest piÄ te zadanie domowe. Termin oddawania: 24 maja, poczÄ tek laboratorium.