private static boolean advanceTokenOnBoundary(@NotNull HighlighterIterator tokenIterator, @NotNull CharSequence text, int offset) {
    if (tokenIterator.atEnd()) return false;
    if (isTokenEnd(tokenIterator, offset)) {
      final IElementType leftToken = tokenIterator.getTokenType();
      final boolean wasQuotedToken = isQuotedToken(tokenIterator, text);
      tokenIterator.advance();
      if (wasQuotedToken) return true;
      if (tokenIterator.atEnd()) return false;
      return isQuotedToken(tokenIterator, text) ||
             !isBetweenWhitespaces(text, offset) && isLexemeBoundary(leftToken, tokenIterator.getTokenType());
    }
    return isQuotedTokenInnardsBoundary(tokenIterator, text, offset);
  }
private static boolean advanceTokenOnBoundary(@NotNull HighlighterIterator tokenIterator, @NotNull CharSequence text, int offset)