X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/cb9ec4fada480554cf47810fee736997d64e7427..ed91d427fe80ea2c5991c8862b0145613b9a0650:/src/system.h diff --git a/src/system.h b/src/system.h index a56c058a..987ebe2a 100644 --- a/src/system.h +++ b/src/system.h @@ -52,13 +52,13 @@ #define STRPREFIX_LIT(Literal, S) \ (STRNCMP_LIT (S, Literal) == 0) -#if HAVE_SYS_TYPES_H -# include -#endif - #include #include +#define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array)) +#define STREQ(L, R) (strcmp(L, R) == 0) +#define STRNEQ(L, R) (!STREQ(L, R)) + #ifndef UINTPTR_MAX /* This isn't perfect, but it's good enough for Bison, which needs only to hash pointers. */ @@ -118,7 +118,6 @@ typedef size_t uintptr_t; # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #endif -#define FUNCTION_PRINT() fprintf (stderr, "%s: ", __func__) /*------. | NLS. | @@ -173,6 +172,8 @@ typedef size_t uintptr_t; #define obstack_chunk_free free #include +/* String-grow: append Str to Obs. */ + #define obstack_sgrow(Obs, Str) \ obstack_grow (Obs, Str, strlen (Str)) @@ -217,7 +218,10 @@ typedef size_t uintptr_t; } while (0) +/* Append the ending 0, finish Obs, and return the string. */ +# define obstack_finish0(Obs) \ + (obstack_1grow (Obs, '\0'), (char *) obstack_finish (Obs)) /*-----------------------------------------.