Wprowadzenie do IDE ANTLR do eclipse

Instalacja

(można pominąć)

Na stronie wiki projektu ANTLR znajdujemy:

Możemy to też znaleźć na dole strony "download" projektu. Niezależnie jak tu dojdziemy, radzę wybrać pierwsze z omawianych środowisk ANTLR IDE.

Po wejściu na stronę rozszerzenia wybieramy zakładkę "Download/Install" jak na poniższym obrazku. Ważne! Sprawdzamy którą wersję eclipsa mamy i dobieramy adekwatną wersję wtyczki (nowszej niż do Indigo nie znajdziemy ale ta działa pod nowszymi eclipsami). Ważne są też wersje wymaganych dodatków, a zwłaszcza DLTK, które - zwróćcie uwagę - nie jest podane "3.0.0+" lecz jest wymagana konkretna wersja do konkretnego eclipsa (w nowszych eclipsach - z repozytorium Indigo) i konkretnego ANTLR IDE. Amen.(ostrzegałem!)

ANTLR IDE download

Używanie

Jak już zainstalowaliśmy wtyczkę lub mieliśmy zainstalowaną - tworzymy nowy projekt.

Java project. Być może zostaniemy poproszeni o pozwolenie na przełączenie peerspektywy. Zgódźmy się łaskawie.

Podczas tworzenia projektu podajemy oczywiście jego nazwę. W zależności od upodobań i tego czy chcemy używać samego eclipsa, czy też na zmianę jego i ANTLRWorks (do tego projektu), zaznaczamy w Project layout odpowiednią kontrolkę. Przy obecnej wersji plugina zdecydowanie polecam opcję podkreśloną - z osobnymi katalogami na źródła i rzeczy skompilowane. Sprawdźmy też czy wybrana wersja javy jest aktualna. Potem klikamy Next, jeszcze nie Finish.

new project 1

Next, po to, co na następnych trzech obrazkach.

add ext jar

Tutaj jako folder wyjściowy ustawiamy src zamiast bin.

add ext jar

Tutaj możemy wybrać antlr-X.Y.jar lub antlrworks-X.Y.Z.jar. Radziłbym jednak wybór antlr-3.4-complete.jar - najnowsza wersja antlrworks nie zawiera odpowiedniego zestawu wersji narzędzi. Znajdziemy go w kartotece /opt/antlr3/3.4/

Teraz już klikamy Finish. Możemy sprawdzić, że rzeczywiście biblioteka została dołączona.

Ostatnia rzecz, jaką musimy zrobić z projektem aby stał się projektem ANTLR to:

Nie od rzeczy byłoby teraz na chwilę zajrzeć na tą stronę, a tu powrócić gdy zobaczymy poniższy monit.

W którymś momencie powinno pojawić się takie zapytanie, na które odpowiadamy "Tak".

Jeśli się nie pojawiło lub nieopatrznie kliknęliśmy "nie", to się nie przejmujmy. Wchodzimy w Preferencje.

Tam znajdujemy to, co widać poniżej. To samo zobaczymy gdy wcześniej kliknęliśmy "Yes".

  1. tutaj wchodzimy trochę głębiej, do /opt/antlr3/3.4/
  2. nie przejmujemy się wersją 3.3 na obrazku
  3. Tu można od razu "OK".

Wreszcie obiecany plik Test_tpl.java. Oczywiście możecie go sobie nazwać dowolnie, ten jest przykładowy. Na początek proszę się upewnić, że są poniższe importy, i że nie są one podkreślone na czerwono jako nierozpoznane.

Teraz sprawa zgodności nazw. Z gramatyki XXXX typu Lexer, Parser lub Tree powstaje plik XXXX.java, a w nim klasa XXXX. Z gramatyki typu Combined o takiej nazwie powstają dwa pliki - XXXXLexer.java i XXXXParser.java, no i oczywiście odpowiednie klasy.
Czerwone linie pokazują przepływ danych. Żółte wyróżnienie pokazuje nazwę głównej reguły składniowej.

Podobnie. Na tym rysunku mamy nadmiarowy plik z gramatyką oraz wypisanie drzewa na konsolę, które możemy zostawić w celach testowych lub usunąć (czy zakomentować).

Teraz ekstrakt tego, co na poprzednich rysunkach było pokazane mimochodem, a co dotyczy szablonów.

Więcej na tej stronie.