Use of 'and' in a verb's grammar

Here’s something which seems to be working. I’m not sure of corner cases, though.

[ nounAnd noun1;
    noun1 = NounDomain(ScopeCeiling(actor), actor, NOUN_TOKEN);

    if (noun1 == GPR_FAIL) return GPR_FAIL;
    if (~~(NextWord() == AND1__WD or AND2__WD or AND3__WD)) return GPR_FAIL;

    return noun1;
];

That seems like the right track to me, though honestly the change that I proposed first would be what I would do. It fixes a shortcoming in the parser code. FYI – I did test just replacing the routine in an extension, and it worked fine.

… and I guess your new approach shows the answer to your question about how to use ParseToken() without processing connectives – you don’t!

I do agree the change you proposed first looks like the best solution. How about submitting it as a fix to David Griffith / inform6lib · GitLab for the next release?