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