- if (!errstatus)
- {
- ++nerrs;
-
-#if YYERROR_VERBOSE
- n_ = pact_[state_];
- if (pact_ninf_ < n_ && n_ < last_)
- {
- message = "syntax error, unexpected ";
- message += name_[ilooka_];
- {
- int count = 0;
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int xbegin = n_ < 0 ? -n_ : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int checklim = last_ - n_;
- int xend = checklim < ntokens_ ? checklim : ntokens_;
- for (int x = xbegin; x < xend; ++x)
- if (check_[x + n_] == x && x != terror_)
- ++count;
- if (count < 5)
- {
- count = 0;
- for (int x1 = xbegin; x1 < xend; ++x1)
- if (check_[x1 + n_] == x1 && x1 != terror_)
- {
- message += (!count++) ? ", expecting " : " or ";
- message += name_[x1];
- }
- }
- }
- }
- else
-#endif
- message = "syntax error";
- error_ ();
- }