Warning: session_start(): open(/var/lib/php/sessions/sess_eslnfimea6e96594uclkar5tl7, 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
abstract sclass CTNode {
new LinkedHashSet children;
toString { ret shortClassName(this) + ": " + toString2(); }
abstract S toString2();
bool add(CTNode n) { ret children.add(n); }
}
sclass TextNode > CTNode {
S text;
*() {}
*(S *text) {}
S toString2() { ret quote(text); }
}
sclass TokNode > CTNode {
L tok;
*() {}
*(LS *tok) {}
S toString2() { ret sfu(tok); }
public bool equals(O o) { ret stdEq(this, o, 'tok); }
public int hashCode() { ret stdHash(this, 'tok); }
}
sclass ObjectNode > CTNode {
O obj;
*() {}
*(O *obj) {}
S toString2() { ret sfu(obj); }
public bool equals(O o) { ret stdEq(this, o, 'obj); }
public int hashCode() { ret stdHash(this, 'obj); }
}
sclass OpNode > CTNode {
S op;
O result; // this is the result coming back up from the operation
*() {}
*(S *op) {}
S toString2() { ret op; }
public bool equals(O o) { ret stdEq(this, o, 'op); }
public int hashCode() { ret stdHash(this, 'op); }
}