Download Guia Introduccion Flex Bison PDF

TitleGuia Introduccion Flex Bison
Tags Notation Computer Program Compiler Parsing
File Size151.4 KB
Total Pages23
Document Text Contents
Page 2

SSIINNTTAAXXIISS YY SSEEMMÁÁNNTTIICCAA DDEE LLEENNGGUUAAJJEESS
Departamento de Ingeniería en Sistemas

Universidad Tecnológica Nacional - Facultad Regional Mendoza




Sintaxis y Semántica de Lenguajes: resolución problemas de ingeniería 2

ÍNDICE

1. INTRODUCCIÓN ......................................................................................................... 3

2. EL PROBLEMA ........................................................................................................... 4

3. FLEX ............................................................................................................................ 5

3.1 ¿Qué es Flex? ....................................................................................................................... 5

3.2 ¿Cómo se estructura un programa Flex? ..................................................................... 6
3.2.1 Definiciones ..................................................................................................................... 6
3.2.2 Reglas ............................................................................................................................... 8
3.2.3 Código de Usuario ............................................................................................................ 9

3.3 Ejemplo de código Flex ..................................................................................................... 9

4. BISON ........................................................................................................................ 11

4.1 ¿Qué es BISON? ................................................................................................................ 11

4.2 ¿Cómo se estructura un programa BISON? .............................................................. 12
4.2.1 Declaraciones ................................................................................................................. 12
4.2.2 Reglas de Producción de la Gramática ........................................................................... 14
4.2.3 Código C adicional ......................................................................................................... 17

4.3 Ejemplo de código Bison ................................................................................................ 19

5. INTEGRACIÓN FLEX + BISON ................................................................................. 20

6. INSTALACIÓN DE LAS HERRAMIENTA ................................................................. 22

7. PASOS PARA COMPILAR NUESTRO CÓDIGO FLEX + BISON ............................ 23

Page 11

SSIINNTTAAXXIISS YY SSEEMMÁÁNNTTIICCAA DDEE LLEENNGGUUAAJJEESS
Departamento de Ingeniería en Sistemas

Universidad Tecnológica Nacional - Facultad Regional Mendoza




Sintaxis y Semántica de Lenguajes: resolución problemas de ingeniería 11

4. BISON

4.1 ¿QUÉ ES BISON?

Bison es un generador de analizadores sintácticos de propósito general, que
convierte una descripción gramatical para una gramática independiente del contexto

LALR(1) en un programa en C que analice esa gramática (Parser).

Un fuente de Bison (normalmente un fichero con extensión .y) describe una

gramática independiente del contexto (G2). El ejecutable que se genera indica si un

fichero de entrada dado pertenece o no al lenguaje descripto por esa gramática

(Lenguaje XX). La Figura 5 esquematiza el proceso de construcción de un Parser

con Bison.





Figura 5



CODIGO FUENTE BISON (miparser.y)
(Conjunto de reglas gramaticales G2)

COMPILADOR BISON

CODIGO FUENTE EN C (miparser.tab.c)
(Programa que implementa el reconocimiento de las estructuras sintácticas y
ejecuta acciones en consecuencia – implementa la semántica del Lenguaje)

COMPILADOR C (gcc)

PROGRAMA EJECUTABLE

(PARSER)

Código Fuente
Lenguaje XX

Resultados del
Análisis

Page 12

SSIINNTTAAXXIISS YY SSEEMMÁÁNNTTIICCAA DDEE LLEENNGGUUAAJJEESS
Departamento de Ingeniería en Sistemas

Universidad Tecnológica Nacional - Facultad Regional Mendoza




Sintaxis y Semántica de Lenguajes: resolución problemas de ingeniería 12

4.2 ¿CÓMO SE ESTRUCTURA UN PROGRAMA BISON?

Como dijimos, Bison recibe como entrada un conjunto de reglas de producción que
describen una gramática independiente del contexto (G2). Dicha gramática define las

categorías sintácticas del lenguaje que se está definiendo (Lenguaje XX). Esta entrada

(miparser.y), debe proporcionarse en un archivo de texto, ajustándose a la siguiente

estructura:



Figura 6



Como se observa en la Figura 6, un archivo de entrada en Bison está compuesto por

tres secciones, separadas por una línea %%: La primera sección incluye declaraciones

en lenguaje C y declaraciones Bison. La segunda incluye las reglas de producción

propiamente dichas. Finalmente, la tercera sección incluye código en C adicional. Las

dos primeras secciones son obligatorias aunque pueden ir vacías.



4.2.1 Declaraciones
Las declaraciones en C pueden definir tipos y variables utilizadas luego en las

acciones3. Pueden también incluir comandos del preprocesador, tales como la directiva

de inclusión #include para incluir archivos de cabecera que realicen cualquiera de estas

cosas.






3 En general, cuando la presente guía utiliza el término “acciones”, referencia al código C que deberá ejecutarse como acción semántica vinculada
al reconocimiento de un Token (en Flex) o de una categoría sintáctica (en Bison).

% {declaraciones en C %}
Declaraciones Bison

%%

Reglas de producción de la gramática

%%

Código C adicional

Page 22

SSIINNTTAAXXIISS YY SSEEMMÁÁNNTTIICCAA DDEE LLEENNGGUUAAJJEESS
Departamento de Ingeniería en Sistemas

Universidad Tecnológica Nacional - Facultad Regional Mendoza




Sintaxis y Semántica de Lenguajes: resolución problemas de ingeniería 22

6. INSTALACIÓN DE LAS HERRAMIENTA

En esta sección se enuncian brevemente los pasos a seguir para instalar Flex y
Bison en nuestra computadora.

1. Ejecutar el programa de instalación de Flex

2. Ejecutar el programa de instalación de Bison

3. Agregar en la variable de entorno Path, la ruta a las carpetas donde se encuentran

los programas ejecutables de Flex , Bison y gcc



Path = %SystemRoot%\system32; C:\Archivos de programa\GnuWin32\bin;C:\Dev-Cpp\bin



Importante: Se supone que se ha instalado previamente Dev C++ ó simplemente
el compilador gcc "GNU Compiler Collection".

Page 23

SSIINNTTAAXXIISS YY SSEEMMÁÁNNTTIICCAA DDEE LLEENNGGUUAAJJEESS
Departamento de Ingeniería en Sistemas

Universidad Tecnológica Nacional - Facultad Regional Mendoza




Sintaxis y Semántica de Lenguajes: resolución problemas de ingeniería 23

7. PASOS PARA COMPILAR NUESTRO CÓDIGO FLEX + BISON

Una vez instaladas las herramientas y escrito el código fuente del Scanner en Flex y el
Parser en Bison para el Lenguaje XX, se deberá compilar de acuerdo a los siguientes

pasos:



1. Compilar el código fuente Bison

bison –d fuente.y

2. Compilar el código fuente Flex

flex fuente.l

3. Compilar el código C generado para obtener el ejecutable

gcc –o fuente fuente.tab.c lex.yy.c -lm



Importante: Puede utilizarse cualquier procesador de textos para escribir los
archivos de código Flex y Bison (fuente.l y fuente.y). Una sugerencia es utilizar el

editor de GoldParser.

Similer Documents