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 and Python3. 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 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.
I been working, one eye dollar, by and by, Lord, by and by.
I got the plans to the Oval office, by and by, Lord, by and by.
In the inner chambers of the president
You will find no crosses only pentagrams.
1600, all the way! That's right brother, all the way!
1600, today's our day!
I been working, one eye dollar, by and by, Lord, by and by.
I got the plans in my front pocket, by and by, Lord, by and by.
I been working like a pack mule every day.
And to think that some of it ends up that way.
1600, all the way! That's right brother, all the way!