feat: implement extern block reading and parsing
This commit is contained in:
@@ -94,11 +94,40 @@ void fzl_freeast(fzl_node_t *root)
|
||||
{
|
||||
switch (root->type)
|
||||
{
|
||||
case FZL_NODETYPE_REFERENCE:
|
||||
case FZL_NODETYPE_ALIAS:
|
||||
case FZL_NODETYPE_HANDLE:
|
||||
case FZL_NODETYPE_BREAK:
|
||||
case FZL_NODETYPE_IDENTIFIER:
|
||||
case FZL_NODETYPE_LITERAL:
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_EXTERN:
|
||||
for (size_t i = 0; i < root->ext.typedefs_count; i++)
|
||||
fzl_freeast(root->ext.typedefs[i]);
|
||||
free(root->ext.typedefs);
|
||||
|
||||
for (size_t i = 0; i < root->ext.fns_count; i++)
|
||||
fzl_freeast(root->ext.fns[i]);
|
||||
free(root->ext.fns);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_EXTERN_FN:
|
||||
for (size_t i = 0; i < root->ext_fn.args_count; i++)
|
||||
fzl_freeast(root->ext_fn.args[i]);
|
||||
free(root->ext_fn.args);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_STRUCT:
|
||||
for (size_t i = 0; i < root->structure.entries_count; i++)
|
||||
fzl_freeast(root->structure.entries[i]);
|
||||
free(root->structure.entries);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_TYPEDEF:
|
||||
fzl_freeast(root->typedefinition.type);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_FMT_STRING:
|
||||
case FZL_NODETYPE_BLOCK:
|
||||
if (root->list.entries)
|
||||
|
||||
Reference in New Issue
Block a user