I'm teaching CS1 right now, and am daily reminded about just how utterly <i>awful</i> compiler messages are if you don't already understand how compilers work.  Not only is this a good idea in general, it also adapts nicely to the educational case: the likely use-case to trigger a particular parser error state might be different for a beginner, and thus require a different error message, but it sounds like it would be easy to swap out one (state,nexttok)-&#62;errmsg mapping for another.