parent $user_parsers object $command_parser var $root child_index 0 var $root fertile 0 var $root manager $command_parser var $root owners [$core] var $root writable [$core] var $root readable ['parameters, 'methods, 'code] var $root trusted [] var $root owned [$command_parser] var $root inited 1 var $root dbref 'command_parser method parse arg user, str, next_parser, [other_parsers]; var loc, cmdstr, cmd, obj; // Match commands on user/room. loc = user.location(); // trim the string cmdstr = str; while (cmdstr && ((cmdstr[1]) == " ")) cmdstr = substr(cmdstr, 2); if (str) { // Check commands on this. cmd = user.match_command(cmdstr); if (cmd) return [user, cmd[1], @cmd[2]]; // Check commands on location. cmd = loc.match_command(cmdstr); if (cmd) return [loc, cmd[1], @cmd[2]]; // Try exit names. for obj in (loc.exits()) { if ((obj.match_name(str)) || (obj.match_name_aliases(str))) return [obj, 'invoke]; } } // no luck. return next_parser.parse(user, str, @other_parsers); .