Adding UDA to the D grammar. Untested
Changing the way dynamic hooks are added and managed.
Regenerating the D parser with the new hook mechanism.
Testing the new dynamic hooks mechanism:

Loading the D parser, adding a new kind of 'Statement'
called UnlessStatement (unless (IfCondition) BlockStatement)

It works, parses modified D code and creates a modified ParseTree.