ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Generador De Analizadores Lexicos


Enviado por   •  13 de Julio de 2013  •  475 Palabras (2 Páginas)  •  1.156 Visitas

Página 1 de 2

GENERADORES DE ANALIZADORES LEXICOS

LEX-FLEX

FLEX LEX

Que es:  Una herramienta para la generación de programas que realizan concordancia de patrones en texto.

 Flex (Fast Lexical Analyzer Generator) es un generador automático de analizadores léxicos en lenguaje C.

 Flex es software GNU creado a partir de lex, un generador de analizadores léxicos muy popularizado porque se distribuye gratuitamente con las versiones más comunes de Unix (es una utilidad estándar desde la séptima edición de Unix).  Lex es un programa para generar analizadores léxicos .

 Lex se utiliza comúnmente con el programa yacc que se utiliza para generar análisis sintáctico.

 Es el analizador léxico estándar en los sistemas Unix.

 Se incluye en el estándar de POSIX.

Características  Entrada: un fichero texto con la especiación de los componentes léxicos, las expresiones regulares que los definen.

 Este analizador esta especialmente diseñado para usarse conjuntamente con bison (yacc), un metacompilador.

 Una especiación (o programa) flex es un fichero (usualmente con la extensión .l) compuesto por tres partes separadas por e%%:

Declaraciones

%%

Reglas

%%

Procedimientos auxiliares

 Lex consiste de tres partes: definiciones, reglas y rutinas auxiliares, separadas por % %.

 La sección de declaraciones incluye declaraciones de variables, constantes y definiciones regulares, que constituyen una manera cómoda de utilizar expresiones regulares largas en la sección de reglas; por ejemplo: letra [A-Za-z]

 • La sección de reglas especifica los patrones a reconocer y las acciones

asociadas a éstos, de forma similar a la que utiliza awk:

patrón {acciones en C}

 • La sección de rutinas permite definir funciones auxiliares en C, incluida la

Función main(). Por defecto, lex proporciona un main() que

llama a la función y ylex().

Como funciona: Funcionamiento:

En cada llamada, yylex():

1 toma caracteres de la entrada hasta que machea una E.R.

2 el texto que macheado se almacena en la variable yytext

3 se ejecutan las acciones asociadas al patrón de esa E.R.

Acciones:

 Puede ser simplemente el procesamiento del texto macheado para enviarlo de nuevo a la salida.

 En otras ocasiones podrán suponer la alteración de variables del código de usuario y la devolución a la rutina que llama a yylex() (mediante return) de un valor numérico que identifique al TOKEN reconocido Al contrario que sed y awk, lex no es un analizador sino un generador de Analizadores. Esto permite incluir de manera cómoda un analizador a medida en

cualquier programa:

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com