public void pop(String function, boolean result)
  {
    Integer start = startStack.pop();
    callStack.pop();

    if (traceOn)
    {
      System.out.println(
        "<- " + level-- + 
        ": " + function + 
        "(" + (result ? "true" : "false") + 
        ",s=" + start + 
        ",l=" + (index - start) + 
        ",e=" + errorIndex + ")");
    }

    if (!result)
    {
      if (index > errorIndex)
      {
        errorIndex = index;
        errorStack = new Stack<String>();
        errorStack.addAll(callStack);
      }
      else if (index == errorIndex && errorStack.isEmpty())
      {
        errorStack = new Stack<String>();
        errorStack.addAll(callStack);
      }
    }
    else
    {
      if (index > errorIndex) errorIndex = 0;
    }
  }