ANTLR
Introduktion till ANTLR v3
Sök…
Installation och installation
Hur man installerar ANTLR i Eclipse
(Senast testad på Indigo och ANTLR IDE 2.1.2)
- Installera Eclipse.
- Ladda ner ANTLR kompletta binärbehållare som innehåller ANTLR v2. Extrahera till en temporär katalog. Kopiera antlr-nn-mappen till en lämplig permanent plats, till exempel samma mapp som Eclipse är installerad i.
- Lägg till ANTLR IDE-uppdateringswebbplatsen till Eclipse.
- Klicka på Hjälp i Eclipse och välj Installera ny programvara.
- Klicka på Lägg till ... -knappen.
- I fönstret Lägg till arkiv, för platstyp http://antlrv3ide.sourceforge.net/updates och skriv något som ANTLR IDE för namnet och klicka på OK för att komma tillbaka till fönstret Tillgänglig programvara.
- Markera rutan för ANTLR IDE vn.nn och klicka igenom tills den är installerad. Eclipse kommer förmodligen att starta om.
- Konfigurera ANTLR IDE.
- Klicka på Fönster i Eclipse-huvudfönstret och sedan på Inställningar.
- Expandera ANTLR i den vänstra rutan och välj Builder.
- Klicka på Lägg till ... i den högra rutan.
- I fönstret Lägg till ANTLR-paket klickar du på Katalog ... och navigerar till platsen för antlr-nn-mappen och klickar på OK.
- Klicka på OK för att stänga fönstret Lägg till ANTLR-paket.
- Välj kodgenerator i den vänstra rutan och klicka på Projekt relativ mapp i den högra rutan. Skriv ett mappnamn. Exempel: antlr-java eller antlr-genererad.
- Välj andra konfigurationsparametrar, men kontrollera INTE –nfa eller –dfa i under Allmänt i fönstret Byggnad. Om markerat kommer dessa att orsaka ANTLR-fel som förhindrar att java-filer genereras i utmatningsmappen.
- Klicka på OK för att stänga inställningsfönstret.
- Skapa ett nytt Java-projekt och aktivera ANTLR-stöd.
- Från Eclipse-huvudfönstret, gå till File, New, Java Project. Klicka på Nästa, skriv ett projektnamn och klicka på Slutför.
- För att aktivera ANTLR-stöd för projektet högerklickar du i projektfönsterfönstret (vänster rutan) på det projekt som just skapades och välj Konfigurera, Konvertera till ANTLR-projekt.
- Lägg till den kompletta ANTLR-burkfilen till projektet: högerklicka på projektet och välj Egenskaper, Java Build Path, klicka på Lägg till externa JAR: er, bläddra till ANTLR-burkfilen, välj den och klicka på OK. Klicka på OK för att stänga projektfönstret Egenskaper.
- Skapa en ANTLR-grammatik.
- Skapa en ny ANTLR-grammatik: högerklicka på projektets mapp src, sedan File, New, Other, expand ANTLR och välj Combined Grammar. Klicka på Nästa, skriv grammatiknamn, välj ett språkalternativ och klicka på Slutför.
- En ".g" -fil skapas med de valda alternativen och en tom regel. Lägg till alternativspråket = Java, @header, @lexer :: header och @members uttalanden högst upp (se exempel). Auto-färdigställande är det enklaste sättet att lägga till dessa (tryck på CTRL-utrymme för att få fram automatisk kompletteringslista).
- Spara grammatiken.
- När den sparas ska en mapp som innehåller genererad Java-kod för grammatiken visas i Project Explorer. Om det inte gör det, se till att alternativen –nfa eller –dfa inte är markerade i ANTLR-inställningarna under Allmänt i fönstret Byggnad (steg 4g). [Bekräfta om dessa behövs: kolla CLASSPATH-miljövariabelpunkterna till Java7 som matchar din Eclipse-installation (32 eller 64 bitar) och Windows Path-miljövariabeln hade Java7 SDK.]
- För att undvika att "inte kan lösas till en typ" Java-fel högerklickar du på mappen som innehåller genererad Java-kod, sedan Build Path, Use som en källmapp.
PROV KOMBINERAD GRAMMAR
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow