plp.orientadaObjetos1.expressao
Interface Expressao

All Known Subinterfaces:
LeftExpression, Valor, ValorConcreto
All Known Implementing Classes:
AcessoAtributo, AcessoAtributoId, AcessoAtributoThis, ExpAnd, ExpBinaria, ExpConcat, ExpEquals, ExpLength, ExpMenos, ExpNot, ExpOr, ExpSoma, ExpSub, ExpUnaria, Id, This, ValorBooleano, ValorInteiro, ValorNull, ValorRef, ValorString

public interface Expressao

Uma expressão é a unidade basica na Linguagem de Expressoes.


Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          Avalia a expressao retornando seu Valor.
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta expressao.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Retorna os tipos possiveis desta expressao.
 

Method Detail

avaliar

Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException,
                     ObjetoNaoDeclaradoException,
                     ClasseNaoDeclaradaException
Avalia a expressao retornando seu Valor.

Throws:
ClasseNaoDeclaradaException - TODO
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ObjetoNaoDeclaradoException

checaTipo

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

Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e tipos.
Returns:
true se os tipos da expressao são válidos; false caso contrario.
Throws:
VariavelNaoDeclaradaException
ClasseNaoDeclaradaException

getTipo

Tipo getTipo(AmbienteCompilacao ambiente)
             throws VariavelNaoDeclaradaException,
                    ClasseNaoDeclaradaException
Retorna os tipos possiveis desta expressao.

Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e tipos.
Returns:
os tipos possiveis desta expressao.
Throws:
VariavelNaoDeclaradaException
ClasseNaoDeclaradaException