No, since the change won't make it out of the eval block, and the changes are done at runtime anyway. You need a use. The changes have to be in place at compile time to take effect.
However, if the modifications to the parser are made in a BEGIN block, won't the changes go out of scope once the block is finished?
Maybe some sort of new block (maybe PARSE) could be created, such that it acts like a BEGIN block, but changes made within the block do not go out of scope when the block is finished?