Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

Programa.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1;
00002 
00003 import plp.orientadaObjetos1.comando.Comando;
00004 import plp.orientadaObjetos1.declaracao.classe.DecClasse;
00005 import plp.orientadaObjetos1.excecao.comando.TryCatchException;
00006 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException;
00007 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException;
00008 import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException;
00009 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException;
00010 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException;
00011 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException;
00012 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException;
00013 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException;
00014 import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException;
00015 import plp.orientadaObjetos1.excecao.execucao.EntradaNaoFornecidaException;
00016 import plp.orientadaObjetos1.memoria.AmbienteCompilacao;
00017 import plp.orientadaObjetos1.memoria.AmbienteExecucao;
00018 import plp.orientadaObjetos1.memoria.colecao.ListaValor;
00022 public class Programa {
00026     private DecClasse decClasse;
00030     private Comando comando;
00031 
00037     public Programa(DecClasse decClasse, Comando comando){
00038         this.decClasse = decClasse;
00039         this.comando = comando;
00040     }
00041 
00054     public ListaValor executar(AmbienteExecucao ambiente)
00055         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00056                ObjetoNaoDeclaradoException, ObjetoJaDeclaradoException,
00057                ProcedimentoJaDeclaradoException,ProcedimentoNaoDeclaradoException,
00058                ClasseJaDeclaradaException, ClasseNaoDeclaradaException,
00059                EntradaNaoFornecidaException, EntradaInvalidaException {
00060         if(ambiente == null)
00061             throw new EntradaNaoFornecidaException();
00062         ambiente.incrementa();
00063         try {
00064             ambiente = comando.executar(decClasse.elabora(ambiente));
00065         }
00066         catch (TryCatchException e) {
00067             System.out.println(e.getMessage());
00068         }
00069         ambiente.restaura();
00070         return ambiente.getSaida();
00071     }
00072 
00084     public boolean checaTipo(AmbienteCompilacao ambiente)
00085         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00086                ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException,
00087                ClasseJaDeclaradaException, ClasseNaoDeclaradaException,
00088                EntradaNaoFornecidaException{
00089         boolean resposta;
00090         if(ambiente == null) {
00091             throw new EntradaNaoFornecidaException();
00092         }
00093         ambiente.incrementa();
00094         resposta = decClasse.checaTipo(ambiente) && comando.checaTipo(ambiente);
00095         ambiente.restaura();
00096         return resposta;
00097     }
00098 }

Generated on Mon Aug 8 20:20:48 2005 for Linguagem OO1 - Generics by  doxygen 1.4.4