mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
`Error:' lines. * data/bison.simple (yystos) [YYDEBUG]: New. (yyparse) [YYDEBUG]: Display the symbols which are popped during error recovery. * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
This commit is contained in:
@@ -1,3 +1,12 @@
|
|||||||
|
2002-05-26 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
|
* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
|
||||||
|
`Error:' lines.
|
||||||
|
* data/bison.simple (yystos) [YYDEBUG]: New.
|
||||||
|
(yyparse) [YYDEBUG]: Display the symbols which are popped during
|
||||||
|
error recovery.
|
||||||
|
* tests/regression.at (Web2c Actions): Adjust: yystos is output now.
|
||||||
|
|
||||||
2002-05-25 Akim Demaille <akim@epita.fr>
|
2002-05-25 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* doc/bison.texinfo (Debugging): Split into...
|
* doc/bison.texinfo (Debugging): Split into...
|
||||||
|
|||||||
3
NEWS
3
NEWS
@@ -26,6 +26,9 @@ Changes in version 1.49b:
|
|||||||
and has long been required by POSIX. For more details, please see
|
and has long been required by POSIX. For more details, please see
|
||||||
<http://mail.gnu.org/pipermail/bug-bison/2002-May/001452.html>.
|
<http://mail.gnu.org/pipermail/bug-bison/2002-May/001452.html>.
|
||||||
|
|
||||||
|
* Traces
|
||||||
|
Popped tokens and nonterminals are now reported.
|
||||||
|
|
||||||
* Large grammars
|
* Large grammars
|
||||||
Large grammars are now supported (large token numbers, large grammar
|
Large grammars are now supported (large token numbers, large grammar
|
||||||
size (= sum of the LHS and RHS lengths), large LALR tables).
|
size (= sum of the LHS and RHS lengths), large LALR tables).
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ static const b4_uint_type(b4_rline_max) yyrline[[]] =
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (YYDEBUG) || YYERROR_VERBOSE
|
#if YYDEBUG || YYERROR_VERBOSE
|
||||||
/* YYTNME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
|
/* YYTNME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
|
||||||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
||||||
static const char *const yytname[[]] =
|
static const char *const yytname[[]] =
|
||||||
@@ -389,9 +389,9 @@ static const b4_uint_type(b4_r2_max) yyr2[[]] =
|
|||||||
b4_r2
|
b4_r2
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFACT[[S]] -- default rule to reduce with in state S when YYTABLE
|
/* YYDEFACT[[STATE-NAME]] -- Default rule to reduce with in state
|
||||||
doesn't specify something else to do. Zero means the default is an
|
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
|
||||||
error. */
|
means the default is an error. */
|
||||||
static const short yydefact[[]] =
|
static const short yydefact[[]] =
|
||||||
{
|
{
|
||||||
b4_defact
|
b4_defact
|
||||||
@@ -429,6 +429,14 @@ static const short yycheck[[]] =
|
|||||||
b4_check
|
b4_check
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
|
/* YYSTOS[[STATE-NUM]] -- The (internal number of the) accessing
|
||||||
|
symbol of state STATE-NUM. */
|
||||||
|
static const b4_uint_type(b4_stos_max) yystos[[]] =
|
||||||
|
{
|
||||||
|
b4_stos
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
||||||
# define YYSIZE_T __SIZE_TYPE__
|
# define YYSIZE_T __SIZE_TYPE__
|
||||||
@@ -1137,6 +1145,27 @@ yyerrlab1:
|
|||||||
/* Pop the current state because it cannot handle the error token. */
|
/* Pop the current state because it cannot handle the error token. */
|
||||||
if (yyssp == yyss)
|
if (yyssp == yyss)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
|
if (yydebug)
|
||||||
|
{
|
||||||
|
if (yystos[yystate] < YYNTOKENS)
|
||||||
|
{
|
||||||
|
YYFPRINTF (stderr, "Error: popping token %d (%s",
|
||||||
|
yytoknum[yystos[yystate]], yytname[yystos[yystate]]);
|
||||||
|
# ifdef YYPRINT
|
||||||
|
YYPRINT (stderr, yytoknum[yystos[yystate]], *yyvsp);
|
||||||
|
# endif
|
||||||
|
YYFPRINTF (stderr, ")\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
YYFPRINTF (stderr, "Error: popping nonterminal (%s)\n",
|
||||||
|
yytname[yystos[yystate]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
yyvsp--;
|
yyvsp--;
|
||||||
yystate = *--yyssp;
|
yystate = *--yyssp;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Checking the output filenames. -*- Autotest -*-
|
# Checking the output filenames. -*- Autotest -*-
|
||||||
# Copyright 2000, 2001 Free Software Foundation, Inc.
|
# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -406,18 +406,18 @@ _AT_CHECK_CALC([$1],
|
|||||||
(2^2)^3 = 64], [486])
|
(2^2)^3 = 64], [486])
|
||||||
|
|
||||||
# Some parse errors.
|
# Some parse errors.
|
||||||
_AT_CHECK_CALC_ERROR([$1], [0 0], [10],
|
_AT_CHECK_CALC_ERROR([$1], [0 0], [11],
|
||||||
[1.3-1.4: parse error, unexpected "number"])
|
[1.3-1.4: parse error, unexpected "number"])
|
||||||
_AT_CHECK_CALC_ERROR([$1], [1//2], [13],
|
_AT_CHECK_CALC_ERROR([$1], [1//2], [15],
|
||||||
[1.3-1.4: parse error, unexpected '/', expecting "number" or '-' or '('])
|
[1.3-1.4: parse error, unexpected '/', expecting "number" or '-' or '('])
|
||||||
_AT_CHECK_CALC_ERROR([$1], [error], [4],
|
_AT_CHECK_CALC_ERROR([$1], [error], [4],
|
||||||
[1.1-1.2: parse error, unexpected $undefined., expecting "number" or '-' or '\n' or '('])
|
[1.1-1.2: parse error, unexpected $undefined., expecting "number" or '-' or '\n' or '('])
|
||||||
_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [19],
|
_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [22],
|
||||||
[1.7-1.8: parse error, unexpected '='])
|
[1.7-1.8: parse error, unexpected '='])
|
||||||
_AT_CHECK_CALC_ERROR([$1],
|
_AT_CHECK_CALC_ERROR([$1],
|
||||||
[
|
[
|
||||||
+1],
|
+1],
|
||||||
[13],
|
[14],
|
||||||
[2.1-2.2: parse error, unexpected '+'])
|
[2.1-2.2: parse error, unexpected '+'])
|
||||||
# Exercise error messages with EOF: work on an empty file.
|
# Exercise error messages with EOF: work on an empty file.
|
||||||
_AT_CHECK_CALC_ERROR([$1],
|
_AT_CHECK_CALC_ERROR([$1],
|
||||||
@@ -430,7 +430,7 @@ _AT_CHECK_CALC_ERROR([$1],
|
|||||||
# associated to `error'.
|
# associated to `error'.
|
||||||
_AT_CHECK_CALC_ERROR([$1],
|
_AT_CHECK_CALC_ERROR([$1],
|
||||||
[(1 ++ 2) + (0 0) = 1],
|
[(1 ++ 2) + (0 0) = 1],
|
||||||
[76],
|
[82],
|
||||||
[1.5-1.6: parse error, unexpected '+', expecting "number" or '-' or '('
|
[1.5-1.6: parse error, unexpected '+', expecting "number" or '-' or '('
|
||||||
1.15-1.16: parse error, unexpected "number"
|
1.15-1.16: parse error, unexpected "number"
|
||||||
calc: error: 0 != 1])
|
calc: error: 0 != 1])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Bison Regressions. -*- Autotest -*-
|
# Bison Regressions. -*- Autotest -*-
|
||||||
# Copyright 2001, 2002 Free Software Foundation, Inc.
|
# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -549,6 +549,11 @@ static const short yycheck[] =
|
|||||||
{
|
{
|
||||||
7, 3, 9, 4, 0, -1, 6, 5
|
7, 3, 9, 4, 0, -1, 6, 5
|
||||||
};
|
};
|
||||||
|
static const unsigned char yystos[] =
|
||||||
|
{
|
||||||
|
0, 3, 8, 9, 10, 4, 0, 6, 11, 5,
|
||||||
|
8, 8
|
||||||
|
};
|
||||||
]])
|
]])
|
||||||
|
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|||||||
Reference in New Issue
Block a user