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.