Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

ExpOr.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.expressao.binaria;
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.Expressao;
00008 import plp.orientadaObjetos1.expressao.valor.Valor;
00009 import plp.orientadaObjetos1.expressao.valor.ValorBooleano;
00010 import plp.orientadaObjetos1.memoria.AmbienteCompilacao;
00011 import plp.orientadaObjetos1.memoria.AmbienteExecucao;
00012 import plp.orientadaObjetos1.util.Tipo;
00013 import plp.orientadaObjetos1.util.TipoPrimitivo;
00014 
00015 
00019 public class ExpOr extends ExpBinaria {
00020 
00029     public ExpOr(Expressao esq, Expressao dir){
00030         super(esq, dir, "or");
00031     }
00032 
00033 
00037     public Valor avaliar(AmbienteExecucao ambiente)
00038         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00039              ObjetoNaoDeclaradoException {
00040     return obterComparacaoOR(ambiente);
00041     }
00042 
00054     public boolean checaTipo(AmbienteCompilacao ambiente)
00055         throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException {
00056         boolean result;
00057         if (super.checaTipo(ambiente) &&
00058             ((TipoPrimitivo)getEsq().getTipo(ambiente)).eBooleano() &&
00059             ((TipoPrimitivo)getDir().getTipo(ambiente)).eBooleano()) {
00060             result = true;
00061         }
00062         else {
00063             result = false;
00064         }
00065         return result;
00066     }
00067 
00073     public Tipo getTipo(AmbienteCompilacao ambiente) {
00074         return TipoPrimitivo.TIPO_BOOLEANO;
00075     }
00076 
00082     private ValorBooleano obterComparacaoOR(AmbienteExecucao ambiente)
00083             throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00084                    ObjetoNaoDeclaradoException{
00085         return new ValorBooleano(
00086                 ((ValorBooleano)getEsq().avaliar(ambiente)).valor() ||
00087                 ((ValorBooleano)getDir().avaliar(ambiente)).valor() );
00088     }
00089 }

Generated on Mon Aug 8 20:20:46 2005 for Linguagem OO1 - Generics by  doxygen 1.4.4