int (LinkedList<HighlightInfo> stack, StringBuilder sb, CharSequence sequence, int offset, final int endOffset) { if (stack.isEmpty()) return offset; for (HighlightInfo cur = stack.peekLast(); cur != null && cur.getEndOffset() <= endOffset; cur = stack.peekLast()) { stack.removeLast(); if (offset <= cur.getEndOffset()) { sb.append(sequence.subSequence(offset, cur.getEndOffset())); } offset = cur.getEndOffset(); appendTag(sb, cur, false); } return offset; }