58 |
int i; |
int i; |
59 |
item_number_t *sitems = state->items; |
item_number_t *sitems = state->items; |
60 |
int snritems = state->nitems; |
int snritems = state->nitems; |
61 |
|
symbol_t *previous_lhs = NULL; |
62 |
|
|
63 |
/* Output all the items of a state, not only its kernel. */ |
/* Output all the items of a state, not only its kernel. */ |
64 |
if (report_flag & report_itemsets) |
if (report_flag & report_itemsets) |
68 |
snritems = nritemset; |
snritems = nritemset; |
69 |
} |
} |
70 |
|
|
71 |
if (snritems) |
if (!snritems) |
72 |
{ |
return; |
|
for (i = 0; i < snritems; i++) |
|
|
{ |
|
|
item_number_t *sp; |
|
|
item_number_t *sp1; |
|
|
int rule; |
|
|
|
|
|
sp1 = sp = ritem + sitems[i]; |
|
73 |
|
|
74 |
while (*sp >= 0) |
for (i = 0; i < snritems; i++) |
75 |
sp++; |
{ |
76 |
|
item_number_t *sp; |
77 |
|
item_number_t *sp1; |
78 |
|
int rule; |
79 |
|
|
80 |
rule = -(*sp); |
sp1 = sp = ritem + sitems[i]; |
|
fprintf (out, " %s -> ", symbol_tag_get (rules[rule].lhs)); |
|
81 |
|
|
82 |
for (sp = rules[rule].rhs; sp < sp1; sp++) |
while (*sp >= 0) |
83 |
fprintf (out, "%s ", symbol_tag_get (symbols[*sp])); |
sp++; |
84 |
|
|
85 |
fputc ('.', out); |
rule = -(*sp); |
86 |
|
|
87 |
for (/* Nothing */; *sp >= 0; ++sp) |
rule_lhs_print (&rules[rule], previous_lhs, out); |
88 |
fprintf (out, " %s", symbol_tag_get (symbols[*sp])); |
previous_lhs = rules[rule].lhs; |
89 |
|
|
90 |
/* Display the lookaheads? */ |
for (sp = rules[rule].rhs; sp < sp1; sp++) |
91 |
if (report_flag & report_lookaheads) |
fprintf (out, " %s", symbol_tag_get (symbols[*sp])); |
92 |
state_rule_lookaheads_print (state, &rules[rule], out); |
fputs (" .", out); |
93 |
|
for (/* Nothing */; *sp >= 0; ++sp) |
94 |
|
fprintf (out, " %s", symbol_tag_get (symbols[*sp])); |
95 |
|
|
96 |
fprintf (out, _(" (rule %d)"), rule - 1); |
/* Display the lookaheads? */ |
97 |
fputc ('\n', out); |
if (report_flag & report_lookaheads) |
98 |
} |
state_rule_lookaheads_print (state, &rules[rule], out); |
99 |
|
|
100 |
fputc ('\n', out); |
fputc ('\n', out); |
101 |
} |
} |
102 |
|
|
103 |
|
fputc ('\n', out); |
104 |
} |
} |
105 |
|
|
106 |
|
|