Szukaj…


Instalacja i konfiguracja

Jak zainstalować ANTLR w Eclipse

(Ostatnie testy na Indigo i ANTLR IDE 2.1.2)

  1. Zainstaluj Eclipse.
  2. Pobierz pełny słoik binarny ANTLR zawierający ANTLR v2. Wypakuj do katalogu tymczasowego. Skopiuj folder antlr-nn do odpowiedniej stałej lokalizacji, na przykład do tego samego folderu, w którym zainstalowano Eclipse.
  3. Dodaj witrynę aktualizacji IDE ANTLR do środowiska Eclipse.
    • W Eclipse kliknij Pomoc i wybierz Zainstaluj nowe oprogramowanie.
    • Kliknij przycisk Dodaj…
    • W oknie Dodaj repozytorium, w polu Lokalizacja wpisz http://antlrv3ide.sourceforge.net/updates i wpisz w polu Nazwa coś takiego jak ANTLR IDE, a następnie kliknij przycisk OK, aby wrócić do okna Dostępne oprogramowanie.
    • Zaznacz pole ANTLR IDE vn.nn i klikaj, aż zostanie zainstalowany. Zaćmienie prawdopodobnie ponownie się uruchomi.
  4. Skonfiguruj IDE ANTLR.
    • W głównym oknie Eclipse kliknij Okno, a następnie Preferencje.
    • W lewym okienku rozwiń ANTLR i wybierz Konstruktor.
    • W prawym okienku kliknij przycisk Dodaj…
    • W oknie Dodaj pakiet ANTLR kliknij opcję Katalog… i przejdź do lokalizacji folderu antlr-nn, a następnie kliknij przycisk OK.
    • Kliknij przycisk OK, aby zamknąć okno Dodaj pakiet ANTLR.
    • Wybierz Code Generator w lewym panelu i kliknij folder względny Projektu w prawym panelu. Wpisz nazwę folderu. Przykłady: antlr-java lub antlr-generated.
    • Wybierz inne parametry konfiguracji, ale NIE sprawdzaj –nfa lub –dfa w części Ogólne w oknie budynku. Jeśli zaznaczone, spowodują błędy ANTLR uniemożliwiające wygenerowanie plików Java w folderze wyjściowym.
    • Kliknij przycisk OK, aby zamknąć okno Preferencje.
  5. Utwórz nowy projekt Java i włącz obsługę ANTLR.
    • W głównym oknie Eclipse przejdź do Plik, Nowy, Projekt Java. Kliknij przycisk Dalej, wpisz nazwę projektu i kliknij przycisk Zakończ.
    • Aby włączyć obsługę ANTLR dla projektu, w oknie Eksploratora pakietów (lewy panel) kliknij prawym przyciskiem myszy właśnie utworzony projekt i wybierz Konfiguruj, Konwertuj na projekt ANTLR.
    • Dodaj pełny plik jar ANTLR do projektu: kliknij prawym przyciskiem myszy projekt i wybierz Właściwości, Ścieżka kompilacji Java, kliknij Dodaj zewnętrzne pliki JAR…, przejdź do pliku jar ANTLR, wybierz go i kliknij OK. Kliknij przycisk OK, aby zamknąć okno właściwości projektu.
  6. Utwórz gramatykę ANTLR.
    • Utwórz nową gramatykę ANTLR: kliknij prawym przyciskiem myszy folder src projektu, a następnie Plik, Nowy, Inny, rozwiń ANTLR i wybierz Połączoną gramatykę. Kliknij Dalej, wpisz nazwę gramatyki, wybierz opcję Język i kliknij Zakończ.
    • Plik „.g” jest tworzony z wybranymi opcjami i pustą regułą. Dodaj opcje język = Java, @header, @lexer :: header i @members instrukcje u góry (patrz przykład). Automatyczne uzupełnianie to najprostszy sposób na ich dodanie (naciśnij klawisz CTRL-spacja, aby wyświetlić listę autouzupełniania).
  7. Uratuj gramatykę.
    • Po zapisaniu folder zawierający wygenerowany kod Java dla gramatyki powinien pojawić się w Eksploratorze projektów. Jeśli nie, upewnij się, że opcje –nfa lub –dfa nie są zaznaczone w Preferencjach ANTLR w obszarze Ogólne w oknie Budowanie (krok 4g). [Potwierdź, jeśli są potrzebne: sprawdź, czy zmienna środowiskowa CLASSPATH wskazuje Java7, która odpowiada instalacji Eclipse (32 lub 64 bity), a zmienna środowiskowa Ścieżka Windows miała SDK Java7.]
    • Aby uniknąć błędów Java „nie można rozwiązać z typem”, kliknij prawym przyciskiem myszy folder zawierający wygenerowany kod Java, a następnie Utwórz ścieżkę, użyj jako folderu źródłowego.

PRZYKŁADOWA GRAMATYKA KOMBINOWANA

grammar test; //must match filename.g

options {
    language = Java;
}

@header { //parser
    package pkgName; //optional
    import java.<whatever you need>.*;
}

@members { //parser
    // java code here
}

@lexer::header { //lexer
    package pkgName; //optional
    import java.<whatever you need>.*;
}

@lexer::members {
    // java code here
}
/*------------------------------------------------------------------
 * PARSER RULES (convention is all lowercase)
 *------------------------------------------------------------------*/
parserule: LEXRULE;

/*------------------------------------------------------------------
 * LEXER RULES (convention is all uppercase)
 *------------------------------------------------------------------*/
LEXRULE: 'a'..'z';


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow