00001 package plp.imperative2.declaration; 00002 00003 import plp.expressions1.util.Tipo; 00004 import plp.expressions2.expression.Id; 00005 import plp.expressions2.memory.VariavelJaDeclaradaException; 00006 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00007 import plp.imperative2.memory.AmbienteCompilacaoImperativa2; 00008 import plp.imperative2.memory.AmbienteExecucaoImperativa2; 00009 00010 public class DeclaracaoParametro { 00011 00012 private Id id; 00013 00014 private Tipo tipo; 00015 00016 public DeclaracaoParametro(Id id, Tipo tipo){ 00017 this.id = id; 00018 this.tipo = tipo; 00019 } 00020 00021 public Id getId() { 00022 return id; 00023 } 00024 00025 public Tipo getTipo() { 00026 return tipo; 00027 } 00028 00029 public AmbienteExecucaoImperativa2 elabora(AmbienteExecucaoImperativa2 ambiente) { 00030 return ambiente; 00031 } 00032 00033 public boolean checaTipo(AmbienteCompilacaoImperativa2 ambiente) { 00034 return tipo.eValido(); 00035 } 00036 00046 public AmbienteCompilacaoImperativa2 declaraParametro(AmbienteCompilacaoImperativa2 ambiente) 00047 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00048 ambiente.map(id, tipo); 00049 return ambiente; 00050 } 00051 00052 00053 }