









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Universidad Nacional Experimental del Táchira. Apuntes de Ingeniería Infórmatica. Construcción de compiladores. A continuación se explicará el funcionamiento básico de CUP (Java Based Constructor of Useful Parsers), centrándonos en los elementos principales que nos permiten la descripción de una gramática.
Tipo: Apuntes
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Especificaciones de importación
y empaquetamiento
2) Código añadido a la clase del analizador Se puede añadir código en la clase parser mediante la declaración:
parser code {: ...Código añadido al analizador... :};
Esto hace que el código definido se copie íntegramente en la clase:
public class parser extends java_cup.runtime.lr_parser { <código del analizador> ...Código añadido al analizador... }
Esta declaración se utiliza para particularizar el analizador, incluyendo métodos o, por ejemplo, sobrescribiendo los métodos de información de error predefinidos por CUP.
CUP proporciona tres métodos principales para informar de los errores que se producen durante la ejecución del analizador generado, situados en la clase lr_parser del runtime de CUP:
public void unrecovered_syntax_error (Symbol cur_token) throws java.lang.Exception
public void report_error (String message, Object info)
public void report_fatal_error (String message, Object info) throws java.lang.Exception
Declaraciones de precedencia y
asociatividad
opcional, se especifica la precedencia y asociatividad de los terminales para aquellas gramáticas que sean ambiguas.
Declaraciones de precedencia y
asociatividad
Se dispone de tres tipos de declaraciones:
que significan, en cuanto a precedencia:
Declaraciones de precedencia y
asociatividad
parte derecha de la producción y se utiliza para modificar la
precedencia que inicialmente se ha definido para los
terminales.
podemos crear el primer programa, consistente en la
gramática anterior. Inicialmente sólo haremos que el
programa identifique la validez de la ecuación introducida.