]> git.saurik.com Git - bison.git/blobdiff - src/muscle_tab.h
2007-02-05 Paolo Bonzini <bonzini@gnu.org>
[bison.git] / src / muscle_tab.h
index 32989bc728dae604a6485eb372522d03155d872e..ed6bd75e40edf232e594e7ba9b4130c1c86c6c54 100644 (file)
@@ -1,5 +1,5 @@
 /* Muscle table manager for Bison,
-   Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -26,6 +26,7 @@
 void muscle_init (void);
 void muscle_insert (char const *key, char const *value);
 char *muscle_find (char const *key);
+char const *muscle_find_const (char const *key);
 void muscle_free (void);
 
 
@@ -52,13 +53,20 @@ do {                                                                \
   muscle_insert (Key, obstack_finish (&muscle_obstack));       \
 } while(0)
 
-#define MUSCLE_INSERT_STRING(Key, 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(Key, Value)                       \
+do {                                                           \
+  MUSCLE_OBSTACK_SGROW (&muscle_obstack, Value);                \
+  obstack_1grow (&muscle_obstack, 0);                          \
+  muscle_insert (Key, obstack_finish (&muscle_obstack));       \
+} while(0)
+
 #define MUSCLE_OBSTACK_SGROW(Obstack, Value)                   \
 do {                                                           \
   char const *p;                                               \
@@ -96,13 +104,22 @@ void muscle_code_grow (const char *key, const char *value, location loc);
 
 
 /* MUSCLE is an M4 list of pairs.  Create or extend it with the pair
-   (A1, A2).  Note that because the muscle values are output *double*
-   quoted, one needs to strip the first level of quotes to reach the
-   list itself.  */
-
+   (A1, A2) after escaping both values with digraphs.  Note that because the
+   muscle values are output *double* quoted, one needs to strip the first level
+   of quotes to reach the list itself.  */
 void muscle_pair_list_grow (const char *muscle,
                            const char *a1, const char *a2);
 
 void muscles_m4_output (FILE *out);
 
+/* In the format `file_name:line.column', append BOUND to MUSCLE.  Use digraphs
+   for special characters in the file name.  */
+void muscle_boundary_grow (char const *key, boundary bound);
+
+/* 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 `]'.  */
+void muscle_grow_user_name_list (char const *key, char const *user_name,
+                                 location loc);
+
 #endif /* not MUSCLE_TAB_H_ */