X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Fdecl_enum.h;fp=src%2Ftypes%2Fdecl_enum.h;h=4a616afc998a764d6a1d0264cddc4c68572ae1cf;hb=5359ad5c181e5772f350fe1cba060cbed3a05b91;hp=0000000000000000000000000000000000000000;hpb=04a60b34fc18ea3a2638893eaf24514177692eeb;p=m6w6%2Fext-psi diff --git a/src/types/decl_enum.h b/src/types/decl_enum.h new file mode 100644 index 0000000..4a616af --- /dev/null +++ b/src/types/decl_enum.h @@ -0,0 +1,29 @@ +#ifndef _PSI_TYPES_DECL_ENUM_H +#define _PSI_TYPES_DECL_ENUM_H + +typedef struct decl_enum { + struct psi_token *token; + char *name; + decl_enum_items *items; +} decl_enum; + +static inline decl_enum *init_decl_enum(const char *name, decl_enum_items *l) { + decl_enum *e = calloc(1, sizeof(*e)); + + e->name = strdup(name); + e->items = l; + return e; +} + +static inline void free_decl_enum(decl_enum *e) { + if (e->token) { + free(e->token); + } + if (e->items) { + free_decl_enum_items(e->items); + } + free(e->name); + free(e); +} + +#endif