00001 package plp.orientadaObjetos1.memoria; 00002 00003 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException; 00004 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException; 00006 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException; 00007 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException; 00008 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException; 00009 import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException; 00010 import plp.orientadaObjetos1.expressao.leftExpression.Id; 00011 import plp.orientadaObjetos1.expressao.valor.Valor; 00012 import plp.orientadaObjetos1.expressao.valor.ValorRef; 00013 import plp.orientadaObjetos1.memoria.colecao.ListaValor; 00014 import plp.orientadaObjetos1.memoria.colecao.StackHashIdDefClasse; 00015 import plp.orientadaObjetos1.memoria.colecao.StackHashIdValor; 00016 import plp.orientadaObjetos1.memoria.colecao.StackHashTipoTipo; 00017 import plp.orientadaObjetos1.memoria.colecao.StackHashValorObjeto; 00018 import plp.orientadaObjetos1.util.Tipo; 00019 00024 public interface AmbienteExecucao extends Ambiente { 00029 public StackHashIdValor getPilha(); 00030 00035 public StackHashTipoTipo getPilhaTipoTipo(); 00036 00041 public StackHashIdDefClasse getPilhaDefClasse(); 00042 00047 public StackHashValorObjeto getPilhaObjeto(); 00048 00056 public void mapValor(Id idArg, Valor valorId) throws VariavelJaDeclaradaException; 00057 00064 public void mapTipoReal(Tipo tipoGeneric, Tipo tipoReal) throws ClasseJaDeclaradaException; 00065 00072 public void mapDefClasse(Id idArg, DefClasse defClasse) throws ClasseJaDeclaradaException; 00073 00080 public void mapObjeto(ValorRef valorRef, Objeto objeto) throws ObjetoJaDeclaradoException; 00081 00089 public void changeValor(Id idArg, Valor valorId) throws VariavelNaoDeclaradaException; 00090 00098 public Valor getValor(Id idArg) throws VariavelNaoDeclaradaException; 00099 00106 public Tipo getTipoReal(Tipo tipoGeneric) throws ClasseNaoDeclaradaException; 00107 00115 public DefClasse getDefClasse(Id idArg) throws ClasseNaoDeclaradaException; 00116 00123 public Objeto getObjeto(ValorRef valorRef) throws ObjetoNaoDeclaradoException; 00124 00129 public ValorRef getProxRef(); 00130 00135 public ValorRef getRef(); 00136 00145 public Valor read(Tipo tipoIdLido) throws EntradaInvalidaException; 00146 00152 public AmbienteExecucao write(Valor v); 00153 00158 public ListaValor getEntrada(); 00159 00164 public ListaValor getSaida(); 00165 00172 public ContextoExecucao getContextoIdValor(); 00173 }