# include <stddef.h>
# include <stdlib.h>
# include <string.h>
-
-# if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-# endif
-
# include <unistd.h>
# include <inttypes.h>
+#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. */
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# endif
-# define FUNCTION_PRINT() fprintf (stderr, "%s: ", __func__)
/*------.
| NLS. |
} while (0)
+/* Append the ending 0, finish Obs, and return the string. */
+# define obstack_finish0(Obs) \
+ (obstack_1grow (Obs, '\0'), (char *) obstack_finish (Obs))
/*-----------------------------------------.