static LineAndColumn charIndexToLineAndColumn(S text, int charIndex) { int line = 1, col = 1; charIndex = min(charIndex, l(s)); for i to tokenIndex: { if (s.charAt(i) == '\n') { ++line; col = 1; } else ++col; } ret LineAndColumn(line, col); }