Computadoras

Solo disponible en BuenasTareas
  • Páginas : 4 (986 palabras )
  • Descarga(s) : 0
  • Publicado : 20 de septiembre de 2010
Leer documento completo
Vista previa del texto
El generador de analizadores léxicos lex.
Teoría de Autómatas y lenguajes formales Federico Simmross Wattenberg (fedesim@infor.uva.es) Universidad de Valladolid

Una vez visto cómo las expresionesregulares pueden ser muy útiles a la hora de reconocer patrones en un fichero de texto, y de utilizarlas para desencadenar ciertas acciones en respuesta, vamos a estudiar una herramienta que permitecrear programas autónomos que analizan léxicamente la entrada y la procesan a nuestro antojo: el generador de analizadores léxicos lex. Lex genera código fuente en C, a partir de una serie deespecificaciones escritas en lenguaje Lex. El código C generado contiene una función llamada yylex(), que localiza cadenas en la entrada (lexemas) que se ajusten a uno de los patrones léxicos especificados enel código fuente Lex, realizando entonces las acciones asociadas a dicho patrón. yylex() puede llevar a cabo cualquier tipo de acciones ante un determinado patrón y, en particular, puede comportarsecomo un analizador léxico.

1. Funcionamiento de lex
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 amedida en cualquier programa:

Programa fuente en Lex (.l) Podemos

Compilador de Lex (lex, flex)

lex.yy.c

lex.yy.c

Compilador de C gcc –l gcc -lfl

a.out

Fichero de entrada

a.outAcciones

2. El lenguaje Lex
2.1. Esquema general Un programa fuente de Lex tiene el siguiente aspecto:

%% %%





De estas tres secciones, sólo la segunda es obligatoria, y cualquierade ellas puede estar vacía. Esto quiere decir que el mínimo programa en lex es: %%



La sección de declaraciones incluye declaraciones de variables, constantes y definiciones regulares, queconstituyen 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...
tracking img