You are on page 1of 3

Sintaxis y Semntica de Lenguajes I.S.

I - UTN
Flex y Bison 2014

Pgina 1 de 3

GUA DE TRABAJOS PRCTICOS
TEMAS: FLEX Y BISO
1ERA PARTE

Mini-Tutorial para realizar los ejercicios
1) Ejecutar cmd en la ventana de ejecucin de Windows:
2) En la ventana de interfaz de comandos ejecutar el comando notepad ejer.l
(permitir crear nuevo archivo). La extensin .l indica que se trata de un
archivo de especificacin Flex.
3) Editar el archivo escribiendo el cdigo Flex correspondiente
4) Guardar los cambios
5) Ejecutar los siguientes comandos en la ventana de interfaz de comandos:
a. flex oejer.yy.c ejer.l
b. gcc oejer.exe ejer.yy.c c:\GnuWin32\lib\libfl.a
c. ejer
6) Ingresar las cadenas de entrada adecuadas para probar el analizador lxico creado
y analizar su comportamiento.


1) Dados los siguientes programas Flex. Justificar la respuesta:
a)
%%

Cul ser la salida para la entrada: entrada copiada.
b)
%%
borrar {}

Cul ser la salida para la entrada: borrar todo

c)
%%
a*b {printf(X);}
re ;

Cul ser la salida para la entrada: abre la puertaab

d)
%%
aa {printf(1);}
aab {printf(2);}
uv {printf(3);}
xu {printf(4);}

Cul ser la salida para la entrada: Laabdgf xuv




Sintaxis y Semntica de Lenguajes I.S.I - UTN
Flex y Bison 2014

Pgina 2 de 3
2) Detectar y comentar el/los errores que tienen los siguientes programas Flex:
a)
%{
#include <stdio.h>
int num_ident=0;
int num_lines=0;
%}
%%
[a-z[a-z0-9]* num_ident++;ECHO;
\n {printf(\n%d , ++num_lines);
%%

b)
%{
#define BIN_OP 300
#define WORD 301
%}
%%
. return yytext[0];
\+|\-|\*|\/ return BIN_OP;
[a-z]* return WORD;

c)
%{
#include <stdio.h>
%}
%%
leer |
reir printf(verbo\n);
-+/* printf(operador\n);
.|\n ECHO;


d)
int num=0;
dig [0-9]
%%
<dig>+ num++;
\n return num;

3) Hacer un programa que cuente el nmero de lneas en blanco.

4) Escribe un analizar lxico en FLEX de tal manera que reconozca los siguientes tokens:
Un token para fecha, con el formato dd/mm/yyyy. El da puede variar entre 01 y 31, el
mes puede variar entre 01 y 12 y el ao entre 2000 y 2100.
Un token para cadenas de texto entre <>.
Un token para cadenas de texto entre comillas.
Un token para una cantidad, que es un nmero real sin signo y que siempre tiene parte
decimal.
Un token para enteros positivos sin signo, otro para enteros positivos sin signo entre
parntesis y otro para enteros positivos sin signo entre ngulos.

Sintaxis y Semntica de Lenguajes I.S.I - UTN
Flex y Bison 2014

Pgina 3 de 3
5) Elaborar un programa en Flex que copie el archivo de entrada en uno de salida,
sustituyendo todo nmero entero positivo que sea mltiplo de 7 por el carcter *.

ota: para copiar un archivo de entrada en uno de salida no es necesario manipular
archivos desde C. Ejecutar desde la consola:

Ejercicio6.exe < entrada.txt > salida.txt

Lo que har que el ejercicio6 se ejecute tomando como entrada el archivo entrada.txt y
escribiendo su salida en el archivo salida.txt


6) Elaborar un programa en Flex que cuente el nmero de palabras del texto de entrada
que contengan alguna vez la letra w.

7) Elaborar un programa en Flex que dada una secuencia de entrada, realice lo siguiente
para cada uno de los casos:

a) Informar del nmero de caracteres, de palabras y de lneas de texto.
b) Reconocer todos los nmeros enteros y calcular e informar de la media de los
mismos.
c) Reconocer todos los nmeros reales e informar cuntos de ellos estn comprendidos
en el rango entre cero y uno.

You might also like