• Material de apoio específico do projecto: 
    • Parser da Linguagem: NewParser.java
      • Note-se que o código presente neste parser pode (e deve) ser alterado por forma a ser adaptado ao caso particular de cada grupo.
    • Framework de Interacção com o Utilizador: po-uilib.jar
    • Blioteca com as Strings a utilizar no projecto: pex-support.jar
      •  Esta versão foi compilada com jdk1.8. Se estiver a utilizar uma versão mais antiga do jdk, então é necessário compilar os ficheiros java presentes em pex-support.jar e construir o jar com os novos ficheiros compilados. É ainda necessário transformar as duas interfaces Message presentes no ficheiro fornecido e dizer que são duas classes abstractas em vez interfaces (Só a verão 1.8 do Java é que suporta a definição de métodos em interfaces).
    • Esqueleto das classes com a interacção com o utilizador:  pex-alunos.jar
      • Além do esqueleto das várias subclasses de Command disponibilizadas, são ainda disponibilizadas as seguintes classes:
        • A interface pex.AppIO que define uma interface para as operações de interacção com o utilizador (ler inteiros e cadeias de caracteres e escrever uma cadeia de caracteres). A concretização desta interface depende da framework de interacção utilizada pela aplicação. Deve haver uma entidade na aplicação (por exemplo pex.app.App) que concretiza esta interface tendo em conta a utilização da framework po-uilib. Esta entidade deve ser utilizada pelas expressões reads, readi, print. Desta forma, a concretização destas três expressões compostas será independente da framework de interacção com o utilizador utilizada na aplicação.
        • São também disponibilizadas algumas excepções a utilizar na aplicação.
        • O esqueleto da classe com o ponto de entrada da aplicação, pex.app.App. É necessário concretizar pelo menos o método main desta classe.
        • As classes que concretizam os dois menus a apresentar nesta aplicação: pex.app.main.MainMenu e pex.app.evaluator.EvaluatorMenu. Estas duas classes são responsáveis por criar um menu, indicando-lhe o vector de comandos que representa o conjunto de opções a apresentar em cada caso. É necessário editar estas classes por forma a instanciar correctamente cada um comandos necessários.