`----------------------*/
void
-epilogue_set (const char *epilogue, location_t location)
+epilogue_augment (const char *epilogue, location_t location)
{
+ char *extension = NULL;
obstack_fgrow1 (&muscle_obstack, "]b4_syncline([[%d]], [[",
location.first_line);
MUSCLE_OBSTACK_SGROW (&muscle_obstack,
obstack_sgrow (&muscle_obstack, "]])[\n");
obstack_sgrow (&muscle_obstack, epilogue);
obstack_1grow (&muscle_obstack, 0);
- muscle_insert ("epilogue", obstack_finish (&muscle_obstack));
+ extension = obstack_finish (&muscle_obstack);
+ muscle_grow ("epilogue", extension, "");
+ obstack_free (&muscle_obstack, extension);
}
grammar = p;
}
- if (SYMBOL_NUMBER_MAX < nsyms)
- fatal (_("too many symbols (tokens plus nonterminals); maximum %d"),
- SYMBOL_NUMBER_MAX);
-
+ assert (nsyms <= SYMBOL_NUMBER_MAX);
assert (nsyms == ntokens + nvars);
xfclose (finput);