Well, I've played with bison's error reporting a little more and found
that a small change to the previous patch helps things out. Instead of
starting to look at the zeroth token possibility, it's better to start
at the third. This skips over the internal tokens such as 'error' and
'invalid' which are valid in some grammars. Here is a patch to the
patched bison.simple: