+ type_t type;
+ /** the declaration of the compound type, it's context field
+ * contains the compound entries. */
+ declaration_t *declaration;
+};
+
+struct enum_type_t {
+ type_t type;
+ /** the declaration of the enum type. You can find the enum entries by
+ * walking the declaration->context_next list until you don't find
+ * STORAGE_CLASS_ENUM_ENTRY declarations anymore */
+ declaration_t *declaration;
+};
+
+struct typedef_type_t {
+ type_t type;
+ declaration_t *declaration;
+};
+
+struct typeof_type_t {
+ type_t type;
+ expression_t *expression;
+ type_t *typeof_type;