00001 package plp.imperative1.command; 00002 00003 import plp.imperative1.memory.AmbienteCompilacaoImperativa; 00004 import plp.imperative1.memory.AmbienteExecucaoImperativa; 00005 import plp.imperative1.memory.EntradaVaziaException; 00006 import plp.expressions2.memory.IdentificadorJaDeclaradoException; 00007 import plp.expressions2.memory.IdentificadorNaoDeclaradoException; 00008 00009 public class SequenciaComando implements Comando{ 00010 00011 private Comando comando1; 00012 private Comando comando2; 00013 00014 public SequenciaComando(Comando comando1, Comando comando2){ 00015 this.comando1 = comando1; 00016 this.comando2 = comando2; 00017 } 00018 00028 public AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente) 00029 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00030 EntradaVaziaException { 00031 return comando2.executar( comando1.executar(ambiente) ); 00032 } 00033 00041 public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 00042 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, 00043 EntradaVaziaException { 00044 return comando1.checaTipo(ambiente) && comando2.checaTipo(ambiente); 00045 } 00046 }