Original author(s) | Terence Parr and others |
---|---|
Initial release | February 1992 |
Stable release |
4.6 / 15 December 2016
|
Repository | github |
Development status | in active development |
Written in | Java |
Platform | Cross-platform |
License | BSD License |
Website | www |
In computer-based language recognition, ANTLR (pronounced Antler), or Another Tool For Language Recognition, is a parser generator that uses LL(*) for parsing. ANTLR is the successor to the Purdue Compiler Construction Tool Set (PCCTS), first developed in 1989, and is under active development. Its maintainer is Professor Terence Parr of the University of San Francisco.
ANTLR takes as input a grammar that specifies a language and generates as output source code for a recognizer for that language. While version 3 supported generating code in the programming languages Ada95, ActionScript, C, C#, Java, JavaScript, Objective-C, Perl, Python, Ruby, and Standard ML, the current release at present only targets Java, C#, JavaScript, Python2, Python3, Swift, Go. A new, C++ target also exists. A language is specified using a context-free grammar which is expressed using Extended Backus–Naur Form (EBNF).
ANTLR can generate lexers, parsers, tree parsers, and combined lexer-parsers. Parsers can automatically generate parse trees or abstract syntax trees which can be further processed with tree parsers. ANTLR provides a single consistent notation for specifying lexers, parsers, and tree parsers. This is in contrast with other parser/lexer generators and adds greatly to the tool's ease of use.