Herramienta flex

Solo disponible en BuenasTareas
  • Páginas : 6 (1350 palabras )
  • Descarga(s) : 0
  • Publicado : 21 de octubre de 2010
Leer documento completo
Vista previa del texto
Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Curso: Lenguajes Formales de Compiladores 1 Plataforma: Linux

UTILIZACIÓN DE FLEX, BISON Y Qt
Descripción: En este manual se presenta las diferentes herramientas que proporciona el Sistema Operativo Linux para la realización de un parser y su respectiva conexión con una aplicación hecha en el IDEQt. Así mismo se explicaran nociones básicas para la realización de un proyecto en Qt en lenguaje C++.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Introducción
Este manual contiene explicaciones sobre el uso y/o implementación de las herramientas que proporciona Linux para la generación de un parser como lo es Flex, Bison y Qt. Flex:herramienta que implementa un analizador léxico. Bison: herramienta que implementa un analizador sintáctico. Qt: IDE de C++ que provee una serie de librerías para la implementación de una aplicación. Como principal desventaja de este manual tenemos que dependiendo de las diferentes distribuciones de Linux el entorno ya sea gráfico o de versiones cambiara. La base es la misma pero siempre encontraremosproblemas respecto a lo antes mencionado. En base a esto se tratara de realizar este manual desde un punto de vista generalizado para la plataforma Linux.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Utilización de Flex y Bison

Descripción de Flex:
Flex es una herramienta para generar escáneres: programas que reconocen patrones léxicos en untexto. flex lee los ficheros de entrada dados, o la entrada estándar si no se le ha indicado ningún nombre de fichero, con la descripción de un escáner a generar. La descripción se encuentra en forma de parejas de expresiones regulares y código C, denominadas reglas. flex genera como salida un fichero fuente en C, `lex.yy.c', que define una rutina `yylex()'. Este fichero se compila y se enlaza conla librería `-lfl' para producir un ejecutable. Cuando se arranca el fichero ejecutable, este analiza su entrada en busca de casos de las expresiones regulares. Siempre que encuentra uno, ejecuta el código C correspondiente.

Instalación de Flex:
Para poder instalar esta herramienta es necesario tener todos los permisos que nos otorga Linux como Usuarios normales, ahora si no sabes comorealizarlo es necesario que se inicie la sesión como un Usuario root ya que este es el único que posee todos los permisos para el sistema. La instalación de Flex se realiza ejecutando los siguientes comandos en la consola de Linux: • • ./configure --prefix=/usr && make && make install

En algunos casos dependiendo de la distribución del Linux que se este usando los programas no conocen flex e intentanencontrar el programa lex (flex es una alternativa para lex). Si no se lograra solucionar el problema entonces tendremos que crear un guión lex que llama a flex haciéndole que emule a lex. Teniendo ya creado un nuevo fichero /usr/bin/lex se ejecuta los siguientes comandos en la consola de Linux: • • • • • • • Usuario@linux > /usr/bin/lex man flex

Y lo que nos saldrá será el manual de lasiguiente forma.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Descripción de Bison:
Bison es un programa generador de analizadores sintácticos de propósito general perteneciente al proyecto GNU disponible para practicamente todos los sistemas operativos, se usa normalmente acompañado de flex aunque los analizadores lexicos se pueden tambiénobtener de otras formas. Bison convierte la descripción formal de un lenguaje, escrita como una gramática libre de contexto LALR, en un programa en C, C++, o Java que realiza análisis sintactico. Es utilizado para crear analizadores para muchos lenguajes, desde simples calculadoras hasta lenguajes complejos. Para utilizar Bison, es necesaria experiencia con el la sintaxis usada para describir...
tracking img