plp.functional1.declaration
Class DecFuncao

java.lang.Object
  extended by plp.functional1.declaration.DecFuncao
All Implemented Interfaces:
DeclaracaoFuncional

public class DecFuncao
extends java.lang.Object
implements DeclaracaoFuncional


Constructor Summary
DecFuncao(Id idFun, ValorFuncao valorFuncao)
           
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta declaração.
 int getAridade()
          Retorna a aridade da funcao declarada.
 Expressao getExpressao()
          Retorna a expressao associada.
 ValorFuncao getFuncao()
           
 Id getID()
           
 Tipo getTipo(AmbienteCompilacao amb)
          Retorna os tipos possiveis da função declarada.
 java.lang.String toString()
          Retorna uma representacao String desta expressao.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DecFuncao

public DecFuncao(Id idFun,
                 ValorFuncao valorFuncao)
Method Detail

toString

public java.lang.String toString()
Retorna uma representacao String desta expressao. Util para depuracao.

Overrides:
toString in class java.lang.Object
Returns:
uma representacao String desta expressao.

getID

public Id getID()
Specified by:
getID in interface DeclaracaoFuncional

getExpressao

public Expressao getExpressao()
Description copied from interface: DeclaracaoFuncional
Retorna a expressao associada.

Specified by:
getExpressao in interface DeclaracaoFuncional
Returns:
a expressao associada.

getFuncao

public ValorFuncao getFuncao()

getAridade

public int getAridade()
Retorna a aridade da funcao declarada. Variaveis tem aridade 0.

Specified by:
getAridade in interface DeclaracaoFuncional
Returns:
a aridade da funcao declarada.

checaTipo

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

Specified by:
checaTipo in interface DeclaracaoFuncional
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 amb)
             throws VariavelNaoDeclaradaException,
                    VariavelJaDeclaradaException
Retorna os tipos possiveis da função declarada.

Specified by:
getTipo in interface DeclaracaoFuncional
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.