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 00027 public ExpUnaria(Expressao exp, String operador) { 00028 this.exp = exp; 00029 this.operador = operador; 00030 } 00031 00037 public Expressao getExp() { 00038 return exp; 00039 } 00040 00046 public String getOperador() { 00047 return operador; 00048 } 00049 00061 public boolean checaTipo(AmbienteCompilacao amb) throws VariavelJaDeclaradaException, 00062 VariavelNaoDeclaradaException { 00063 return getExp().checaTipo(amb) && this.checaTipoElementoTerminal(amb); 00064 } 00065 00070 protected abstract boolean checaTipoElementoTerminal(AmbienteCompilacao amb) throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException; 00071 00072 00073 00074 }