00001 package plp.imperative1.declaration; 00002 00003 import plp.expressions2.expression.Expressao; 00004 import plp.expressions2.expression.Id; 00005 import plp.expressions2.memory.IdentificadorJaDeclaradoException; 00006 import plp.expressions2.memory.IdentificadorNaoDeclaradoException; 00007 import plp.imperative1.memory.AmbienteCompilacaoImperativa; 00008 import plp.imperative1.memory.AmbienteExecucaoImperativa; 00009 00010 public class DeclaracaoVariavel extends Declaracao<Id, Expressao>{ 00011 00012 public DeclaracaoVariavel(Id id, Expressao expressao){ 00013 super(id, expressao); 00014 } 00015 00025 public AmbienteExecucaoImperativa elabora(AmbienteExecucaoImperativa ambiente) 00026 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException{ 00027 ambiente.map(parametro1 , parametro2.avaliar(ambiente)); 00028 return ambiente; 00029 } 00030 00043 public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 00044 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException { 00045 boolean result = parametro2.checaTipo(ambiente); 00046 if (result) { 00047 ambiente.map(parametro1, parametro2.getTipo(ambiente)); 00048 } 00049 return result; 00050 } 00051 }