This commit is contained in:
Akim Demaille
2003-03-03 09:00:12 +00:00
parent d2ffe11637
commit 650aa2cfbf
2 changed files with 13 additions and 16 deletions

View File

@@ -1659,32 +1659,30 @@ yyerrlab:
{ {
YYSIZE_T yysize = 0; YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar); int yytype = YYTRANSLATE (yychar);
const char* yyprefix;
char *yymsg; char *yymsg;
int yyx; int yyx;
/* Start YYX at -YYN if negative to avoid negative indexes in /* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */ YYCHECK. */
int yyxbase = yyn < 0 ? -yyn : 0; int yyxbegin = yyn < 0 ? -yyn : 0;
/* Stay within bounds of both yycheck and yytname. */ /* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn; int yychecklim = YYLAST - yyn;
int yynsyms = sizeof (yytname) / sizeof (yytname[0]); int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yyxlim = yychecklim < yynsyms ? yychecklim : yynsyms;
int yycount = 0; int yycount = 0;
for (yyx = yyxbase; yyx < yyxlim; yyx++) yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{ {
yysize += (! yycount yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
? sizeof (", expecting ") - 1 yycount += 1;
: sizeof (" or ") - 1);
yysize += yystrlen (yytname[yyx]);
yycount++;
if (yycount == 5) if (yycount == 5)
{ {
yysize = 0; yysize = 0;
break; break;
} }
} }
yysize += (sizeof ("syntax error, unexpected ") yysize += (sizeof ("syntax error, unexpected ")
+ yystrlen (yytname[yytype])); + yystrlen (yytname[yytype]));
@@ -1696,14 +1694,13 @@ yyerrlab:
if (yycount < 5) if (yycount < 5)
{ {
yycount = 0; yyprefix = ", expecting ";
for (yyx = yyxbase; yyx < yyxlim; yyx++) for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{ {
const char *yyq = ! yycount ? ", expecting " : " or "; yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yyq);
yyp = yystpcpy (yyp, yytname[yyx]); yyp = yystpcpy (yyp, yytname[yyx]);
yycount++; yyprefix = " or ";
} }
} }
yyerror (yymsg); yyerror (yymsg);

View File

@@ -133,7 +133,7 @@ typedef union YYSTYPE {
assoc assoc; assoc assoc;
uniqstr uniqstr; uniqstr uniqstr;
} YYSTYPE; } YYSTYPE;
/* Line 1255 of yacc.c. */ /* Line 1252 of yacc.c. */
#line 138 "y.tab.h" #line 138 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1