I7: understand commands using "action tokens"

I thought I was being clever when I did this:

tearing is an action applying to one carried thing. 

understand "rip" or "tear" or "shred" as "[tearaction]";
understand "apart" or "to pieces" or "to shreds" as "[tearfiller]".
understand "[tearaction] [something]" or "[tearaction] [something] [tearfiller]" as tearing. 

See how that works? It will let you use rip/tear/shred something and also optionally add apart/“to pieces”/“to shreds” at the end, so it matches

tear cloth
as well as
rip the cloth to shreds

Also, this does seem to work using

understand "rip/tear/shred" as "[tearaction]"
[/code] although section 16.12 seems to hint this is not quite comme il faut. Also you normally get an error message for trying to use a slash for the verb in understanding commands:
at present you're not allowed to use a / between command words at the start of a line, so 'put/interpose/insert [something]' is out.
OK; so far everything is working just fine. But when I try to use that trick again it doesn't work:

taking it with is an action applying to two things.
understand "take" or "get" as "[takeaction]".
understand "[takeaction] [something] with/using [something preferably held]" as taking it with.

I have more code for the actual command handling, but it never runs because I get this:

>take the cloth using the pair of pliers
I only understood you as far as wanting to take the cloth.

Why is that? If I instead do
[code]understand "take [something] with/using [something preferably held]" or "get [something] with/using [something preferably held]" as taking it with.

it works just fine.

I think what happens is that, when parsing commands, Inform tries to match the first word of the command with a verb in the dictionary; only if it can’t do that, will it try treating the word as a grammar token.

So, since “take” is in the dictionary by default (since Standard Rules understand it as taking), Inform decides that a command beginning with a TAKE should concern one of the actions that is triggered by the dictionary word “take” and never tries matching it against a grammar token.

If you first ‘understand “take” as something new’, a command beginning with TAKE will match against the “[takeaction]” token; but I guess it’s much safer not to use grammar tokens for the verb part of a command.

You wrote:

understand "rip" or "tear" or "shred" as "[tearaction]";

The verb-handling part of Inform’s parser already has a synonym mechanism built in. You would normally do:

understand "rip [something]" or "rip [something] [tearfiller]" as tearing.
Understand the commands "tear", "shred" as "rip".

Your use of verb tokens seems to work, but it’s not quite the same. It falls into I7’s “commands with no verb” handling mechanism (16.10), even though the token is not noun-based. I see, for example:

(Rather than the expected “What do you want to tear?”) As you found, you will also have trouble mixing this with explicitly-defined verb grammar.

Oh! Ok, I thought… never mind. Will try. Thanks!