X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e795bd73766b33f46ba1c54dec84654e6afcc59d..ce209526ed8568799ed15e41e8e1d4221a49b51d:/src/files.c?ds=inline diff --git a/src/files.c b/src/files.c index 6bf301f9..f9cb6f33 100644 --- a/src/files.c +++ b/src/files.c @@ -39,6 +39,8 @@ struct obstack graph_obstack; char *spec_outfile = NULL; /* for -o. */ char *spec_file_prefix = NULL; /* for -b. */ char *spec_name_prefix = NULL; /* for -p. */ +char *spec_graph_file = NULL; /* for -g. */ +char *spec_defines_file = NULL; /* for --defines. */ char *infile = NULL; char *attrsfile = NULL; @@ -260,20 +262,10 @@ get_extension_index (const char *filename) static void compute_exts_from_gf (const char *ext) { - /* Checks if SRC_EXTENSION is NULL. In the other case, %source_extension - was specified in the grammar file. */ - if (src_extension == NULL) - { - src_extension = tr (ext, 'y', 'c'); - src_extension = tr (src_extension, 'Y', 'C'); - } - /* Checks if HEADER_EXTENSION is NULL. In the other case, - %header_extension was specified in the grammar file. */ - if (header_extension == NULL) - { - header_extension = tr (ext, 'y', 'h'); - header_extension = tr (header_extension, 'Y', 'H'); - } + src_extension = tr (ext, 'y', 'c'); + src_extension = tr (src_extension, 'Y', 'C'); + header_extension = tr (ext, 'y', 'h'); + header_extension = tr (header_extension, 'Y', 'H'); } /* Computes extensions from the given c source file extension. */ @@ -428,12 +420,14 @@ output_files (void) compute_base_names (); - /* Set default extensions */ - if (!src_extension) - src_extension = ".c"; - if (!header_extension) - header_extension = ".h"; - + /* It the defines filename if not given, we create it. */ + if (!spec_defines_file) + spec_defines_file = stringappend (base_name, header_extension); + + /* It the graph filename if not given, we create it. */ + if (!spec_graph_file) + spec_graph_file = stringappend (short_base_name, ".vcg"); + attrsfile = stringappend (short_base_name, EXT_STYPE_H); #ifndef MSDOS stringappend (attrsfile, header_extension); @@ -447,7 +441,7 @@ output_files (void) /* Output the header file if wanted. */ if (defines_flag) - defines_obstack_save (stringappend (base_name, header_extension)); + defines_obstack_save (spec_defines_file); /* If we output only the table, dump the actions in ACTFILE. */ if (no_parser_flag) @@ -474,5 +468,5 @@ output_files (void) stringappend (short_base_name, EXT_OUTPUT)); if (graph_flag) - obstack_save (&graph_obstack, stringappend (short_base_name, ".vcg")); + obstack_save (&graph_obstack, spec_graph_file); }