From bbcda663d5b2b2f055de12107e0abab536e5beea Mon Sep 17 00:00:00 2001 From: c Date: Sat, 23 Mar 2024 10:52:52 -0400 Subject: Doubly-linked the abstract syntax tree. --- src/tree.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/tree.c') diff --git a/src/tree.c b/src/tree.c index 58fba36..84334be 100644 --- a/src/tree.c +++ b/src/tree.c @@ -1,11 +1,13 @@ #include "include/tree.h" -tree_t* tree_init(tree_type_t type) { +tree_t* tree_init(tree_type_t type, tree_t* parent) { tree_t* tree; tree = emalloc(sizeof(tree_t)); tree->type = type; + + tree->parent = parent; switch (tree->type) { case TREE_TYPE_BLOCK: @@ -153,7 +155,7 @@ void tree_print(tree_t* tree, int nest) { "\x1b[%dm",nc);sprintf(bc,"\x1b[%d;1m" ,nc);NULL;NULL;0x0;0;0;0;0;NULL;0x0;0; #define NEST0(T)LOG_RAWF("%s%s"T"\x1b"\ - """""""""""""""""""""""""[0m\n",bc,sp) + "[0m -> %d\n",bc,sp,tree->parent?tree->parent->type:-1) #define NEST1(T)LOG_RAWF("%s%s"T"\x1b"\ """""""""""""""""""""""""[0m\n",c,sp); #define NEST2(T)LOG_RAWF("%s \x1b[39;"\ -- cgit v1.2.3