00001 package plp.expressions2.expression; 00002 00003 import plp.expressions2.memory.AmbienteCompilacao; 00004 import plp.expressions2.memory.VariavelJaDeclaradaException; 00005 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00006 00010 public abstract class ExpUnaria implements Expressao { 00011 00015 private Expressao exp; 00016 00020 private String operador; 00021 00028 public ExpUnaria(Expressao exp, String operador) { 00029 this.exp = exp; 00030 this.operador = operador; 00031 } 00032 00038 public Expressao getExp() { 00039 return exp; 00040 } 00041 00047 public String getOperador() { 00048 return operador; 00049 } 00050 00063 public boolean checaTipo(AmbienteCompilacao amb) 00064 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException { 00065 return getExp().checaTipo(amb) && this.checaTipoElementoTerminal(amb); 00066 } 00067 00068 @Override 00069 public String toString() { 00070 return String.format("%s %s", operador, exp); 00071 } 00072 00077 protected abstract boolean checaTipoElementoTerminal(AmbienteCompilacao amb) 00078 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException; 00079 00080 }
1.5.8