00001 package plp.orientadaObjetos1.memoria; 00002 00003 import plp.orientadaObjetos1.declaracao.procedimento.ListaDeclaracaoParametro; 00004 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00006 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException; 00007 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException; 00008 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException; 00009 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException; 00010 import plp.orientadaObjetos1.expressao.leftExpression.Id; 00011 import plp.orientadaObjetos1.util.Tipo; 00016 public interface AmbienteCompilacao extends Ambiente { 00023 public void mapTipo(Id idArg, Tipo tipoId) throws VariavelJaDeclaradaException; 00024 00031 public Tipo getTipo(Id idArg) throws VariavelNaoDeclaradaException; 00032 00040 public void mapParametrosProcedimento(Id idArg, ListaDeclaracaoParametro parametrosId) throws ProcedimentoJaDeclaradoException; 00041 00051 public ListaDeclaracaoParametro getParametrosProcedimento(Id idArg) throws ProcedimentoNaoDeclaradoException; 00052 00059 public void mapDefClasse(Id idArg, DefClasse defClasse) throws ClasseJaDeclaradaException; 00060 00068 public DefClasse getDefClasse(Id idArg) throws ClasseNaoDeclaradaException; 00069 00076 public void mapGeneric(Id idArg, Tipo tipoGeneric) throws ClasseJaDeclaradaException; 00077 00084 public void mapTipoReal(Tipo tipoGeneric, Tipo tipoReal) throws ClasseJaDeclaradaException; 00085 00092 public Tipo getTipoReal(Tipo tipoGeneric) throws ClasseNaoDeclaradaException; 00093 00101 public Tipo getGeneric(Id idArg) throws ClasseNaoDeclaradaException; 00102 00109 public Tipo getTipoEntrada() throws VariavelNaoDeclaradaException; 00110 00111 }