Documente Academic
Documente Profesional
Documente Cultură
MATRIZ:VECTOR VECTORE; }
VECTOR : LLAVEABIERTA D COMA DD printf("\n");
LLAVECERRADA; // {digito1,digito2} f++;
VECTORE : LLAVEABIERTA DDD COMA DDDD }
LLAVECERRADA; // // {digito3,digito4} }
D:NUMERO{ matriz2[0][0]= $1;};
DD:NUMERO{ matriz2[0][1]= $1;};
DDD:NUMERO{ matriz2[1][0]= $1;}; 2.2 EXTRACCIÓN DEL EJECUTABLE
DDDD:NUMERO{ matriz2[1][1]= $1;}; Primero compiladores el archive de
Flexx el matriz.l .
%%
void yyerror(char *s){ Esto nos genera un lexx.yy
printf("\n Esta sentencia no es valida: %s",s);
printf("\n Presione cualquiera tecla para salir...");
getche();
Segundo compilamos matriz.y (bison)
}
int main(int argc,char **argv){ Esto nos general matriz.tab.c
if (argc>1)
yyin=fopen(argv[1],"rt");
else Despues utilizaremos el comando
yyin=stdin; “matriz.tab.c -o matriz
yyparse();
return 0;
Esto nos generara el ejecutable
}
void sumaMatrix(int matriz1[2][2],int matriz2[2][2]){
int f=0, g=0;
printf("\n\n:: SUMA ::\n");
while(f<2){ Fig 1: Ejecutable
g=0;
while(g<2){ 3. Conclusiones y Recomendaciones
printf("%d\t",matriz1[f][g]);
g++;
}
f++; 3.1. CONCLUSIONES
printf("\n"); El analizador l´exico que genera lex
} reconoce siempre la cadena m´as larga que
printf("---------\n");
coincida con una de las expresiones
f=0; g=0;
regulares, aunque un prefijo de esa cadena
sea reconocido por otras expresiones
while(f<2){ regulares.
g=0; Las expresiones regulares deben aparecer al
while(g<2){
printf("%d\t",matriz2[f][g]);
principio de la l´ınea para ser reconocidas
g++; por lex; si aparecen m´as a la derecha lex
} pensar´a que son parte de las acciones.
f++; En general, lex no comprueba que el
printf("\n"); c´odigo sea C, C++ o cualquier otro
}
printf("---------\n"); lenguaje; simplemente lo inserta en el lugar
que le corresponde en el analizador l´exico
f=0; g=0; que va a generar. Este analizador l´exico se
while(f<2){ construye a partir de un esqueleto que suele
g=0; estar escrito en C.
while(g<2){
printf("%d\t",matriz1[f][g]+matriz2[f][g]); Yacc proporciona una herramienta general
g++; para describir la entrada a un programa de
4
RECOMENDACIONES
3.2.
La sintaxis que ingresa el usuario debe ser
impecable, ya que de otro modo obtendrá un
error.
Fijarse en la regla o las reglas que acepta la
aplicación.
Tener en cuenta que el ejecutable se extrae
tras una serie de pasos y está escrito en c.
I. REFERENCIAS
Alicante, U. d. (2017). Hoja Tecnica Lex y Yacc. Alicante.
Johnson, S. C. (2011). Dinosaurio Compiler Tools. Obtenido
de http://dinosaur.compilertools.net/yacc/
LUV. (Junio de 2015). Obtenido de
https://luv.asn.au/overheads/lex_yacc/index.html
Unicen. (2017). Unicen. Obtenido de
http://www.exa.unicen.edu.ar/catedras/compila1/inde
x_archivos/Herramientas/Yacc.pdf