6 /* Declaration specifier kinds. */
10 CDECL_SPEC_QUAL = 512,
11 CDECL_SPEC_FUNC = 1024,
15 CDECL_TYPE_VOID = CDECL_SPEC_TYPE,
30 CDECL_STOR_TYPEDEF = CDECL_SPEC_STOR,
35 CDECL_QUAL_RESTRICT = CDECL_SPEC_QUAL,
38 CDECL_FUNC_INLINE = CDECL_SPEC_FUNC,
41 /* Declarator types. */
48 struct cdecl_declspec {
49 struct cdecl_declspec *next;
54 struct cdecl_declarator {
55 struct cdecl_declarator *next;
59 struct cdecl_pointer {
60 struct cdecl_declspec *qualifiers;
61 struct cdecl_declarator *declarator;
67 struct cdecl *cdecl_parse_decl(const char *declstr);
68 void cdecl_free(struct cdecl *decl);
70 size_t cdecl_explain(char *buf, size_t n, struct cdecl *decl);
72 static inline int cdecl_spec_kind(struct cdecl_declspec *spec)
74 return spec->type & ~0xffu;