List<T> (String str, int offset) { final List<T> references = new ArrayList<>(); int current = -1; int index = 0; int next; do { next = findNextSeparator(str, current); final TextRange range = new TextRange(offset + current + 1, offset + (next >= 0 ? next : str.length())); if (!range.isEmpty() || !Character.isWhitespace(mySeparator)) { references.addAll(createReferences(range, index ++)); } } while ((current = next) >= 0); return references; }