Métodos computacionales

Ejercicio: Análisis léxico

Objetivo

Durante esta actividad, los alumnos serán capaces de:


NOTA: Este es un ejercicio para realizar en clase. No se tiene que entregar nada.

Descripción

Escribir en Clojure un programa que reciba como entrada el nombre de un archivo de texto cuyo contenido sean expresiones aritméticas y comentarios, y nos imprima una tabla con cada una de las unidades léxicas (tokens) encontradas, en el orden en que fueron encontradas e indicando de qué tipo son. El programa se debe implementar utilizando el API de expresiones regulares.

Tipos de tokens

Las expresiones aritméticas sólo podrán contener los siguientes tipos de tokens :

Entrada

Ejemplo:

b=7

a = 32.4 *(-8.6 - b)/       6.1E-8

d = a ^ b // Esto es un comentario

Salida

El ejemplo anterior debe producir la siguiente salida:

========================================================
Token                           Tipo
========================================================
b                               Variable
=                               Asignación
7                               Entero
a                               Variable
=                               Asignación
32.4                            Real
*                               Multiplicación
(                               Paréntesis que abre
-8.6                            Real
-                               Resta
b                               Variable
)                               Paréntesis que cierra
/                               División
6.1E-8                          Real
d                               Variable
=                               Asignación
a                               Variable
^                               Potencia
b                               Variable
// Esto es un comentario        Comentario
========================================================

Reglas de formación de algunos tokens