ContextoExecucaoFuncional.java

Go to the documentation of this file.
00001 package plp.functional1.memory;
00002 
00003 import java.util.HashMap;
00004 import java.util.Stack;
00005 
00006 import plp.expressions2.expression.Id;
00007 import plp.expressions2.expression.Valor;
00008 import plp.expressions2.memory.Contexto;
00009 import plp.expressions2.memory.ContextoExecucao;
00010 import plp.expressions2.memory.VariavelJaDeclaradaException;
00011 import plp.expressions2.memory.VariavelNaoDeclaradaException;
00012 import plp.functional1.util.ValorFuncao;
00013 
00014 public class ContextoExecucaoFuncional
00015         implements AmbienteExecucaoFuncional {
00016 
00020         private Stack<HashMap<Id, ValorFuncao>> pilhaFuncao;
00021         private ContextoExecucao pilhaIdValor;
00022         private Contexto<ValorFuncao> pilhaIdValorFunc;
00023 
00027         public ContextoExecucaoFuncional() {
00028                 this.pilhaFuncao = new Stack<HashMap<Id, ValorFuncao>>();
00029                 this.pilhaIdValor = new ContextoExecucao();
00030                 this.pilhaIdValorFunc = new Contexto<ValorFuncao>();
00031                 this.pilhaIdValorFunc.setPilha(this.pilhaFuncao);
00032         }
00033 
00034         public void incrementa() {
00035                 this.pilhaIdValor.incrementa();
00036                 pilhaFuncao.push(new HashMap<Id, ValorFuncao>());
00037         }
00038 
00039         public void restaura() {
00040                 this.pilhaIdValor.restaura();
00041                 pilhaFuncao.pop();
00042         }
00043 
00051         public void mapFuncao(Id idArg, ValorFuncao funcao)
00052                 throws VariavelJaDeclaradaException {
00053         this.pilhaIdValorFunc.map(idArg, funcao);
00054         }
00055 
00063         public ValorFuncao getFuncao(Id idArg)
00064                 throws VariavelNaoDeclaradaException {
00065                 return this.pilhaIdValorFunc.get(idArg);
00066         }
00067 
00068         public Valor get(Id idArg) throws VariavelNaoDeclaradaException {
00069                 return this.pilhaIdValor.get(idArg);
00070         }
00071 
00072         public void map(Id idArg, Valor tipoId) throws VariavelJaDeclaradaException {
00073                 this.pilhaIdValor.map(idArg, tipoId);
00074         }
00075 
00076 }

Generated on Tue Sep 12 21:52:03 2006 for PLP by  doxygen 1.4.7