]> git.saurik.com Git - bison.git/blobdiff - src/muscle-tab.h
c++: rename b4_semantic_type_declare as b4_value_type_declare
[bison.git] / src / muscle-tab.h
index ac852978439fbefb542e33c66ed16966d17b28e5..deeb076fe0ae82200a5e311b76f0627f8c62b001 100644 (file)
@@ -1,6 +1,6 @@
 /* Muscle table manager for Bison,
 
-   Copyright (C) 2001-2003, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -34,48 +34,40 @@ void muscle_free (void);
 /* An obstack dedicated to receive muscle keys and values.  */
 extern struct obstack muscle_obstack;
 
-#define MUSCLE_INSERT_BOOL(Key, Value)                          \
-  do {                                                          \
-    int v__ = Value;                                            \
-    MUSCLE_INSERT_INT (Key, v__);                               \
+# define MUSCLE_INSERT_BOOL(Key, Value)         \
+  do {                                          \
+    int v__ = Value;                            \
+    MUSCLE_INSERT_INT (Key, v__);               \
   } while (0)
 
-#define MUSCLE_INSERT_INT(Key, Value)                           \
+# define MUSCLE_INSERTF(Key, Format, Value)                     \
   do {                                                          \
-    obstack_printf (&muscle_obstack, "%d", Value);              \
-    obstack_1grow (&muscle_obstack, 0);                         \
-    muscle_insert (Key, obstack_finish (&muscle_obstack));      \
+    obstack_printf (&muscle_obstack, Format, Value);            \
+    muscle_insert (Key, obstack_finish0 (&muscle_obstack));     \
   } while (0)
 
-#define MUSCLE_INSERT_LONG_INT(Key, Value)                      \
-  do {                                                          \
-    obstack_printf (&muscle_obstack, "%ld", Value);             \
-    obstack_1grow (&muscle_obstack, 0);                         \
-    muscle_insert (Key, obstack_finish (&muscle_obstack));      \
-  } while (0)
+# define MUSCLE_INSERT_INT(Key, Value)          \
+  MUSCLE_INSERTF(Key, "%d", Value)
+
+# define MUSCLE_INSERT_LONG_INT(Key, Value)     \
+  MUSCLE_INSERTF(Key, "%ld", Value)
 
 /* Key -> Value, but don't apply escaping to Value. */
-#define MUSCLE_INSERT_STRING_RAW(Key, Value)                    \
-  do {                                                          \
-    obstack_sgrow (&muscle_obstack, Value);                     \
-    obstack_1grow (&muscle_obstack, 0);                         \
-    muscle_insert (Key, obstack_finish (&muscle_obstack));      \
-  } while (0)
+# define MUSCLE_INSERT_STRING_RAW(Key, Value)   \
+  MUSCLE_INSERTF(Key, "%s", Value)
 
 /* Key -> Value, applying M4 escaping to Value. */
-#define MUSCLE_INSERT_STRING(Key, Value)                        \
+# define MUSCLE_INSERT_STRING(Key, Value)                       \
   do {                                                          \
     obstack_escape (&muscle_obstack, Value);                    \
-    obstack_1grow (&muscle_obstack, 0);                         \
-    muscle_insert (Key, obstack_finish (&muscle_obstack));      \
+    muscle_insert (Key, obstack_finish0 (&muscle_obstack));     \
   } while (0)
 
-#define MUSCLE_INSERT_C_STRING(Key, Value)                      \
+# define MUSCLE_INSERT_C_STRING(Key, Value)                     \
   do {                                                          \
     obstack_escape (&muscle_obstack,                            \
                     quotearg_style (c_quoting_style, Value));   \
-    obstack_1grow (&muscle_obstack, 0);                         \
-    muscle_insert (Key, obstack_finish (&muscle_obstack));      \
+    muscle_insert (Key, obstack_finish0 (&muscle_obstack));     \
   } while (0)
 
 /* Append VALUE to the current value of KEY.  If KEY did not already
@@ -100,7 +92,7 @@ void muscle_pair_list_grow (const char *muscle,
 
 /* Grow KEY for the occurrence of the name USER_NAME at LOC appropriately for
    use with b4_check_user_names in ../data/bison.m4.  USER_NAME is not escaped
-   with digraphs, so it must not contain `[' or `]'.  */
+   with digraphs, so it must not contain '[' or ']'.  */
 void muscle_user_name_list_grow (char const *key, char const *user_name,
                                  location loc);