ANTLR
ANTLR (från engelskan. ANother Tool for Language Recognition - "another language recognition tool") är en generator av top- down - analysatorer för formella språk. ANTLR konverterar en kontextfri grammatik i form av RBNF till ett program i C++ , Java , C# , JavaScript , Go , Swift , Python [1] . Används för att utveckla kompilatorer , tolkar och översättare .
Fördelar
Applikation
ANTLR används ofta i stora kända produkter:
Kort referens till språkelement
(...) rättad
(...)* upprepa 0 eller fler gånger
(...)+ Upprepa delregel 1 eller flera gånger
(...)? rättad, kan saknas
{...} semantiska åtgärder (i utdataspråket - t.ex. Java)
[...] regelparametrar
| alternativ operatör
.. räckviddsoperatör
~ förnekelse
. vilken karaktär som helst
= uppdrag
: markör för början av regeln
; regelslutmarkör
Ett exempel på en enkel grammatik
grammatik T ; //namnet på grammatiken, måste matcha namnet på filen
// icke-terminalsymboler:
msg : 'namn' ID ';' {
System.out.println("Hej, "+ $ID .text + "!");
} ;
//terminalsymboler
ID : 'a' .. 'z' + ; //godtyckligt (men >=1) antal bokstäver
WS : ( ' ' | '\n' | '\r' )+ { $channel =HIDDEN; } ; // mellanslag, radbrytning, tab
Se även
Anteckningar
- ↑ Tabell över språk som stöds (nedlänk) . Hämtad 15 juni 2018. Arkiverad från originalet 29 juli 2018. (obestämd)
Litteratur
- The Definitive ANTLR Reference: Building Domain-Specific Languages , ISBN 978-0-9787392-5-6 av Terence Parr. Pragmatisk bokhylla, 2007
Länkar