mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 01:03:04 +00:00
* src/print_graph.c (print_core): Better locality of variables.
* src/print.c (print_core): Likewise.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
|
* src/print_graph.c (print_core): Better locality of variables.
|
||||||
|
* src/print.c (print_core): Likewise.
|
||||||
|
|
||||||
2001-11-19 Akim Demaille <akim@epita.fr>
|
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* src/vcg.c: You do the output, so you are responsible of the
|
* src/vcg.c: You do the output, so you are responsible of the
|
||||||
|
|||||||
28
src/print.c
28
src/print.c
@@ -48,20 +48,17 @@ static void
|
|||||||
print_core (FILE *out, int state)
|
print_core (FILE *out, int state)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int k;
|
core *statep = state_table[state].state;
|
||||||
int rule;
|
|
||||||
core *statep;
|
|
||||||
short *sp;
|
|
||||||
short *sp1;
|
|
||||||
|
|
||||||
statep = state_table[state].state;
|
if (!statep->nitems)
|
||||||
k = statep->nitems;
|
|
||||||
|
|
||||||
if (k == 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < k; i++)
|
for (i = 0; i < statep->nitems; i++)
|
||||||
{
|
{
|
||||||
|
short *sp;
|
||||||
|
short *sp1;
|
||||||
|
int rule;
|
||||||
|
|
||||||
sp1 = sp = ritem + statep->items[i];
|
sp1 = sp = ritem + statep->items[i];
|
||||||
|
|
||||||
while (*sp > 0)
|
while (*sp > 0)
|
||||||
@@ -71,17 +68,12 @@ print_core (FILE *out, int state)
|
|||||||
fprintf (out, " %s -> ", tags[rule_table[rule].lhs]);
|
fprintf (out, " %s -> ", tags[rule_table[rule].lhs]);
|
||||||
|
|
||||||
for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++)
|
for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++)
|
||||||
{
|
fprintf (out, "%s ", tags[*sp]);
|
||||||
fprintf (out, "%s ", tags[*sp]);
|
|
||||||
}
|
|
||||||
|
|
||||||
fputc ('.', out);
|
fputc ('.', out);
|
||||||
|
|
||||||
while (*sp > 0)
|
for (/* Nothing */; *sp > 0; ++sp)
|
||||||
{
|
fprintf (out, " %s", tags[*sp]);
|
||||||
fprintf (out, " %s", tags[*sp]);
|
|
||||||
sp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf (out, _(" (rule %d)"), rule);
|
fprintf (out, _(" (rule %d)"), rule);
|
||||||
fputc ('\n', out);
|
fputc ('\n', out);
|
||||||
|
|||||||
@@ -40,22 +40,16 @@ static void
|
|||||||
print_core (int state, struct obstack *node_obstack)
|
print_core (int state, struct obstack *node_obstack)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int k;
|
core *statep = state_table[state].state;
|
||||||
int rule;
|
|
||||||
core *statep;
|
|
||||||
short *sp;
|
|
||||||
short *sp1;
|
|
||||||
|
|
||||||
statep = state_table[state].state;
|
if (!statep->nitems)
|
||||||
k = statep->nitems;
|
|
||||||
|
|
||||||
if (k == 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < k; i++)
|
for (i = 0; i < statep->nitems; i++)
|
||||||
{
|
{
|
||||||
if (i)
|
short *sp;
|
||||||
obstack_1grow (node_obstack, '\n');
|
short *sp1;
|
||||||
|
int rule;
|
||||||
|
|
||||||
sp1 = sp = ritem + statep->items[i];
|
sp1 = sp = ritem + statep->items[i];
|
||||||
|
|
||||||
@@ -64,6 +58,8 @@ print_core (int state, struct obstack *node_obstack)
|
|||||||
|
|
||||||
rule = -(*sp);
|
rule = -(*sp);
|
||||||
|
|
||||||
|
if (i)
|
||||||
|
obstack_1grow (node_obstack, '\n');
|
||||||
obstack_fgrow1 (node_obstack, "%d: ", rule);
|
obstack_fgrow1 (node_obstack, "%d: ", rule);
|
||||||
obstack_fgrow1 (node_obstack, " %s -> ",
|
obstack_fgrow1 (node_obstack, " %s -> ",
|
||||||
tags[rule_table[rule].lhs]);
|
tags[rule_table[rule].lhs]);
|
||||||
@@ -73,8 +69,8 @@ print_core (int state, struct obstack *node_obstack)
|
|||||||
|
|
||||||
obstack_1grow (node_obstack, '.');
|
obstack_1grow (node_obstack, '.');
|
||||||
|
|
||||||
while (*sp > 0)
|
for (/* Nothing */; *sp > 0; ++sp)
|
||||||
obstack_fgrow1 (node_obstack, " %s", tags[*sp++]);
|
obstack_fgrow1 (node_obstack, " %s", tags[*sp]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user