7 /* Declaration specifier kinds. */
10 CDECL_SPEC_STOR = 256,
11 CDECL_SPEC_QUAL = 512,
12 CDECL_SPEC_FUNC = 1024,
16 CDECL_TYPE_VOID = CDECL_SPEC_TYPE,
31 CDECL_STOR_TYPEDEF = CDECL_SPEC_STOR,
36 CDECL_QUAL_RESTRICT = CDECL_SPEC_QUAL,
39 CDECL_FUNC_INLINE = CDECL_SPEC_FUNC,
42 /* Declarator types. */
51 struct cdecl_declspec {
52 struct cdecl_declspec *next;
57 struct cdecl_declarator {
58 struct cdecl_declarator *next, *child;
62 struct cdecl_pointer {
63 struct cdecl_declspec *qualifiers;
73 struct cdecl *cdecl_parse_decl(const char *declstr);
74 void cdecl_free(struct cdecl *decl);
76 size_t cdecl_explain(char *buf, size_t n, struct cdecl *decl);
78 static inline int cdecl_spec_kind(struct cdecl_declspec *spec)
80 return spec->type & ~0xffu;