I6: Overlaying Verbs

If I’ve overlayed a verb, how can I get the parser to get back to the “normal” processing of the input? Like, I want to catch a special input (“throw kedge at tree”), but my catch try Extend 'throw' first * noun "at" noun -> Throw; spoils the normal “drop” procedure (“drop item” → “What do you want to drop the item at?”). Any help appreciated.

In this case you want “throw” to have a different grammar from “drop”, which it is normally a synonym of. So you have to split it off:

Extend only 'throw' replace
    * noun 'at'/'against'/'on'/'onto' noun -> ThrowAt;

(I’m using the ThrowAt action because it’s already in the library, and it’s set up to use two nouns.)

With this setup, you lose the normal use of “throw object” to mean Drop, but that’s reasonable – that default only makes sense in a game without throwing.

EDIT: Forgot the “only” keyword! Fixed.

If then. I hate that default.

WORKS! Thanks a lot…