ExpSub.java

Go to the documentation of this file.
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 ExpSub extends ExpBinaria {
00013 
00022         public ExpSub(Expressao esq, Expressao dir) {
00023                 super(esq, dir, "-");
00024         }
00025 
00029         public Valor avaliar(AmbienteExecucao amb) throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException {
00030                 return new ValorInteiro(
00031                                 ((ValorInteiro)getEsq().avaliar(amb)).valor() -
00032                                 ((ValorInteiro)getDir().avaliar(amb)).valor()
00033                 );
00034         }
00035 
00047         protected boolean checaTipoElementoTerminal(AmbienteCompilacao ambiente)
00048                         throws VariavelNaoDeclaradaException,VariavelJaDeclaradaException {
00049                 return (getEsq().getTipo(ambiente).eInteiro() && getDir().getTipo(ambiente).eInteiro());
00050         }
00051 
00058         public Tipo getTipo(AmbienteCompilacao ambiente) {
00059                 return Tipo.TIPO_INTEIRO;
00060         }
00061 
00062 }

Generated on Tue Sep 12 21:36:02 2006 for PLP by  doxygen 1.4.7