parent $frob_class object $read_parser var $root dbref 'read_parser var $root child_index 0 var $root fertile 0 var $root manager $read_parser var $root owned [$read_parser] var $root owners [$] var $root writable [] var $root readable ['parameters, 'methods, 'code] var $root inited 1 method parse_line arg dict, line; var cmd; if (!line) { // we have to do this as such, because of logic (shrug) dict = dict.add('status, 'not_done); return dict.add_elem('lines, line); } else if ((line[1]) == ".") { if ((strlen(line) > 1) && ((line[2]) == ".")) line = substr(line, 2); else if (strlen(line) == 1) return dict.add('status, 'done); } else if ((line[1]) == ">") { if ((strlen(line) > 1) && ((line[2]) == ">")) { line = substr(line, 2); } else { dict = dict.add('command, substr(line, 2)); return dict.add('status, 'pass_command); } } else if (line == "@abort") { return dict.add('status, 'abort); } dict = dict.add('status, 'not_done); return dict.add_elem('lines, line); . method new arg task_id, count; return <this(), #[['lines, []], ['status, 'not_done], ['count, count], ['task_id, task_id]]>; . method parse arg dict, line; var line, result; // checks the incoming line to see if its a keeper, or a command. if ((dict['count]) == 'one) { dict = dict.add_elem('lines, line); return <this(), dict_add(dict, 'status, 'done)>; } else { return <this(), .parse_line(dict, line)>; } . method status arg dict; return dict['status]; . method task_id arg dict; return dict['task_id]; . method lines arg dict; return dict['lines]; . method command arg dict; return (| dict['command] |) || ""; . method add arg dict, [args]; return <this(), (> dict.add(@args) <)>; .