bueno en fin la primera fase de un compilador es un analizador lexico que basicamente consiste
en una automata finito que lee toma una cadena de texto, la lee caracter a caracter y estos los agrupa
en componentes lexicos.. etc, etc..
La teoria es extensa y tediosa por lo que es mejor si buscan en internet o en libros.
Aqui les dejo un pequeño analizador lexico que reconoce:
los siguientes tokens
token ................... Expresion Regular
enteros N+
Decimales N+.N+
identificadores L(L|N)+
se puede abrir un archivo de texto y analizarlo o bien escribir directamente en el cuadro de texto.
Es una forma de hacerlo no la unica pero que puede ser de ayuda para empezar, siempre partiendo del automata finito encontrado a partir de una expresion regular y aplicarle a esta el metodo del arbol o Thompson.
Pueden descargar el fuente en el siguiente enlace:
http://www.mediafire.com/?dchrtqy9dbj8mkm
Nota:
Dar unicamente un CLIC AL BOTON ANALIZAR si el texto no ha sido modificado para evitar
que se carguen doblemente los arraylist.
Si se borran los listbox, no hay problema.
Ahi queda para trastearlo, modificarlo, mejorarlo, borrarlo, etc.. para lo que sea necesario.
Lo revisare ahora... esoty llevando Lenguajes Formales y de programacion y de eso sera mi practica1!!!
ResponderEliminarok, revisalo y comentas por cualquier cosa
Eliminarhola, disculpa pero por ejemplo si quisiera que cuando se ingresara un % mas una palabra, que me dijera que es un comentario en lugar de error se puede ?
ResponderEliminarsi se puede, y los comentarios siempre los debe tener un compilador, mas que todo seria de como armes tu analizador al inicio con el metodo de thompson o el arbol de acuerdo a esos estados que tengas ahi tendrias que incluir que se hace cuando se lee un signo % y siempre tomar todo lo que venga desde que se lee el signo hasta donde termine la linea o donde se cierre el comentario porque tiene que indicarse un inicio y un final para el comentario.
ResponderEliminarGracias esta muy buen el analisis y con una nivel medio de manejo de programacion pero muy entendible gracias por compartir este tipo de informacion saludos
ResponderEliminarme salvaste la vida ;)
ResponderEliminar