X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f753cd62928695ffad07071adbba4227db00f32f..c0cac722f7e5d7498528a67a37477cdf9ed1745c:/src/muscle_tab.h diff --git a/src/muscle_tab.h b/src/muscle_tab.h index c61c6b6a..f4a0b96a 100644 --- a/src/muscle_tab.h +++ b/src/muscle_tab.h @@ -1,5 +1,5 @@ /* Definitions for macrotab.c and callers, part of bison, - Copyright 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -32,5 +32,42 @@ typedef struct muscle_entry_s void muscle_init PARAMS ((void)); void muscle_insert PARAMS ((const char *key, const char *value)); const char *muscle_find PARAMS ((const char *key)); +void muscle_free PARAMS ((void)); + + +/* An obstack dedicated to receive muscle keys and values. */ +extern struct obstack muscle_obstack; + +#define MUSCLE_INSERT_INT(Key, Value) \ +{ \ + obstack_fgrow1 (&muscle_obstack, "%d", Value); \ + obstack_1grow (&muscle_obstack, 0); \ + muscle_insert (Key, obstack_finish (&muscle_obstack)); \ +} + +#define MUSCLE_INSERT_LONG_INT(Key, Value) \ +{ \ + obstack_fgrow1 (&muscle_obstack, "%ld", Value); \ + obstack_1grow (&muscle_obstack, 0); \ + muscle_insert (Key, obstack_finish (&muscle_obstack)); \ +} + +#define MUSCLE_INSERT_STRING(Key, Value) \ +{ \ + obstack_sgrow (&muscle_obstack, Value); \ + obstack_1grow (&muscle_obstack, 0); \ + muscle_insert (Key, obstack_finish (&muscle_obstack)); \ +} + +#define MUSCLE_INSERT_PREFIX(Key, Value) \ +{ \ + obstack_fgrow2 (&muscle_obstack, "%s%s", \ + spec_name_prefix ? spec_name_prefix : "yy", Value); \ + obstack_1grow (&muscle_obstack, 0); \ + muscle_insert (Key, obstack_finish (&muscle_obstack)); \ +} + + +void muscles_m4_output PARAMS ((FILE *out)); #endif /* not MUSCLE_TAB_H_ */