>> At a syntax error we check whether the current token is a keyword.
>> If an identifier token would be acceptable at this location then
>> we convert the keyword token into an identifier token and continue
>> parsing.


> If you can do it this way, I recommend you do.
> I'm going to add it to my bag-of-tricks.
> In other words, there is no downside to this technique.


Actually, I agree with your original assertion that the grammar solution is
best. Invoking error handling where there really is no error should be the
last resort.