Warning: session_start(): open(/var/lib/php/sessions/sess_46eo879i2nvu8aql7d4pt5t9s7, 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
!7
cprint {
transient LineCompedSingle lc;
transient Map literalIndex;
transient MultiMap prodIndex; // keys: item looked for, value: pair(prod index, position in prod)
start-thread {
new LineCompCompressor comp;
lc = lcString2(comp, "hello world world");
// Turn pairs and file encodings into a single structure ("productions")
new LL productions;
productions.addAll(intPairsToLists(lc.pairs));
productions.add(lc.main);
// build the reconstitution index
literalIndex = indexList(lc.literals);
prodIndex = new MultiMap;
for iProd over productions: {
L prod = productions.get(iProd);
for (int i, int x : unpair iterateListWithIndex(prod)) {
prodIndex.put(x, intPair(iProd, i));
}
}
print(+literalIndex);
print(+prodIndex);
S query = "world";
L queryList = characters(query);
new L queryLiterals;
for (Char c : queryList) {
Int iLit = literalIndex.get(c);
if (iLit == null) ret with print("literal not found");
queryLiterals.add(iLit);
}
print(+queryLiterals);
reconstitute(queryLiterals, 0);
}
void reconstitute(L baseList, int i) {
print("Reconstituing " + quote(lcUncompressItem(lc, baseList.get(i)));
L l = prodIndex.get(baseList.get(i));
print("Found: " + l);
}
}