Introducción a LEX y YACC
|
Las ayudas de Lex escriben los programas que flujo del
control es dirigido por casos de expresiones regulares en el flujo de
entradas. Se satisface bien para el tipo transformaciones de la
redactor-escritura y para dividir la entrada en segmentos en la
preparación para una rutina del análisis.
La fuente de Lex es una tabla de expresiones regulares y de fragmentos correspondientes del programa. La tabla se traduce a un programa que lea un flujo de entradas, copiándola a una corriente de la salida y repartiendo la entrada en las secuencias que emparejan las expresiones dadas. Mientras que se reconoce cada tal secuencia se ejecuta el fragmento correspondiente del programa. El reconocimiento de las expresiones es realizado por un autómata finito determinista generado por Lex. Los fragmentos del programa escritos por el usuario se ejecutan en la orden en la cual las expresiones regulares correspondientes ocurren en el flujo de entradas. El programa de computadora entrado generalmente tiene un poco de estructura; en hecho, cada programa de computadora que entra se puede pensar en como definir `` un '' de la lengua de la entrada que acepte. Una lengua de la entrada puede ser tan compleja como un lenguaje de programación, o tan simple como una secuencia de números. Desafortunadamente, las instalaciones generalmente de la entrada son limitadas, difíciles de utilizar, y son a menudo flojas sobre la comprobación de sus entradas para saber si hay validez. Yacc proporciona una herramienta general para describir la entrada a un programa de computadora. Se reconoce el usuario de Yacc especifica las estructuras de su entrada, junto con el código que se invocará como cada tal estructura. Yacc da vuelta a tal especificación en un subprograma los dles de ese han- el proceso de entrada; con frecuencia, es conveniente y apropiado tener la mayoría del flujo del control en el uso del usuario manejado por este subprograma. |