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