* src/print_graph.c (print_core): Better locality of variables.

* src/print.c (print_core): Likewise.
This commit is contained in:
Akim Demaille
2001-11-19 09:13:53 +00:00
parent dc3b81cd67
commit 50766eee39
3 changed files with 25 additions and 32 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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]);
} }
} }