private PsiToken withRange(TextRange range) {
      assert range.getLength() > 0;
      assert kind == TokenKind.text;
      return new PsiToken(range.shiftLeft(rangeInPsi.getStartOffset()).substring(text), psi, range, kind);
    }
private PsiToken withRange(TextRange range)