Es una herramienta creada principalmente por Terence Parr, que opera sobre lenguajes, proporcionando un marco para construir reconocedores (parsers), intérpretes, compiladores y traductores de lenguajes a partir de las descripciones gramaticales de los mismos (conteniendo acciones semánticas a realizarse en varios lenguajes de programación).

Es un programa está escrito en java, por lo que se necesita alguna máquina virtual de java para poder ejecutarlo.

ANTLR es un generador de analizadores. Es capaz de generar un analizador léxico, sintáctico o semántico en varios lenguajes(java, C++ y C# en su versión 2.7.2) a partir de unos ficheros escritos en un lenguaje propio.Dicho lenguaje es básicamente una serie de reglas EBNF y un conjunto de construcciones auxiliares.

Genera un programa que determina si una sentencia o palabra pertenece a dicho lenguaje (reconocedor), utilizando algoritmos LL(*) de parsing. Si a dicha gramática, se le añaden acciones escritas en un lenguaje de programación, el reconocedor se transforma en un traductor o intérprete.

ANTLR es un generador de lenguajes, a partir de laespecificación de un lenguaje a partir de una gramática podemos:

  • Reconocer si un programa (o palabra) cumple una especificación.
  • Traducir el programa (o palabra) a otro lenguaje.

Es software libre, lo que quiere decir que al descargarlo de la página oficial  (pulsa aqy para descargarlo)obtendremos tanto los ficheros compilados *.class como elcódigo fuente en forma de ficheros *.java.ANTLR

Para entender mas sobre el tema pulsa  aqy

Ejemplo utilizando ANTLR