]> git.saurik.com Git - bison.git/blobdiff - src/muscle-tab.h
Merge remote-tracking branch 'origin/maint'
[bison.git] / src / muscle-tab.h
index ddbad4085572477af12b7477295c01ca829c2e89..1f33f8c15a9bf1fc67750a654bd93dccdce825e5 100644 (file)
@@ -1,7 +1,6 @@
 /* Muscle table manager for Bison,
 
-   Copyright (C) 2001-2003, 2006-2007, 2009-2012 Free Software
-   Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2012 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -37,8 +36,8 @@ extern struct obstack muscle_obstack;
 
 #define MUSCLE_INSERT_BOOL(Key, Value)                          \
   do {                                                          \
-    int v = Value;                                              \
-    MUSCLE_INSERT_INT (Key, v);                                 \
+    int v__ = Value;                                            \
+    MUSCLE_INSERT_INT (Key, v__);                               \
   } while (0)
 
 #define MUSCLE_INSERT_INT(Key, Value)                           \
@@ -55,6 +54,7 @@ extern struct obstack muscle_obstack;
     muscle_insert (Key, obstack_finish (&muscle_obstack));      \
   } while (0)
 
+/* Key -> Value, but don't apply escaping to Value. */
 #define MUSCLE_INSERT_STRING_RAW(Key, Value)                    \
   do {                                                          \
     obstack_sgrow (&muscle_obstack, Value);                     \
@@ -62,6 +62,7 @@ extern struct obstack muscle_obstack;
     muscle_insert (Key, obstack_finish (&muscle_obstack));      \
   } while (0)
 
+/* Key -> Value, applying M4 escaping to Value. */
 #define MUSCLE_INSERT_STRING(Key, Value)                        \
   do {                                                          \
     obstack_escape (&muscle_obstack, Value);                    \
@@ -123,6 +124,13 @@ void muscle_percent_define_insert (char const *variable, location variable_loc,
                                    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
+   between old directives such as %pure-parser, and the recommended use of
+   variables (%define api.pure).   */
+void muscle_percent_define_ensure (char const *variable, location variable_loc,
+                                   bool value);
+
 /* Mimic b4_percent_define_get in ../data/bison.m4 exactly.  That is, if the
    %define variable VARIABLE is defined, return its value.  Otherwise, return
    the empty string.  Also, record Bison's usage of VARIABLE by defining