private void doIteration(@NotNull InitialInfoBuilderState state) {
    Block currentRoot = state.parentBlock;

    List<Block> subBlocks = currentRoot.getSubBlocks();
    int currentBlockIndex = state.getIndexOfChildBlockToProcess();
    final Block currentBlock = subBlocks.get(currentBlockIndex);

    initCurrentWhiteSpace(currentRoot, state.previousBlock, currentBlock);

    final AbstractBlockWrapper wrapper = buildFrom(
      currentBlock, currentBlockIndex, state.wrappedBlock, state.parentBlockWrap, currentRoot
    );

    registerExpandableIndents(currentBlock, wrapper);

    if (wrapper.getIndent() == null) {
      wrapper.setIndent((IndentImpl)currentBlock.getIndent());
    }

    if (state.childBlockProcessed(currentBlock, wrapper, myOptions)) {
      while (!myStates.isEmpty() && myStates.peek().isProcessed()) {
        myStates.pop();
      }
    }
  }
private void doIteration(@NotNull InitialInfoBuilderState state)