api refactoring
[m6w6/ext-psi] / src / types / decl_enum.h
1 #ifndef _PSI_TYPES_DECL_ENUM_H
2 #define _PSI_TYPES_DECL_ENUM_H
3
4 typedef struct decl_enum {
5 struct psi_token *token;
6 char *name;
7 decl_enum_items *items;
8 } decl_enum;
9
10 static inline decl_enum *init_decl_enum(const char *name, decl_enum_items *l) {
11 decl_enum *e = calloc(1, sizeof(*e));
12
13 e->name = strdup(name);
14 e->items = l;
15 return e;
16 }
17
18 static inline void free_decl_enum(decl_enum *e) {
19 if (e->token) {
20 free(e->token);
21 }
22 if (e->items) {
23 free_decl_enum_items(e->items);
24 }
25 free(e->name);
26 free(e);
27 }
28
29 #endif