-/* Input parser for bison
+/* Input parser for Bison
Copyright (C) 1984, 1986, 1989, 1992, 1998, 2000, 2001, 2002
Free Software Foundation, Inc.
`----------------------*/
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);
}
p = p->next;
}
- assert (itemno == nritems);
+ if (itemno != nritems)
+ abort ();
if (trace_flag & trace_sets)
ritem_print (stderr);
grammar = p;
}
- if (SYMBOL_NUMBER_MAX < nsyms)
- fatal (_("too many symbols (tokens plus nonterminals); maximum %d"),
- SYMBOL_NUMBER_MAX);
-
- assert (nsyms == ntokens + nvars);
+ if (! (nsyms <= SYMBOL_NUMBER_MAX && nsyms == ntokens + nvars))
+ abort ();
xfclose (finput);