<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ANTLR</id>
	<title>ANTLR - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ANTLR"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ANTLR&amp;action=history"/>
	<updated>2026-05-27T20:31:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=ANTLR&amp;diff=395745&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ANTLR&amp;diff=395745&amp;oldid=prev"/>
		<updated>2025-11-29T11:41:48Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
| Logo               = &lt;br /&gt;
| Screenshot         = &lt;br /&gt;
| Beschreibung       = &lt;br /&gt;
| Hersteller         = Terence Parr&lt;br /&gt;
| AktuelleVersion    = &amp;lt;!-- von https://www.wikidata.org/wiki/Q295801 --&amp;gt;&lt;br /&gt;
| Betriebssystem     = &lt;br /&gt;
| Programmiersprache = [[Java (Programmiersprache)|Java]]&lt;br /&gt;
| Kategorie          = &lt;br /&gt;
| Lizenz             = [[BSD-Lizenz|BSD]]&lt;br /&gt;
| Deutsch            = &lt;br /&gt;
| Website            = [https://www.antlr.org/ www.antlr.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ANTLR&amp;#039;&amp;#039;&amp;#039; (sprich Antler) ist ein objektorientierter [[Parsergenerator]], der seit 1989 von [[Terence Parr]] an der [[University of San Francisco|Universität von San Francisco]] entwickelt wird. Die Abkürzung ANTLR steht für &amp;#039;&amp;#039;&amp;#039;AN&amp;#039;&amp;#039;&amp;#039;other &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ool for &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;ecognition.&amp;lt;ref&amp;gt;{{Literatur |Autor=Terence Parr |Titel=The Definitive ANTLR Reference |TitelErg=Building Domain-Specific Languages |Verlag=The Pragmatic Bookshelf |Datum=2007 |ISBN=0-9787392-5-6 |Kapitel=Preface |Seiten=15 |Sprache=en-US}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
ANTLR unterstützt die Erzeugung von [[Parser]]n, [[Lexikalischer Scanner|Lexern]] und TreeParsern für [[LL(k)-Grammatik]]en mit beliebigen k. Die verwendete Eingabe-Sprache ist eine Mischung aus [[Formale Grammatik|formaler Grammatik]] und Elementen aus objektorientierten Sprachen (Beispiel siehe unten).&lt;br /&gt;
&lt;br /&gt;
Der Übersetzer selbst ist eine [[Java (Programmiersprache)|Java]]-Applikation, als [[freie Software]] verfügbar und auf der [[Java-Plattform]] lauffähig. Eine ältere Version von ANTLR (3.1.x) wurde auch nach C# portiert und ist somit unter [[.Net-Framework]] und [[Mono-Projekt|Mono]] lauffähig.&lt;br /&gt;
&lt;br /&gt;
ANTLR3 unterstützt als Zielsprachen u.&amp;amp;nbsp;a. [[ActionScript]], [[Ada95]], [[C (Programmiersprache)|C]], [[C++]], [[C-Sharp|C#]], [[Java (Programmiersprache)|Java]], [[JavaScript]], [[Objective-C]] und [[Python (Programmiersprache)|Python]].&amp;lt;ref&amp;gt;[https://theantlrguy.atlassian.net/wiki/display/ANTLR3/Code+Generation+Targets ANTLR v3 documentation – Code Generation Targets]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.antlr.org/download.html |titel=Download ANTLR |abruf=2020-01-30}}&amp;lt;/ref&amp;gt; Mit dem Erscheinen von ANTLR4 mussten alle Laufzeitbibliotheken neu geschrieben werden, da die gesamte Parselogik in die [[Laufzeitumgebung]] verlagert wurde. Es gibt nun Laufzeitpakete für [[Java (Programmiersprache)|Java]], [[C-Sharp|C#]], [[Python (Programmiersprache)|Python]] 2/3, JavaScript, [[Go (Programmiersprache)|Go]], C++, [[Swift (Programmiersprache)|Swift]] und [[PHP]].&amp;lt;ref name=&amp;quot;github.com&amp;quot;&amp;gt;{{Internetquelle |url=https://github.com/antlr/antlr4 |titel=antlr/antlr4 |abruf=2020-01-30 |sprache=en}}&amp;lt;/ref&amp;gt; Weitere Sprachen, wie [[Kotlin (Programmiersprache)|Kotlin]] und [[Rust (Programmiersprache)|Rust]] sind in Planung/Arbeit.&lt;br /&gt;
&lt;br /&gt;
Die Laufzeitumgebung stellt hierbei sämtliche Klassen und Funktionen bereit, die zur [[Compiler|Kompilierung]] der generierten Parser und Lexer Dateien benötigt werden. Mit ANTLR3 können während des Parseprozesses [[Abstract Syntax Tree|abstrakte Syntaxbäume]] automatisch erstellt werden (zusammen mit einem entsprechende TreeParser). Dies änderte sich mit ANTLR4, wo nun statt dem AST ein [[Syntaxbaum|Parse Tree]] (Syntax Tree) generiert wird. Statt eines Tree Parsers werden nun Listener + Visitor Klassen produziert, die es erlauben den Parse Tree auf vielfältige Weise zu durchlaufen.&amp;lt;ref name=&amp;quot;github.com&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Im folgenden Beispiel wird ein Parser in ANTLR3 beschrieben, der Summenausdrücke in der Form „1+2+3“ erkennen kann:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;antlr&amp;quot;&amp;gt;&lt;br /&gt;
 // allgemeine Optionen, zum Beispiel die Zielsprache&lt;br /&gt;
 options&lt;br /&gt;
 {&lt;br /&gt;
  language = &amp;quot;CSharp&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 // es folgt der Parser&lt;br /&gt;
 class SumParser extends Parser;&lt;br /&gt;
 options&lt;br /&gt;
 {&lt;br /&gt;
   k = 1; &amp;#039;&amp;#039;// Parser-[[Lookahead]]: 1 [[Token (Compilerbau)|Token]]&amp;#039;&amp;#039;&lt;br /&gt;
 }&lt;br /&gt;
 // Definition eines Ausdrucks&lt;br /&gt;
 statement : INTEGER (PLUS^ INTEGER)*;&lt;br /&gt;
 // hier der Lexer&lt;br /&gt;
 class SumLexer extends Lexer;&lt;br /&gt;
 options&lt;br /&gt;
 {&lt;br /&gt;
   k = 1; &amp;#039;&amp;#039;// Lexer-[[Lookahead]]: 1 Zeichen&amp;#039;&amp;#039;&lt;br /&gt;
 }&lt;br /&gt;
 PLUS    : &amp;#039;+&amp;#039;;&lt;br /&gt;
 DIGIT   : (&amp;#039;0&amp;#039;..&amp;#039;9&amp;#039;);&lt;br /&gt;
 INTEGER : (DIGIT)+;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das folgende Listing demonstriert den Aufruf des Parsers in einem Programm:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 TextReader reader;&lt;br /&gt;
 // (...) Textreader mit Zeichen füllen&lt;br /&gt;
 SumLexer lexer = new SumLexer(reader);&lt;br /&gt;
 SumParser parser = new SumParser(lexer);&lt;br /&gt;
 parser.expression();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Compilerbau]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Terence Parr&lt;br /&gt;
   |Titel=The Definitive ANTLR Reference Guide: Building Domain-Specific Languages&lt;br /&gt;
   |Auflage=1&lt;br /&gt;
   |Verlag=The Pragmatic Programmers&lt;br /&gt;
   |Datum=2007&lt;br /&gt;
   |ISBN=978-0-9787392-5-6&lt;br /&gt;
   |Sprache=en}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Terence Parr&lt;br /&gt;
   |Titel=The Definitive ANTLR 4 Reference&lt;br /&gt;
   |Verlag=The Pragmatic Programmers&lt;br /&gt;
   |Datum=2013&lt;br /&gt;
   |ISBN=978-1-934356-99-9&lt;br /&gt;
   |Sprache=en}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.antlr.org/ www.antlr.org]&lt;br /&gt;
* [http://supportweb.cs.bham.ac.uk/docs/tutorials/docsystem/build/tutorials/antlr/antlr.html supportweb.cs.bham.ac.uk] – kurzes Tutorial in ANTLRv2 (Java als Zielsprache)&lt;br /&gt;
* [https://antlreclipse.sourceforge.net/ antlreclipse.sourceforge.net] – Eclipse Plugin für ANTLR ([[freie Software]])&lt;br /&gt;
* [https://www.placidsystems.com/articles/article-grammarlayout/grammarLayout.htm placidsystems.com] – ANTLR und Eclipse&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Java-Programm]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>