Method code for $group.parse_grouplist()

[Turn on line numbering]
arg value, method, @args;
var action, list, item, out;

if (value && value[1] in ["+", "-"]) {
    if (value[1] == "-")
        action = 'del;
    else
        action = 'add;
    list = [substr(value, 2)];
} else {
    action = 'set;
    list = value.explode_english_list();
}
out = #[];
for item in (list) {
    if (method) {
        catch ~methodnf
            item = (> sender().(method)(item, action, @args) <);
        with
            item = (> .(method)(item, action, @args) <);
    }
    out = dict_add(out, item, 1);
}
if (action == 'set)
    return [action, out];
else
    return [action, out[1]];

["// Created 01-Sep-1998 as a part of ColdCore, see: @help Credit"]

the Cold Dark