Here’s another I6 snippet zarf taught me: You can figure out what action the parser is trying to process even before it’s done, like this:
To decide which action name is the action to be: (- action_to_be -).
This can be useful for customizing parser error messages for a particular action, or customizing the disambiguation question for a particular action, or to allow a word to be used as a synonym for an object when trying a certain specified action.
This is undocumented, which technically means it could disappear without warning in future versions of Inform, but that would only happen if the parser internals get rewritten, and that doesn’t seem likely to happen for a while.
And one of those threads reminds me that this is sort of a hidden secret, or at least something one experienced author didn’t know about: You can write an Understand line with no verb, so the player can invoke the action just by typing the noun:
Understand "[something]" as examining.
(There are some things that can get weird with this, because in some contexts Inform checks to see whether you’ve issued a command by testing the first word against a list of verbs–specifically, if you issue a command “JANE, ROCK” the parser won’t understand this as “JANE, EXAMINE ROCK,” and if you enter a noun-only command in response to a disambiguation question, Inform will treat that as a response to the question rather than a new command–though that’s probably a good thing anyway.)