Method code for $root.variable_info()

[Turn on line numbering]
arg gen, def, fltr, match;
var ancs, data, pp, p;

if (!.has_flag('variables, sender()))
    throw(~perm, sender() + " cannot read variables on " + this());
if (def)
    ancs = [def];
else
    ancs = .(gen[1])(gen[2]) || [this()];
data = [];
for pp in (data().to_list().reverse()) {
    if (valid(pp[1]) && pp[1] in ancs) {
        for p in (pp[2]) {
            if (tostr(p[1]).(match)(fltr) != 0)
                data += [[pp[1], @p]];
        }
    }
}
return data;

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

the Cold Dark