mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
Restore --no-lines.
Reported by Jim Kent. * data/c.m4 (b4_syncline): New. * data/glr.c, data/yacc.c, data/lalr1.cc: Use it. * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline. * src/output.c (user_actions_output): Likewise. (prepare): Define 'b4_synclines_flag'.
This commit is contained in:
@@ -65,12 +65,6 @@ muscle_init (void)
|
||||
/* Version and input file. */
|
||||
MUSCLE_INSERT_STRING ("version", VERSION);
|
||||
MUSCLE_INSERT_STRING ("filename", infile);
|
||||
|
||||
/* FIXME: there should probably be no default here, only in the
|
||||
skeletons. */
|
||||
|
||||
/* Default #line formatting. */
|
||||
MUSCLE_INSERT_STRING ("linef", "#line %d %s\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
14
src/output.c
14
src/output.c
@@ -276,11 +276,10 @@ user_actions_output (FILE *out)
|
||||
{
|
||||
fprintf (out, " case %d:\n", r + 1);
|
||||
|
||||
if (!no_lines_flag)
|
||||
fprintf (out, muscle_find ("linef"),
|
||||
rules[r].action_location.first_line,
|
||||
quotearg_style (c_quoting_style,
|
||||
rules[r].action_location.file));
|
||||
fprintf (out, "]b4_syncline([[%d]], [[%s]])[\n",
|
||||
rules[r].action_location.first_line,
|
||||
quotearg_style (escape_quoting_style,
|
||||
rules[r].action_location.file));
|
||||
fprintf (out, " %s\n break;\n\n",
|
||||
rules[r].action);
|
||||
}
|
||||
@@ -566,11 +565,12 @@ static void
|
||||
prepare (void)
|
||||
{
|
||||
/* Flags. */
|
||||
MUSCLE_INSERT_INT ("locations_flag", locations_flag);
|
||||
MUSCLE_INSERT_INT ("debug", debug_flag);
|
||||
MUSCLE_INSERT_INT ("defines_flag", defines_flag);
|
||||
MUSCLE_INSERT_INT ("error_verbose", error_verbose);
|
||||
MUSCLE_INSERT_INT ("locations_flag", locations_flag);
|
||||
MUSCLE_INSERT_INT ("pure", pure_parser);
|
||||
MUSCLE_INSERT_INT ("debug", debug_flag);
|
||||
MUSCLE_INSERT_INT ("synclines_flag", !no_lines_flag);
|
||||
|
||||
/* FIXME: This is wrong: the muscles should decide whether they hold
|
||||
a copy or not, but the situation is too obscure currently. */
|
||||
|
||||
20
src/reader.c
20
src/reader.c
@@ -69,13 +69,9 @@ prologue_augment (const char *prologue, location_t location)
|
||||
struct obstack *oout =
|
||||
!typed ? &pre_prologue_obstack : &post_prologue_obstack;
|
||||
|
||||
if (!no_lines_flag)
|
||||
{
|
||||
obstack_fgrow2 (oout, muscle_find ("linef"),
|
||||
location.first_line,
|
||||
quotearg_style (c_quoting_style,
|
||||
location.file));
|
||||
}
|
||||
obstack_fgrow2 (oout, "]b4_syncline([[%d]], [[%s]])[\n",
|
||||
location.first_line,
|
||||
quotearg_style (escape_quoting_style, location.file));
|
||||
obstack_sgrow (oout, prologue);
|
||||
}
|
||||
|
||||
@@ -89,13 +85,9 @@ prologue_augment (const char *prologue, location_t location)
|
||||
void
|
||||
epilogue_set (const char *epilogue, location_t location)
|
||||
{
|
||||
if (!no_lines_flag)
|
||||
{
|
||||
obstack_fgrow2 (&muscle_obstack, muscle_find ("linef"),
|
||||
location.first_line,
|
||||
quotearg_style (c_quoting_style,
|
||||
location.file));
|
||||
}
|
||||
obstack_fgrow2 (&muscle_obstack, "]b4_syncline([[%d]], [[%s]])[\n",
|
||||
location.first_line,
|
||||
quotearg_style (escape_quoting_style, location.file));
|
||||
obstack_sgrow (&muscle_obstack, epilogue);
|
||||
obstack_1grow (&muscle_obstack, 0);
|
||||
muscle_insert ("epilogue", obstack_finish (&muscle_obstack));
|
||||
|
||||
Reference in New Issue
Block a user