2020-12-06
Używając LEX-a i BISON-a zaimplementuj translator wyrażeń arytmetycznych w ciele z postaci infiksowej do postaci postfiksowej (odwrotnej notacji polskiej), z korekcją postaci liczby (w nie ma liczb ujemnych i większych lub równych ), i podającej wynik obliczenia wyrażenia. Wyrażenia do policzenia umieszczone są w osobnych liniach. Program ma przetwarzać wszystkie linie wejścia, a linie zaczynające się od
#traktować jak linie komentarza i omijać. W przypadku długich linii ma być możliwość ich podzielenie za pomocą znaku\(tak jak w języku C).Zadbaj o właściwe priorytety operatorów, właściwą łączność operatorów i odpowiednią obsługę błędów. Pamiętaj o unarnym operatorze
-dla danych wejściowych (często dla wygody w piszemy np. zamiast ). Potęgowanie powinno być dozwolone tylko jako pojedynczą operacja — nie wolno składać potęg.
Rozwiązanie zadania znajduje się w plikach ex-1.{l,y}. Po uprzednim skompilowaniu przy pomocy make program można uruchomić przy pomocy ./ex-1.
Napisz poprzednie zadanie w innym języku programowania, np. w Pythonie z pakietem PLY lub Javie z biblioteką ANTLR (inne języki uzgodnij z prowadzącym laboratorium).
Program jest napisany w Pythonie. Kod źródłowy znajduje się w plikach ./ex-2.py oraz auxiliary.py.
Przed uruchomieniem należy się upewnić, że paczka ply jest zainstalowana i dostępna dla programu python3 (wystarczy uruchomić polecenie python3 -m pip install ply).
Żeby uruchomić program, należy wykonać ./ex-2.py lub najpierw make a następnie ./ex-2.