Sunteți pe pagina 1din 2

JAVA CC QUE ES:

JavaCC (Java Compiler Compiler) es un generador de analizadores sintcticos de cdigo abierto para el lenguaje de programacin Java. En Otras palabras es Un metacompilador o generador de parsers es una herramienta que, a partir de la especificacin de un lenguaje, construye un programa o analizador que es capaz de reconocer secuencias o elementos de dicho lenguaje. En general, la especificacin del lenguaje abarca tanto el aspecto lxico como el sintctico, y son los que permiten la Construccin del parser, mientras que el aspecto semntico del lenguaje se deja en manos del usuario, para que lo ensamble una vez obtenido el parser. Funcionamiento: El funcionamiento de la herramienta consiste en analizar un fichero de entrada, que contiene la descripcin de una gramtica, y generar un conjunto de ficheros de salida, escritos en Java, que contienen la especificacin de un analizador lxico y de un analizador sintctico para la gramtica especificada. Los programas JavaCC se suelen almacenar en ficheros con extensin .jj. As, el ejemplo anterior se almacenara en el fichero Ejemplo.jj, de manera que la metacompilacin se hace invocando al fichero por lotes javacc.bat (quien a su vez invoca a la clase javacc.class del fichero javacc.jar) de la forma: javacc Ejemplo.jj lo que producir los ficheros de salida: Ejemplo.java: es el analizador sintctico. EjemploTokenManager.java: es el analizador lexicogrfico. EjemploConstants.java: interface que asocia un cdigo a cada token. Asimismo, almacena en forma de String el nombre dado por el desarrollador a cada token, con objeto de que el analizador sintctico pueda emitir mensajes de errores claros y explicativos. Adems de las clases necesarias: ParseException.java: clase que implementa los errores sintcticos. Cuando el analizador sintctico encuentra uno de estos errores genera una excepcin que puede ser capturada en cualquier nodo ancestro del rbol sintctico que se estaba construyendo. SimpleCharStream.java: clase que implementa los canales de entrada de los cuales puede leer el analizador lxico. Incorpora co5.1.1 Caractersticas generales JavaCC integra en una misma herramienta al analizador lexicogrfico y al sintctico, y el cdigo que genera es independiente de cualquier biblioteca externa, loque le confiere una interesante propiedad de independencia respecto al entorno. A grandes rasgos, sus principales caractersticas son las siguientes:

Genera analizadores descendentes, permitiendo el uso de gramticas despropsito general y la utilizacin de atributos tanto sintetizados como heredados durante la construccin del rbol sintctico. Las especificaciones lxicas y sintcticas se ubican en un solo archivo. De esta manera la gramtica puede ser leda y mantenida ms fcilmente. No obstante, cuando se introducen acciones semnticas, recomendamos el uso de ciertos comentarios para mejorar la legibilidad. Admite el uso de estados lxicos y la capacidad de agregar acciones lxicas incluyendo un bloque de cdigo Java tras el identificador de un token. Incorpora distintos tipos de tokens: normales (TOKEN), especiales (SPECIAL_TOKEN), espaciadores (SKIP) y de continuacin (MORE). Ello permite trabajar con especificaciones ms claras, a la vez que permite una mejor gestin de los mensajes de error y advertencia por parte de JavaCC en tiempo de metacompilacin. Los tokens especiales son ignorados por el analizador generado, pero estn disponibles para poder ser procesados por el desarrollador. La especificacin lxica puede definir tokens de manera tal que no se diferencien las maysculas de las minsculas bien a nivel global, bien en un patrn concreto.

S-ar putea să vă placă și