00001 package plp.imperative2; 00002 00003 import plp.expressions2.memory.IdentificadorJaDeclaradoException; 00004 import plp.expressions2.memory.IdentificadorNaoDeclaradoException; 00005 import plp.imperative1.command.Comando; 00006 import plp.imperative1.memory.AmbienteCompilacaoImperativa; 00007 import plp.imperative1.memory.AmbienteExecucaoImperativa; 00008 import plp.imperative1.memory.EntradaVaziaException; 00009 import plp.imperative1.memory.ListaValor; 00010 00011 public class Programa { 00012 00013 private Comando comando; 00014 00015 public Programa(Comando comando){ 00016 this.comando = comando; 00017 } 00018 00031 public ListaValor executar(AmbienteExecucaoImperativa ambiente) 00032 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00033 EntradaVaziaException { 00034 ambiente = comando.executar(ambiente); 00035 return ambiente.getSaida(); 00036 } 00037 00049 public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 00050 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00051 EntradaVaziaException { 00052 return comando.checaTipo(ambiente); 00053 } 00054 00055 }