plp.orientadaObjetos2.expressao.binaria
Class ExpInstanceOf

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

public class ExpInstanceOf
extends ExpBinaria


Constructor Summary
ExpInstanceOf(Expressao idObjeto, Expressao classe)
          Constrói uma expressao instanceof com as sub-expressoes especificadas.
 
Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          Retorna o valor da expressao instanceof.
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta expressao.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Retorna os tipos possiveis desta expressao.
 
Methods inherited from class plp.orientadaObjetos1.expressao.binaria.ExpBinaria
getDir, getEsq, getOperador
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpInstanceOf

public ExpInstanceOf(Expressao idObjeto,
                     Expressao classe)
Constrói uma expressao instanceof com as sub-expressoes especificadas. Assume-se que estas sub-expressoes resultam em ValorBooleano quando avaliadas.

Parameters:
idObjeto - expressao que representa o identificador do objeto
classe - expressao que representa a classe
Method Detail

avaliar

public Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException,
                     ObjetoNaoDeclaradoException
Retorna o valor da expressao instanceof.

Throws:
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)
             throws VariavelNaoDeclaradaException,
                    ClasseNaoDeclaradaException
Retorna os tipos possiveis desta expressao.

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