00001 package plp.orientadaObjetos1.expressao.binaria; 00002 00003 import plp.expressions2.memory.VariavelJaDeclaradaException; 00004 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00006 import plp.orientadaObjetos1.expressao.Expressao; 00007 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1; 00008 00013 public abstract class ExpBinaria implements Expressao { 00014 00018 private Expressao esq; 00019 00023 private Expressao dir; 00024 00028 private String operador; 00029 00037 public ExpBinaria(Expressao esq, Expressao dir, String operador) { 00038 this.esq = esq; 00039 this.dir = dir; 00040 this.operador = operador; 00041 } 00042 00048 public Expressao getEsq() { 00049 return esq; 00050 } 00051 00057 public Expressao getDir() { 00058 return dir; 00059 } 00060 00066 public String getOperador() { 00067 return operador; 00068 } 00069 00081 public boolean checaTipo(AmbienteCompilacaoOO1 ambiente) 00082 throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException { 00083 boolean result; 00084 if (getEsq().checaTipo(ambiente) && 00085 getDir().checaTipo(ambiente)) { 00086 result = true; 00087 } 00088 else { 00089 result = false; 00090 } 00091 return result; 00092 } 00093 00094 }