X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/ee7baf59f18b5bc5be9abed0b2be90f407ee497d..bbfdea24b2b940031e86e990bc457785dd378b58:/src/cdecl.h diff --git a/src/cdecl.h b/src/cdecl.h index 1493d4d..11e0099 100644 --- a/src/cdecl.h +++ b/src/cdecl.h @@ -102,11 +102,19 @@ void cdecl_free(struct cdecl *decl); size_t cdecl_explain(char *buf, size_t n, struct cdecl *decl); size_t cdecl_declare(char *buf, size_t n, struct cdecl *decl); -static inline int cdecl_spec_kind(struct cdecl_declspec *spec) +static inline int cdecl_spec_kind(const struct cdecl_declspec *spec) { return spec->type & ~(CDECL_SPEC_TYPE-1u); } +static inline _Bool cdecl_is_abstract(const struct cdecl_declarator *d) +{ + while (d->child) + d = d->child; + + return d->type != CDECL_DECL_IDENT; +} + /* Error handling. */ enum { CDECL_ENOMEM,