diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-11 23:23:12 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-11 23:23:12 +0300 |
| commit | d23d03829e5baf947d347f49cc1d7807be6c070b (patch) | |
| tree | f611d1105868f1d253cf15070b55793ed694861b /src/ast.c | |
| parent | 3065334aec0f357c88eab144628a798db4a3e5ea (diff) | |
| download | ek-d23d03829e5baf947d347f49cc1d7807be6c070b.tar.gz ek-d23d03829e5baf947d347f49cc1d7807be6c070b.zip | |
initial generics for structs
+ Likely still very much full of bugs
Diffstat (limited to 'src/ast.c')
| -rw-r--r-- | src/ast.c | 20 |
1 files changed, 15 insertions, 5 deletions
@@ -153,9 +153,14 @@ unsigned ast_flags(struct ast *node, enum ast_flags flags) return node->f & flags; } -void ast_append(struct ast *list, struct ast *elem) +void ast_append(struct ast **list, struct ast *elem) { - struct ast *cur = list; + struct ast *cur = *list; + if (!cur) { + *list = elem; + return; + } + while (cur->n) cur = cur->n; @@ -168,9 +173,14 @@ struct ast *ast_prepend(struct ast *list, struct ast *elem) return elem; } -void type_append(struct type *list, struct type *elem) +void type_append(struct type **list, struct type *elem) { - struct type *cur = list; + struct type *cur = *list; + if (!cur) { + *list = elem; + return; + } + while (cur->n) cur = cur->n; @@ -681,7 +691,7 @@ size_t align3k(size_t o) { size_t rem = o % 3; if (rem) - o += rem; + o += 3 - rem; return o; } |
