00001 package plp.expressions1.expression; 00002 00007 public abstract class ExpBinaria implements Expressao { 00008 00012 private Expressao esq; 00013 00017 private Expressao dir; 00018 00022 private String operador; 00023 00031 public ExpBinaria(Expressao esq, Expressao dir, String operador) { 00032 this.esq = esq; 00033 this.dir = dir; 00034 this.operador = operador; 00035 } 00036 00042 public Expressao getEsq() { 00043 return esq; 00044 } 00045 00051 public Expressao getDir() { 00052 return dir; 00053 } 00054 00060 public String getOperador() { 00061 return operador; 00062 } 00063 00069 public String toString() { 00070 StringBuffer sb = new StringBuffer(); 00071 sb.append(esq.toString()); 00072 sb.append(' '); 00073 sb.append(operador); 00074 sb.append(' '); 00075 sb.append(dir.toString()); 00076 return sb.toString(); 00077 } 00078 00085 public boolean checaTipo() { 00086 boolean result; 00087 if (!getEsq().checaTipo() || !getDir().checaTipo()) { 00088 result = false; 00089 } 00090 else { 00091 result = this.checaTipoElementoTerminal(); 00092 } 00093 return result; 00094 } 00095 00100 protected abstract boolean checaTipoElementoTerminal(); 00101 00102 00103 }