You are on page 1of 8

Compiladores

Análisis Léxico

Grupo Nº: 5
 Guanca, Jorge Daniel Antonio. 6770. 37094295. Ing.
Informática.
 Pérez, Ricardo Daniel. 6590. 36225295. Ing. Informática.
 Ramos, Abel Armando. 6459. 37104877. Ing. Informática.
 Ramos, Pablo Nicolás. 6969. 35309435. Ing. Informática.
 Quispe, Jairo Joel. 6297. 34912244. Ing. Informática.

” SI_PUNTO_COMA ( “(” SI_PAR_IZQUIERDO . Quispe Página 1 de 8 . Ramos. “.Ejercicio 1: TABLA: LEXEMA PATRON TOKEN program “program” PR_PROGRAM function “function” PR_FUNCTION integer “integer” PR_INTEGER var “var” PR_VAR return “return” PR_RETURN begin “begin” PR_BEGIN end “end” PR_END [a-zA-z][a-zA-Z0-9]* IDENTIFICADOR [0-9]+ NUMERO := “:=” OP_ASIGNACION * “*” OP_PRODUCTO + “+” OP_SUMA . Ramos.” SI_PUNTO problema2 F2 uno dos F1 a b c d 5 10 3 4 1 Guanca.” SI_COMA : “:” SI_DOS_PUNTOS ) “)” SI_PAR_DERECHO { “{” SI_LLAVE_IZQUIERDA } “}” SI_LLAVE_DERECHA . “. Pérez. “.

L: %{ #include <stdio.yytext[0]).} "+" {printf("+").").} "var" {printf("VAR").} ":=" {printf(":=").} .} "." {printf(". Quispe Página 2 de 8 .} "*" {printf("*").ANALEX." {printf(".h> %} blanco " "|\n|\t letra [a-zA-Z] digito [0-9] identificador {letra}({digito}|{letra})* numero {digito}+ %% {blanco}* {printf(" ").} "{" {printf("{"). Ramos.} "(" {printf("(").} "return" {printf("RETURN").} "end" {printf("END").} {numero} {printf("NUMERO"). {printf("%c". Pérez. Ramos.} %% SALIDA: Guanca." {printf(".} "function" {printf("FUNCTION").} ".} "integer" {printf("INTEGER").} ")" {printf(")").} {identificador} {printf("IDENTIFICADOR").} "}" {printf("}").} ":" {printf(":").").").} "program" {printf("PROGRAM").} ".} "begin" {printf("BEGIN").

} ".yytext[0])." {printf(". {printf("%c".} ":=" {printf(":="). Ramos.} ":" {printf(":").} {saltoLinea} {printf("\n"). Ramos.} "*" {printf("*")."). Quispe Página 3 de 8 .} "{" {printf("{").} "var" {printf("VAR")." {printf(".} {tabulacion} {printf("\t").").} "}" {printf("}").yytext).} "+" {printf("+").} "begin" {printf("BEGIN").} "program" {printf("PROGRAM").").} ".} "return" {printf("RETURN").} ".} {numero} {printf("NUMERO")." {printf(".} {identificador} {printf("%s".h> %} blanco " " saltoLinea \n tabulacion \t letra [a-zA-Z] digito [0-9] identificador {letra}({digito}|{letra})* numero {digito}+ %% {blanco} {printf(" ").} "function" {printf("FUNCTION"). Pérez.} "integer" {printf("INTEGER").L: %{ #include <stdio.} "end" {printf("END").} ")" {printf(")").Ejercicio 2: ANALEX.} .} %% Guanca.} "(" {printf("(").

Ramos. Ramos.SALIDA: Ejercicio 3: a) TABLA: LEXEMA PATRON TOKEN if “if” PR_IF else “else” PR_ELSE while “while” PR_WHILE void “void” PR_VOID [a-zA-z][a-zA-Z0-9]* IDENTIFICADOR [0-9]+ NUMERO x1 Y a Resultado 11 10 9 3 Guanca. Quispe Página 4 de 8 . Pérez.

Quispe Página 5 de 8 . Ramos. Ramos. SALIDA: Guanca. Pérez.b) SALIDA: c) Colocando la regla que reconoce los identificadores en primer lugar.

” en primer lugar.} "if" {printf(" IF ").” en primer lugar reconoce a todas las entradas de carácter como cualquier carácter y lo imprime tal cual es (incluyendo “a” y el número “1”). se ejecuta siempre la acción asociada a la primera expresión regular escrita.L: %{ #include <stdio. Ramos. Ejercicio 4: ANALEX. Además cuando se presentan varias posibilidades a la hora de procesar la entrada. SALIDA: CONCLUSION: colocando la regla del identificador en primer lugar reconoce a todas las entradas de carácter como identificadores (incluyendo “main” y “a”). Colocando la regla del “.} {ident} {printf(" %s ". Pérez. Quispe Página 6 de 8 .Colocando la regla del “.h> %} blanco " " saltoLinea \n tabulacion \t letra [a-zA-Z] digito [0-9] ident {letra}({digito}|{letra})* numero {digito}+ %% {blanco} {printf(" ").} "while" {printf(" WHILE ").} "else" {printf(" ELSE "). si dos expresiones regulares reconocen en la entrada un prefijo de igual longitud.yytext[0]).} Guanca. Esto se debe a dos razones.} {tabulacion} {printf("\t").yytext). {printf(" %c ".} {saltoLinea} {printf("\n").} "void" {printf(" VOID "). Ramos. se opta siempre por aquella que reconozca una palabra de mayor longitud.} .} {numero} {printf(" NUMERO ").

Ramos. Quispe Página 7 de 8 .%% SALIDA: Guanca. Ramos. Pérez.