1120 |
|
|
1121 |
yyerrstatus = 3; /* Each real token shifted decrements this. */ |
yyerrstatus = 3; /* Each real token shifted decrements this. */ |
1122 |
|
|
1123 |
goto yyerrhandle; |
for (;;) |
1124 |
|
{ |
1125 |
|
yyn = yypact[yystate]; |
1126 |
/*-------------------------------------------------------------------. |
if (yyn != YYFLAG) |
1127 |
| yyerrdefault -- current state does not do anything special for the | |
{ |
1128 |
| error token. | |
yyn += YYTERROR; |
1129 |
`-------------------------------------------------------------------*/ |
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) |
1130 |
yyerrdefault: |
{ |
1131 |
#if 0 |
yyn = yytable[yyn]; |
1132 |
/* This is wrong; only states that explicitly want error tokens |
if (0 < yyn) |
1133 |
should shift them. */ |
break; |
1134 |
|
} |
1135 |
/* If its default is to accept any token, ok. Otherwise pop it. */ |
} |
1136 |
yyn = yydefact[yystate]; |
|
1137 |
if (yyn) |
/* Pop the current state because it cannot handle the error token. */ |
1138 |
goto yydefault; |
if (yyssp == yyss) |
1139 |
#endif |
YYABORT; |
1140 |
|
yyvsp--; |
1141 |
|
yystate = *--yyssp; |
|
/*---------------------------------------------------------------. |
|
|
| yyerrpop -- pop the current state because it cannot handle the | |
|
|
| error token. | |
|
|
`---------------------------------------------------------------*/ |
|
|
yyerrpop: |
|
|
if (yyssp == yyss) |
|
|
YYABORT; |
|
|
yyvsp--; |
|
|
yystate = *--yyssp; |
|
1142 |
#if YYLSP_NEEDED |
#if YYLSP_NEEDED |
1143 |
yylsp--; |
yylsp--; |
1144 |
#endif |
#endif |
1145 |
|
|
1146 |
#if YYDEBUG |
#if YYDEBUG |
1147 |
if (yydebug) |
if (yydebug) |
1148 |
{ |
{ |
1149 |
short *yyssp1 = yyss - 1; |
short *yyssp1 = yyss - 1; |
1150 |
YYFPRINTF (stderr, "Error: state stack now"); |
YYFPRINTF (stderr, "Error: state stack now"); |
1151 |
while (yyssp1 != yyssp) |
while (yyssp1 != yyssp) |
1152 |
YYFPRINTF (stderr, " %d", *++yyssp1); |
YYFPRINTF (stderr, " %d", *++yyssp1); |
1153 |
YYFPRINTF (stderr, "\n"); |
YYFPRINTF (stderr, "\n"); |
1154 |
} |
} |
1155 |
#endif |
#endif |
|
|
|
|
/*--------------. |
|
|
| yyerrhandle. | |
|
|
`--------------*/ |
|
|
yyerrhandle: |
|
|
yyn = yypact[yystate]; |
|
|
if (yyn == YYFLAG) |
|
|
goto yyerrdefault; |
|
|
|
|
|
yyn += YYTERROR; |
|
|
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) |
|
|
goto yyerrdefault; |
|
|
|
|
|
yyn = yytable[yyn]; |
|
|
if (yyn < 0) |
|
|
{ |
|
|
if (yyn == YYFLAG) |
|
|
goto yyerrpop; |
|
|
yyn = -yyn; |
|
|
goto yyreduce; |
|
1156 |
} |
} |
|
else if (yyn == 0) |
|
|
goto yyerrpop; |
|
1157 |
|
|
1158 |
if (yyn == YYFINAL) |
if (yyn == YYFINAL) |
1159 |
YYACCEPT; |
YYACCEPT; |