ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees. It’s widely used in academia and industry to build all sorts of languages, tools, and frameworks. Twitter search uses ANTLR for query parsing, with over 2 billion queries a day. The languages for Hive and Pig, the data warehouse and analysis systems for Hadoop, both use ANTLR. Lex Machina uses ANTLR for information extraction from legal texts. Oracle uses ANTLR within SQL Developer IDE and their migration tools. NetBeans IDE parses C++ with ANTLR. The HQL language in the Hibernate object-relational mapping framework is built with ANTLR.
Features
- ANTLR is an exceptionally powerful and flexible tool for parsing formal languages
- From a formal language description called a grammar, ANTLR generates a parser for that language that can automatically build parse trees
- ANTLR also automatically generates tree walkers that you can use to visit the nodes of those trees to execute application-specific code
- Easy to understand, powerful, flexible, generates human-readable output, comes with complete source under the BSD license
- A tool that translates your grammar to a parser/lexer in Java (or other target language) and the runtime needed by the generated parsers/lexers
- The lexicon of ANTLR is familiar to most programmers because it follows the syntax of C and its derivatives with some extensions for grammatical descriptions