/**
  * Obtém o objeto associado a um dado valor referencia.
  *
  * @param valorRef Valor referência
  * @return o objeto associado a um dado valor referencia.
  * @throws ObjetoNaoDeclaradoException Quando o objeto não foi declarado.
  */
 public Objeto getObjeto(ValorRef valorRef) throws ObjetoNaoDeclaradoException {
   Objeto result = null;
   Stack<HashMap<ValorRef, Objeto>> auxStack = new Stack<HashMap<ValorRef, Objeto>>();
   while (result == null && !pilhaObjeto.empty()) {
     HashMap<ValorRef, Objeto> aux = pilhaObjeto.pop();
     auxStack.push(aux);
     result = aux.get(valorRef);
   }
   while (!auxStack.empty()) {
     pilhaObjeto.push(auxStack.pop());
   }
   if (result == null) {
     throw new ObjetoNaoDeclaradoException(new Id(valorRef.toString()));
   } else {
     return result;
   }
 }
 /**
  * Obtém a próxima referência de acordo com o contexto atual de execução.
  *
  * @return a próxima referência de acordo com o contexto atual de execução.
  */
 public ValorRef getProxRef() {
   ValorRef aux = new ValorRef(proxRef.valor());
   proxRef = proxRef.incrementa();
   return aux;
 }