X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9fb61ca8d87d541a0d027225b0a5a8218ea28ee1..827aca04ebd852b63087d80d8e420bb325bb9bd5:/src/muscle-tab.h?ds=sidebyside diff --git a/src/muscle-tab.h b/src/muscle-tab.h index 30a74523..3199a2d4 100644 --- a/src/muscle-tab.h +++ b/src/muscle-tab.h @@ -24,12 +24,29 @@ # include "location.h" +/* The kind of value associated to this muscle, depending on the + syntax of the value: keyword (no delimiter, e.g., true), string + (double quotes, e.g., "foo.h"), or code (braces, e.g., {int}). */ +typedef enum +{ + muscle_code, + muscle_keyword, + muscle_string +} muscle_kind; + +/* Conversion from string. */ +muscle_kind muscle_kind_new (char const *k); + +/* Conversion to string. */ +char const *muscle_kind_string (muscle_kind k); + + /* Create the MUSCLE_TABLE, and initialize it with default values. Also set up the MUSCLE_OBSTACK. */ void muscle_init (void); /* Insert (KEY, VALUE). If KEY already existed, overwrite the - previous value. */ + previous value. Otherwise create as a muscle_string type. */ void muscle_insert (char const *key, char const *value); /* Find the value of muscle KEY. Unlike MUSCLE_FIND, this is always @@ -82,14 +99,9 @@ extern struct obstack muscle_obstack; MUSCLE_INSERT_STRING(Key, quotearg_style (c_quoting_style, Value)) -/* Append VALUE to the current value of KEY. If KEY did not already - exist, create it. Use MUSCLE_OBSTACK. De-allocate the previously - associated value. Copy VALUE and SEPARATOR. */ -void muscle_grow (const char *key, const char *value, const char *separator); - - /* Append VALUE to the current value of KEY, using muscle_grow. But - in addition, issue a synchronization line for the location LOC. */ + in addition, issue a synchronization line for the location LOC. + Be sure to append on a new line. */ void muscle_code_grow (const char *key, const char *value, location loc); @@ -124,6 +136,7 @@ typedef enum { 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, + muscle_kind kind, char const *value, muscle_percent_define_how how);