-typedef unsigned lang_bitmap;
-
-/* Option data for the 'nested_ptr' option. */
-struct nested_ptr_data {
- type_p type;
- const char *convert_to;
- const char *convert_from;
-};
-
-/* A way to pass data through to the output end. */
-typedef struct options {
- struct options *next;
- const char *name;
- const void *info;
-} *options_p;
-
-/* A name and a type. */
-struct pair {
- pair_p next;
- const char *name;
- type_p type;
- struct fileloc line;
- options_p opt;
-};
-
-#define NUM_PARAM 10
-
-/* A description of a type. */
-struct type {
- enum typekind kind;
- type_p next;
- type_p pointer_to;
- enum gc_used_enum {
- GC_UNUSED = 0,
- GC_USED,
- GC_MAYBE_POINTED_TO,
- GC_POINTED_TO
- } gc_used;
- union {
- type_p p;
- struct {
- const char *tag;
- struct fileloc line;
- pair_p fields;
- options_p opt;
- lang_bitmap bitmap;
- type_p lang_struct;
- } s;
- char *sc;
- struct {
- type_p p;
- const char *len;
- } a;
- struct {
- type_p stru;
- type_p param[NUM_PARAM];
- struct fileloc line;
- } param_struct;
- } u;
-};
-
-#define UNION_P(x) \
- ((x)->kind == TYPE_UNION || \
- ((x)->kind == TYPE_LANG_STRUCT \
- && (x)->u.s.lang_struct->kind == TYPE_UNION))
-#define UNION_OR_STRUCT_P(x) \
- ((x)->kind == TYPE_UNION \
- || (x)->kind == TYPE_STRUCT \
- || (x)->kind == TYPE_LANG_STRUCT)
-
-/* The one and only TYPE_STRING. */
-extern struct type string_type;