Informe analizador lexico

Solo disponible en BuenasTareas
  • Páginas : 6 (1426 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de noviembre de 2011
Leer documento completo
Vista previa del texto
Informe Analizador Léxico: Para el presente informe se utilizo el código del proyecto lexic-analizer-compiladores que se puede descargar del repositorio http://lexic-analizer-compiladores.googlecode.com/svn/trunk/ lexicanalizer-compiladores-read-only. Al ejecutar el programa, nos muestra la siguiente interfaz:

Donde se puede ingresar el alfabeto a usar y el sistema genera la expresión regulara evaluar, para este caso se usa por defecto el alfabeto ab. Al hacer clic sobre el botón OK el sistema genera la evaluación de la expresión regular y crea los AFND, AFD y la versión minimizada, utilizando las reglas del algoritmo de Thompson y Subgrupos.

Inicio Evaluación

El sistema invoca el método doLexicAnalisys() el cual inicializa la evaluación de los autómatas.

El sistema evalúael alfabeto y la expresión regular para generar los autómatas. Genera una nueva instancia de Analizador el cual guarda la expresión regular y el alfabeto.

El sistema inicializa los valores y crea una nueva instancia a la clase que construye el algoritmo de Thompson.

Se inicializa la clase Thompson la cual hereda de la clase Automata.

Se inicializan los estados de transición y estadosfinales del autómata, los cuales son listas con instancias de la clase Estado.

La clase Estado controla los estados de transición del autómata, en ella se encuentra un identificador, los indicadores si es estado inicial, final y si fue visitado y una lista de enlaces los cuales definen las transiciones vacías en la generación del autómata.

Si no ocurrieron errores en la inicialización delsistema de generación del autómata el programa procede a generar el AFND. Pre análisis

El método traducir genera la construcción de los autómatas simple y recursivo en la generación de las transiciones.

El simbolo inicial genera la gramatica de transiciones del automata, validando por tokens los estados generados durante la inicializacion del analixador lexico. Se encuentra el metodo bnf_simpleque reconoce los operadores lexicos ingresados por el usuario (*,+,?) y el metodo bnf_s que genera el agrupamiento.

El metodo bnf_simple contruye dos instancias de la clase Thompson, y luego las concatena para generar un agrupamiento del automata. El metodo bnf_basico permite generar una lista comparable de cada token, utilizando el metodo list() con el cual se puede trabajar con el operador== la comparacion de la cadena generada por el automata para validar cada carácter de forma recursiva.

Para esto recurre al método bnf_basico() el cual evalúa cada token de la expresión generada y lo valida con las constantes de la clase TipoToken. Con ello puede definir que función va a cumplir cada token, dentro del contexto de creación de la expresión regular.

Aquí se pueden ver los tiposde token admitidos dentro de la expresión regular.

El segundo método bnf_t() permite generar las agrupaciones dependiendo de los lexemas definidos en la expresión regular, por ejemplo los alfabéticos o numéricos. Este proceso es recurrente y utiliza el bnf_basico() para la definición del grupo cuando se recibe el token de apertura de grupo definido por paréntesis izquierdo “(“.

Finalmentese utiliza el método bnf_s() con el cual se generan las cadenas separadas por el operador or, con el fin de concatenar los agrupamientos generados en la recursividad del método simple. Thompson

Luego de generar el esquema de la expresión regular, se procede a generar el algoritmo de Thompson para esquematizar el AFND, el programa lo genera a través del método OR consumido desde la instanciadel pre análisis.

El método OR permite generar las transiciones vacías entre los diferentes lexemas del autómata, después de la generación de los estados en el pre análisis, el sistema interpreta las cadenas generadas para generar las transiciones vacías definiendo los estados iníciales y finales y las referencias auxiliares, produciendo el algoritmo final concatenado de la expresión regular....
tracking img