Warning: session_start(): open(/var/lib/php/sessions/sess_5ij0kjh6obv9ltg7mhmu514o3t, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// places must be sorted
static LS reTok_multi(LS tok, L places) {
if (empty(places)) ret tok;
L orig = cloneList(tok);
new L places2;
for (IntRange p : places) {
p = pair(p.start & ~1, p.end | 1);
if (nempty(places2) && p.start <= last(places2).end)
last(places2).end = p.end;
else
places2.add(p);
}
ifdef reTok_multi_debug
printStruct("places: ", places2);
endifdef
int iPlace = 0, n = l(orig);
IntRange p = get(places2, iPlace);
tok.clear();
int i = 0, next = p.start;
while (i < n)
if (i < next)
tok.add(orig.get(i++));
else {
int j = p.end;
S s = joinSubList(orig, i, j);
ifdef reTok_multi_debug
printStruct("retokking: ", s);
endifdef
tok.addAll(javaTok(s));
i = j;
p = get(places2, ++iPlace);
if (p == null) break;
next = p.start;
}
while (i < n)
tok.add(orig.get(i++));
ret tok;
}