# Ejemplo (ejecutable) de uso de los materiales de la practica 3 # 0) DESCARGAR Y DESEMPAQUETAR: wget http://www3.uji.es/~vjimenez/PL/HERRAMIENTAS/metacomp.2.5beta3.tgz wget http://www3.uji.es/~vjimenez/PL/HERRAMIENTAS/TheDoc-1.0.tgz wget http://www3.uji.es/~vjimenez/PL/P3-MINIINT/minicomp.tgz wget http://www3.uji.es/~vjimenez/PL/P3-MINIINT/pruebasMiniint0809.tgz tar xvzf metacomp.2.5beta3.tgz tar xvzf TheDoc-1.0.tgz tar xvzf minicomp.tgz tar xvzf pruebasMiniint0809.tgz # 1) METACOMPILAR (genera el compilador Minicomp): cd minicomp ../metacomp.2.5beta3/metacomp minicomp.mc -s minicomp ####################################################################### # Existen mas opciones de Metacomp, utiles con otros ejemplos, # # aunque Minicomp no esta pensado para usar -S ni -p: # # # # -S genera analizador lexico # # -p genera analizador sintactico puro # # -A genera analizador que escribe en stderr el arbol de derivacion # # en formato VerArbol # # -h muestra estas y otras opciones # ####################################################################### # 2) COMPILAR (genera ensamblador en el fichero a.rossi): ./minicomp ../pruebasMiniint0809/pruebas2007/prueba7.i ######################################################################## # Minicomp acepta sus propias opciones: # # # # -l escribe en stdout los componentes lexicos (no genera a.rossi) # # --escribeLexico equivale a -l # # -s escribe en stdout el AST en formato VerArbol (no genera a.rossi) # # --escribeAST equivale a -s # # # # Se puede usar -A con Metacomp y despues -s con Minicomp para # # que Minicomp escriba el arbol de derivacion y el AST. # ######################################################################## # 3) EJECUTAR EN LA MAQUINA VIRTUAL: ../TheDoc-1.0/bin/thedoc -B a.rossi 2> /dev/null ######################################################################## # TheDoc tiene opciones que no estan muy bien documentadas: # # # # -b modo batch normal # # -B modo batch limpio: la informacion sobre registros usados ... la # # saca por stderr en vez de stdout, asi podemos redirigirla con 2> # # y separarla del resultado de la ejecucion, que podemos redirigir # # con >. # # -h muestra estas y otras opciones # ########################################################################