diff options
author | c | 2024-05-20 18:33:21 -0400 |
---|---|---|
committer | c | 2024-05-20 18:33:21 -0400 |
commit | a34cf81386868591117d95da85a2aacf5b8938bd (patch) | |
tree | 6b7e54f7396133f62dec32abbb1baf7dafe49267 /src/main.c | |
parent | fc7edb22079845ccd548e2034ff7193ca54f47ea (diff) |
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -1,8 +1,47 @@ #include "include/main.h" #include "include/doer.h" +#include "../test/include/test.h" + +void test_tree_cpy() { + tree_t* tree_block = tree_init(TREE_TYPE_BLOCK, NULL); + tree_t* tree_lstr = tree_block->data.block.val = tree_init(TREE_TYPE_LSTR, tree_block); + char* char_lstr = tree_lstr->data.lstr.val = calloc(12, sizeof(char)); + strcpy(char_lstr, "hello world"); + tree_lstr->data.lstr.len = 11; + tree_t* tree_block2 = tree_block->data.block.nxt = tree_init(TREE_TYPE_BLOCK, tree_block); + tree_t* tree_def = tree_block2->data.block.val = tree_init(TREE_TYPE_DEF, tree_block2); + tree_t* tree_tag = tree_def->data.def.tag = tree_init(TREE_TYPE_TAG, tree_def); + char* char_tag = tree_tag->data.tag.val = calloc(4, sizeof(char)); + strcpy(char_tag, "int"); + tree_tag->data.tag.nxt = NULL; + tree_t* tree_darg = tree_def->data.def.arg = tree_init(TREE_TYPE_DARG, tree_def); + tree_t* tree_tag2 = tree_darg->data.darg.tag = tree_init(TREE_TYPE_TAG, tree_darg); + char* char_tag2 = tree_tag2->data.tag.val = calloc(4, sizeof(char)); + strcpy(char_tag2, "int"); + tree_tag2->data.tag.nxt = NULL; + tree_darg->data.darg.nxt = NULL; + tree_t* tree_lint = tree_def->data.def.val = tree_init(TREE_TYPE_LINT, tree_def); + tree_lint->data.lint.val = 42; + tree_block2->data.block.nxt = NULL; + + tree_t* t2 = malloc(sizeof(tree_t)); + + tree_cpy(&t2, tree_block); + + printf(tree_cmp(tree_block, t2)?"yes":"no"); + + tree_print(tree_block, 0); + tree_print(t2, 0); + + + printf(&t2 != &tree_block ?"yes":"no"); +} + /* FIXME: Segfaults ~30% of the time. No idea why. Thx future self <3. */ int main(int argc, char* argv[]) { + test_tree_cpy(); + return 0; char* src; pp_t* pp; lexer_t* lexer; |