mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 16:53:02 +00:00
-F/--force-define and relative %define/-D/--define priorities.
* NEWS (2.5): Add documentation to -D/--define entry. * build-aux/cross-options.pl: Hard-code association of --force-define with %define. * doc/bison.texinfo (Decl Summary): In %define entry, cross-reference command-line options. (Bison Options): Add documentation to -D/--define entry. (Option Cross Key): Widen column for --force-define row. * src/getargs.c (usage): Document -F/--force-define. Realign options in output. (short_options, long_options, getargs): Parse -F/--force-define, and update muscle_percent_define_insert invocation. * src/muscle_tab.h (muscle_percent_define_how): New enum type. (muscle_percent_define_insert): Add argument with that type. * src/muscle_tab.c (muscle_percent_define_insert): Implement -F/--force-define behavior and priorities. * src/parse-gram.y (prologue_declaration): Update muscle_percent_define_insert invocations. * tests/input.at (`%define, --define'): Rename to... (`%define, --define, --force-define'): ... this and extend.
This commit is contained in:
@@ -123,12 +123,25 @@ void muscle_boundary_grow (char const *key, boundary bound);
|
||||
void muscle_user_name_list_grow (char const *key, char const *user_name,
|
||||
location loc);
|
||||
|
||||
/* Define the muscle for the %define variable VARIABLE appearing at
|
||||
VARIABLE_LOC with value VALUE. Warn if VARIABLE is already defined.
|
||||
Record this as a user occurrence of VARIABLE by invoking
|
||||
/* Indicates whether a variable's value was specified with -D/--define, with
|
||||
-F/--force-define, or in the grammar file. */
|
||||
typedef enum {
|
||||
MUSCLE_PERCENT_DEFINE_D = 0, MUSCLE_PERCENT_DEFINE_F,
|
||||
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE
|
||||
} muscle_percent_define_how;
|
||||
|
||||
/* Define the muscles for %define variable VARIABLE with VALUE specified
|
||||
at VARIABLE_LOC in the manner HOW unless it was specified in the
|
||||
grammar file while the previous definition for VARIABLE was specified
|
||||
with -F/--force-define. Warn if a previous definition is being
|
||||
overridden and the new definition is specified in the grammar file.
|
||||
(These rules support the documented behavior as long as command-line
|
||||
definitions are processed before grammar file definitions.) Record
|
||||
this as a user occurrence of VARIABLE by invoking
|
||||
muscle_user_name_list_grow. */
|
||||
void muscle_percent_define_insert (char const *variable, location variable_loc,
|
||||
char const *value);
|
||||
char const *value,
|
||||
muscle_percent_define_how how);
|
||||
|
||||
/* Mimic b4_percent_define_get in ../data/bison.m4 exactly. That is, if the
|
||||
%define variable VARIABLE is defined, return its value. Otherwise, return
|
||||
|
||||
Reference in New Issue
Block a user