Creando un analizador léxico (Parte I)
Este artículo versa acerca del desarrollo de un analizador léxico. Debido a su tamaño ha sido dividido en dos partes, siendo este la primera parte y esta la segunda.
La función de un analizador léxico es examinar el código fuente y reconocer las palabras o tokens que formen parte del lenguaje así como determinar si hay elementos que no pertenecen al lenguaje. Como resultado del análisis léxico se devolverá la lista de tokens que forman el código fuente.
Lo primero que debemos hacer es definir los tipos de palabras que compondrán el lenguaje así como las reglas para formar palabras En el lenguaje que estoy creando he identificado los siguientes tipos de palabras: Dicho lenguaje pretende ser bastante sencillo y fácil de utilizar. Por ello se utilizan palabras en castellano en vez de en ingles como la mayoría de lenguajes de programación. Ahora pasaremos a definir las reglas de formación de cada uno de esos tipos de palabras. Hay tipos de palabras que se definen por enumeración como son los operadores, los símbolos especiales, las palabras reservadas, etc. Para definir otros tipos de tokens utilizaremos autómatas finitos deterministas como ya se explico en el artículo Autómata finito determinista para reconocer constantes numéricas. Definiciones
Continuación
Variable: para declarar variables
Constante: para declarar constantes
Logica: tipo de dato
Cadena: tipo de dato
Numerica: tipo de dato
Si: Forma parte de la estructura condicional
Entonces: Forma parte de la estructura Condicional
Fin: Forma parte de la estructura Condicional e Iterativa
Mientras: Forma parte de la estructura Iterativa
(, ) y ,
Verdadero, Falso
Secuencia de caracteres delimitados por las comillas (“) Si la cadena contiene el carácter “ o \ debe ir precedido del carácter de escape \
Una constante numérica debe estar formada por al menos un dígito, puede ir precedida o no por el signo y puede tener o no decimales. Si contiene el punto decimal debe tener al menos un dígito en la parte de los decimales.
Una letra seguida una secuencia de 0 o más letras o dígitos o el signo _
Creando un analizador léxico (Parte II)