plp.orientadaAspectos1.memoria
Class ContextoCompilacao

java.lang.Object
  extended by plp.orientadaAspectos1.memoria.ContextoCompilacao
All Implemented Interfaces:
Ambiente, AmbienteCompilacao

public class ContextoCompilacao
extends java.lang.Object
implements AmbienteCompilacao

Representa o contexto de compilaçao.


Constructor Summary
ContextoCompilacao(ListaValor entrada)
          O Construtor da classe.
 
Method Summary
 DefClasse getDefClasse(Id idArg)
          Obtém a definição da classe cujo nome é idArg
 ListaDeclaracaoParametro getParametrosProcedimento(Id idArg)
          Obtém a lista de parâmetros associada a um identificador que representa nome do método.
 Tipo getTipo(Id idArg)
          Obtém o tipo associado a um dado identificador
 Tipo getTipoEntrada()
          Obtém o tipo da entrada atual para este ambiente.
 void incrementa()
          Incrementa a pilha do ambiente, passando para o próximo estado.
 void mapDefClasse(Id idArg, DefClasse defClasse)
          Mapeia um identificador a um definição de classe.
 void mapParametrosProcedimento(Id idArg, ListaDeclaracaoParametro parametrosId)
          Mapeia um identificador representando um método aos seus parâmetros.
 void mapTipo(Id idArg, Tipo tipoId)
          Mapeia um identificador a um tipo.
 void restaura()
          Restaura o estado do ambiente.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContextoCompilacao

public ContextoCompilacao(ListaValor entrada)
O Construtor da classe.

Method Detail

incrementa

public void incrementa()
Incrementa a pilha do ambiente, passando para o próximo estado.

Specified by:
incrementa in interface Ambiente

restaura

public void restaura()
Restaura o estado do ambiente.

Specified by:
restaura in interface Ambiente

mapTipo

public void mapTipo(Id idArg,
                    Tipo tipoId)
             throws VariavelJaDeclaradaException
Mapeia um identificador a um tipo.

Specified by:
mapTipo in interface AmbienteCompilacao
Parameters:
idArg - Identificador
tipoId - Tipo que deve ser associado ao identificador.
Throws:
VariavelJaDeclaradaException - quando o id já foi declarado.

mapParametrosProcedimento

public void mapParametrosProcedimento(Id idArg,
                                      ListaDeclaracaoParametro parametrosId)
                               throws ProcedimentoJaDeclaradoException
Mapeia um identificador representando um método aos seus parâmetros.

Specified by:
mapParametrosProcedimento in interface AmbienteCompilacao
Parameters:
idArg - identificador do método.
parametrosId - Parâmetros do método
Throws:
ProcedimentoJaDeclaradoException - quando o procedimento já foi declarado.

mapDefClasse

public void mapDefClasse(Id idArg,
                         DefClasse defClasse)
                  throws ClasseJaDeclaradaException
Mapeia um identificador a um definição de classe.

Specified by:
mapDefClasse in interface AmbienteCompilacao
Parameters:
idArg - o nome da classe
defClasse - Definição da Classe.
Throws:
ClasseJaDeclaradaException - quando a classe já foi declarada.

getTipo

public Tipo getTipo(Id idArg)
             throws VariavelNaoDeclaradaException
Obtém o tipo associado a um dado identificador

Specified by:
getTipo in interface AmbienteCompilacao
Parameters:
idArg - Identificador
Returns:
Tipo associado a um dado identificador
Throws:
VariavelNaoDeclaradaException - quando id não foi declarado.

getParametrosProcedimento

public ListaDeclaracaoParametro getParametrosProcedimento(Id idArg)
                                                   throws ProcedimentoNaoDeclaradoException
Obtém a lista de parâmetros associada a um identificador que representa nome do método.

Specified by:
getParametrosProcedimento in interface AmbienteCompilacao
Parameters:
idArg - Identificador que representa o nome do método.
Returns:
Lista de parâmetros Lista de parâmetros associada a um identificador que representa nome do método.
Throws:
ProcedimentoNaoDeclaradoException - quando não foi declarado nenhum método com esse id.

getDefClasse

public DefClasse getDefClasse(Id idArg)
                       throws ClasseNaoDeclaradaException
Obtém a definição da classe cujo nome é idArg

Specified by:
getDefClasse in interface AmbienteCompilacao
Parameters:
idArg - Nome da classe.
Returns:
a definição da classe.
Throws:
ClasseNaoDeclaradaException - quando nao foi declarada nenhuma classe com esse nome.

getTipoEntrada

public Tipo getTipoEntrada()
                    throws VariavelNaoDeclaradaException
Obtém o tipo da entrada atual para este ambiente.

Specified by:
getTipoEntrada in interface AmbienteCompilacao
Returns:
o tipo da entrada.
Throws:
VariavelNaoDeclaradaException - quando a entrada atual é uma variável não declarada.