00001 package plp.orientadaObjetos1.expressao; 00002 00003 import plp.expressions2.memory.VariavelJaDeclaradaException; 00004 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00006 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException; 00007 import plp.orientadaObjetos1.expressao.valor.Valor; 00008 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1; 00009 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1; 00010 import plp.orientadaObjetos1.util.Tipo; 00011 00015 public interface Expressao { 00016 00021 Valor avaliar(AmbienteExecucaoOO1 ambiente) 00022 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException, 00023 ObjetoNaoDeclaradoException, ClasseNaoDeclaradaException; 00024 00032 boolean checaTipo(AmbienteCompilacaoOO1 ambiente) 00033 throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException; 00034 00041 public Tipo getTipo(AmbienteCompilacaoOO1 ambiente) 00042 throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException; 00043 00044 }