Autómata de analizador léxico
¿Qué es un analizador léxico y donde se usa?
Un analizador léxico se encarga, en pocas palabras, de leer cada uno de los caracteres ingresados, y verificar y asignar el identificador perteneciente, para así poder crear una lista de tokens. Principalmente se utilizaría en un compilador/traductor, pero podría usarse en cualquier caso donde se requiera identificar caracteres.
Autómata
De Google, Autómata es: “Máquina automática programable capaz de realizar determinadas operaciones de manera autónoma y sustituir a los seres humanos en algunas tareas, en especial las pesadas, repetitivas o peligrosas; puede estar dotada de sensores, que le permiten adaptarse a nuevas situaciones.” Nosotros tenemos una tarea muy repetitiva que se puede automatizar con muy poca lógica de programación, el leer e identificar caracteres.
¿Cómo empezamos?
Disclaimer: Este es un ejemplo, los valores proporcionados pueden ser cambiados dependiendo de tus necesidades. Nuestro algoritmo será muy sencillo, será una máquina de estados, siendo 0 el estado inicial, en medio de estos existirán otros estados para determinar que token se le debe asignar al carácter o cadena de carácter, y 20 el estado de aceptación, una vez se entra al estado de aceptación se agrega el token a una lista con cada uno generado (Esta lista puede ser simplemente valores, una clase, o un arreglo, esto va de acuerdo a tus necesidades y como está realizado tu programa, puedes guardar el caractes y el tipo o número que cada token), y se vuelve al estado 0 y se lee el siguiente carácter, esto en búcle hasta que no haya mas caracteres.
1.- Algoritmo del autómata. (Ejemplo)
De esta manera, siguiendo el algoritmo, dentro de un while que lea todos los caracteres, y unos cuantos if/else, tendrás tu analizador léxico, y al final tu lista de tokens.