X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/35b8730d018b0bb25f7864d0db20f687ebad11b6..4b7a4c1b1c8c18e9ad2517c117442b9b7d7e671a:/src/muscle_tab.h?ds=sidebyside diff --git a/src/muscle_tab.h b/src/muscle_tab.h index 19fba8b9..e06126b3 100644 --- a/src/muscle_tab.h +++ b/src/muscle_tab.h @@ -1,5 +1,6 @@ /* Muscle table manager for Bison, - Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2007, 2009 Free Software + Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -122,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 in the grammar file with value VALUE. Warn if VARIABLE is - already defined. Record this as a grammar occurrence of VARIABLE by - invoking muscle_user_name_list_grow. */ +/* 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); /* Mimic b4_percent_define_get in ../data/bison.m4 exactly. That is, if the %define variable VARIABLE is defined, return its value. Otherwise, return @@ -185,9 +199,10 @@ void muscle_percent_define_default (char const *variable, char const *value); output. */ void muscle_percent_define_check_values (char const * const *values); -/* Grow the muscle for the %code qualifier QUALIFIER appearing at QUALIFIER_LOC - in the grammar file with code CODE appearing at CODE_LOC. Record this as a - grammar occurrence of VARIABLE by invoking muscle_user_name_list_grow. */ +/* Grow the muscle for the %code qualifier QUALIFIER appearing at + QUALIFIER_LOC with code CODE appearing at CODE_LOC. Record this as a + user occurrence of QUALIFIER by invoking + muscle_user_name_list_grow. */ void muscle_percent_code_grow (char const *qualifier, location qualifier_loc, char const *code, location code_loc);