plp.functional1.util
Class ValorFuncao

java.lang.Object
  extended by plp.functional1.util.ValorFuncao

public class ValorFuncao
extends java.lang.Object


Constructor Summary
ValorFuncao(java.util.List<Id> argsId, Expressao exp)
           
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta declaração.
 int getAridade()
          Retorna a aridade desta funcao.
 Expressao getExp()
           
 java.util.List<Id> getListaId()
           
 Tipo getTipo(AmbienteCompilacao ambiente)
          Retorna os tipos possiveis desta função.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ValorFuncao

public ValorFuncao(java.util.List<Id> argsId,
                   Expressao exp)
Method Detail

getListaId

public java.util.List<Id> getListaId()

getExp

public Expressao getExp()

getAridade

public int getAridade()
Retorna a aridade desta funcao.

Returns:
a aridade desta funcao.

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         VariavelJaDeclaradaException
Realiza a verificacao de tipos desta declaração.

Parameters:
amb - o ambiente de compilação.
Returns:
true se os tipos da expressao sao validos; 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.
VariavelJaDeclaradaException

getTipo

public Tipo getTipo(AmbienteCompilacao ambiente)
             throws VariavelNaoDeclaradaException,
                    VariavelJaDeclaradaException
Retorna os tipos possiveis desta função.

Parameters:
amb - o ambiente que contem o mapeamento entre identificadores e tipos.
Returns:
os tipos possiveis desta declaração.
Throws:
VariavelNaoDeclaradaException - se houver uma variável não declarada no ambiente.
VariavelJaDeclaradaException - se houver uma mesma variável declarada duas vezes no mesmo bloco do ambiente.