El analizador léxico deberá informar de cada token encontrado, en que linea y columna
exactamente fue extraído el token, ademas del indice del token, el tipo y el lexema que lo
representa, toda esta información la mostraremos en un ListView de WPF.
Para construir el analizador léxico utilizaremos la clase Regex que implementa el motor de
expresiones regulares de .Net Framework, este nos permitirá buscar modelos de caracteres o
patrones que representan nuestros tokens admitidos por el analizador léxico, regex creara el
AFN (Autómata Finito No Determinista) correspondiente a la expresión regular que creemos.
Nuestro analizador léxico identificara la sintaxis básica de el lenguaje C#, para ello
definiremos las siguientes expresiones regulares:
Para detectar la palabras reservadas del lenguaje solo agregaremos una lista de estas
palabras, si el token IDENTIFICADOR pertenece a la lista de palabras reservadas cambiamos
el nombre de token a RESERVADO.
while (match.Success)
{
if (match.Index > index)
{
string token = text.Substring(index, match.Index -
index);
break;
}
}
Utilizaremos un ListView para crear una vista de nuestros tokens encontrados, aquellos
tokens no admitidos serán marcados en rojo y contados como error, la GUI se vera de este
modo.
Este es un ejemplo sencillo y muy básico de como crear un analizador léxico usando
expresiones regulares en .net, no se admiten todas las características del lenguaje C# pero
podemos agregar las expresiones regulares correspondientes si lo deseamos.
Link
http://acodigo.blogspot.mx/2014/02/analizador-lexico.html