diff options
author | c | 2024-03-23 10:52:52 -0400 |
---|---|---|
committer | c | 2024-03-23 10:52:52 -0400 |
commit | bbcda663d5b2b2f055de12107e0abab536e5beea (patch) | |
tree | a70ec5edb9912ca3bbbf230fba6196741b2c8394 /src/include/tree.h | |
parent | 53d5c419bdfaa58c2cf7c30e51e4515f66fa85a1 (diff) |
Doubly-linked the abstract syntax tree.
Diffstat (limited to 'src/include/tree.h')
-rw-r--r-- | src/include/tree.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/tree.h b/src/include/tree.h index 2a62f26..e1adf85 100644 --- a/src/include/tree.h +++ b/src/include/tree.h @@ -19,6 +19,8 @@ typedef enum TREE_TYPE { typedef struct TREE { tree_type_t type; + struct TREE* parent; + union TREE_DATA{ /* Block. */ struct TREE_DATA_BLOCK { @@ -77,12 +79,11 @@ typedef struct TREE { char* target; struct TREE* arg; /* CARG */ } call; - } data; } tree_t; /* Create a new AST. */ -tree_t* tree_init(tree_type_t type); +tree_t* tree_init(tree_type_t type, tree_t* parent); /* Destroy the AST (if it exists). */ void tree_destroy(tree_t* tree); |