Tarea
Rubén Béjar Hernández Dpto. Informática e Ingeniería de Sistemas Universidad de Zaragoza
Introducción a Flex y Bison
Introducción a Flex ____________________________________________________________
______3 Patrones ____________________________________________________________
_____________4 Emparejamiento de laentrada_____________________________________________________
__5 Acciones ____________________________________________________________
_____________6 El analizador generado ____________________________________________________________
_7 Condiciones de arranque (sensibilidad al contexto) ______________________________________7 Algunas variables disponibles para el usuario __________________________________________8 Compilación yejecución de un programa Flex__________________________________________8 Notas finales ____________________________________________________________
__________9 Introducción a Bison ____________________________________________________________
____10 Símbolos, terminales y no terminales_________________________________________________1
0 Sintaxis de las reglas gramaticales(producciones)______________________________________11 Semántica del lenguaje ____________________________________________________________
12 Acciones ____________________________________________________________
__________13 Tipos de Datos de Valores en Acciones ______________________________________________13 Acciones a Media Regla __________________________________________________________14
Declaracionesen Bison ____________________________________________________________
14 Nombres de Token ____________________________________________________________
__15 Precedencia de Operadores ________________________________________________________15 La Colección de Tipos de Valores___________________________________________________16
Símbolos No Terminales__________________________________________________________16
El Símbolo Inicial ____________________________________________________________
___16 Precedencia de operadores _________________________________________________________16 Especificando Precedencia de Operadores ____________________________________________17 Precedencia Dependiente del Contexto _______________________________________________17 Funcionamiento delanalizador _____________________________________________________18 La Función del Analizador yyparse________________________________________________18 La Funcion del Analizador Léxico yylex ____________________________________________18 Un ejemplo sencillo ____________________________________________________________
___18 Compilación y ejecución de un programaBison________________________________________20 Notas finales ____________________________________________________________
_________21 Bibliografía________________________________________________
________________________21
2
Introducción a Flex y Bison
Introducción a Flex
Flex es un una herramienta que permite generar analizadores léxicos. A partir de un conjunto de expresiones regulares, Flex busca concordancias en unfichero de entrada y ejecuta acciones asociadas a estas expresiones. Es compatible casi al 100% con Lex, una herramienta clásica de Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU bajo licencia GPL. Los ficheros de entrada de Flex (normalmente con la extensión .l) siguen el siguiente esquema:
%% patrón1 {acción1} patrón2 {acción2} ... donde:patrón: expresión regular acción: código C con las acciones a ejecutar cuando se encuentre concordancia del patrón con el texto de entrada Flex recorre la entrada hasta que encuentra una concordancia y ejecuta el código asociado. El texto que no concuerda con ningún patrón lo copia tal cual a la salida. Por ejemplo:
%% a*b re {printf(“X”);}; ;
El ejecutable correspondiente transforma el...
Regístrate para leer el documento completo.