plp.orientadaObjetos1.comando
Class Atribuicao

java.lang.Object
  extended by plp.orientadaObjetos1.comando.Atribuicao
All Implemented Interfaces:
Comando

public class Atribuicao
extends java.lang.Object
implements Comando

Classe que representa um comando de atribuição.


Field Summary
private  LeftExpression av
          Lado esquerdo do comando de atribuição.
private  Expressao expressao
          Expressão cujo valor será atribuído ao lado esquerdo.
 
Constructor Summary
Atribuicao(LeftExpression av, Expressao expressao)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Um comando de atribuição está bem tipado, se o tipo do identificador é o mesmo da expressão.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Executa a atribuição.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

av

private LeftExpression av
Lado esquerdo do comando de atribuição.


expressao

private Expressao expressao
Expressão cujo valor será atribuído ao lado esquerdo.

Constructor Detail

Atribuicao

public Atribuicao(LeftExpression av,
                  Expressao expressao)
Construtor.

Parameters:
av - Lado esquerdo
expressao - Expressão cujo valor será atribuído ao lado esquerdo.
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ObjetoNaoDeclaradoException,
                                 ClasseNaoDeclaradaException
Executa a atribuição.

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 atribuição.
Throws:
ClasseNaoDeclaradaException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ObjetoNaoDeclaradoException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         ClasseNaoDeclaradaException
Um comando de atribuição está bem tipado, se o tipo do identificador é o mesmo da expressão. O tipo de um identificador é determinado pelo tipo da expressão que o inicializou (na declaração).

Specified by:
checaTipo in interface Comando
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e valores.
Returns:
true se os tipos da atribuição são válidos; false caso contrario.
Throws:
VariavelNaoDeclaradaException
ClasseNaoDeclaradaException