Ir al contenido principal

Entradas

Mostrando las entradas con la etiqueta interprete

Interprete simple con Java CUP y JFLEX

En este post presento un interprete muy simple que puede ser usado como base para la construcción de algo mas complejo, la idea fundamental en ese, es ayudar a comprender el funcionamiento de Java CUP, un generador de analizadores sintácticos LALR para Java y JFLEX un generador de analizadores léxicos basados en tabla también para Java. El interprete consiste en una aplicación por consola que recibe como parámetro el path del archivo que se desea interpretar, y simplemente ejecuta las instrucciones del archivo en forma secuencial. El lenguaje permite describir operaciones matemáticas, en notación polaca usando la sintaxis siguiente: push 10 : para ingresar un numero a la pila print :  para extraer un numero de la pila y mostrarlo en pantalla add: suma los dos números mas arriba de la pila sub: resta los dos números mas arriba de la pila mult: multiplicación de los dos núm...

Analizador Lexico en Java usando JFlex

Esta entrada tiene como objetivo mostrar una forma simple de utilizar JFlex en Windows para generar analizadores léxicos que luego pueden ser utilizados en aplicaciones de Java, se incluye una guía en pdf que muestra los pasos necesarios para construir un proyecto en JDeveloper 11g, desarrollar el archivo de especificación del analizador lexico que luego es utilizado por el ejecutable de JFlex para generar el código fuente del analizador lexico (por defecto Yylex.java), luego se crea código de prueba en una aplicación mínima de Java (solo método main) en donde se crea un objeto de la clase del analizador lexico y luego se utiliza para analizar un archivo simple de prueba, token por token mostrando el tipo de cada token (identificador, codigo). archivos necesarios (proyecto de JDeveloper, guia en pdf)

Java Cup como Obtener Numero de Linea y Caracter para cada Token

este video muestra como enlazar JFlex con Java Cup y llevar el numero de linea y carácter en cada token (utilizando yyline y yycolumn, y las propiedades left y right de la clase Symbol). esto nos permite tener en los metodos de manejo de errores, como lo es "sintax_error", mas detalles del token que produce el error de sintaxis, lo que nos permite agregar en el reporte de errores, la localización exacta, del token que causa un error sintáctico o lexico. Descargar Codigo Fuente