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