// ------------------------------------------------------------------
// Root Object
object $root
var $root child 0
method initialize
child = 1;
.
method uninitialize
.
method destroy
if (child)
destroy(this());
.
method children
disallow_overrides;
return children();
.
method descendants
disallow_overrides;
var kids, i, c;
kids = children();
while ((| c = kids[i = i + 1] |))
kids = union(kids, c.children());
return kids;
.
method debug
disallow_overrides;
arg [what];
var l, line;
line = "";
for l in (what)
line = line + " " + (type(l) == 'string ? l | $parse.unparse(l));
.log("DEBUG: " + $parse.unparse(what));
.
method log
disallow_overrides;
arg stuff;
var l;
if (type(stuff) == 'list) {
for l in (stuff)
.log(l);
} else {
.lwrite("[" + timestamp() + "] " + stuff);
}
.
method lwrite
disallow_overrides;
arg what;
log(what);
.