00001 package plp.expressions2.expression; 00002 00003 import plp.expressions1.util.Tipo; 00004 import plp.expressions2.memory.AmbienteCompilacao; 00005 import plp.expressions2.memory.AmbienteExecucao; 00006 import plp.expressions2.memory.VariavelJaDeclaradaException; 00007 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00008 00012 public class ExpMenos extends ExpUnaria { 00013 00019 public ExpMenos(Expressao exp){ 00020 super(exp, "-"); 00021 } 00022 00033 public Valor avaliar(AmbienteExecucao amb) throws VariavelJaDeclaradaException, 00034 VariavelNaoDeclaradaException { 00035 return new ValorInteiro(- ((ValorInteiro)getExp().avaliar(amb)).valor()); 00036 } 00037 00049 protected boolean checaTipoElementoTerminal(AmbienteCompilacao amb) throws VariavelJaDeclaradaException, 00050 VariavelNaoDeclaradaException { 00051 return (getExp().getTipo(amb).eInteiro()); 00052 } 00053 00060 public Tipo getTipo(AmbienteCompilacao amb) { 00061 return Tipo.TIPO_INTEIRO; 00062 } 00063 }