X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/22c2cbc078dc5243041d10f4e6e1e5ce1aca36cf..e89a22bfab22e4d2ee73be49dcb66b51f8d0e892:/src/getargs.c?ds=sidebyside diff --git a/src/getargs.c b/src/getargs.c index 29b349a4..4d1cb1ac 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -32,9 +32,9 @@ int no_lines_flag = 0; int no_parser_flag = 0; int token_table_flag = 0; int verbose_flag = 0; -int statistics_flag = 0; int yacc_flag = 0; /* for -y */ int graph_flag = 0; +int trace_flag = 0; const char *skeleton = NULL; @@ -50,7 +50,7 @@ static struct option longopts[] = /* Parser. */ {"skeleton", required_argument, 0, 'S'}, - {"debug", no_argument, 0, 'd'}, + {"debug", no_argument, 0, 't'}, {"locations", no_argument, &locations_flag, 1}, /* was 'a'; apparently unused -wjh */ {"name-prefix", required_argument, 0, 'p'}, @@ -60,14 +60,15 @@ static struct option longopts[] = {"token-table", no_argument, 0, 'k'}, /* Output. */ - {"defines", no_argument, 0, 'd'}, + {"defines", optional_argument, 0, 'd'}, {"verbose", no_argument, 0, 'v'}, {"file-prefix", required_argument, 0, 'b'}, + {"output", required_argument, 0, 'o'}, {"output-file", required_argument, 0, 'o'}, - {"graph", no_argument, 0, 'g'}, + {"graph", optional_argument, 0, 'g'}, /* Hidden. */ - {"statistics", no_argument, &statistics_flag, 1}, + {"trace", no_argument, &trace_flag, 1}, {0, 0, 0, 0} }; @@ -118,7 +119,9 @@ Output:\n\ -d, --defines also produce a header file\n\ -v, --verbose also produce an explanation of the automaton\n\ -b, --file-prefix=PREFIX specify a PREFIX for output files\n\ - -o, --output-file=FILE leave output to FILE\n"), stream); + -o, --output=FILE leave output to FILE\n\ + -g, --graph also produce a VCG description of the automaton\n\ +"), stream); putc ('\n', stream); fputs (_("\ @@ -141,7 +144,8 @@ bison (GNU Bison) %s"), VERSION); putc ('\n', stream); fputs (_("\ -Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"), +Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n\ +Free Software Foundation, Inc.\n"), stream); fputs (_("\ @@ -156,6 +160,14 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ | Process the options. | `----------------------*/ +/* Under DOS, there is no difference on the case. This can be + troublesome when looking for `.tab' etc. */ +#ifdef MSDOS +# define AS_FILE_NAME(File) (strlwr (File), (File)) +#else +# define AS_FILE_NAME(File) (File) +#endif + void getargs (int argc, char *argv[]) { @@ -181,7 +193,9 @@ getargs (int argc, char *argv[]) exit (0); case 'g': + /* Here, the -g and --graph=FILE options are differentiated. */ graph_flag = 1; + spec_graph_file = AS_FILE_NAME (optarg); break; case 'v': @@ -189,11 +203,13 @@ getargs (int argc, char *argv[]) break; case 'S': - skeleton = optarg; + skeleton = AS_FILE_NAME (optarg); break; case 'd': + /* Here, the -d and --defines options are differentiated. */ defines_flag = 1; + spec_defines_file = AS_FILE_NAME (optarg); break; case 'l': @@ -217,11 +233,11 @@ getargs (int argc, char *argv[]) break; case 'o': - spec_outfile = optarg; + spec_outfile = AS_FILE_NAME (optarg); break; case 'b': - spec_file_prefix = optarg; + spec_file_prefix = AS_FILE_NAME (optarg); break; case 'p':