static L splitAtTokens(S s, LS tokens) { ret splitAtTokens(javaTok(s), tokens); } static L splitAtTokens(L tok, LS tokens) { new L l; int i = 0; while (i < l(tok)) { int j = indexOfSubList(tok, tokens, i); if (i >= l(tok)) break; if (j < 0) j = l(tok); l.add(trimJoin(tok.subList(i, j))); i = j+l(tokens); } ret l; } static L splitAtTokens(L tok, S... tokens) { new L l; int i = 0; while (i < l(tok)) { int j = indexOfSubList(tok, tokens, i); if (i >= l(tok)) break; if (j < 0) j = l(tok); l.add(trimJoin(tok.subList(i, j))); i = j+l(tokens); } ret l; }