00001 package plp.imperative1.command; 00002 00003 import plp.expressions2.expression.Id; 00004 import plp.imperative1.memory.AmbienteExecucaoImperativa; 00005 import plp.imperative1.memory.AmbienteCompilacaoImperativa; 00006 import plp.imperative1.memory.EntradaVaziaException; 00007 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00008 import plp.expressions2.memory.VariavelJaDeclaradaException; 00009 00010 public class Read implements IO { 00011 00012 private Id id; 00013 00014 public Read ( Id id){ 00015 this.id = id; 00016 } 00017 00027 public AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente) 00028 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, EntradaVaziaException { 00029 ambiente.changeValor(id, ambiente.read()); 00030 return ambiente; 00031 } 00032 00040 public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 00041 throws VariavelNaoDeclaradaException, EntradaVaziaException, VariavelJaDeclaradaException { 00042 return id.getTipo(ambiente).equals(ambiente.getTipoEntrada()); 00043 } 00044 00045 }