While.java

Go to the documentation of this file.
00001 package plp.imperative1.command;
00002 
00003 import plp.expressions2.expression.Expressao;
00004 import plp.expressions2.expression.ValorBooleano;
00005 import plp.imperative1.memory.AmbienteExecucaoImperativa;
00006 import plp.imperative1.memory.AmbienteCompilacaoImperativa;
00007 import plp.imperative1.memory.EntradaVaziaException;
00008 import plp.expressions2.memory.IdentificadorJaDeclaradoException;
00009 import plp.expressions2.memory.IdentificadorNaoDeclaradoException;
00010 
00011 public class While implements Comando{
00012 
00013     private Expressao expressao;
00014     
00015     private Comando comando;
00016     
00017     public While(Expressao expressao, Comando comando){
00018         this.expressao  = expressao;
00019         this.comando = comando;
00020     }
00021 
00031     public AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente)
00032         throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException {
00033         while ( ((ValorBooleano)expressao.avaliar(ambiente)).valor() ) {
00034             ambiente = comando.executar(ambiente);
00035         }
00036         return ambiente;
00037     }
00038     
00047     public boolean checaTipo(AmbienteCompilacaoImperativa ambiente) 
00048         throws IdentificadorJaDeclaradoException, IdentificadorNaoDeclaradoException, EntradaVaziaException {
00049         return expressao.checaTipo(ambiente) && 
00050                expressao.getTipo(ambiente).eBooleano() && 
00051                comando.checaTipo(ambiente);
00052     }
00053 
00054 }

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