new object $gender: $has_name; var $gender apronouns = 0; var $gender cgender_name = 0; var $gender context = []; var $gender gender = 0; var $gender gender_name = 0; var $gender has = 0; var $gender number = 0; var $gender person = 0; var $gender pronouns = 0; var $gender vpronouns = 0; var $has_name name = ['normal, "Gendered Object", "a Gendered Object"]; var $root created_on = 796268969; var $root flags = ['methods, 'code, 'core, 'variables]; var $root inited = 1; var $root managed = [$gender]; var $root manager = $gender; public method .apronouns() { return apronouns; }; public method .cml_pronouns() { return cml_pronouns; }; public method .context() { return context; }; public method .gender() { return gender; }; public method .gender_name() { arg @caps; [(caps ?= 'null)] = caps; switch (caps) { case 'caps: return cgender_name; default: return gender_name; } }; root method .init_gender() { cgender_name = ""; gender_name = ""; // these should be inited by hand, later. pronouns = #[['pr, "itself"], ['pp, "its"], ['po, "it"], ['ps, "it"], ['pq, "its"], ['prc, "Itself"], ['ppc, "Its"], ['poc, "It"], ['psc, "It"], ['pqc, "Its"], ['have, "has"]]; }; public method .number() { return number; }; public method .pronoun() { arg pronoun; return (> pronouns[pronoun] <); }; public method .pronouns() { return pronouns; }; public method .set_gender_names() { arg name, cname; .perms(sender()); cgender_name = cname; gender_name = name; }; public method .set_pronouns() { arg nmbr, ps, po, pp, pq, pr, psc, poc, ppc, pqc, prc; var x; .perms(sender(), 'manager); pronouns = #[['pr, pr], ['pp, pp], ['po, po], ['ps, ps], ['pq, pq], ['prc, prc], ['ppc, ppc], ['poc, poc], ['psc, psc], ['pqc, pqc]]; number = nmbr; context = [ps, po, pp, pq, pr, psc, poc, ppc, pqc, prc]; }; public method .vpronouns() { return vpronouns; };