Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Der Parser-Generator ANTLR4
1. DER PARSER-
GENERATOR ANTLR4
Eine praktische Einführung ins Sprachen-Basteln
Fabian Deitelhoff
FDeitelhoff
http://www.fabiandeitelhoff.de
Fabian@FabianDeitelhoff.de
3. Formale Grammatik
• Formale Sprachen als Basis
• Sind abstrakte Sprachen
• Bestehen aus einer Menge von Wörtern über einem Alphabet
• „Gegensatz“ zu natürlichen Sprachen
Grundlage für den Compilerbau
Kontextfreie Grammatiken
08.05.2017 Der Parser-Generator ANTLR4 3
7. Parser-Generatoren
• Spezifikation zu Parser
• Spezifikation ist eine Grammatik
• Scanner zur Symbolerkennung wird ebenfalls erzeugt
• Eine breite Auswahl
• JavaCC
• Coco/R
• ANTLR
• yacc
08.05.2017 Der Parser-Generator ANTLR4 7
8. ANTLR
• ANother Tool for Language Recognition
• Parser Generator
• Lesen
• Verarbeiten
• Ausführen
• Übersetzen
• Grundlage ist eine Grammatik
• Wird in eine Zielsprache übersetzt (Targets)
• Java, C#, Python, JavaScript, Typescript, Go, C++, Swift, …
08.05.2017 Der Parser-Generator ANTLR4 8
9. ANTLR
• ANTLR ist von Terence Parr
„ANTLR v4 is exactly what I want in a parser generator, so I
can finally get back to the problem I was originally trying to
solve in the 1980s. Now, if I could just remember what that
was.”
Professor of computer science and analytics
(University of San Francisco)
08.05.2017 Der Parser-Generator ANTLR4 9
10. Einsatzzwecke
• Domain Specific Languages (DSLs)
• General Purpose Languages (GPLs)
• Inselgrammatiken
• Spezifikationen in Code gießen
• …
Nicht alles lässt sich damit lösen!
08.05.2017 Der Parser-Generator ANTLR4 10
11. Syntax von ANTLR4
08.05.2017 Der Parser-Generator ANTLR4 11
grammar Name;
nichtterminalA
: TOKEN1 nichtterminalB TOKEN2
;
13. Ergebnisse nutzen
• ANTLR übernimmt für uns…
• … das Zerlegen der Eingaben (Tokenizer)
• … die Einhaltung einer Grammatik (Parser)
• … die Umwandlung in einen Baum (AST)
• … den Durchlauf durch diesen Baum
• … Fehlerbehandlung und Reporting
• Aber wie die Ergebnisse weiterverarbeiten?
08.05.2017 Der Parser-Generator ANTLR4 13