plp.orientadaObjetos1.expressao.binaria
Class ExpEquals

java.lang.Object
  extended by plp.orientadaObjetos1.expressao.binaria.ExpBinaria
      extended by plp.orientadaObjetos1.expressao.binaria.ExpEquals
All Implemented Interfaces:
Expressao

public class ExpEquals
extends ExpBinaria

Um objeto desta classe representa uma expressao de Igualdade entre Expressoes cuja avaliacao resulta num mesmo valor primitivo.


Constructor Summary
ExpEquals(Expressao esq, Expressao dir)
          Controi uma expressao de Igualdade com as sub-expressoes especificadas.
 
Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          Retorna o valor da expressao de Igualdade
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta expressao.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Retorna os tipos possiveis desta expressao.
private  ValorBooleano verificarIgualdade(AmbienteExecucao ambiente)
          Retorna o valor booleano que representa o resultado da comparacao de igualdade de duas expressoes
 
Methods inherited from class plp.orientadaObjetos1.expressao.binaria.ExpBinaria
getDir, getEsq, getOperador
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpEquals

public ExpEquals(Expressao esq,
                 Expressao dir)
Controi uma expressao de Igualdade com as sub-expressoes especificadas. Assume-se que estas sub-expressoes resultam num mesmo valor primitivo quando avaliadas.

Parameters:
esq - expressao da esquerda
dir - expressao da direita
Method Detail

avaliar

public Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException,
                     ObjetoNaoDeclaradoException,
                     ClasseNaoDeclaradaException
Retorna o valor da expressao de Igualdade

Throws:
ClasseNaoDeclaradaException - TODO
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ObjetoNaoDeclaradoException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         ClasseNaoDeclaradaException
Realiza a verificacao de tipos desta expressao.

Specified by:
checaTipo in interface Expressao
Overrides:
checaTipo in class ExpBinaria
Parameters:
ambiente - o ambiente de compilação.
Returns:
true se os tipos da expressao são válidos; false caso contrario.
Throws:
VariavelNaoDeclaradaException - se existir um identificador nao declarado no ambiente.
VariavelNaoDeclaradaException - se existir um identificador declarado mais de uma vez no mesmo bloco do ambiente.
ClasseNaoDeclaradaException

getTipo

public Tipo getTipo(AmbienteCompilacao ambiente)
Retorna os tipos possiveis desta expressao.

Parameters:
ambiente - o ambiente de compilação.
Returns:
os tipos possiveis desta expressao.

verificarIgualdade

private ValorBooleano verificarIgualdade(AmbienteExecucao ambiente)
                                  throws VariavelJaDeclaradaException,
                                         VariavelNaoDeclaradaException,
                                         ObjetoNaoDeclaradoException,
                                         ClasseNaoDeclaradaException
Retorna o valor booleano que representa o resultado da comparacao de igualdade de duas expressoes

Parameters:
ambiente - é o Ambiente de Execução
Returns:
o valor inteiro que representa o resultado da concatenacao de dois Strings
Throws:
ClasseNaoDeclaradaException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ObjetoNaoDeclaradoException