/
CDC-1.2b/
CDC-1.2b/src/
parent $logic_class
object $xor

var $root child_index 0
var $root fertile 0
var $root manager $xor
var $root owners [$xor]
var $root writable [$xor]
var $root readable ['parameters, 'methods, 'code]
var $root trusted []
var $root owned [$xor]
var $root inited 1
var $root dbref 'xor

method unparse
    arg xorlist;
    var str, x;
    
    str = "";
    for x in (xorlist) {
        catch any {
            str = (str + (x.unparse())) + " ^^ ";
        } with handler {
            str = (str + tostr(x)) + " ^^ ";
        }
    }
    return ("(" + (str && substr(str, 1, strlen(str) - 4))) + ")";
.

method test
    arg xorlist, [args];
    var val, x;
    
    val = 0;
    for x in (xorlist) {
        catch ~type, ~methodnf {
            val = val ? !(x.test(@args)) | (x.test(@args));
        } with handler {
            val = val ? !x | x;
        }
    }
    return val;
.