02111-1307, USA. */
#include "system.h"
-#include "getopt.h"
-#include "argmatch.h"
-#include "error.h"
+
+#include <argmatch.h>
+#include <error.h>
+#include <getopt.h>
+
#include "complain.h"
-#include "getargs.h"
#include "files.h"
+#include "getargs.h"
+#include "uniqstr.h"
int debug_flag = 0;
int defines_flag = 0;
/* 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 (argc - optind != 1)
usage (EXIT_FAILURE);
}
- infile = argv[optind];
+ current_file = grammar_file = uniqstr_new (argv[optind]);
}