X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f8e7258f7f24013b8da07cedba6177dc3b6d4453..c826013fb38c98861ef0fc5d4dc3fb3fb4f555be:/src/muscle-tab.h diff --git a/src/muscle-tab.h b/src/muscle-tab.h index 12e4f1d1..73e64027 100644 --- a/src/muscle-tab.h +++ b/src/muscle-tab.h @@ -1,7 +1,6 @@ /* Muscle table manager for Bison, - Copyright (C) 2001, 2002, 2003, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -126,12 +125,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. Complain 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); /* Make sure that VARIABLE is set to the boolean VALUE. Warn on mismatches only, but accept repeated declaration. Used for backward compatibility