new object $message_frob: $frob; var $root created_on = 796268969; var $root flags = ['methods, 'code, 'variables, 'core]; var $root inited = 1; var $root managed = [$message_frob]; var $root manager = $message_frob; public method .add_entry() { arg this, key, what; var data; this = this.add(key, what); return (<this(), this>); }; public method .change_entry() { arg this, old, new; var value; value = (> this[old] <); this = dict_del(this, old); this = dict_add(this, new, value); return (<this(), this>); }; public method .del_entry() { arg this, key; this = this.del(key); return (<this(), this>); }; public method .eval_ctext() { arg this, vars; var key, new, temp, t, list, vars; new = .new(); vars = vars.add('this, sender()); if ("general" in (this.keys())) vars = vars.add("$general", "general"); list = this.keys(); for key in (list) { temp = ((this[key]).set_var('this, vars['this])).eval_ctext(); new = new.add_entry((| vars["$" + key] |) || (vars[key]), temp); } return new; }; public method .format() { arg this, vars; return ((.to_ctext(this, vars)).append([], "br")).format(); }; public method .get_part() { arg this, part; return this[part]; }; public method .has_entry() { arg this, name; return name in (this.keys()); }; public method .message() { arg name, @definer; var a, message, mes, m; //retrieve the specified message as ctext if (definer) definer = definer[1]; else definer = (._find_message_definer(name))[2]; message = $message_frob.new(); for a in (.ancestors()) { catch ~methodnf, ~messagenf return a.local_message(name, definer); } throw(~messagenf, "No matching message."); }; public method .parts() { arg this; return this.keys(); }; public method .propagate() { arg self, f; return ($filtered_frob.new_with(self, sender())).propagate(f); }; public method .set_vars() { arg this, new; var d; return (<this(), (hash d in (this) to ([d[1], (d[2]).set_vars(new)]))>); }; public method .to_ctext() { arg this, vars; var new; new = (| this[vars['receiver]] |) || ((| this["general"] |) || ($ctext_frob.new_with([""]))); new = new.set_vars(vars); return new; }; public method .uncompile() { arg this; var key; return hash key in (this) to ([key[1], (key[2]).uncompile()]); };