ANTLR
Inleiding tot ANTLR v4
Zoeken…
Opmerkingen
ANTLR v4 is een krachtig hulpmiddel dat wordt gebruikt voor het bouwen van nieuwe programmeertalen en het verwerken / vertalen van gestructureerde tekst- of binaire bestanden. ANTLR gebruikt een grammatica die u maakt om een parser te genereren die een parse-boom (of abstracte syntax-boom, AST) kan bouwen en doorlopen. De parser bestaat uit uitvoerbestanden in een door u opgegeven doeltaal. ANTLR v4 ondersteunt verschillende doelen, waaronder: Java, C #, JavaScript, Python2 en Python3. Er wordt gewerkt aan ondersteuning voor C ++. Voor het werken in GUI IDE's zijn er plug-ins voor Visual Studio, Intellij, NetBeans en Eclipse.
Voor algemene informatie, bezoek de ANTLR-website . Om serieus te worden over ANTLR, bekijk het sterk aanbevolen boek geschreven door Terrence Parr (de man die ANTLR heeft gemaakt) The Definitive ANTLR 4 Reference .
Aanzienlijke versie-informatie
- 4.5: 01/22/15 - JavaScript-doel toegevoegd en C # -doel geüpgraded. 4.5 Release-opmerkingen
- 4.4: 07/16/14 - Python2 en Python3 toegevoegd als doelen. 4.4 Release-opmerkingen
- 4.3: 06/18/14 - Belangrijke bugfixes; voorbereid voor het toevoegen van nieuwe doelen. 4.3 Release-opmerkingen
- 4.2: 02/04/14 - Verbeterde syntaxis voor het selecteren / matchen van parsbomen. 4.2 Release-opmerkingen
- 4.1: 06/30/13 - Verbeterde parsing-prestaties; AST's exporteren naar PNG. 4.1 Release-opmerkingen
- 4.0: 01/21/13 - Eerste uitgave.
Installeren voor gebruik via opdrachtregel
ANTLR wordt verspreid als een Java Jar bestand Het kan worden gedownload hier . Zoals ANTLR wordt samengesteld als een jar bestand dat het vervolgens vereist dat de Java runtime-omgeving te werken, als je het niet hebt Het kan worden gedownload hier .
Nadat het ANTLR JAR-bestand is gedownload, kunt u ANTLR vanaf de opdrachtregel op dezelfde manier uitvoeren als elk ander JAR-bestand:
Java -jar antlr-4.5.3-complete.jar
(Ervan uitgaande dat u in dezelfde map werkt als het bestand antlr-4.5.3-complete.jar).
Dit zou ongeveer zoiets moeten opleveren:
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
andere aanbevolen acties voor installatie zijn onder meer:
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 %*
Na de installatie kunt u een applicatie bouwen met uw .g4 grammaticabestand:
Java -jar antlr-4.5.3-complete.jar yourGrammar.g4
U kunt ook een applicatie in andere talen bouwen met de parameter -Dlanguage. Als u bijvoorbeeld C # -bestanden wilt genereren, zou u zoiets doen:
java -jar antlr-4.5.3-complete.jar yourGrammar.g4 -Dlanguage=CSharp
Zie hier voor een volledige lijst van vooraf gemaakte grammatica's voor veelgebruikte programmeertalen.
Installeren met behulp van Build Automation-tools
Download de nieuwste versie van ANTLR en pak deze uit in een map.
Je kunt ook Maven, Gradle of een ander org.antlr:antlr4-runtime
gebruiken om afhankelijk te zijn van de runtime (de klassen die de gegenereerde grammatica's gebruiken): org.antlr:antlr4-runtime
.
Om automatisch - als onderdeel van het bouwproces - de parser in een maven-project te genereren, gebruikt u de Maven-plug-in : org.antlr:antlr4
.
Installeer in Eclipse en bouw Hello World
(Getest met ANTLR 4.5.3, Eclipse Neon, ANTLR 4 IDE 0.3.5 en Java 1.8)
- Download de nieuwste ANTLR . Zorg ervoor dat je de volledige ANTLR Java binaries-pot krijgt. Opslaan op elke geschikte locatie, bijvoorbeeld de map waarin andere Java-bibliotheken zijn opgeslagen. Het maakt niet uit waar, onthoud gewoon de locatie.
Installeer de ANTLR IDE in Eclipse.
- Klik in het menu Eclipse op Help en selecteer Eclipse Marketplace.
- Typ antlr in het vak Zoeken: en klik op Ga.
- Klik op Installeren voor ANTLR 4 IDE.
- Klik op Voltooien in het venster Geselecteerde functies bevestigen.
- Als een beveiligingswaarschuwingsvenster verschijnt, klikt u op OK.
- Start Eclipse opnieuw.
Werk rond voor de fout 'Kan injector niet maken ...'.
- Bij toegang tot ANTLR 4-voorkeuren in Eclipse of wanneer de omgevingsvariabele HOME niet is ingesteld, treedt de volgende fout op: kan geen injector voor com.github.jknack.antlr-4ide.Antlr4 voor com.github.jknack.antlr-4ide.Antlr4 maken .
- Zorg ervoor dat de omgevingsvariabele HOME is ingesteld. Als dit niet het geval is, stelt u deze in op uw systeem.
- Download Xtext 2.7.3 naar dezelfde locatie als antlr-nnn-complete.jar.
- Klik in Eclipse op Help en selecteer Nieuwe software installeren.
- Klik op Toevoegen ... om naar het venster Repository toevoegen te gaan.
- Typ een naam, bijvoorbeeld xtext 2.7.3, klik vervolgens op Archiveren ..., navigeer naar het Xtext 2.7.3-bestand en selecteer het en klik vervolgens op OK.
- Klik in het venster Installeren op Alles selecteren en klik vervolgens op Volgende> tweemaal, accepteer de licentieovereenkomst. en klik op Voltooien.
- Start Eclipse opnieuw.
Vertel Eclipse / Java waar ANTLR is.
- Klik in Eclipse op Venster en selecteer Voorkeuren.
- Vouw in het linkerdeelvenster Java en Build Path uit en selecteer vervolgens Classpath-variabelen.
- Klik in het rechterdeelvenster op Nieuw ..., voer een naam in en klik op Bestand ... en blader naar uw locatie van antlr-nnn-complete.jar. Klik op OK om terug te gaan naar het venster Classpath-variabelen.
- Klik op OK om Voorkeuren af te sluiten.
(Optioneel) Configureer de door ANTLR IDE gegenereerde bronnenmap.
- Klik in het hoofdvenster van Eclipse op Venster en vervolgens op Voorkeuren.
- Vouw ANTLR 4 in het linkerdeelvenster uit en selecteer Tool.
- Wijzig onder Opties desgewenst de map. Java is bijvoorbeeld mijn doeltaal, dus ik gebruik ./antlr-java.
- Klik op OK om het venster Voorkeuren te sluiten.
Maak een ANTLR 4-project.
- Ga vanuit het hoofdvenster van Eclipse naar Bestand, Nieuw, Project.
- Vouw Algemeen uit in het venster Nieuw project en selecteer ANTLR 4-project.
- Klik op Volgende, typ een projectnaam en klik op Voltooien.
- Het standaard nieuwe project bevat een Hello.g4-bestand en bouwt automatisch het standaardprogramma "Hello World" op.
- Vouw in de Pakketverkenner de nieuwe projectmap uit om het g4-bestand te zien en een map met de naam target (of de naam die u in stap 5 hebt gegeven) die de doelbronbestanden bevat.
ANTLR installeren in Visual Studio 2015 (met Nuget)
- Open Visual Studio 2015, ga naar Extra → Extensies → Online en zoek naar Antlr. Download de extensie ANTLR Language Support (gemaakt door Sam Harwell) en start Visual Studio opnieuw.
- Maak een nieuw console-toepassingsproject. Klik met de rechtermuisknop op de oplossing → Nuget-pakketten beheren voor oplossing → Bladeren (tabblad) en zoek naar Antlr4 en installeer het.
- Voeg een nieuw item toe aan uw project door er met de rechtermuisknop op te klikken. En zoek naar ANTLR4-sjablonen.
- Ga vanuit uw ANTLR-bestand (eindigend op .g4) naar Bestand → Opties voor geavanceerde opslag en zoek naar Unicode (UTF-8 zonder handtekening ) - Codepagina 65001 en klik op OK. Dat is het.
Test of alles werkt
- Maak een ANTLR 4 gecombineerd grammatica-item en noem het Calculator.g4
- Kopieer en plak de Calculator-broncode van dit Github-project hier: Calculator door Tom Everett
- Verander grammatica calculator naar grammatica Calculator
- Op Solution Explorer → Klik op Alle bestanden weergeven.
- Sla het project op en voer het uit
- In Solution Explorer onder de map obj ziet u cs-klassen gegenereerd zoals de bezoeker en luisteraar. Als dit het geval is, is het je gelukt. Nu kunt u beginnen met werken met ANTLR in Visual Studio 2015.