* src/bison.simple: Don't hard code the skeleton line and filename.

* src/output.c (output_parser): Rename 'line' as 'output_line'.
New line counter 'skeleton_line' (skeleton-line muscle).
This commit is contained in:
Marc Autret
2001-12-17 20:28:51 +00:00
parent ab3399e0c6
commit 897668ee8d
3 changed files with 22 additions and 15 deletions

View File

@@ -1,3 +1,9 @@
2001-12-17 Marc Autret <autret_m@epita.fr>
* src/bison.simple: Don't hard code the skeleton line and filename.
* src/output.c (output_parser): Rename 'line' as 'output_line'.
New line counter 'skeleton_line' (skeleton-line muscle).
2001-12-17 Paul Eggert <eggert@twinsun.com> 2001-12-17 Paul Eggert <eggert@twinsun.com>
* NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
@@ -15,7 +21,6 @@
* src/lalr.c (initialize_lookaheads): Set nlookaheads for each * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
state. state.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/files.h, src/files.c (open_files, close_files): Remove. * src/files.h, src/files.c (open_files, close_files): Remove.
@@ -23,19 +28,16 @@
let... let...
* src/reader.c (reader): Do it. * src/reader.c (reader): Do it.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/conflicts.c (print_reductions): Formatting changes. * src/conflicts.c (print_reductions): Formatting changes.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/conflicts.c (flush_shift): Also adjust lookaheadset. * src/conflicts.c (flush_shift): Also adjust lookaheadset.
(flush_reduce): New. (flush_reduce): New.
(resolve_sr_conflict): Adjust. (resolve_sr_conflict): Adjust.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/output.c (output_obstack): Be static and rename as... * src/output.c (output_obstack): Be static and rename as...
@@ -44,19 +46,16 @@
* src/reader.h (muscle_obstack): Move to... * src/reader.h (muscle_obstack): Move to...
* src/output.h: here, since it's defined in output.c. * src/output.h: here, since it's defined in output.c.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/output.c (action_row, save_column, default_goto) * src/output.c (action_row, save_column, default_goto)
(sort_actions, matching_state, pack_vector): Better variable (sort_actions, matching_state, pack_vector): Better variable
locality. locality.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/output.c: Various formatting changes. * src/output.c: Various formatting changes.
2001-12-17 Akim Demaille <akim@epita.fr> 2001-12-17 Akim Demaille <akim@epita.fr>
* src/files.c (output_files): Free the output_obstack. * src/files.c (output_files): Free the output_obstack.

View File

@@ -82,7 +82,7 @@ typedef struct yyltype
/* Copy the user declarations. */ /* Copy the user declarations. */
%%prologue %%prologue
/* Line 85 of bison.simple. */ /* Line %%skeleton-line of %%skeleton. */
#line %%line "%%parser-file-name" #line %%line "%%parser-file-name"
#include <stdio.h> #include <stdio.h>
@@ -896,7 +896,8 @@ yyreduce:
{ {
%%actions %%actions
} }
/* Line 902 of bison.simple. */
/* Line %%skeleton-line of %%skeleton. */
#line %%line "%%parser-file-name" #line %%line "%%parser-file-name"
yyvsp -= yylen; yyvsp -= yylen;

View File

@@ -897,19 +897,24 @@ output_parser (const char *skel_filename, FILE *out)
{ {
int c; int c;
FILE *fskel; FILE *fskel;
size_t line; size_t output_line;
size_t skeleton_line;
fskel = xfopen (skel_filename, "r"); fskel = xfopen (skel_filename, "r");
/* New output code. */ /* New output code. */
line = 1; output_line = 1;
skeleton_line = 1;
c = getc (fskel); c = getc (fskel);
while (c != EOF) while (c != EOF)
{ {
if (c != '%') if (c != '%')
{ {
if (c == '\n') if (c == '\n')
++line; {
++output_line;
++skeleton_line;
}
putc (c, out); putc (c, out);
c = getc (fskel); c = getc (fskel);
} }
@@ -927,13 +932,15 @@ output_parser (const char *skel_filename, FILE *out)
muscle_key = obstack_finish (&muscle_obstack); muscle_key = obstack_finish (&muscle_obstack);
muscle_value = muscle_find (muscle_key); muscle_value = muscle_find (muscle_key);
if (!strcmp (muscle_key, "actions")) if (!strcmp (muscle_key, "actions"))
actions_output (out, &line); actions_output (out, &output_line);
else if (!strcmp (muscle_key, "line")) else if (!strcmp (muscle_key, "line"))
fprintf (out, "%d", line); fprintf (out, "%d", output_line);
else if (!strcmp (muscle_key, "skeleton-line"))
fprintf (out, "%d", skeleton_line);
else if (muscle_value) else if (muscle_value)
{ {
fputs (muscle_value, out); fputs (muscle_value, out);
line += get_lines_number (muscle_value); output_line += get_lines_number (muscle_value);
} }
else else
{ {