diff options
Diffstat (limited to 'src/core/symbol.c')
| -rw-r--r-- | src/core/symbol.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/symbol.c b/src/core/symbol.c index 2343cdb..9a98e63 100644 --- a/src/core/symbol.c +++ b/src/core/symbol.c @@ -33,7 +33,9 @@ *:*/ #include "symbol.h" +#include "token.h" +#include "../data/array.h" #include "../data/list.h" Symbol* @@ -55,8 +57,20 @@ symbol_delete(Symbol *p_symbol) { list_delete(p_list_token); } break; + case SYM_VARIABLE: + { + Token *p_token = symbol_get_val(p_symbol); + switch (token_get_tt(p_token)) { + case TT_ARRAY: + array_iterate(p_token->p_array, token_delete_cb); + break; + NO_DEFAULT; + } + } + break; NO_DEFAULT; } + free(p_symbol); } |
