mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-13 22:33:03 +00:00
options: rename --defines as --header
The name "defines" is incorrect, the generated file contains far more than just #defines. * src/getargs.h, src/getargs.c (-H, --header): New option. With optional argument, just like --defines, --xml, etc. (defines_flag): Rename as... (header_flag): this. Adjust dependencies. * data/skeletons/bison.m4, data/skeletons/c.m4, data/skeletons/glr.c, * data/skeletons/glr.cc, data/skeletons/glr2.cc, data/skeletons/lalr1.cc, * data/skeletons/yacc.c: Adjust. * examples, doc/bison.texi: Adjust. * tests/headers.at, tests/local.at, tests/output.at: Convert most tests from using --defines to using --header.
This commit is contained in:
@@ -56,7 +56,7 @@ location spec_name_prefix_loc = EMPTY_LOCATION_INIT;
|
||||
char *spec_verbose_file = NULL; /* for --verbose. */
|
||||
char *spec_graph_file = NULL; /* for -g. */
|
||||
char *spec_xml_file = NULL; /* for -x. */
|
||||
char *spec_header_file = NULL; /* for --defines. */
|
||||
char *spec_header_file = NULL; /* for --header. */
|
||||
char *spec_mapped_header_file = NULL;
|
||||
char *parser_file_name;
|
||||
|
||||
@@ -411,7 +411,7 @@ compute_output_file_names (void)
|
||||
? xstrdup (spec_outfile)
|
||||
: concat2 (all_but_ext, src_extension));
|
||||
|
||||
if (defines_flag)
|
||||
if (header_flag)
|
||||
{
|
||||
if (! spec_header_file)
|
||||
spec_header_file = concat2 (all_but_ext, header_extension);
|
||||
|
||||
@@ -47,10 +47,10 @@ extern char *spec_graph_file;
|
||||
/* File name specified for the xml output. */
|
||||
extern char *spec_xml_file;
|
||||
|
||||
/* File name specified with --defines. */
|
||||
/* File name specified with --header. */
|
||||
extern char *spec_header_file;
|
||||
|
||||
/* File name specified with --defines, adjusted for mapped prefixes. */
|
||||
/* File name specified with --header, adjusted for mapped prefixes. */
|
||||
extern char *spec_mapped_header_file;
|
||||
|
||||
/* Directory prefix of output file names. */
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "output.h"
|
||||
#include "uniqstr.h"
|
||||
|
||||
bool defines_flag = false;
|
||||
bool header_flag = false;
|
||||
bool graph_flag = false;
|
||||
bool xml_flag = false;
|
||||
bool no_lines_flag = false;
|
||||
@@ -422,11 +422,9 @@ Tuning the Parser:\n\
|
||||
"), stdout);
|
||||
putc ('\n', stdout);
|
||||
|
||||
/* Keep -d and --defines separate so that ../build-aux/cross-options.pl
|
||||
* won't assume that -d also takes an argument. */
|
||||
fputs (_("\
|
||||
Output Files:\n\
|
||||
--defines[=FILE] also produce a header file\n\
|
||||
-H, --header=[FILE] also produce a header file\n\
|
||||
-d likewise but cannot specify FILE (for POSIX Yacc)\n\
|
||||
-r, --report=THINGS also produce details on the automaton\n\
|
||||
--report-file=FILE write report to FILE\n\
|
||||
@@ -545,6 +543,7 @@ language_argmatch (char const *arg, int prio, location loc)
|
||||
static char const short_options[] =
|
||||
"D:"
|
||||
"F:"
|
||||
"H::"
|
||||
"L:"
|
||||
"S:"
|
||||
"T::"
|
||||
@@ -609,6 +608,7 @@ static struct option const long_options[] =
|
||||
{ "yacc", no_argument, 0, 'y' },
|
||||
|
||||
/* Output Files. */
|
||||
{ "header", optional_argument, 0, 'H' },
|
||||
{ "defines", optional_argument, 0, 'd' },
|
||||
{ "report", required_argument, 0, 'r' },
|
||||
{ "report-file", required_argument, 0, REPORT_FILE_OPTION },
|
||||
@@ -719,6 +719,16 @@ getargs (int argc, char *argv[])
|
||||
}
|
||||
break;
|
||||
|
||||
case 'H':
|
||||
case 'd':
|
||||
header_flag = true;
|
||||
if (optarg)
|
||||
{
|
||||
free (spec_header_file);
|
||||
spec_header_file = xstrdup (optarg);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
language_argmatch (optarg, command_line_prio, loc);
|
||||
break;
|
||||
@@ -763,16 +773,6 @@ getargs (int argc, char *argv[])
|
||||
spec_file_prefix = optarg;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
/* Here, the -d and --defines options are differentiated. */
|
||||
defines_flag = true;
|
||||
if (optarg)
|
||||
{
|
||||
free (spec_header_file);
|
||||
spec_header_file = xstrdup (optarg);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'g':
|
||||
graph_flag = true;
|
||||
if (optarg)
|
||||
|
||||
@@ -34,7 +34,7 @@ extern int skeleton_prio;
|
||||
/* for -I */
|
||||
extern char const *include;
|
||||
|
||||
extern bool defines_flag; /* for -d */
|
||||
extern bool header_flag; /* for -d/-H */
|
||||
extern bool graph_flag; /* for -g */
|
||||
extern bool xml_flag; /* for -x */
|
||||
extern bool no_lines_flag; /* for -l */
|
||||
|
||||
@@ -810,7 +810,7 @@ prepare (void)
|
||||
MUSCLE_INSERT_INT ("required_version", required_version);
|
||||
|
||||
/* Flags. */
|
||||
MUSCLE_INSERT_BOOL ("defines_flag", defines_flag);
|
||||
MUSCLE_INSERT_BOOL ("header_flag", header_flag);
|
||||
MUSCLE_INSERT_BOOL ("glr_flag", glr_parser);
|
||||
MUSCLE_INSERT_BOOL ("nondeterministic_flag", nondeterministic_parser);
|
||||
MUSCLE_INSERT_BOOL ("synclines_flag", !no_lines_flag);
|
||||
|
||||
@@ -2075,7 +2075,7 @@ yyreduce:
|
||||
break;
|
||||
|
||||
case 9: /* prologue_declaration: "%defines" */
|
||||
{ defines_flag = true; }
|
||||
{ header_flag = true; }
|
||||
break;
|
||||
|
||||
case 10: /* prologue_declaration: "%defines" "string" */
|
||||
@@ -2938,7 +2938,7 @@ add_param (param_type type, char *decl, location loc)
|
||||
static void
|
||||
handle_defines (char const *value)
|
||||
{
|
||||
defines_flag = true;
|
||||
header_flag = true;
|
||||
char *file = unquote (value);
|
||||
spec_header_file = xstrdup (file);
|
||||
gram_scanner_last_string_free ();
|
||||
|
||||
@@ -339,7 +339,7 @@ prologue_declaration:
|
||||
muscle_percent_define_insert ($2, @$, $3.kind, $3.chars,
|
||||
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
|
||||
}
|
||||
| "%defines" { defines_flag = true; }
|
||||
| "%defines" { header_flag = true; }
|
||||
| "%defines" STRING { handle_defines ($2); }
|
||||
| "%error-verbose" { handle_error_verbose (&@$, $1); }
|
||||
| "%expect" INT_LITERAL { expected_sr_conflicts = $2; }
|
||||
@@ -949,7 +949,7 @@ add_param (param_type type, char *decl, location loc)
|
||||
static void
|
||||
handle_defines (char const *value)
|
||||
{
|
||||
defines_flag = true;
|
||||
header_flag = true;
|
||||
char *file = unquote (value);
|
||||
spec_header_file = xstrdup (file);
|
||||
gram_scanner_last_string_free ();
|
||||
|
||||
Reference in New Issue
Block a user