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

ExpAnd.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 
00018 public class ExpAnd extends ExpBinaria{
00019 
00028     public ExpAnd(Expressao esq, Expressao dir) {
00029         super(esq, dir, "and");
00030     }
00031 
00032 
00038      public Valor avaliar(AmbienteExecucao ambiente)
00039         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00040                ObjetoNaoDeclaradoException {
00041         return obterComparacaoAND(ambiente);
00042     }
00043 
00055     public boolean checaTipo(AmbienteCompilacao ambiente)
00056         throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException {
00057 
00058         boolean result;
00059         if (super.checaTipo(ambiente) &&
00060             ((TipoPrimitivo)getEsq().getTipo(ambiente)).eBooleano() &&
00061             ((TipoPrimitivo)getDir().getTipo(ambiente)).eBooleano()) {
00062             result = true;
00063         }
00064         else {
00065             result = false;
00066         }
00067         return result;
00068     }
00069 
00076     public Tipo getTipo(AmbienteCompilacao ambiente) {
00077         return TipoPrimitivo.TIPO_BOOLEANO;
00078     }
00079 
00085     private ValorBooleano obterComparacaoAND(AmbienteExecucao ambiente)
00086             throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00087                    ObjetoNaoDeclaradoException{
00088         return new ValorBooleano(
00089                     ((ValorBooleano)getEsq().avaliar(ambiente)).valor() &&
00090                     ((ValorBooleano)getDir().avaliar(ambiente)).valor()
00091         );
00092     }
00093 }

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