summaryrefslogtreecommitdiff
path: root/src/core/symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/symbol.c')
-rw-r--r--src/core/symbol.c14
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);
}