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 ExpOr extends ExpBinaria { 00014 00023 public ExpOr(Expressao esq, Expressao dir){ 00024 super(esq, dir, "or"); 00025 } 00026 00027 00031 public Valor avaliar(AmbienteExecucao amb) throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00032 return new ValorBooleano( 00033 ((ValorBooleano)getEsq().avaliar(amb)).valor() || 00034 ((ValorBooleano)getDir().avaliar(amb)).valor() ); 00035 } 00036 00048 protected boolean checaTipoElementoTerminal(AmbienteCompilacao ambiente) 00049 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00050 return (getEsq().getTipo(ambiente).eBooleano() && getDir().getTipo(ambiente).eBooleano()); 00051 } 00052 00059 public Tipo getTipo(AmbienteCompilacao ambiente) { 00060 return TipoPrimitivo.BOOLEANO; 00061 } 00062 00063 }
1.5.8