/* 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"
/* In a series of synonyms, present the most meaningful first, so
that argmatch_valid be more readable. */
"none - no report",
- "scan - scanner traces",
- "parse - parser traces",
+ "scan - grammar scanner traces",
+ "parse - grammar parser traces",
"automaton - contruction of the automaton",
"bitsets - use of bitsets",
"grammar - reading, reducing of the grammar",
"resource - memory consumption (where available)",
"sets - grammar sets: firsts, nullable etc.",
- "time - time consumption",
"tools - m4 invocation and preserve the temporary file",
+ "skeleton - skeleton postprocessing",
+ "time - time consumption",
"all - all of the above",
0
};
trace_grammar,
trace_resource,
trace_sets,
- trace_time,
trace_tools,
+ trace_skeleton,
+ trace_time,
trace_all
};
static void
trace_argmatch (char *args)
{
- ARGMATCH_ASSERT (trace_args, trace_types);
+ verify (trace_constraint, ARGMATCH_CONSTRAINT (trace_args, trace_types));
if (args)
{
args = strtok (args, ",");
static void
report_argmatch (char *args)
{
- ARGMATCH_ASSERT (report_args, report_types);
+ verify (report_constraint, ARGMATCH_CONSTRAINT (report_args, report_types));
args = strtok (args, ",");
do
{
| 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]);
}