0, 1, conflict_list_cnt);
}
+/*--------------------------------------------.
+| Output the definitions of all the muscles. |
+`--------------------------------------------*/
+
+static void
+muscles_output (FILE *out)
+{
+ fputs ("m4_init()\n", out);
+
+ user_actions_output (out);
+ merger_output (out);
+ token_definitions_output (out);
+ symbol_code_props_output (out, "destructors", &symbol_destructor_get);
+ symbol_code_props_output (out, "printers", &symbol_printer_get);
+
+ muscles_m4_output (out);
+}
\f
/*---------------------------.
| Call the skeleton parser. |
output_skeleton (void)
{
FILE *in;
- FILE *out;
int filter_fd[2];
char const *argv[9];
pid_t pid;
free (full_m4bison);
free (full_skeleton);
- out = fdopen (filter_fd[0], "w");
- if (! out)
- error (EXIT_FAILURE, get_errno (),
- "fdopen");
-
- /* Output the definitions of all the muscles. */
- fputs ("m4_init()\n", out);
-
- user_actions_output (out);
- merger_output (out);
- token_definitions_output (out);
- symbol_code_props_output (out, "destructors", &symbol_destructor_get);
- symbol_code_props_output (out, "printers", &symbol_printer_get);
- muscles_m4_output (out);
- xfclose (out);
+ if (trace_flag & trace_muscles)
+ muscles_output (stderr);
+ {
+ FILE *out = fdopen (filter_fd[0], "w");
+ if (! out)
+ error (EXIT_FAILURE, get_errno (),
+ "fdopen");
+ muscles_output (out);
+ xfclose (out);
+ }
/* Read and process m4's output. */
timevar_push (TV_M4);