-#ifndef MSDOS
- attrsfile = stringappend (attrsfile, header_extension);
-#endif /* MSDOS */
-
-}
-
-/*-----------------------------------------------------------------.
-| Open the input file. Look for the skeletons. Find the names of |
-| the output files. Prepare the obstacks. |
-`-----------------------------------------------------------------*/
-
-void
-open_files (void)
-{
- finput = xfopen (infile, "r");
-
- /* Initialize the obstacks. */
- obstack_init (&action_obstack);
- obstack_init (&attrs_obstack);
- obstack_init (&table_obstack);
- obstack_init (&defines_obstack);
- obstack_init (&guard_obstack);
- obstack_init (&output_obstack);
-}
-
-
-
-/*-----------------------.
-| Close the open file.. |
-`-----------------------*/
-
-void
-close_files (void)
-{
- xfclose (finput);
-}
-
-/*---------------------------.
-| Produce the output files. |
-`---------------------------*/
-
-void
-output_files (void)
-{
- /* Output the main file. */
- if (spec_outfile)
- obstack_save (&table_obstack, spec_outfile);
- else
- obstack_save (&table_obstack, stringappend (base_name, src_extension));
- obstack_free (&table_obstack, NULL);
-
- /* Output the header file if wanted. */
- if (defines_flag)
- defines_obstack_save (spec_defines_file);
- obstack_free (&defines_obstack, NULL);
-
-#if 0
- /* Seems to be invalid now --akim. */
-
- /* If we output only the table, dump the actions in ACTFILE. */
- if (no_parser_flag)
- obstack_save (&action_obstack, stringappend (short_base_name, ".act"));
- obstack_free (&action_obstack, NULL);
-#endif
-
- /* 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);
- obstack_free (&attrs_obstack, NULL);
- 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);
- obstack_free (&guard_obstack, NULL);
- }