static L addRangesToTokenization(S text, LS tokens) { if (tokens == null) null; L out = emptyList(tokens); int i = 0; for (S tok : tokens) { int j = i+l(tok); out.add(TokenAndRange(tok, intRange(i, j), text)); i = j; } ret out; } static L addRangesToTokenization(LS tokens) { ret addRangesToTokenization(join(tokens), tokens); }