parser sometimes assumed that a token would not be deleted, and inserted
tokens in front of it, and then deleted the token after all. It should
at each error, first delete, and then insert.
i = getntsafe(p);
if (i != NOSAFETY) {
i = do_safes(p->n_rule, i, &ch);
+ if (i < SCANDONE) i = SCANDONE;
+ /* After a nonterminal, we only know whether a scan was done
+ or not
+ */
if (getntout(p) != i) {
ch = 1;
setntout(p,i);