Method code for $code_lib.verify_code()

[Turn on line numbering]
arg code, method, warn;
var l, line, m, warns, isadmin, msg;

warns = [];
method = "\." + tostr(method) + "\(";
isadmin = sender().is($admin);
for l in [1 .. code.length()] {
    line = code[l];

    // if its in a comment, ignore it
    if (match_begin(line, "//"))
        continue;

    // required warnings, sorry
    if ((m = line.match_regexp("[^._]anticipate_assignment\(")))
        warns += .point_to_line("WARNING: call to anticipate_assignment()", m[1][1] + 2, m[1][2] - 2, l, line);
    if ((m = line.match_regexp("(!)[a-z0-9_]+ in "))) {
        warns += ["WARNING: possible ambiguity, line " + l];
        warns += .point_to_line("WARNING: parenthesis suggested around followup expression to '!'", m[2][1] + 1, m[2][2], l, line);
    }
    if ((m = line.match_regexp("(if *\(|&&|\|\|) *[a-z0-9_]+ *(=)[^=]")))
        warns += .point_to_line("WARNING: parenthesis suggested around assignment expression", m[3][1] + 1, m[3][2], l, line);

    // optional warnings
    if (warn && (m = line.match_regexp(method)))
        warns += .point_to_line("WARNING: Possible Recursion", m[1][1] + 2, m[1][2] - 2, l, line);
    refresh();
}
return warns;

// $#Edited: 19 Nov 99 09:56 $user_bruce

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

the Cold Dark