private static void checkSiblings(IElementType chunkType,
                                    Deque<Pair<PsiBuilder.Marker, PsiBuilder.Marker>> parens,
                                    Deque<Pair<PsiBuilder.Marker, Integer>> siblings) {
    main:
    while (!siblings.isEmpty()) {
      Pair<PsiBuilder.Marker, PsiBuilder.Marker> parenPair = parens.peek();
      int rating = siblings.getFirst().second;
      int count = 0;
      for (Pair<PsiBuilder.Marker, Integer> pair : siblings) {
        if (pair.second != rating || parenPair != null && pair.first == parenPair.second) break main;
        if (++count >= MAX_CHILDREN_IN_TREE) {
          PsiBuilder.Marker parentMarker = pair.first.precede();
          parentMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, null);
          while (count-- > 0) {
            siblings.removeFirst();
          }
          parentMarker.done(chunkType);
          siblings.addFirst(Pair.create(parentMarker, rating + 1));
          continue main;
        }
      }
      break;
    }
  }
private static void checkSiblings(IElementType chunkType,
                                    Deque<Pair<PsiBuilder.Marker, PsiBuilder.Marker>> parens,
                                    Deque<Pair<PsiBuilder.Marker, Integer>> siblings)