mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
* src/bison.simple (yyparse): When reporting verbosely an error,
no longer issue additional quotes around token names. * tests/calc.at: Adjust.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/bison.simple (yyparse): When reporting verbosely an error,
|
||||
no longer issue additional quotes around token names.
|
||||
* tests/calc.at: Adjust.
|
||||
|
||||
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
|
||||
|
||||
5
NEWS
5
NEWS
@@ -3,6 +3,11 @@ Bison News
|
||||
|
||||
Changes in version 1.30d:
|
||||
|
||||
* Parse errors
|
||||
Verbose parse error messages from the parsers are better looking.
|
||||
Before: parse error: unexpected `'/'', expecting `"number"' or `'-'' or `'(''
|
||||
Now: parse error: unexpected '/', expecting "number" or '-' or '('
|
||||
|
||||
Changes in version 1.30c:
|
||||
|
||||
* Fixed a few warnings.
|
||||
|
||||
@@ -671,30 +671,29 @@ yyerrlab:
|
||||
int x, count;
|
||||
|
||||
count = 0;
|
||||
/* Start X at -yyn if nec to avoid negative indexes in yycheck. */
|
||||
for (x = (yyn < 0 ? -yyn : 0);
|
||||
/* Start X at -YYN if negative to avoid negative indexes in
|
||||
YYCHECK. */
|
||||
for (x = yyn < 0 ? -yyn : 0;
|
||||
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
||||
if (yycheck[x + yyn] == x)
|
||||
size += strlen (yytname[x]) + 15, count++;
|
||||
size += strlen ("parse error, unexpected `") + 1;
|
||||
size += strlen ("parse error, unexpected ") + 1;
|
||||
size += strlen (yytname[YYTRANSLATE (yychar)]);
|
||||
msg = (char *) malloc (size);
|
||||
if (msg != 0)
|
||||
{
|
||||
strcpy (msg, "parse error, unexpected `");
|
||||
strcpy (msg, "parse error, unexpected ");
|
||||
strcat (msg, yytname[YYTRANSLATE (yychar)]);
|
||||
strcat (msg, "'");
|
||||
|
||||
if (count < 5)
|
||||
{
|
||||
count = 0;
|
||||
for (x = (yyn < 0 ? -yyn : 0);
|
||||
for (x = yyn < 0 ? -yyn : 0;
|
||||
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
||||
if (yycheck[x + yyn] == x)
|
||||
{
|
||||
strcat (msg, count == 0 ? ", expecting `" : " or `");
|
||||
strcat (msg, count == 0 ? ", expecting " : " or ");
|
||||
strcat (msg, yytname[x]);
|
||||
strcat (msg, "'");
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -702,7 +701,7 @@ yyerrlab:
|
||||
free (msg);
|
||||
}
|
||||
else
|
||||
yyerror ("parse error; also virtual memory exceeded");
|
||||
yyerror ("parse error; also virtual memory exhausted");
|
||||
}
|
||||
else
|
||||
#endif /* YYERROR_VERBOSE */
|
||||
|
||||
@@ -366,22 +366,22 @@ _AT_CHECK_CALC([$1],
|
||||
# Some parse errors.
|
||||
_AT_CHECK_CALC_ERROR([$1], [+1], [8],
|
||||
[1.0:1.1],
|
||||
[unexpected `'+''])
|
||||
[unexpected '+'])
|
||||
_AT_CHECK_CALC_ERROR([$1], [1//2], [17],
|
||||
[1.2:1.3],
|
||||
[unexpected `'/'', expecting `NUM' or `'-'' or `'(''])
|
||||
[unexpected '/', expecting NUM or '-' or '('])
|
||||
_AT_CHECK_CALC_ERROR([$1], [error], [8],
|
||||
[1.0:1.1],
|
||||
[unexpected `$undefined.'])
|
||||
[unexpected $undefined.])
|
||||
_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [23],
|
||||
[1.6:1.7],
|
||||
[unexpected `'=''])
|
||||
[unexpected '='])
|
||||
_AT_CHECK_CALC_ERROR([$1],
|
||||
[
|
||||
+1],
|
||||
[16],
|
||||
[2.0:2.1],
|
||||
[unexpected `'+''])
|
||||
[unexpected '+'])
|
||||
|
||||
AT_CLEANUP
|
||||
])# AT_CHECK_CALC
|
||||
|
||||
Reference in New Issue
Block a user