The token "special" is showing its age badly: there are better ways to
do this kind of thing now. The problem is really that "before" applies
to the first parameter of the verb, and in the case of "type <special>
on <noun>" this would end up as the address of the word being typed.
Try copying the grammar for "consult" from "grammar.h": you can make
a token which soaks up all the text until the word "on", but doesn't
make a parameter out of it, so that the noun at the end really is the
first parameter.
Sorry it's a complicated answer! As I said above, I think "special"
is best avoided now.
Graham Nelson