mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
* src/lalr.c (lookaheads_print): New.
(lalr): Call it when --trace-flag. * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads are dumped.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2001-12-29 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/lalr.c (lookaheads_print): New.
|
||||
(lalr): Call it when --trace-flag.
|
||||
* tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
|
||||
are dumped.
|
||||
|
||||
|
||||
2001-12-29 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
|
||||
|
||||
29
src/lalr.c
29
src/lalr.c
@@ -24,6 +24,7 @@
|
||||
tokens they accept. */
|
||||
|
||||
#include "system.h"
|
||||
#include "reader.h"
|
||||
#include "types.h"
|
||||
#include "LR0.h"
|
||||
#include "gram.h"
|
||||
@@ -546,6 +547,31 @@ initialize_lookaheads (void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------.
|
||||
| Output the lookaheads for each state. |
|
||||
`---------------------------------------*/
|
||||
|
||||
static void
|
||||
lookaheads_print (FILE *out)
|
||||
{
|
||||
int i, j, k;
|
||||
fprintf (out, "Lookaheads: BEGIN\n");
|
||||
for (i = 0; i < nstates; ++i)
|
||||
{
|
||||
fprintf (out, "State %d: %d lookaheads\n",
|
||||
i, state_table[i]->nlookaheads);
|
||||
|
||||
for (j = 0; j < state_table[i]->nlookaheads; ++j)
|
||||
for (k = 0; k < ntokens; ++k)
|
||||
if (BITISSET (LA (state_table[i]->lookaheadsp + j), j))
|
||||
fprintf (out, " on %d (%s) -> rule %d\n",
|
||||
k, tags[k],
|
||||
-LAruleno[state_table[i]->lookaheadsp + j] - 1);
|
||||
}
|
||||
fprintf (out, "Lookaheads: END\n");
|
||||
}
|
||||
|
||||
void
|
||||
lalr (void)
|
||||
{
|
||||
@@ -558,4 +584,7 @@ lalr (void)
|
||||
build_relations ();
|
||||
compute_FOLLOWS ();
|
||||
compute_lookaheads ();
|
||||
|
||||
if (trace_flag)
|
||||
lookaheads_print (stderr);
|
||||
}
|
||||
|
||||
@@ -157,6 +157,12 @@ transpose: input
|
||||
transpose: output
|
||||
0:
|
||||
|
||||
Lookaheads: BEGIN
|
||||
State 0: 0 lookaheads
|
||||
State 1: 0 lookaheads
|
||||
State 2: 0 lookaheads
|
||||
State 3: 0 lookaheads
|
||||
Lookaheads: END
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
Reference in New Issue
Block a user