diff options
author | c+1 | 2023-05-10 00:50:10 -0400 |
---|---|---|
committer | c+1 | 2023-05-10 00:50:10 -0400 |
commit | 266d3d6af1ba8d338bb8b9ad09431483276dae46 (patch) | |
tree | 4c4ce456e9c1bfc6e0fdc370dffa5da82d797868 /src/tree.c | |
parent | deb8d97be58847031e7f4ef25d7107cb2dbc35a3 (diff) |
halk.
Diffstat (limited to 'src/tree.c')
-rw-r--r-- | src/tree.c | 37 |
1 files changed, 25 insertions, 12 deletions
@@ -5,18 +5,31 @@ tree_t* tree_init(int type) { tree->type = type; - char* var_def_name = NULL; - struct TREE_STRUC* var_def_val = NULL; - char* var_name = NULL; - - char* fn_call_name = NULL; - struct TREE_STRUC** fn_call_argv = NULL; - size_t fn_call_argsize = 0; - - char* str_val = NULL; - - struct TREE_STRUC* subtree_val = NULL; - size_t subtree_size = 0; + switch (type) { + case TREE_VAR_DEF: + tree->data.var_def.name = NULL; + tree->data.var_def.val = NULL; + break; + case TREE_VAR: + tree->data.var.name = NULL; + break; + case TREE_FN_DEF: + tree->data.fn_def.name = NULL; + tree->data.fn_def.val = NULL; + tree->data.fn_def.argv = NULL; + tree->data.fn_def.argsize = 0; + break; + case TREE_FN_CALL: + tree->data.fn_call.name = NULL; + tree->data.fn_call.argv = NULL; + tree->data.fn_call.argsize = 0; + break; + case TREE_STR: + tree->data.str.val = NULL; + tree->data.subtree.val = NULL; + tree->data.subtree.size = 0; + break; + } return tree; } |