- xfclose (finput);
-
- compute_base_names ();
-
- attrsfile = stringappend (short_base_name, EXT_STYPE_H);
-#ifndef MSDOS
- stringappend (attrsfile, header_extension);
-#endif /* MSDOS */
-
- /* Output the main file. */
- if (spec_outfile)
- obstack_save (&table_obstack, spec_outfile);
- else
- obstack_save (&table_obstack, stringappend (base_name, src_extension));
-
- /* Output the header file if wanted. */
- if (defines_flag)
- obstack_save (&defines_obstack, stringappend (base_name, header_extension));
-
- /* If we output only the table, dump the actions in ACTFILE. */
- if (no_parser_flag)
- obstack_save (&action_obstack, stringappend (short_base_name, ".act"));
-
- /* If we produced a semantic parser ATTRS_OBSTACK must be dumped
- into its own file, ATTTRSFILE. */
- if (semantic_parser)
- {
- char *temp_name;
-
- obstack_save (&attrs_obstack, attrsfile);
- temp_name = stringappend (short_base_name, EXT_GUARD_C);
-#ifndef MSDOS
- temp_name = stringappend (temp_name, src_extension);
-#endif /* MSDOS */
- obstack_save (&guard_obstack, temp_name);
- }
-
- if (verbose_flag)
- /* We used to use just .out if spec_name_prefix (-p) was used, but
- that conflicts with Posix. */
- obstack_save (&output_obstack, stringappend (short_base_name, EXT_OUTPUT));
+ free (all_but_ext);
+ free (spec_verbose_file);
+ free (spec_graph_file);
+ free (spec_defines_file);
+ free (parser_file_name);
+ free (dir_prefix);
+ {
+ int i;
+ for (i = 0; i < file_names_count; i++)
+ free (file_names[i]);
+ }
+ free (file_names);