package lf1.plp.functional1.memory; import java.util.HashMap; import java.util.Map.Entry; import java.util.Stack; import lf1.plp.expressions2.expression.Id; import lf1.plp.expressions2.memory.Ambiente; import lf1.plp.expressions2.memory.Contexto; import lf1.plp.functional1.util.DefFuncao; public class ContextoFuncional extends Contexto implements Ambiente { public ContextoFuncional clone() { ContextoFuncional retorno = new ContextoFuncional(); Stack> novaPilha = new Stack>(); HashMap novoMap = new HashMap(); novaPilha.add(novoMap); for (HashMap map : this.pilha){ for(Entry entry : map.entrySet()){ novoMap.put(entry.getKey(), entry.getValue()); } } retorno.setPilha(novaPilha); return retorno; } }