1 |
/* Output the generated parsing program for Bison. |
/* Output the generated parsing program for Bison. |
2 |
|
|
3 |
Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002 |
Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002 |
4 |
Free Software Foundation, Inc. |
Free Software Foundation, Inc. |
5 |
|
|
68 |
{ \ |
{ \ |
69 |
Type min = first; \ |
Type min = first; \ |
70 |
Type max = first; \ |
Type max = first; \ |
71 |
|
long int lmin; \ |
72 |
|
long int lmax; \ |
73 |
int i; \ |
int i; \ |
74 |
int j = 1; \ |
int j = 1; \ |
75 |
\ |
\ |
93 |
obstack_1grow (&format_obstack, 0); \ |
obstack_1grow (&format_obstack, 0); \ |
94 |
muscle_insert (name, obstack_finish (&format_obstack)); \ |
muscle_insert (name, obstack_finish (&format_obstack)); \ |
95 |
\ |
\ |
96 |
|
lmin = min; \ |
97 |
|
lmax = max; \ |
98 |
/* Build `NAME_min' and `NAME_max' in the obstack. */ \ |
/* Build `NAME_min' and `NAME_max' in the obstack. */ \ |
99 |
obstack_fgrow1 (&format_obstack, "%s_min", name); \ |
obstack_fgrow1 (&format_obstack, "%s_min", name); \ |
100 |
obstack_1grow (&format_obstack, 0); \ |
obstack_1grow (&format_obstack, 0); \ |
101 |
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), \ |
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmin); \ |
|
(long int) min); \ |
|
102 |
obstack_fgrow1 (&format_obstack, "%s_max", name); \ |
obstack_fgrow1 (&format_obstack, "%s_max", name); \ |
103 |
obstack_1grow (&format_obstack, 0); \ |
obstack_1grow (&format_obstack, 0); \ |
104 |
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), \ |
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmax); \ |
|
(long int) max); \ |
|
105 |
} |
} |
106 |
|
|
107 |
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int) |
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int) |
193 |
/* Output YYTOKNUM. */ |
/* Output YYTOKNUM. */ |
194 |
{ |
{ |
195 |
int i; |
int i; |
196 |
int *values = XCALLOC (int, ntokens); |
int *values = MALLOC (values, ntokens); |
197 |
for (i = 0; i < ntokens; ++i) |
for (i = 0; i < ntokens; ++i) |
198 |
values[i] = symbols[i]->user_token_number; |
values[i] = symbols[i]->user_token_number; |
199 |
muscle_insert_int_table ("toknum", values, |
muscle_insert_int_table ("toknum", values, |
213 |
{ |
{ |
214 |
rule_number r; |
rule_number r; |
215 |
unsigned int i = 0; |
unsigned int i = 0; |
216 |
item_number *rhs = XMALLOC (item_number, nritems); |
item_number *rhs = MALLOC (rhs, nritems); |
217 |
unsigned int *prhs = XMALLOC (unsigned int, nrules); |
unsigned int *prhs = MALLOC (prhs, nrules); |
218 |
unsigned int *rline = XMALLOC (unsigned int, nrules); |
unsigned int *rline = MALLOC (rline, nrules); |
219 |
symbol_number *r1 = XMALLOC (symbol_number, nrules); |
symbol_number *r1 = MALLOC (r1, nrules); |
220 |
unsigned int *r2 = XMALLOC (unsigned int, nrules); |
unsigned int *r2 = MALLOC (r2, nrules); |
221 |
short *dprec = XMALLOC (short, nrules); |
short *dprec = MALLOC (dprec, nrules); |
222 |
short *merger = XMALLOC (short, nrules); |
short *merger = MALLOC (merger, nrules); |
223 |
|
|
224 |
for (r = 0; r < nrules; ++r) |
for (r = 0; r < nrules; ++r) |
225 |
{ |
{ |
272 |
prepare_states (void) |
prepare_states (void) |
273 |
{ |
{ |
274 |
state_number i; |
state_number i; |
275 |
symbol_number *values = |
symbol_number *values = MALLOC (values, nstates); |
|
(symbol_number *) alloca (sizeof (symbol_number) * nstates); |
|
276 |
for (i = 0; i < nstates; ++i) |
for (i = 0; i < nstates; ++i) |
277 |
values[i] = states[i]->accessing_symbol; |
values[i] = states[i]->accessing_symbol; |
278 |
muscle_insert_symbol_number_table ("stos", values, |
muscle_insert_symbol_number_table ("stos", values, |
279 |
0, 1, nstates); |
0, 1, nstates); |
280 |
|
free (values); |
281 |
|
|
282 |
MUSCLE_INSERT_INT ("last", high); |
MUSCLE_INSERT_INT ("last", high); |
283 |
MUSCLE_INSERT_INT ("final_state_number", final_state->number); |
MUSCLE_INSERT_INT ("final_state_number", final_state->number); |