11.07.2015 Views

tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip

tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip

tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Ejemplo 4: Escribir la especificación de entrada <strong>para</strong> que Lexgenere un programa que sume todos los números enteros de unarchivo de texto.int suma=O;$1d [O-91%%{a)+ { suma = suma + atoi(yytext) t )I\n tEn la especificacion de entrada declaramos e inicializamos lavariable entera suma, declaramos la clase de los dígitos; en lasección de reglas tenemos una expresión regular que busca númerosenteros (esto es cualquier cadena que contenga sólo dígitos),cuando lo encuentra convierte el contenido de yytext a un enteroy ala variable suma le asignamos su contenido más la conversiónde yytext a entero. La segunda expresión regular concuerda concualquier entrada que no sea un identificador ni el caracter \n,su acción a ejecutar es nula. La tercera expresión regularconcuerda con el caracter \n y su acción es nula.Ejemplo 5: De acuerdo a las siguientes definiciones regularestoken asociadot ----> l(lld)* 1d+ 2I = 3dd ---->(blCR)*donde: t indica el token a buscar.d+ expresión regular que denota un entero= expresión regular que denota el símbolo =dd indica los delimitadores existentesb indica espacios en blancoCR indica el caracter enter.Construir la especificación de entrada <strong>para</strong> Lex, considerando queel programa generado será llamado por el analizador sintáctico.Puesto que el programa generado será llamado por el analizadorsintáctico, necesitaremos algunas variables globales que nossirvan de interfaz entre las dos fases:- ap-id. Cuando nuestro reconocedor léxico se encuentre conalgún identificador, lo que debemos de <strong>hacer</strong> es introducir elidentificador a una tabla de símbolos y regresar al analizadorsintáctico el número de token encontrado y además en ap-id33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!