Está en la página 1de 13

Configuración del proyecto para la práctica de

PL1/PL2.

Historial de cambios:

Versión Fecha Comentario/Descripción Autor


v1.0 2020-03-03 Creación del documento @mmosor

Entorno de java JDK: 8 o superior, ya que no hace llamadas específicas a las APIs de alguna
versión concreta.

1
Pasos para la creación y configuración del proyecto con la arquitectura de PL1/PL2

Paso 1: Crear un proyecto nuevo:

File -> New – Java Project

Paso 2: Poner un nombre al proyecto:

Click -> Next

2
Paso 3: configuración del proyecto:

QUITAR/desmarcar el check/tic Create module-info.java file

Click Finish.

Paso 4: dentro del proyecto creado, hay que copiar las carpetas de la arquitectura:

3
Las carpetas de la arquitectura: classes, doc, lib, src

Copiar las carpetas y pegarlas dentro del proyecto.

Seleccionar Overwrite All.

4
El proyecto queda así:

Paso 6: configuración de las librerías de la arquitectura: ya están en la carpeta /lib

Las librerías aunque existan dentro de la carpeta /lib, no significa que el proyecto vaya a
funcionar; por tanto, hay que referenciarlas.

5
Paso 7: Referenciar las librerías de la arquitectura:

Click derecho sobre el proyecto, Build path  Configure build path…

En la pestaña Libraries, selecionamos Modulepath y luego Add JARS…, el primer botón.

6
Navegamos hasta las librerías del proyecto, y las seleccionamos todas, luego OK:

A continuación , click en Apply y luego en Apply and Close.

7
Las librerías quedan referenciadas en el proyecto (llevan una marca parecida al acceso
directo).

Paso 8: Ahora, copiamos los casos de pruebas en la carpeta /test

8
Paso 9: Abrimos el fichero doc/config/build.xml y seleccionamos la entrada cupTest:

click derecho sobre cupTest  Run As  Ant build

9
Y aparece la consola de eclipse con el resultado de la ejecución.

Veamos cómo interpretar los que aparece:

0 errores y 0 warnings;  no hay errores del analizador Léxico, ni tampoco conflictos de


desplazamiento/reducción de estados. OK.

Code written to parser.java y sym.java

Estos dos ficheros se generan siempre que se lanza una ejecución, son el resultado de la
traducción del código CUP a código java.

[javac]
D:\workspace_uned\Practica_PDL2\ src\compiler\syntax\parser.java :21: error:
package compiler.semantic does not exist

Este mensaje nos indica donde se ha producido el error, aunque sea un fichero auto-generado,
no nos da muchas pistas, pero el mensaje a continuación puede que sí.

Click derecho sobre el proyecto  Refresh:

Eclipse cachea las carpetas, pero hay que refrescarlas en la vista; esto se hace con Refresh ( o
pulsar F5) sobre el proyecto.

Y navegamos hasta la ruta del fichero con el mensaje en cuestión:

10
[javac]
D:\workspace_uned\Practica_PDL2\src\compiler\syntax\parser.java:21: error:
package compiler.semantic does not exist
[javac] import compiler.semantic.*;
[javac] ^
[javac] 1 error

Este error se debe que hay un import duplicado de más alto nivel, que realmente no tiene
fichero a importar; poner un asterisco a continuación de un paquete es lo mismo que importar
todas las clases que se encuentran dentro de ese mismo paquete.

import compiler.semantic.*;
import compiler.semantic.symbol.*;
import compiler.semantic.type.*;

Lo que viene a decir es que se importe todo, pero luego hay importaciones específicas de las
subcarpetas symbol.* y type.* , es decir son redundantes En este caso, quitamos la
importación import compiler.semantic.* y dejamos sólo las dos más específicas
para symbol.* y para type.*

11
12
Pero la importación no se quita del parser.java, sino del fichero fuente que lo genera, esto es
parser.cup.

Se comenta la línea, click sobre el proyecto y Refresh, y luego en el build.xml  Run as 


cupTest.

Si sale algún mensaje de error en eclipse de tipo NullPointerException, simplemente hay que
ignorarlo y volver a lanzar el comando.

El resultado en consola debería ser algo parecido a esto:

*****

13

También podría gustarte