new object $ctext_frob: $frob; var $root created_on = 837584074; var $root flags = ['variables, 'methods, 'code, 'core]; var $root inited = 1; var $root managed = [$ctext_frob]; var $root manager = $ctext_frob; public method ._ctext() { arg this; return this[1]; }; public method .append() { arg this, new, @br; var data, tmp, vars; data = this[1]; vars = this[2]; if (br) { switch (br[1]) { case "p": data += [(<$format, ["p", [], [], 'do_p]>)]; case "br": data += [(<$format, ["br", [], [], 'do_br]>)]; default: data += [$format.new_tag(br[1], [], [])]; } } if (type(new) == 'list) { data += new; } else if ((type(new) == 'frob) && (class(new) == $ctext_frob)) { data += new._ctext(); vars = (new.vars()).union(vars); } else { data += [new]; } return (<this(), [data, vars]>); }; public method .eval_ctext() { arg this; var data, vars; vars = this[2]; vars = vars.add('time, 'pre); if (!(| vars['sender] |)) vars = vars.add('sender, sender()); if (!(| vars['evaluator] |)) vars = vars.add('evaluator, $bs_eval); vars = vars.union((vars['evaluator]).init()); return .new_with(@(vars['evaluator])._eval_ctext(this[1], vars)); }; public method .format() { arg this; var vars; vars = this[2]; vars = vars.add('time, 'post); if (!(| vars['receiver] |)) vars = vars.add('receiver, sender()); if (!(| vars['evaluator] |)) vars = vars.add('evaluator, $bs_eval); if (!(| vars['formatter] |)) vars = vars.add('formatter, $plain_format); vars = vars.union((vars['formatter]).init()); return (vars['formatter]).format(this[1], vars); }; public method .get_var() { arg this, name; return (this[2])[name]; }; public method .new_with() { arg data, @vars; [(vars ?= #[])] = vars; return (<this(), [data, vars]>); }; public method .set_var() { arg this, name, value; var vars; vars = this[2]; vars = vars.add(name, value); return (<this(), [this[1], vars]>); }; public method .set_vars() { arg this, new; var vars, key; return (<this(), [this[1], new.union(this[2])]>); vars = this[2]; for key in (new.keys()) vars = vars.add(key, new[key]); return (<this(), [this[1], vars]>); }; public method .uncompile() { arg this; var vars; vars = this[2]; if (!(| vars['uncompiler] |)) vars = vars.add('uncompiler, $uncompiler); vars = vars.union((vars['uncompiler]).init()); return ((vars['uncompiler])._eval_ctext(this[1], vars))[1]; }; public method .vars() { arg this; return this[2]; };