00001 package plp.imperative1; 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 ambienteExecucao) 00032 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException { 00033 ambienteExecucao = comando.executar(ambienteExecucao); 00034 return ambienteExecucao.getSaida(); 00035 } 00036 00048 public boolean checaTipo(AmbienteCompilacaoImperativa ambienteCompilacao) 00049 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException { 00050 return comando.checaTipo(ambienteCompilacao); 00051 } 00052 00053 }