/**
   * Asks current builder to wrap one more remaining {@link Block code block} (if any).
   *
   * @return <code>true</code> if all blocks are wrapped; <code>false</code> otherwise
   */
  public boolean iteration() {
    if (myStates.isEmpty()) {
      return true;
    }

    State state = myStates.peek();
    doIteration(state);
    return myStates.isEmpty();
  }