/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
new object $xor: $logic_frob;

var $logic_frob token = "^";
var $root created_on = 796268969;
var $root flags = ['methods, 'code, 'variables, 'core];
var $root inited = 1;
var $root managed = [$xor];
var $root manager = $xor;
var $root trusted = [];

public 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
            val = val ? (!x) : x;
    }
    return val;
};

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