mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 09:43:03 +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>
|
2001-12-29 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
|
* 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. */
|
tokens they accept. */
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#include "reader.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "LR0.h"
|
#include "LR0.h"
|
||||||
#include "gram.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
|
void
|
||||||
lalr (void)
|
lalr (void)
|
||||||
{
|
{
|
||||||
@@ -558,4 +584,7 @@ lalr (void)
|
|||||||
build_relations ();
|
build_relations ();
|
||||||
compute_FOLLOWS ();
|
compute_FOLLOWS ();
|
||||||
compute_lookaheads ();
|
compute_lookaheads ();
|
||||||
|
|
||||||
|
if (trace_flag)
|
||||||
|
lookaheads_print (stderr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,6 +157,12 @@ transpose: input
|
|||||||
transpose: output
|
transpose: output
|
||||||
0:
|
0:
|
||||||
|
|
||||||
|
Lookaheads: BEGIN
|
||||||
|
State 0: 0 lookaheads
|
||||||
|
State 1: 0 lookaheads
|
||||||
|
State 2: 0 lookaheads
|
||||||
|
State 3: 0 lookaheads
|
||||||
|
Lookaheads: END
|
||||||
]])
|
]])
|
||||||
|
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|||||||
Reference in New Issue
Block a user