I’ve just written the bit of code that I think introduces the “ambiguously singular” property, I think. It seems as though the code that allows ambiguously plural things to be referred to by both pronouns is all in section 4. The reason that they use plural verbs etc. is because they’re defined as “acting plural” by a phrase in section 1 that checks whether an object is plural-named or ambiguously plural. So I defined the third value “ambiguously singular” and redirected the checks for ambiguous plurality in section 4 to ambiguity tout court. Ambiguously singular things automatically don’t act plural (since that’s not part of the check), so they should get all the singular object behavior that plurality usually gives you.
Here’s the code! Let me know if it seems buggy (really, do, because I’m dropping it in my project without that much testing).
[code]Section - Ambiguously Singular (in place of Section 4 - Enumeration in Plurality by Emily Short)
[This adds a new option, “ambiguously singular.” Ambiguously singular things act like ambiguously plural things for the purposes of all the pronoun-setting stuff that is going on in this section, but they don’t “act plural” for the purpose of the things that are happening in section 1 of Plurality, so they should use singular verbs etc.]
A thing can be ambiguously plural, ambiguously singular, or ordinarily enumerated. A thing is usually ordinarily enumerated.
Definition: A thing is ambiguous if it is ambiguously plural or it is ambiguously singular.
This is the update ambiguous pronouns for actions rule:
if the noun is a thing and the noun is ambiguous:
notice the plurality of the noun;
if the second noun is a thing and the second noun is ambiguous:
notice the plurality of the second noun.
The update ambiguous pronouns for actions rule is listed after the set pronouns from items from multiple object lists rule in the action-processing rules.
After printing the name of an ambiguous thing (called the suspect) (this is the notice plurality of printed ambiguous object rule):
if the manual pronouns option is active:
do nothing;
otherwise:
notice the plurality of the suspect.
To notice the plurality of (suspect - an object):
(- PlugPlural({suspect}); -)
Include (-
[ PlugPlural obj;
SetPronoun(‘them’, obj);
SetPronoun(‘it’, obj);
];
-)
Use Manual Pronouns translates as (- Constant MANUAL_PRONOUNS; -)
To have the parser notice (o - an object):
if o is ambiguous, notice the plurality of o;
otherwise set pronouns from o.
[The following is a legacy item in case people are still using it in their code, but “set pronouns from…” will work just as well.]
To notice (o - an object) boringly:
(- PronounNotice({o}); -)
[/code]