ComandoDeclaracao.java

Go to the documentation of this file.
00001 package plp.imperative1.command;
00002 
00003 import plp.imperative1.declaration.Declaracao;
00004 import plp.imperative1.memory.AmbienteExecucaoImperativa;
00005 import plp.imperative1.memory.AmbienteCompilacaoImperativa;
00006 import plp.imperative1.memory.EntradaVaziaException;
00007 import plp.expressions2.memory.IdentificadorJaDeclaradoException;
00008 import plp.expressions2.memory.IdentificadorNaoDeclaradoException;
00009 
00010 public class ComandoDeclaracao implements Comando {
00011     
00012     private Declaracao declaracao;
00013     
00014     private Comando comando;
00015     
00016     public ComandoDeclaracao(Declaracao declaracao, Comando comando){
00017         this.declaracao = declaracao;
00018         this.comando = comando;
00019     }
00020     
00030     public AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente) 
00031         throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException {
00032         ambiente.incrementa();
00033         ambiente = comando.executar(declaracao.elabora(ambiente));
00034         ambiente.restaura();
00035         return ambiente;
00036     }
00037 
00042     public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 
00043                 throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException {
00044                 boolean resposta;
00045                 ambiente.incrementa();
00046                 if(declaracao.checaTipo(ambiente)) {
00047             //ambiente = declaracao.declara(ambiente);
00048             resposta = comando.checaTipo(ambiente);
00049         }
00050         else {
00051             resposta = false;
00052         }
00053         ambiente.restaura();
00054         return resposta;
00055     }
00056  
00057 }

Generated on Tue Sep 12 21:52:04 2006 for PLP by  doxygen 1.4.7