mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-16 15:53:03 +00:00
* tests/calc.at: Exercise prologue splitting.
* data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and `b4_post_prologue' instead of `b4_prologue'. * src/output.c (prepare): Add the `pre_prologue' and `post_prologue' muscles. (output): Free pre_prologue_obstack and post_prologue_obstack. * src/files.h, src/files.c (attrs_obstack): Remove. (pre_prologue_obstack, post_prologue_obstack): New. * src/reader.c (copy_definition): Add a parameter to specify the obstack to fill, instead of using attrs_obstack unconditionally. (read_declarations): Pass pre_prologue_obstack to copy_definition if `%union' has not yet been seen, pass post_prologue_obstack otherwise.
This commit is contained in:
@@ -1092,8 +1092,10 @@ prepare (void)
|
||||
MUSCLE_INSERT_INT ("defines_flag", defines_flag);
|
||||
|
||||
/* Copy definitions in directive. */
|
||||
obstack_1grow (&attrs_obstack, 0);
|
||||
muscle_insert ("prologue", obstack_finish (&attrs_obstack));
|
||||
obstack_1grow (&pre_prologue_obstack, 0);
|
||||
obstack_1grow (&post_prologue_obstack, 0);
|
||||
muscle_insert ("pre_prologue", obstack_finish (&pre_prologue_obstack));
|
||||
muscle_insert ("post_prologue", obstack_finish (&post_prologue_obstack));
|
||||
|
||||
/* Find the right skeleton file. */
|
||||
if (!skeleton)
|
||||
@@ -1131,5 +1133,6 @@ output (void)
|
||||
obstack_free (&muscle_obstack, NULL);
|
||||
obstack_free (&format_obstack, NULL);
|
||||
obstack_free (&action_obstack, NULL);
|
||||
obstack_free (&attrs_obstack, NULL);
|
||||
obstack_free (&pre_prologue_obstack, NULL);
|
||||
obstack_free (&post_prologue_obstack, NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user