ANTLR

ANTLR ist ein objektorientierter Parsergenerator, der seit 1989 von Terence Parr an der Universität von San Francisco entwickelt wird. Die Abkürzung ANTLR steht für ANother Tool for Language Recognition.[1]

Inhaltsverzeichnis

Beschreibung

ANTLR unterstützt die Erzeugung von Parsern, Lexern und TreeParsern für LL(k)-Grammatiken mit beliebigen k. Der Übersetzer selbst ist in Java geschrieben, als Freie Software verfügbar und ist auf der Java-Plattform sowie auf .NET und Mono lauffähig.

Als Zielsprachen werden u. a. ActionScript, Ada95, C, C++, C#, Java, JavaScript, Objective-C, Perl und Python unterstützt[2]. Die von ANTLR ausgegebenen Code-Dateien benötigen Funktionen, die in einer Parser-Bibliothek (z.B. antlr.runtime.dll) zur Verfügung gestellt werden. Dabei können abstrakte Syntaxbäume und entsprechende TreeParser automatisiert erstellt werden.

Die von ANTLR benutzte Sprache ist eine Mischung aus formaler Grammatik und Elementen aus objektorientierten Sprachen.

Beispiel

Im folgenden Beispiel wird ein Parser in ANTLR beschrieben, der Summenausdrücke in der Form "1+2+3" erkennen kann:

// allgemeine Optionen, zum Beispiel die Zielsprache
options
{
 language = "CSharp";
}
// es folgt der Parser 
class SumParser extends Parser;
options
{
  k = 1; // Parser-Lookahead: 1 Token
}
// Definition eines Ausdrucks
statement : INTEGER (PLUS^ INTEGER)*;
// hier der Lexer
class SumLexer extends Lexer;
options
{
  k = 1; // Lexer-Lookahead: 1 Zeichen
}
PLUS    : '+';
DIGIT   : ('0'..'9');
INTEGER : (DIGIT)+;

Das folgende Listing demonstriert den Aufruf des Parsers in einem Programm:

TextReader reader;
// (...) Textreader mit Zeichen füllen
SumLexer lexer = new SumLexer(reader);
SumParser parser = new SumParser(lexer);
parser.expression();

Literatur

  • Terence Parr: The Definitive ANTLR Reference Guide: Building Domain-Specific Languages. 1. Auflage. Pragmatic Programmers, 2007, ISBN 0978739256.

Weblinks

Einzelnachweise

  1. Terence Parr: The Definitive ANTLR Reference. Building Domain-Specific Languages. The Pragmatic Bookshelf, 7. Mai 2007, ISBN 0-9787392-5-6, Preface, S. 15.
  2. http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets

Siehe auch


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Antlr — Saltar a navegación, búsqueda ANTLR Apareció en: 1988 Desarrollador: Terence Parr y Colaboradores Última versión: 3.2 (23 09 2009) Influido por: PCCTS Sistema operativo: Linux …   Wikipedia Español

  • ANTLR — Desarrollador(es) Terence Parr y Colaboradores http://www.antlr.org Información general Apareció en 1988 Última versión estab …   Wikipedia Español

  • ANTLR — Автор Терренс Парр и другие Написана на Java Первый выпуск Февраль 1992 Аппаратная платформа Кроссплатформенное программное обеспечение Последняя версия 3.4 (18 июля 2011) Состояние …   Википедия

  • ANTLR — Dernière version 3.2 (23 septembre 2009) [ …   Wikipédia en Français

  • ANTLR — Infobox Software name = ANTLR caption = author = Terence Parr and others developer = released = February 1992 latest release version = 3.1 latest release date = release date|2008|08|12 programming language = Java operating system = platform =… …   Wikipedia

  • Antlr — …   Википедия

  • ANTLR Studio — Infobox Software name = ANTLR Studio genre = Integrated development environment website = [http://placidsystems.com http://placidsystems.com] ANTLR Studio is an IDE for the ANTLR parser generator. It plugs into the Eclipse development environment …   Wikipedia

  • Syntactic predicate — A syntactic predicate specifies the syntactic validity of applying a production in a formal grammar and is analogous to a semantic predicate that specifies the semantic validity of applying a production. It is a simple and effective means of… …   Wikipedia

  • LL parser — An LL parser is a top down parser for a subset of the context free grammars. It parses the input from Left to right, and constructs a Leftmost derivation of the sentence (hence LL, compared with LR parser). The class of grammars which are… …   Wikipedia

  • LL-анализатор — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”