parent $parsers parent $frob_class object $input_parser var $root child_index 0 var $root fertile 0 var $root manager $input_parser var $root owners [$input_parser] var $root writable [$] var $root readable ['parameters, 'methods, 'code] var $root trusted [] var $root owned [$input_parser] var $root inited 1 var $root dbref 'input_parser method parse arg user, str, next_parser, [other_parsers]; var line, result; // checks the incoming line to see if its a keeper, or a command. line = user.lines(); if (line == 'one) { user.new_line(str); user.finish_receiving(); return 'ok; } else { result = .parse_line(str); switch (result[1]) { case 'abort: user.reset_input(); return "** Aborted ** Text thrown away."; case 'not_done: user.new_line(result[2]); case 'done: user.finish_receiving(); case 'pass_command: return next_parser.parse(user, result[2], @other_parsers); } return 'ok; } . method parse_line arg str; var cmd; // do this for blank strings => "" if (!str) { return ['not_done, str]; } else if ((str == ".") || (str == "done")) { return ['done]; // } else if (str[1] == ">") { // return ['pass_command, substr(str, 2, strlen(str) - 1)]; } else if ((str == "abort") || (str == "@abort")) { return ['abort]; } else { return ['not_done, str]; } .