Add a parse type struct, used to hold type data as it is parsed.

This commit is contained in:
2018-03-06 16:44:56 -08:00
parent 55f397d732
commit bb26405df0
3 changed files with 75 additions and 1 deletions

18
src/parsetype.c Normal file
View File

@@ -0,0 +1,18 @@
#include "parsetype.h"
#include <stdlib.h>
int _foreach_free_child(void* data, va_list args) {
libab_parsetype_free_recursive(data);
return 0;
}
void libab_parsetype_free(libab_parsetype* type) {
free(type->name);
}
void libab_parsetype_free_recursive(libab_parsetype* type) {
if(type->variant == PT_PARENT) {
vec_foreach(&(type->children), NULL, compare_always, _foreach_free_child);
vec_free(&(type->children));
}
libab_parsetype_free(type);
free(type);
}