@NotNull
    private static String collectCommentsBefore(@Nullable PsiElement rule, @NotNull CommentTracker ct) {
      boolean commentFound = false;
      if (rule == null) {
        return "";
      }
      List<String> lists = new ArrayList<>();
      PsiElement previous = rule.getPrevSibling();
      while (true) {
        if (previous instanceof PsiComment || previous instanceof PsiWhiteSpace) {
          if (previous instanceof PsiComment) {
            commentFound = true;
          }
          lists.add(ct.text(previous));
          previous = previous.getPrevSibling();
        }
        else {
          break;
        }
      }
      if (!commentFound) {
        return "";
      }
      Collections.reverse(lists);
      return String.join("", lists);
    }
@NotNull
    private static String collectCommentsBefore(@Nullable PsiElement rule, @NotNull CommentTracker ct)