ANTLR
Introduktion till ANTLR v4
Sök…
Anmärkningar
ANTLR v4 är ett kraftfullt verktyg som används för att bygga nya programmeringsspråk och bearbeta / översätta strukturerad text eller binära filer. ANTLR använder en grammatik som du skapar för att generera en parser som kan bygga och korsa ett parse-träd (eller abstrakt syntaxträd, AST). Tolkaren består av utdatafiler på ett målspråk som du anger. ANTLR v4 stöder flera mål inklusive: Java, C #, JavaScript, Python2 och Python3. Stöd för C ++ arbetas med. För att arbeta i GUI-IDE: er finns plug-ins för Visual Studio, Intellij, NetBeans och Eclipse.
För allmän information, besök ANTLR-webbplatsen . För att få allvar med ANTLR, kolla in den starkt rekommenderade boken skriven av Terrence Parr (killen som skapade ANTLR) The Definitive ANTLR 4 Reference .
Viktig versioninformation
- 4.5: 01/22/15 - Tillagd JavaScript-mål och uppgraderat C # -mål. 4.5 Släppanmärkningar
- 4.4: 07/16/14 - Lade till Python2 och Python3 som mål. 4.4 Släppanmärkningar
- 4.3: 06/18/14 - Stora bugfixar; förberedd för att lägga till nya mål. 4.3 Släppanmärkningar
- 4.2: 02/04/14 - Förbättrad syntax för att välja / matcha parse träd. 4.2 Utgivningsanmärkningar
- 4.1: 06/30/13 - Förbättrad analys av prestanda; exportera AST till PNG. 4.1 Releaseinformation
- 4.0: 01/21/13 - Inledande utgåva.
Installera för användning av kommandorader
ANTLR distribueras som en Java Jar-fil Det kan laddas ner här . Eftersom ANTLR är kompilerat som en jarfil krävs därefter Java runtime-miljö för att fungera, om du inte har det kan det laddas ner här .
När ANTLR JAR-filen har laddats ner kan du köra ANTLR från kommandoraden på samma sätt som alla andra JAR-filer:
Java -jar antlr-4.5.3-complete.jar
(Förutsatt att du arbetar i samma katalog som antlr-4.5.3-complete.jar-filen).
Detta bör ge ut något liknande det här:
ANTLR Parser Generator Version 4.5.3
-o ___ specify output directory where all output is generated
-lib ___ specify location of grammars, tokens files
-atn generate rule augmented transition network diagrams
-encoding ___ specify grammar file encoding; e.g., euc-jp
-message-format ___ specify output style for messages in antlr, gnu, vs2005
-long-messages show exception details when available for errors and warnings
-listener generate parse tree listener (default)
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor (default)
-package ___ specify a package/namespace for the generated code
-depend generate file dependencies
-D<option>=value set/override a grammar-level option
-Werror treat warnings as errors
-XdbgST launch StringTemplate visualizer on generated code
-XdbgSTWait wait for STViz to close before continuing
-Xforce-atn use the ATN simulator for all predictions
-Xlog dump lots of logging info to antlr-timestamp.log
andra rekommenderade åtgärder för installation inkluderar:
1. Add antlr4-complete.jar to CLASSPATH, either: Permanently:
Using System Properties dialog > Environment variables > Create or append to CLASSPATH variable Temporarily, at command line: SET CLASSPATH=.;C:\Javalib\antlr4-complete.jar;%CLASSPATH%
3.Create batch commands for ANTLR Tool, TestRig in dir in PATH
antlr4.bat: java org.antlr.v4.Tool %*
grun.bat: java org.antlr.v4.gui.TestRig %*
Efter installationen kan du bygga ett program med din .g4-grammatikfil:
Java -jar antlr-4.5.3-complete.jar yourGrammar.g4
Du kan också bygga en applikation på andra språk med parametern -Språk. Till exempel för att generera C # -filer skulle du göra något liknande:
java -jar antlr-4.5.3-complete.jar yourGrammar.g4 -Dlanguage=CSharp
Se här för en fullständig lista över förberedda grammatik för vanliga programmeringsspråk.
Installera med hjälp av Build Automation-verktyg
Ladda ner den senaste versionen av ANTLR och extrahera den till en mapp.
Du kan också använda Maven, Gradle eller annat build-verktyg för att bero på dess körtid (klasserna som de genererade grammatiken använder): org.antlr:antlr4-runtime
.
För att automatiskt - som en del av byggprocessen - generera parser i ett maven-projekt använder du Maven-plugin : org.antlr:antlr4
.
Installera i Eclipse och bygg Hello World
(Testat med ANTLR 4.5.3, Eclipse Neon, ANTLR 4 IDE 0.3.5 och Java 1.8)
- Ladda ner den senaste ANTLR . Se till att få den kompletta ANTLR Java-binärbehållaren. Spara på valfri plats, till exempel mappen där andra Java-bibliotek är lagrade. Det spelar ingen roll var, kom bara ihåg platsen.
Installera ANTLR IDE i Eclipse.
- Från Eclipse-menyn klickar du på Hjälp och väljer Eclipse Marketplace.
- Skriv antlr i rutan Sök: och klicka på Gå.
- Klicka på Installera för ANTLR 4 IDE.
- Klicka på Slutför i fönstret Bekräfta valda funktioner.
- Om ett säkerhetsvarningsfönster dyker upp klickar du på OK.
- Starta om Eclipse.
Jobba runt för felet "Det gick inte att skapa injektor ...".
- Vid åtkomst till ANTLR 4-inställningar i Eclipse eller när miljövariabeln HOME inte är inställd, uppstår följande fel: Det gick inte att skapa injektor för com.github.jknack.antlr-4ide.Antlr4 för com.github.jknack.antlr-4ide.Antlr4 .
- Se till att miljövariabeln HOME är inställd. Om inte, ställ in det som lämpligt för ditt system.
- Ladda ner Xtext 2.7.3 till samma plats som antlr-nnn-complete.jar.
- Klicka på Hjälp i Eclipse och välj Installera ny programvara.
- Klicka på Lägg till ... för att komma till fönstret Lägg till arkiv.
- Skriv ett namn, till exempel xtext 2.7.3, klicka sedan på Arkiv ..., naviger till filen Xtext 2.7.3 och välj den och klicka sedan på OK.
- Klicka på Välj alla i installationsfönstret och klicka sedan på Nästa> två gånger, acceptera licensavtalet. och klicka på Slutför.
- Starta om Eclipse.
Berätta för Eclipse / Java var ANTLR är.
- Klicka på Fönster i Eclipse och välj Inställningar.
- Expandera Java och Build Path i den vänstra rutan och välj sedan Classpath-variabler.
- I den högra rutan klickar du på Ny ..., anger ett namn och klickar på Arkiv ... och bläddrar till din plats för antlr-nnn-complete.jar. Klicka på OK för att komma tillbaka till fönstret Classpath Variables.
- Klicka på OK för att avsluta Inställningar.
(Valfritt) Konfigurera den ANTLR IDE-genererade källkatalogen.
- Klicka på Fönster i Eclipse-huvudfönstret och sedan på Inställningar.
- Expandera ANTLR 4 i den vänstra rutan och välj Verktyg.
- Ändra katalogen om du vill under Alternativ. Till exempel är java mitt målspråk så jag använder ./antlr-java.
- Klicka på OK för att stänga inställningsfönstret.
Skapa ett ANTLR 4-projekt.
- Från Eclipse-huvudfönstret, gå till File, New, Project.
- I fönstret Nytt projekt utvidgar du Allmänt och väljer ANTLR 4-projekt.
- Klicka på Nästa, skriv ett projektnamn och klicka på Slutför.
- Det nya standardprojektet innehåller en Hello.g4-fil och kommer automatiskt att bygga standardprogrammet "Hello World".
- Expandera den nya projektmappen i paketutforskaren för att se g4-filen och en mapp med namnet mål (eller namnet du gav den i steg 5) som innehåller målkällfilerna.
Installera ANTLR i Visual Studio 2015 (med Nuget)
- Öppna Visual Studio 2015, navigera till Verktyg → Tillägg → Online och sök efter Antlr. Ladda ner tillägget ANTLR Language Support (Skapat av Sam Harwell) och starta om Visual Studio.
- Skapa nytt konsolapplikationsprojekt. Högerklicka på Lösningen → Hantera Nuget-paket för lösning → Bläddra (Tab) och sök efter Antlr4 och installera det.
- Lägg till en ny artikel i ditt projekt genom att högerklicka på det. Och leta efter ANTLR4-mallar.
- Gå till File → Advance Save Options och sök efter Unicode (UTF-8 utan signatur ) - Codepage 65001 och klicka på OK från din ANTLR-fil (som slutar .g4). Det är allt.
Testa om allt fungerar
- Skapa ett ANTLR 4 Combined Grammar-objekt och namnge det Calculator.g4
- Kopiera och klistra in kalkylatorns källkod från detta Github-projekt här: Kalkylator av Tom Everett
- Byt grammatikräknare till grammatikräknare
- I Solution Explorer → Klicka på Visa alla filer.
- Spara och kör (starta) projektet
- I Solution Explorer under obj-mappen bör du se cs-klasser genererade som besökaren och lyssnaren. Om detta är fallet lyckades du. Nu kan du börja arbeta med ANTLR i Visual Studio 2015.