167 |
static void |
static void |
168 |
output_gram (void) |
output_gram (void) |
169 |
{ |
{ |
170 |
output_table_data (&output_obstack, rrhs, |
{ |
171 |
0, 1, nrules + 1); |
int i; |
172 |
|
short *values = XCALLOC (short, nrules + 1); |
173 |
|
for (i = 0; i < nrules + 1; ++i) |
174 |
|
values[i] = rule_table[i].rhs; |
175 |
|
output_table_data (&output_obstack, values, |
176 |
|
0, 1, nrules + 1); |
177 |
|
XFREE (values); |
178 |
|
} |
179 |
|
|
180 |
muscle_insert ("prhs", obstack_finish (&output_obstack)); |
muscle_insert ("prhs", obstack_finish (&output_obstack)); |
181 |
|
|
182 |
{ |
{ |
287 |
muscle_insert ("toknum", obstack_finish (&output_obstack)); |
muscle_insert ("toknum", obstack_finish (&output_obstack)); |
288 |
|
|
289 |
/* Output YYR1. */ |
/* Output YYR1. */ |
290 |
output_table_data (&output_obstack, rlhs, |
{ |
291 |
0, 1, nrules + 1); |
short *values = XCALLOC (short, nrules + 1); |
292 |
muscle_insert ("r1", obstack_finish (&output_obstack)); |
for (i = 0; i < nrules + 1; ++i) |
293 |
XFREE (rlhs + 1); |
values[i] = rule_table[i].lhs; |
294 |
|
output_table_data (&output_obstack, values, |
295 |
|
0, 1, nrules + 1); |
296 |
|
muscle_insert ("r1", obstack_finish (&output_obstack)); |
297 |
|
XFREE (values); |
298 |
|
} |
299 |
|
|
300 |
/* Output YYR2. */ |
/* Output YYR2. */ |
301 |
short_tab = XMALLOC (short, nrules + 1); |
short_tab = XMALLOC (short, nrules + 1); |
302 |
for (i = 1; i < nrules; i++) |
for (i = 1; i < nrules; i++) |
303 |
short_tab[i] = rrhs[i + 1] - rrhs[i] - 1; |
short_tab[i] = rule_table[i + 1].rhs - rule_table[i].rhs - 1; |
304 |
short_tab[nrules] = nitems - rrhs[nrules] - 1; |
short_tab[nrules] = nitems - rule_table[nrules].rhs - 1; |
305 |
output_table_data (&output_obstack, short_tab, |
output_table_data (&output_obstack, short_tab, |
306 |
0, 1, nrules + 1); |
0, 1, nrules + 1); |
307 |
muscle_insert ("r2", obstack_finish (&output_obstack)); |
muscle_insert ("r2", obstack_finish (&output_obstack)); |
308 |
XFREE (short_tab); |
XFREE (short_tab); |
309 |
|
|
310 |
XFREE (rrhs + 1); |
XFREE (rule_table + 1); |
311 |
} |
} |
312 |
|
|
313 |
/*------------------------------------------------------------------. |
/*------------------------------------------------------------------. |