public @NotNull Self beforeLeaf(final @NotNull ElementPattern<? extends PsiElement> pattern) {
    return beforeLeafSkipping(psiElement().whitespaceCommentEmptyOrError(), pattern);
  }
public @NotNull Self beforeLeaf(final @NotNull ElementPattern<? extends PsiElement> pattern)