/
ColdWeb-0.2/
ColdWeb-0.2/root/
// ------------------------------------------------------------------
// 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);
.