I6: Possible to parse multiple held objects with matching plural attributes as multiheld?

How difficult might it be to get the parser to recognize the use of a noun’s plural attribute as if “all” had been used? Ideally, both ‘drop coins’ and ‘drop all my coins’ would work as well as ‘drop all coin’.

Would something like this require a hack of the Parser__parse method? Or does Inform 6 support a more modular approach? For the former, I would imagine I might have to set multiflag = true; upon detecting matching plurals, and then somehow jump back to .TryAgain.

>get coin
Taken.

>get coin
(the gold coin)
Taken.

>i
You are carrying:
  two gold coins

>drop coins
You can't see any such thing.

>drop all my coins
You can't use multiple objects with that verb.
>showverb drop
Verb 'discard' 'drop' 'throw'
     * multiheld -> Drop
     * multiexcept 'in' / 'into' / 'down' noun -> Insert
     * multiexcept 'on' / 'onto' noun -> PutOn
     * held 'at' / 'against' / 'on' / 'onto' noun -> ThrowAt

>drop all my coin
gold coin: Dropped.
gold coin: Dropped.

>frown
That's not a verb I recognise.

To be clear, I’m not too well-versed on the differences between the 040227 version of the Inform 6 Library, and the DavidGriffith/inform6lib/ version 180520. So if the later version supports such a thing, I’d be interested in learning either way.

I’m not great with I6, but I thought this was already implemented if you gave the coins a specifically-plural synonym (with name 'coins//p')?

1 Like

Thank you, Daniel, you are correct, and sure enough, there it is in the answer to Exercise 68 in the Inform Designer’s Manual Fourth Edition.