Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería en computación
Compiladores
NÚMERO DE PRÁCTICA 3
1.- Fundamentos.
1.1.- Flex
Flex es un una herramienta que permite generar analizadores léxicos. A partir de un conjunto
de expresiones regulares, Flex busca concordancias en un fichero 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.
2.- Desarrollo
%{
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int yywrap()
{
return 1;
}
int main()
{
yylex();
printf("Numero de lineas %d\n",num_lin);
printf("Numero de caracteres %d\n",num_car);
return 0;
}
Una vez que se tiene la ventana de comandos posicionada en la ruta de la carpeta bin,
ejecutamos el siguiente comando: “flex.exe –oEjeLex1.c EjeLex1.1” (Figura 3). La
opción -o indica el nombre del archivo fuente a generar, en nuestro caso el archivo se
llamará EjeLex1.c.
Una vez copiado el archivo, en la interfaz del MVC Community 2017, dar clic derecho
sobre el elemento Archivos de código fuente, del Explorador de soluciones situado a la
derecha, del menú que aparece seleccionar Agregar -> Elemento existente … (ver
Figura 5). Cuando aparezca el cuadro de diálogo para seleccionar el archivo se debe
elegir el archivo copiado anteriormente, es decir: EjeLex1.c.
Para solucionarlo, basta con ir a la línea 1211 del archivo “EjeLex1.c” y agregar un “_”
(guion bajo) antes de la llamada a la función “fileno”, quedando esta línea de la
siguiente forma: