ANTLRIniziare con ANTLR


Osservazioni

ANTLR (Another Tool for Language Recognition) è un potente generatore di parser per leggere, elaborare, eseguire o tradurre testi strutturati o file binari. È ampiamente utilizzato per creare linguaggi, strumenti e framework. Da una grammatica, ANTLR genera un parser che può costruire e camminare alberi di analisi.

Versioni di Antlr
Antlr è diviso in due parti principali, la grammatica (file di grammatica) e i file di codice generati, che derivano dalla grammatica basata sul linguaggio di destinazione. Le versioni antlr sono nel formato di V1.V2.V3:

  • V1: Modifica in V1 significa che la nuova sintassi delle funzionalità è stata introdotta nei file di grammatica
  • V2: Modifica in V2 significa che sono state introdotte nuove funzionalità o correzioni importanti nei file generati (ad es. Aggiunta di nuove funzioni)
  • V3: indica correzioni di errori o miglioramenti minori

Librerie di runtime e obiettivi di generazione del codice
Lo strumento Antlr è scritto in Java, tuttavia è in grado di generare parser e lexer in varie lingue. Per eseguire parser e lexer avrai anche bisogno di avere la libreria di runtime di antlr insieme al parser e al lexer code. La lingua di destinazione supportata (e le librerie di runtime) sono le seguenti:

  • Giava

  • C #

  • Python (2 e 3)

  • JavaScript

Versioni

Versione Data di rilascio
2.0 1997/05/01
3.0 2011-01-19
4.0 2013/01/21
4.1 2013/07/01
4.2 2014/02/05
4.2.1 2014/03/25
4.2.2 2014/04/07
4.3 2014-06-19
4.4 2014/07/16
4.5 2015/01/23
4.5.1 2016/07/16
4.5.2 2016/01/30
4.5.3 2016/03/31
4.6 2016/12/15
4.7 2017/03/30

Ciao mondo

Una semplice grammatica mondiale può essere trovata qui :

// define a grammar called Hello
grammar Hello;
r   : 'hello' ID;
ID  : [a-z]+ ;
WS  : [ \t\r\n]+ -> skip ;
 

Per creare questo esempio .g4 puoi eseguire il seguente comando dal tuo terminale di sistema operativo / riga di comando:

Java -jar antlr-4.5.3-complete.jar Hello.g4

//OR if you have setup an alias or use the recommended batch file

antlr4 Hello.g4
 

Costruire questo esempio dovrebbe comportare il seguente output nella directory dei file Hello.g4:

  1. Hello.tokens
  2. HelloBaseListener.java
  3. HelloLexer.java
  4. HelloLexer.tokens
  5. HelloListener.java
  6. HelloParser.java

Quando si utilizzano questi file nel proprio progetto, assicurarsi di includere il file jar ANTLR. Per compilare tutti questi file utilizzando Java, nella stessa directory operativa o per percorso, eseguire il seguente comando:

javac *.java