plp.imperative1.command
Class ComandoDeclaracao

java.lang.Object
  extended by plp.imperative1.command.ComandoDeclaracao
All Implemented Interfaces:
Comando

public class ComandoDeclaracao
extends java.lang.Object
implements Comando


Constructor Summary
ComandoDeclaracao(Declaracao declaracao, Comando comando)
           
 
Method Summary
 boolean checaTipo(AmbienteCompilacaoImperativa ambiente)
          Verifica se o tipo do comando esta correto, levando em conta que o tipo de uma variavel é o tipo do valor da sua primeira atribuicao.
 AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente)
          Declara a(s) variável(is) e executa o comando.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComandoDeclaracao

public ComandoDeclaracao(Declaracao declaracao,
                         Comando comando)
Method Detail

executar

public AmbienteExecucaoImperativa executar(AmbienteExecucaoImperativa ambiente)
                                    throws IdentificadorJaDeclaradoException,
                                           IdentificadorNaoDeclaradoException,
                                           EntradaVaziaException
Declara a(s) variável(is) e executa o comando.

Specified by:
executar in interface Comando
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e valores.
Returns:
o ambiente modificado pela execução da declaração e do comando.
Throws:
IdentificadorJaDeclaradoException
IdentificadorNaoDeclaradoException
EntradaVaziaException

checaTipo

public boolean checaTipo(AmbienteCompilacaoImperativa ambiente)
                  throws IdentificadorJaDeclaradoException,
                         IdentificadorNaoDeclaradoException,
                         EntradaVaziaException
Verifica se o tipo do comando esta correto, levando em conta que o tipo de uma variavel é o tipo do valor da sua primeira atribuicao.

Specified by:
checaTipo in interface Comando
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e tipos.
Returns:
true se os comando são bem tipados; false caso contrario.
Throws:
IdentificadorJaDeclaradoException
IdentificadorNaoDeclaradoException
EntradaVaziaException