plp.orientadaObjetos2.expressao
Class Super

java.lang.Object
  extended by plp.orientadaObjetos2.expressao.Super
All Implemented Interfaces:
Expressao

public class Super
extends java.lang.Object
implements Expressao

Representa uma expressao utilizando o token "super"


Constructor Summary
Super()
           
 
Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          Obtém o valor do objeto super no ambiente e o avalia.
 boolean checaTipo(AmbienteCompilacao ambiente)
          Checa o tipo do objeto super.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Obtém o tipo do objeto super
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Super

public Super()
Method Detail

avaliar

public Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException
Obtém o valor do objeto super no ambiente e o avalia.

Specified by:
avaliar in interface Expressao
Parameters:
ambiente - o ambiente de execuçao, que apresenta o mapeamento entre identificadores e valores.
Returns:
o valor do objeto this no escopo do ambiente atual.
Throws:
VariavelNaoDeclaradaException - Quando no escopo atual nao pode ser acessado o super.
VariavelJaDeclaradaException - Se por acaso se tentasse inserir no ambiente corrente mais de um "this" com o mesmo escopo.

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException
Checa o tipo do objeto super.

Specified by:
checaTipo in interface Expressao
Parameters:
ambiente - o ambiente de compilação, contendo o mapeamento entre identificadores e tipos.
Returns:
true, se o tipo do objeto super pode ser checado sem problemas, false, caso contrário.
Throws:
VariavelNaoDeclaradaException - Se nao houver nenhum objeto super no contexto corrente.

getTipo

public Tipo getTipo(AmbienteCompilacao ambiente)
             throws VariavelNaoDeclaradaException
Obtém o tipo do objeto super

Specified by:
getTipo in interface Expressao
Parameters:
ambiente - o ambiente de compilação, contendo o mapeamento entre identificadoes e tipos.
Returns:
o tipo do objeto super no ambiente.
Throws:
VariavelNaoDeclaradaException - Se nao houver nenhum objeto super no contexto atual.