Możliwości Programu:

Praktyczna realizacja rozbioru gramatyki w zapisie BNF została wykonana przy użyciu programu komputerowego napisanego w środowisku VC++. Program pozwala na wyznaczenie symboli pierwszych i następnych, sprawdzenie jej poprawności oraz ewentualną poprawę w przypadku pojawienia się lewostronnej rekurencji lub faktoryzacji.

Instrukcja:


W pierwszym etapie rozbioru, gramatyka wejściowa zostaje wprowadzana w postaci łańcucha znakowego do analizatora składniowego. Jego zadaniem jest sprawdzenie zgodności zapisu tejże gramatyki z notacją BNF. W przypadku stwierdzenia niezgodności, dalsza analiza zostaje przerwana oraz jest generowany komunikat o zaistniałym zdarzeniu. Moduł ten zaprojektowano przy użyciu narzędzi FLEX i BISON. W kolejnym etapie następuje wyznaczenie symboli pierwszych i następnych (w j. ang. FIRST, FOLLOW) dla gramatyki wejściowej, po czym dokonywane jest jej sprawdzenie poprawności, w przypadku wystąpienia lewostronnej rekurencji lub/i faktoryzacji następuje, w przypadku wystąpienia lewostronnej rekurencji jej eliminacja, a lewostronnej faktoryzacji wyciągnięcie wspólnego czynnika i wygenerowanie dodatkowej produkcji. Dla poprawionej gramatyki zostają dodatkowo wyznaczone symbole pierwsze i następne. W ostatnim etapie wyniki analizy są umieszczane w oknie interfejsu graficznego. Interfejs ten umożliwia wprowadzanie gramatyki wejściowej z pliku lub z klawiatury. Program posiada trzy okna edycyjne, przy czym tylko jedno pozwala na modyfikację (pierwsze pole od lewej strony) przez użytkownika, pozostałe pracują w trybie tylko do odczytu. W polu edycyjnym z możliwością wprowadzania tekstu można wpisać ręcznie gramatykę lub załadować ją z pliku. Pole środkowe służy do wyświetlania gramatyki poprawionej oraz właściwych dla niej symboli pierwszych i następnych, zaś w polu ostatnim (pierwsze pole od prawej strony) wyświetla symbole pierwsze i następne odpowiadające wprowadzonej gramatyce wejściowej. Należy pamiętać, aby po wprowadzeniu ostatniej produkcji wcisnąć przycisk ENTER, co spowoduje przejście do następnej linii. Ilość linii tekstu musi być co najmniej o 1 większa niż ilość wprowadzonych produkcji, ponieważ parser identyfikuje koniec danej produkcji na podstawie znaku końca linii.

Wyglad:


Kliknij tutaj, aby pobrać

Uwaga: Jeśli program nie będzie działał należy pobrac biblioteke unistd.h i skopiowac ja w miejsce:
C:/Program Files/Microsoft Visual Studio/VC98/Include/ ;