00001 package plp.expressions2.expression; 00002 00003 import plp.expressions1.util.Tipo; 00004 import plp.expressions2.memory.AmbienteCompilacao; 00005 import plp.expressions2.memory.AmbienteExecucao; 00006 import plp.expressions2.memory.VariavelJaDeclaradaException; 00007 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00008 00012 public class ExpNot extends ExpUnaria{ 00013 00021 public ExpNot( Expressao exp) { 00022 super(exp, "~"); 00023 } 00024 00033 public Valor avaliar(AmbienteExecucao amb) throws VariavelJaDeclaradaException, 00034 VariavelNaoDeclaradaException { 00035 return new ValorBooleano(!((ValorBooleano) getExp().avaliar(amb)).valor()); 00036 } 00037 00049 protected boolean checaTipoElementoTerminal(AmbienteCompilacao amb) throws VariavelJaDeclaradaException, 00050 VariavelNaoDeclaradaException { 00051 return (getExp().getTipo(amb).eBooleano()); 00052 } 00053 00060 public Tipo getTipo(AmbienteCompilacao amb) { 00061 return Tipo.TIPO_BOOLEANO; 00062 } 00063 }