lex con yacc
Introducción a los generadores Lex y Yacc
Generalidades
Un generador de analizadores es un programa que acepta como entrada la especificación de las características de un lenguaje L yproduce como salida un analizador para L. La especificación de entrada puede referirse a la lexicografía, la sintaxis o la semántica; el analizador resultante servirá para analizar las característicasespecificadas.
E Especificación de las características del lenguaje L
A Analizador para L
Los generadores Lex y Yacc sirven, respectivamente, para generar analizadores lexicográficos yanalizadores sintácticos para su aprovechamiento como partes de los compiladores de los lenguajes de programación; estos usos de Lex y Yacc no son los únicos, aunque sí son los que aquí seconsideran principalmente.
Para entender cabalmente el funcionamiento de los generadores de analizadores, hay que conocer la teoría de compiladores relacionada con las tareas de análisis de lenguajes.Cuando se emplea el término Lex, se mencionan dos posibles significados:
a) una notación para especificar las características lexicográficas de un lenguaje de programación,
b) un traductor deespecificaciones lexicográficas.
Esta misma dualidad también es de aplicación al término Yacc.
Esquema de uso
El esquema de la página siguiente ilustra la manera de usar los generadores Lex y Yacc paraobtener un analizador léxico-sintáctico de un lenguaje de programación L, y de ejecutar el analizador obtenido. Los nombres que aparecen en el esquema significan:
eLexic.l
es la especificación de lascaracterísticas lexicográficas del lenguaje L, escrita en Lex
eSint.y
es la especificación de las características sintácticas del lenguaje L, escrita en Yacc
lex.yy.c
es el analizador lexicográficode L generado por Lex; está constituido, en su parte principal, por una función escrita en C que realiza las tareas de análisis lexicográfico basándose en autómatas regulares reconocedores de la...
Regístrate para leer el documento completo.