/* Parse command line arguments for bison.
- Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002
+ Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
#include "argmatch.h"
#include "error.h"
#include "complain.h"
+#include "struniq.h"
#include "getargs.h"
#include "files.h"
| Display the help message and exit STATUS. |
`-------------------------------------------*/
+static void usage (int) ATTRIBUTE_NORETURN;
+
static void
usage (int status)
{
/* Hidden. */
{ "trace", optional_argument, 0, 'T' },
- /* FIXME: semantic parsers will output an `include' of an
- output file: be sure that the naem included is indeed the name of
- the output file. */ /* FIXME Should we activate this options ?
- */
- { "output", required_argument, 0, 'o' },
- { "file-prefix", required_argument, 0, 'b' },
- { "name-prefix", required_argument, 0, 'p' },
-
- /*
- * Percent and command line declarations.
- */
-
/* Output. */
{ "defines", optional_argument, 0, 'd' },
break;
case 'h':
- usage (0);
+ usage (EXIT_SUCCESS);
case 'V':
version ();
- exit (0);
+ exit (EXIT_SUCCESS);
case 'g':
/* Here, the -g and --graph=FILE options are differentiated. */
break;
default:
- fprintf (stderr, _("Try `%s --help' for more information.\n"),
- program_name);
- exit (1);
+ usage (EXIT_FAILURE);
}
- if (optind != argc - 1)
+ if (argc - optind != 1)
{
- error (0, 0,
- (optind == argc
- ? _("too few arguments") : _("too many arguments")));
+ if (argc - optind < 1)
+ error (0, 0, _("missing operand after `%s'"), argv[argc - 1]);
+ else
+ error (0, 0, _("extra operand `%s'"), argv[optind + 1]);
usage (EXIT_FAILURE);
}
- infile = argv[optind];
+ current_file = grammar_file = struniq_new (argv[optind]);
}