48 |
print_core (FILE *out, int state) |
print_core (FILE *out, int state) |
49 |
{ |
{ |
50 |
int i; |
int i; |
51 |
int k; |
core *statep = state_table[state].state; |
|
int rule; |
|
|
core *statep; |
|
|
short *sp; |
|
|
short *sp1; |
|
52 |
|
|
53 |
statep = state_table[state].state; |
if (!statep->nitems) |
|
k = statep->nitems; |
|
|
|
|
|
if (k == 0) |
|
54 |
return; |
return; |
55 |
|
|
56 |
for (i = 0; i < k; i++) |
for (i = 0; i < statep->nitems; i++) |
57 |
{ |
{ |
58 |
|
short *sp; |
59 |
|
short *sp1; |
60 |
|
int rule; |
61 |
|
|
62 |
sp1 = sp = ritem + statep->items[i]; |
sp1 = sp = ritem + statep->items[i]; |
63 |
|
|
64 |
while (*sp > 0) |
while (*sp > 0) |
68 |
fprintf (out, " %s -> ", tags[rule_table[rule].lhs]); |
fprintf (out, " %s -> ", tags[rule_table[rule].lhs]); |
69 |
|
|
70 |
for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++) |
for (sp = ritem + rule_table[rule].rhs; sp < sp1; sp++) |
71 |
{ |
fprintf (out, "%s ", tags[*sp]); |
|
fprintf (out, "%s ", tags[*sp]); |
|
|
} |
|
72 |
|
|
73 |
fputc ('.', out); |
fputc ('.', out); |
74 |
|
|
75 |
while (*sp > 0) |
for (/* Nothing */; *sp > 0; ++sp) |
76 |
{ |
fprintf (out, " %s", tags[*sp]); |
|
fprintf (out, " %s", tags[*sp]); |
|
|
sp++; |
|
|
} |
|
77 |
|
|
78 |
fprintf (out, _(" (rule %d)"), rule); |
fprintf (out, _(" (rule %d)"), rule); |
79 |
fputc ('\n', out); |
fputc ('\n', out); |