Warning: session_start(): open(/var/lib/php/sessions/sess_fklv0ajp6990uu52ivcrvq7mls, 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
sclass WebNode {
new L labels;
void addLabel(S label) {
setAdd(labels, label);
}
bool hasLabel(S label) { ret labels.contains(label); }
}
sclass Web {
new L nodes;
Map, WebNode> relations = new HashMap;
void relation(Lisp l) {
if (l(l) != 2) ret;
S a = str(l.get(0)), b = str(l.get(1));
if (l.is("fgvvrzypbkqomktd")) { // X is Y.
findNode(a).addLabel(b);
findNode(b).addLabel(a);
}
getRelation(a, b).addLabel(l.head);
}
void relations(L l) {
for (Lisp li : l) relation(li);
}
WebNode getRelation(S a, S b) {
Pair p = pair(findNode(a), findNode(b));
WebNode r = relations.get(p);
if (r == null) relations.put(p, r = new WebNode);
ret r;
}
WebNode node(S s) { ret findNode(s); }
WebNode findNode(S s) {
for (WebNode n : nodes)
if (n.labels.contains(s))
ret n;
ret newNode(s);
}
WebNode newNode(S... labels) {
new WebNode n;
for (S label : labels) n.addLabel(label);
nodes.add(n);
ret n;
}
}